OSDN Git Service

fix manifest
[pettanr/pettanr.git] / lib / view / filer / edit.rb
1     class Edit
2       def initialize edit_conf
3         @edit_conf = edit_conf || {}
4         @type_conf = @edit_conf['type'] || 'default'
5         @type_method = self.type_method
6       end
7       
8       def type_method
9         case @type_conf
10         when 'default'
11           :type_default
12         when 'account'
13           :type_account
14         when 'template'
15           :type_template
16         when 'none'
17           :type_none
18         else
19           :type_none
20         end
21       end
22       
23       def type_default view, item, operators
24         if item.own? operators
25           view.link_to view.tag(:img, :src => view.asset_path('edit.png'), :width => 32, :height => 32), 
26             view.polymorphic_path(item, :action => :edit)
27           view.link_to view.tag(:img, :src => view.asset_path('remove.png'), :width => 32, :height => 32), 
28             item, confirm: 'Are you sure?', :method => :delete
29         end
30       end
31       
32       def type_account view, item, operators
33         if item.own? operators
34           view.link_to view.tag(:img, :src => view.asset_path('edit.png'), :width => 32, :height => 32), 
35             '/home/configure'
36         end
37       end
38       
39       def type_template view, item, operators
40         view.render item.path_name + '/' + @edit_conf['name'], :item => item
41       end
42       
43       def type_none view, item, operators
44         ''
45       end
46       
47       def visible?
48         self.type_method != :type_none
49       end
50       
51       def render view, item, operators
52         self.__send__(@type_method, view, item, operators)
53       end
54       
55     end
56