2 attr :filer_manifest, :item_name, :manifest, :filer_conf,
3 :symbol, :caption, :summary, :icon, :date, :edit
4 def initialize filer_manifest, items, operators, paginate
5 @filer_manifest = filer_manifest
7 @file_items = @items.map {|item|
8 FileItem.new self, @filer_manifest
20 model_name.classify.constantize
26 attr :item, :operators
27 def initialize item, operators, filer_manifest
29 @operators = operators
30 @filer_manifest = filer_manifest
31 @symbol = SymbolView self, @filer_manifest.symbol.symbol_manifest
35 @caption.render view, @item, @operators
39 @summary.render view, @item, @operators
43 @icon.render view, @item, @operators
47 @date.render view, @item, @operators
51 @edit.render view, @item, @operators
60 def initialize file_item, symbol_manifest
61 @symbol_manifest = symbol_manifest
65 if @tag_method_name == :tag_template
66 view.render item.path_name + '/' + @symbol_conf['name'], :item => item
68 link = self.__send__(@link_method_name, view, item, operators)
69 tag = self.__send__(@tag_method_name, view, item, operators)
71 view.link_to_unless link.blank?, tag, link
81 def initialize symbol_conf
82 @symbol_conf = symbol_conf || {}
83 @link_conf = @symbol_conf['link'] || {'type' => 'action', 'name' => 'show'}
84 @type_conf = @symbol_conf['type'] || 'image'
85 @link_method_name = self.link_method_name
86 @tag_method_name = self.tag_method_name
90 case @link_conf['type']
92 case @link_conf['name']
107 def link_action_show view, item, operators
108 view.polymorphic_path(item)
111 def link_action_else view, item, operators
112 view.polymorphic_path(item, :action => @link_conf['name'])
115 def link_none view, item, operators
119 def link_url_column view, item, operators
120 item.__send__(@link_conf['name']).to_s
123 def link_else view, item, operators
127 def tag_image view, item, operators
128 view.tag(:img, :src => @symbol_conf['name'], :width => 64, :height => 64)
131 def tag_picture view, item, operators
132 view.tag(:img, item.__send__(@symbol_conf['name']))
135 def tag_template view, item, operators
136 view.render item.path_name + '/' + @symbol_conf['name'], :item => item
140 def tag_else view, item, operators
145 self.link_method_name != :link_none
148 def render view, item, operators
149 if @tag_method_name == :tag_template
150 view.render item.path_name + '/' + @symbol_conf['name'], :item => item
152 link = self.__send__(@link_method_name, view, item, operators)
153 tag = self.__send__(@tag_method_name, view, item, operators)
155 view.link_to_unless link.blank?, tag, link