OSDN Git Service

filer worked
authoryasushiito <yas@pen-chan.jp>
Sat, 8 Feb 2014 05:53:44 +0000 (14:53 +0900)
committeryasushiito <yas@pen-chan.jp>
Sat, 8 Feb 2014 05:53:44 +0000 (14:53 +0900)
53 files changed:
app/assets/javascripts/manifest/work/filers.js.coffee.erb
app/controllers/comics_controller.rb
app/views/templates/r/filer/_footer.html.erb
app/views/templates/r/filer/caption/_default.html.erb
app/views/templates/r/filer/caption_face/_empty.html.erb [new file with mode: 0644]
app/views/templates/r/filer/date/_default.html.erb [new file with mode: 0644]
app/views/templates/r/filer/date/_none.html.erb [moved from app/views/templates/r/filer/summary/_none.html - \83R\83s\81[.erb with 100% similarity]
app/views/templates/r/filer/edit/_account.html.erb [new file with mode: 0644]
app/views/templates/r/filer/edit/_default.html.erb [new file with mode: 0644]
app/views/templates/r/filer/edit/_none.html.erb [new file with mode: 0644]
app/views/templates/r/filer/edit/_template.html.erb [new file with mode: 0644]
app/views/templates/r/filer/icon/_default.html.erb [new file with mode: 0644]
app/views/templates/r/filer/icon/_none.html.erb [new file with mode: 0644]
app/views/templates/r/filer/summary/_template.html.erb [new file with mode: 0644]
app/views/templates/r/filer/symbol/_default.html.erb
app/views/templates/r/filer/symbol/_template.html.erb [new file with mode: 0644]
lib/item.rb
lib/manifest/filer.rb
lib/manifest/filer/caption/default/link/link.rb
lib/manifest/filer/caption/none.rb
lib/manifest/filer/caption/template.rb
lib/manifest/filer/edit/edit.rb
lib/manifest/filer/summary/summary.rb
lib/manifest/filer/symbol/default/link/link.rb
lib/manifest/list/base.rb
lib/manifest/list/private.rb
lib/manifest/list/system_resource.rb
lib/manifest/local/view/filer.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption/base.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption/default.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face/face.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link/link.rb
lib/manifest/local/view/filer/body/file_body/file_item/caption/template.rb
lib/manifest/local/view/filer/body/file_body/file_item/date.rb
lib/manifest/local/view/filer/body/file_body/file_item/date/date.rb
lib/manifest/local/view/filer/body/file_body/file_item/edit.rb
lib/manifest/local/view/filer/body/file_body/file_item/edit/edit.rb
lib/manifest/local/view/filer/body/file_body/file_item/icon.rb
lib/manifest/local/view/filer/body/file_body/file_item/icon/icon.rb
lib/manifest/local/view/filer/body/file_body/file_item/summary.rb
lib/manifest/local/view/filer/body/file_body/file_item/summary/summary.rb
lib/manifest/local/view/filer/body/file_body/file_item/symbol.rb
lib/manifest/local/view/filer/body/file_body/file_item/symbol/base.rb
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default.rb
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link/link.rb
lib/manifest/local/view/filer/body/file_body/file_item/symbol/template.rb
lib/manifest/local/view/filer/body/file_header/none.rb
lib/manifest/local/view/filer/footer.rb
public/images/edit.png [new file with mode: 0644]
public/images/item.png [new file with mode: 0644]
public/images/remove.png [new file with mode: 0644]
public/manifest.json

index b45fad6..860a10a 100644 (file)
@@ -2,7 +2,6 @@
 @filers = {\r
   scroll: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'title',\r
+            column_name: 'title',\r
           },\r
         },\r
         link: {\r
           type: 'action'\r
           args: {\r
-            name: 'play',\r
+            action_name: 'play',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
-      type: 'default',\r
-      args: {\r
-      },\r
     },\r
   },\r
   scroll_panel: {\r
       type: 'none',\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
@@ -57,7 +45,6 @@
   },\r
   comic: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'title',\r
+            column_name: 'title',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
-      type: 'default',\r
     },\r
   },\r
   story: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         link: {\r
           type: 'action'\r
           args: {\r
-            name: 'play',\r
+            action_name: 'play',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
-      type: 'default',\r
     },\r
   },\r
   story_sheet: {\r
       type: 'none',\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
   },\r
   sheet: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
       args: {\r
         face: {\r
-          type: 'column',\r
         },\r
         link: {\r
           type: 'action'\r
           args: {\r
-            name: 'play',\r
+            action_name: 'play',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
-      type: 'default',\r
     },\r
   },\r
   sheet_panel: {\r
       type: 'none',\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
   },\r
   panel: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
-      type: 'default',\r
     },\r
   },\r
   panel_picture: {\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'content',\r
+            column_name: 'content',\r
           },\r
         },\r
         link: {\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       type: 'none',\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
         link: {\r
           type: 'action',\r
           args: {\r
-            name: 'history',\r
+            action_nname: 'history',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'template',\r
       args: {\r
-        name: 'publish',\r
+        template_name: 'publish',\r
       },\r
     },\r
   },\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'revision',\r
+            column_name: 'revision',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       type: 'none',\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
       },\r
     },\r
     caption: {\r
-      type: 'default',\r
     },\r
     summary: {\r
       type: 'none',\r
   },\r
   writing_format: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
-      type: 'default',\r
     },\r
     summary: {\r
       type: 'none',\r
   },\r
   license_group: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         link: {\r
           type: 'url_column',\r
           args: {\r
-            name: 'url',\r
+            column_name: 'url',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
       type: 'none',\r
-      args: {\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
   },\r
   license: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         link: {\r
           type: 'url_column',\r
           args: {\r
-            name: 'url',\r
+            column_name: 'url',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'none',\r
   },\r
   author: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'name',\r
+            column_name: 'name',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'account',\r
   },\r
   artist: {\r
     symbol: {\r
-      type: 'default',\r
     },\r
     caption: {\r
       type: 'default',\r
         face: {\r
           type: 'column',\r
           args: {\r
-            name: 'name',\r
+            column_name: 'name',\r
           },\r
         },\r
       },\r
     },\r
     summary: {\r
-      type: 'template',\r
-      args: {\r
-        name: 'summary',\r
-      },\r
     },\r
     edit: {\r
       type: 'account',\r
index 1c4ed68..42c7a9a 100644 (file)
@@ -13,8 +13,6 @@ class ComicsController < ApplicationController
   end
   
   def index
-    @action = self.class.controller.open(action_name, params, @operators)
-    @action.cook params, operators
     public_list
   end
 
index f2ac514..6437be9 100644 (file)
@@ -1,3 +1,3 @@
-<% if filer.paginate %>
-  <%= paginate(filer.paginate) %>
+<% if footer.paginate %>
+  <%= paginate(footer.paginate) %>
 <% end %>
index f894f35..4de6a02 100644 (file)
@@ -1 +1 @@
-<%= render item_column.face.template_name, :face => item_column.face  %>
+<%= link_to render(item_column.face.template_name, :face => item_column.face), item_column.link.url  %>
diff --git a/app/views/templates/r/filer/caption_face/_empty.html.erb b/app/views/templates/r/filer/caption_face/_empty.html.erb
new file mode 100644 (file)
index 0000000..544012b
--- /dev/null
@@ -0,0 +1 @@
+<%= 'empty' %>
diff --git a/app/views/templates/r/filer/date/_default.html.erb b/app/views/templates/r/filer/date/_default.html.erb
new file mode 100644 (file)
index 0000000..b240947
--- /dev/null
@@ -0,0 +1 @@
+<%= distance_of_time_in_words_to_now item_column.item.updated_at %>
diff --git a/app/views/templates/r/filer/edit/_account.html.erb b/app/views/templates/r/filer/edit/_account.html.erb
new file mode 100644 (file)
index 0000000..7141e05
--- /dev/null
@@ -0,0 +1 @@
+<%= link_to tag(:img, item_column.edit_img_opt),'/home/configure' %>
diff --git a/app/views/templates/r/filer/edit/_default.html.erb b/app/views/templates/r/filer/edit/_default.html.erb
new file mode 100644 (file)
index 0000000..2b42f1e
--- /dev/null
@@ -0,0 +1,2 @@
+<%= link_to tag(:img, item_column.edit_img_opt), polymorphic_path(item_column.item, :action => :edit) %>
+<%= link_to tag(:img, item_column.remove_img_opt), item_column.item, confirm: 'Are you sure?', :method => :delete %>
diff --git a/app/views/templates/r/filer/edit/_none.html.erb b/app/views/templates/r/filer/edit/_none.html.erb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/views/templates/r/filer/edit/_template.html.erb b/app/views/templates/r/filer/edit/_template.html.erb
new file mode 100644 (file)
index 0000000..8ba1a02
--- /dev/null
@@ -0,0 +1 @@
+<%= render item_column.template_name, :item => item_column.item %>
diff --git a/app/views/templates/r/filer/icon/_default.html.erb b/app/views/templates/r/filer/icon/_default.html.erb
new file mode 100644 (file)
index 0000000..27ca662
--- /dev/null
@@ -0,0 +1 @@
+<%= link_to icon_tag(item_column.icon_name, :object => item_column.item, :size => item_column.icon_size), polymorphic_path(item_column.item, :format => :prof) %>
diff --git a/app/views/templates/r/filer/icon/_none.html.erb b/app/views/templates/r/filer/icon/_none.html.erb
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/app/views/templates/r/filer/summary/_template.html.erb b/app/views/templates/r/filer/summary/_template.html.erb
new file mode 100644 (file)
index 0000000..8ba1a02
--- /dev/null
@@ -0,0 +1 @@
+<%= render item_column.template_name, :item => item_column.item %>
index f894f35..4de6a02 100644 (file)
@@ -1 +1 @@
-<%= render item_column.face.template_name, :face => item_column.face  %>
+<%= link_to render(item_column.face.template_name, :face => item_column.face), item_column.link.url  %>
diff --git a/app/views/templates/r/filer/symbol/_template.html.erb b/app/views/templates/r/filer/symbol/_template.html.erb
new file mode 100644 (file)
index 0000000..8ba1a02
--- /dev/null
@@ -0,0 +1 @@
+<%= render item_column.template_name, :item => item_column.item %>
index be8de82..d4b77c7 100644 (file)
@@ -114,7 +114,7 @@ class Pettanr::Item < ActiveRecord::Base
   end
   
   def visible? operators
-    if MagicNumber['run_mode'] == 0
+    if Manifest.manifest.magic_numbers['run_mode'] == 0
       return false unless operators.guest?
     else
       return false unless operators.resource_reader?
index 57c6a06..4d6b93c 100644 (file)
@@ -15,12 +15,13 @@ module Manifest
       filers
     end
     
-    attr :filer_manifest, :item_name, :manifest,
+    attr :filer_manifest, :item_name, :manifest, :item_class,
       :symbol, :caption, :summary, :icon, :date, :edit
     def initialize manifest, item_name, filer_manifest
       @manifest = manifest
       @item_name = item_name
       @filer_manifest = filer_manifest
+      @item_class = ::Manifest.item_name_to_model @item_name
       self.set_default
       self.init
     end
index 9deb1c0..62bb598 100644 (file)
@@ -22,6 +22,10 @@ module Manifest
               @args = @link_manifest['args']
             end
             
+            def filer
+              @caption.filer
+            end
+            
           end
           
           class ActionLink < BaseLink
@@ -37,6 +41,11 @@ module Manifest
               @action_name = @args['action_name']
             end
             
+            def action_path
+              a = @action_name == 'show' ? '' : @action_name + '/'
+              '/' + self.filer.item_class.path_name + '/' + a
+            end
+            
           end
           
           class NoneLink < BaseLink
index b80c161..363ea95 100644 (file)
@@ -12,7 +12,7 @@ module Manifest
         end
         
         def visible?
-          true
+          false
         end
         
       end
index beacb6c..56bcf7a 100644 (file)
@@ -6,7 +6,7 @@ module Manifest
         
         def set_default
           super
-          @caption_manifest['args']['template_name'] ||= 'symbol'
+          @caption_manifest['args']['template_name'] ||= 'caption'
         end
         
         def init
index 21e4ea6..030e21c 100644 (file)
@@ -36,6 +36,18 @@ module Manifest
       end
       
       class Template < Base
+        attr  :template_name
+        
+        def set_default
+          super
+          @edit_manifest['args']['template_name'] ||= 'edit'
+        end
+        
+        def init
+          super
+          @template_name = @args['template_name']
+        end
+        
       end
       
     end
index d773d2c..69b18a3 100644 (file)
@@ -30,16 +30,16 @@ module Manifest
       end
       
       class Template < Base
-        attr  :name
+        attr  :template_name
         
         def set_default
           super
-          @summary_manifest['args']['name'] ||= 'summary'
+          @summary_manifest['args']['template_name'] ||= 'summary'
         end
         
         def init
           super
-          @name = @args['name']
+          @template_name = @args['template_name']
         end
         
       end
index f842ab7..d7b83dc 100644 (file)
@@ -22,6 +22,10 @@ module Manifest
               @args = @link_manifest['args']
             end
             
+            def filer
+              @symbol.filer
+            end
+            
           end
           
           class ActionLink < BaseLink
@@ -37,8 +41,9 @@ module Manifest
               @action_name = @args['action_name']
             end
             
-            def url
-              '/' + @name
+            def action_path
+              a = @action_name == 'show' ? '' : @action_name + '/'
+              '/' + self.filer.item_class.path_name + '/' + a
             end
             
           end
index f574632..2365a74 100644 (file)
@@ -73,7 +73,7 @@ module Manifest
         @model.list_order
       end
       
-      def items options, offset, page_size
+      def items operators, options, offset, page_size
         @model.where(self.where).includes(self.includes).order(self.order).offset(offset).limit(page_size)
       end
       
@@ -86,7 +86,7 @@ module Manifest
         page = self.page_number(options[:page]) 
         page_size = self.page_size options[:page_size]
         offset = (page -1) * page_size
-        items = self.items options, offset, page_size
+        items = self.items operators, options, offset, page_size
         paginate = self.paginate items, offset, page_size
         ListResult.new items, paginate
       end
index cb37336..5014234 100644 (file)
@@ -1,12 +1,12 @@
 module Manifest
   module ListModule
     class PrivateList < Base
-      def where 
+      def where operators
         case @model.owner_type
         when :author
-          operator = @operators.author
+          operator = operators.author
         when :artist
-          operator = @operators.artist
+          operator = operators.artist
         end
         t = if @owner_model
           if @owner_model.owner_model
@@ -20,6 +20,10 @@ module Manifest
         [t + '.' + @model.owner_type.to_s + '_id = ?', operator.id]
       end
     
+      def items operators, options, offset, page_size
+        @model.where(self.where(operators)).includes(self.includes).order(self.order).offset(offset).limit(page_size)
+      end
+      
     end
     
   end
index 218d7e7..99c57dd 100644 (file)
@@ -10,7 +10,7 @@ module Manifest
         super
       end
       
-      def items options, offset, page_size
+      def items operators, options, offset, page_size
         @model.enable_list
       end
       
index 2d727e7..50a44ab 100644 (file)
@@ -16,7 +16,7 @@ module Manifest
         @template_dir = 'templates/r/filer/'
         @header = Header.new self
         @body = Body.new self
-        @footer = Footer.new self
+        @footer = Footer.new self, paginate
       end
       
       def model
@@ -31,6 +31,10 @@ module Manifest
         self.template_dir + self.template_file_name
       end
       
+      def image_dir
+        '/images/'
+      end
+      
     end
   end
 end
index e3389f8..e1c342f 100644 (file)
@@ -18,7 +18,7 @@ module Manifest
                 raise "undefined type for local view filers > #{file_item.item_name} > caption > default > face\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > caption > default > face > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index 40ed9c8..7e3ce52 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module CaptionItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :caption_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, caption_manifest, item
                   @file_item = file_item
+                  @caption_manifest = caption_manifest
                   @item = item
                   @column_name = 'caption'
                 end
@@ -22,10 +23,6 @@ module Manifest
                   self.filer.manifest
                 end
                 
-                def caption_manifest
-                  self.manifest.caption
-                end
-                
                 def item_name
                   self.filer.item_name
                 end
index 6b4f5a5..dd66375 100644 (file)
@@ -11,7 +11,7 @@ module Manifest
                 include DefaultModule
                 attr :face, :link
                 
-                def initialize file_item, item
+                def initialize file_item, caption_manifest, item
                   super
                   @face = FaceFactory.factory self, self.caption_manifest.face, @item
                   @link = LinkFactory.factory self, self.caption_manifest.link, @item
@@ -22,7 +22,7 @@ module Manifest
                 end
                 
                 def item_template_file_name
-                  if self.caption_manifest.link.type == 'none'
+                  if @caption_manifest.link.type == 'none'
                     'default_without_link'
                   else
                     'default'
index 954ac1c..e2bf7e9 100644 (file)
@@ -43,7 +43,11 @@ module Manifest
                   
                   class ColumnFace < BaseFace
                     def template_file_name
-                      'column'
+                      if face.blank?
+                        'empty'
+                      else
+                        'column'
+                      end
                     end
                     
                     def face
@@ -54,7 +58,11 @@ module Manifest
                   
                   class MethodFace < BaseFace
                     def template_file_name
-                      'method'
+                      if face.blank?
+                        'empty'
+                      else
+                        'column'
+                      end
                     end
                     
                     def face
index f8a3899..e42feb5 100644 (file)
@@ -24,7 +24,7 @@ module Manifest
                   class ActionLink < BaseLink
                     
                     def url
-                      '/' + @link_manifest.action_name + @item.id.to_s
+                      @link_manifest.action_path + @item.id.to_s
                     end
                     
                   end
index 985f3d1..e7b9ccb 100644 (file)
@@ -7,7 +7,7 @@ module Manifest
             module CaptionItemColumnModule
               class Template < Base
                 def template_file_name
-                  self.manifest.symbol.template_name
+                  @caption_manifest.template_name
                 end
                 
               end
index 943ac3e..5cda87a 100644 (file)
@@ -8,14 +8,14 @@ module Manifest
             class DateItemColumnFactory
               include DateItemColumnModule
               @@types = {
-                'default' => Default
+                'default' => Default, 'none' => None
               }
               def self.factory file_item, my_manifest, item
                 type = my_manifest.type
                 raise "undefined type for local view filers > #{file_item.item_name} > date\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > date > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index 3a68718..176d962 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module DateItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :date_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, date_manifest, item
                   @file_item = file_item
+                  @date_manifest = date_manifest
                   @item = item
                   @column_name = 'date'
                 end
@@ -53,6 +54,21 @@ module Manifest
               end
               
               class Default < Base
+                def column_template_file_name
+                  'show'
+                end
+                
+                def item_template_file_name
+                  'default'
+                end
+                
+              end
+              
+              class None < Base
+                def column_template_file_name
+                  'none'
+                end
+                
               end
               
             end
index b587a7f..6dc62e0 100644 (file)
@@ -15,7 +15,7 @@ module Manifest
                 raise "undefined type for local view filers > #{file_item.item_name} > edit\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > edit > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index fff75f5..86419c0 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module EditItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :edit_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, edit_manifest, item
                   @file_item = file_item
+                  @edit_manifest = edit_manifest
                   @item = item
                   @column_name = 'edit'
                 end
@@ -26,6 +27,10 @@ module Manifest
                   self.filer.item_name
                 end
                 
+                def image_dir
+                  self.filer.image_dir
+                end
+                
                 def column_template_dir
                   self.filer.template_dir + 'item_column/'
                 end
@@ -53,15 +58,97 @@ module Manifest
               end
               
               class Default < Base
+                def column_template_file_name
+                  'show'
+                end
+                
+                def item_template_file_name
+                  if @item.own? self.filer.operators
+                    'default'
+                  else
+                    'none'
+                  end
+                end
+                
+                def edit_img_file_name
+                  self.image_dir + 'edit.png'
+                end
+                
+                def remove_img_file_name
+                  self.image_dir + 'remove.png'
+                end
+                
+                def img_opt
+                  {:width => Manifest.manifest.magic_numbers['thumbnail_width'] / 2, 
+                    :height => Manifest.manifest.magic_numbers['thumbnail_height'] / 2}
+                end
+                
+                def edit_img_opt
+                  img_opt.merge :src => self.edit_img_file_name
+                end
+                
+                def remove_img_opt
+                  img_opt.merge :src => self.remove_img_file_name
+                end
+                
               end
               
               class None < Base
+                def column_template_file_name
+                  'none'
+                end
+                
               end
               
               class Account < Base
+                def column_template_file_name
+                  'show'
+                end
+                
+                def item_template_file_name
+                  if @item.own? self.filer.operators
+                    'account'
+                  else
+                    'none'
+                  end
+                end
+                
+                def edit_img_file_name
+                  self.image_dir + 'edit.png'
+                end
+                
+                def img_opt
+                  {:width => Manifest.manifest.magic_numbers['thumbnail_width'] / 2, 
+                    :height => Manifest.manifest.magic_numbers['thumbnail_height'] / 2}
+                end
+                
+                def edit_img_opt
+                  img_opt.merge :src => self.edit_img_file_name
+                end
+                
               end
               
               class Template < Base
+                def column_template_file_name
+                  'show'
+                end
+                
+                def item_template_file_name
+                  'template'
+                end
+                
+                def template_dir
+                  @item.path_name + '/'
+                end
+                
+                def template_file_name
+                  @edit_manifest.template_name
+                end
+                
+                def template_name
+                  self.template_dir + self.template_file_name
+                end
+                
               end
               
             end
index 853f992..be392b7 100644 (file)
@@ -8,14 +8,14 @@ module Manifest
             class IconItemColumnFactory
               include IconItemColumnModule
               @@types = {
-                'default' => Default
+                'default' => Default, 'none' => None
               }
               def self.factory file_item, my_manifest, item
                 type = my_manifest.type
                 raise "undefined type for local view filers > #{file_item.item_name} > icon\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > icon > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index 68eac14..15f7b29 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module IconItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :icon_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, icon_manifest, item
                   @file_item = file_item
+                  @icon_manifest = icon_manifest
                   @item = item
                   @column_name = 'icon'
                 end
@@ -53,6 +54,29 @@ module Manifest
               end
               
               class Default < Base
+                def column_template_file_name
+                  'show'
+                end
+                
+                def item_template_file_name
+                  'default'
+                end
+                
+                def icon_name
+                  item.class.to_s
+                end
+                
+                def icon_size
+                  Manifest.manifest.magic_numbers['thumbnail_width']
+                end
+                
+              end
+              
+              class None < Base
+                def column_template_file_name
+                  'none'
+                end
+                
               end
               
             end
index 798352b..3dd2cfa 100644 (file)
@@ -15,7 +15,7 @@ module Manifest
                 raise "undefined type for local view filers > #{file_item.item_name} > summary\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > summary > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index 6a9b8ce..eab6c6f 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module  SummaryItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :summary_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, summary_manifest, item
                   @file_item = file_item
+                  @summary_manifest = summary_manifest
                   @item = item
                   @column_name = 'summary'
                 end
@@ -65,7 +66,19 @@ module Manifest
                 end
                 
                 def item_template_file_name
-                  self.manifest.symbol.template_name
+                  'template'
+                end
+                
+                def template_dir
+                  @item.path_name + '/'
+                end
+                
+                def template_file_name
+                  @summary_manifest.template_name
+                end
+                
+                def template_name
+                  self.template_dir + self.template_file_name
                 end
                 
               end
index ce1138d..b515b3c 100644 (file)
@@ -17,7 +17,7 @@ module Manifest
                 raise "undefined type for local view filers > #{file_item.item_name} > symbol\n" unless type
                 my_class = @@types[type]
                 raise "undefined class for local view filers > #{file_item.item_name} > symbol > #{type}\n" unless my_class
-                my_class.new(file_item, my_manifest)
+                my_class.new(file_item, my_manifest, item)
               end
               
             end
index 363a090..f4e7617 100644 (file)
@@ -6,10 +6,11 @@ module Manifest
           module FileItemModule
             module SymbolItemColumnModule
               class Base
-                attr :file_item, :item, :column_name
+                attr :file_item, :symbol_manifest, :item, :column_name
                 
-                def initialize file_item, item
+                def initialize file_item, symbol_manifest, item
                   @file_item = file_item
+                  @symbol_manifest = symbol_manifest
                   @item = item
                   @column_name = 'symbol'
                 end
@@ -22,10 +23,6 @@ module Manifest
                   self.filer.manifest
                 end
                 
-                def symbol_manifest
-                  self.manifest.symbol
-                end
-                
                 def item_name
                   self.filer.item_name
                 end
index e576f6e..1b28350 100644 (file)
@@ -11,7 +11,7 @@ module Manifest
                 include DefaultModule
                 attr :face, :link
                 
-                def initialize file_item, item
+                def initialize file_item, symbol_manifest, item
                   super
                   @face = FaceFactory.factory self, self.symbol_manifest.face, @item
                   @link = LinkFactory.factory self, self.symbol_manifest.link, @item
@@ -22,7 +22,7 @@ module Manifest
                 end
                 
                 def item_template_file_name
-                  if self.symbol_manifest.link.type == 'none'
+                  if @symbol_manifest.link.type == 'none'
                     'default_without_link'
                   else
                     'default'
index 3fb4589..ab0e459 100644 (file)
@@ -24,7 +24,7 @@ module Manifest
                   class ActionLink < BaseLink
                     
                     def url
-                      '/' + @link_manifest.action_name + @item.id.to_s
+                      @link_manifest.action_path + @item.id.to_s
                     end
                   end
                   
index 72489c4..fa974f8 100644 (file)
@@ -11,7 +11,19 @@ module Manifest
                 end
                 
                 def item_template_file_name
-                  self.manifest.symbol.template_name
+                  'template'
+                end
+                
+                def template_dir
+                  @item.path_name + '/'
+                end
+                
+                def template_file_name
+                  @symbol_manifest.template_name
+                end
+                
+                def template_name
+                  self.template_dir + self.template_file_name
                 end
                 
               end
index cfcbc47..85be450 100644 (file)
@@ -4,9 +4,10 @@ module Manifest
       module BodyModule
         module FileHeaderModule
           class None
-            attr :file_header
-            def initialize file_header
+            attr :file_header, :column_name
+            def initialize file_header, column_name
               @file_header = file_header
+              @column_name = column_name
             end
             
             def filer
index 8ec0a8c..1220376 100644 (file)
@@ -2,9 +2,10 @@ module Manifest
   module View
     module FilerModule
       class Footer
-        attr :filer
-        def initialize filer
+        attr :filer, :paginate
+        def initialize filer, paginate
           @filer = filer
+          @paginate = paginate
         end
         
         def template_dir
diff --git a/public/images/edit.png b/public/images/edit.png
new file mode 100644 (file)
index 0000000..6a5f2d2
Binary files /dev/null and b/public/images/edit.png differ
diff --git a/public/images/item.png b/public/images/item.png
new file mode 100644 (file)
index 0000000..132ca25
Binary files /dev/null and b/public/images/item.png differ
diff --git a/public/images/remove.png b/public/images/remove.png
new file mode 100644 (file)
index 0000000..66bdf49
Binary files /dev/null and b/public/images/remove.png differ
index c2c6f2e..4af2cb6 100644 (file)
           "type": "private"\r
         },\r
         "by_author": {\r
-          "type": "filter"\r
+          "type": "filter",\r
+          "args": {\r
+            "filter_item_name": "author",\r
+            "filter_key": "author_id"\r
+          }\r
         },\r
         "by_panel": {\r
           "type": "through_filter"\r
     },\r
     "filers": {\r
       "scroll": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "title"\r
+                "column_name": "title"\r
               }\r
             },\r
             "link": {\r
               "type": "action",\r
               "args": {\r
-                "name": "play"\r
+                "action_name": "play"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
-        "edit": {\r
-          "type": "default",\r
-          "args": {}\r
-        }\r
+        "summary": {},\r
+        "edit": {}\r
       },\r
       "scroll_panel": {\r
         "symbol": {\r
         "caption": {\r
           "type": "none"\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
       },\r
       "comic": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "title"\r
+                "column_name": "title"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
-        "edit": {\r
-          "type": "default"\r
-        }\r
+        "summary": {},\r
+        "edit": {}\r
       },\r
       "story": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "link": {\r
               "type": "action",\r
               "args": {\r
-                "name": "play"\r
+                "action_name": "play"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
-        "edit": {\r
-          "type": "default"\r
-        }\r
+        "summary": {},\r
+        "edit": {}\r
       },\r
       "story_sheet": {\r
         "symbol": {\r
         "caption": {\r
           "type": "none"\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
       },\r
       "sheet": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
-            "face": {\r
-              "type": "column"\r
-            },\r
+            "face": {},\r
             "link": {\r
               "type": "action",\r
               "args": {\r
-                "name": "play"\r
+                "action_name": "play"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
-        "edit": {\r
-          "type": "default"\r
-        }\r
+        "summary": {},\r
+        "edit": {}\r
       },\r
       "sheet_panel": {\r
         "symbol": {\r
         "caption": {\r
           "type": "none"\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
       },\r
       "panel": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
-        "edit": {\r
-          "type": "default"\r
-        }\r
+        "summary": {},\r
+        "edit": {}\r
       },\r
       "panel_picture": {\r
         "symbol": {\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "content"\r
+                "column_name": "content"\r
               }\r
             },\r
             "link": {\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
         "caption": {\r
           "type": "none"\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             "link": {\r
               "type": "action",\r
               "args": {\r
-                "name": "history"\r
+                "action_nname": "history"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "template",\r
           "args": {\r
-            "name": "publish"\r
+            "template_name": "publish"\r
           }\r
         }\r
       },\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "revision"\r
+                "column_name": "revision"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
         "caption": {\r
           "type": "none"\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
             }\r
           }\r
         },\r
-        "caption": {\r
-          "type": "default"\r
-        },\r
+        "caption": {},\r
         "summary": {\r
           "type": "none"\r
         },\r
         }\r
       },\r
       "writing_format": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
-        "caption": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
+        "caption": {},\r
         "summary": {\r
           "type": "none"\r
         },\r
         }\r
       },\r
       "license_group": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "link": {\r
               "type": "url_column",\r
               "args": {\r
-                "name": "url"\r
+                "column_name": "url"\r
               }\r
             }\r
           }\r
         },\r
         "summary": {\r
-          "type": "none",\r
-          "args": {}\r
+          "type": "none"\r
         },\r
         "edit": {\r
           "type": "none"\r
         }\r
       },\r
       "license": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "link": {\r
               "type": "url_column",\r
               "args": {\r
-                "name": "url"\r
+                "column_name": "url"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "none"\r
         }\r
       },\r
       "author": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "name"\r
+                "column_name": "name"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "account"\r
         }\r
       },\r
       "artist": {\r
-        "symbol": {\r
-          "type": "default"\r
-        },\r
+        "symbol": {},\r
         "caption": {\r
           "type": "default",\r
           "args": {\r
             "face": {\r
               "type": "column",\r
               "args": {\r
-                "name": "name"\r
+                "column_name": "name"\r
               }\r
             }\r
           }\r
         },\r
-        "summary": {\r
-          "type": "template",\r
-          "args": {\r
-            "name": "summary"\r
-          }\r
-        },\r
+        "summary": {},\r
         "edit": {\r
           "type": "account"\r
         }\r
         "public_list": {},\r
         "private_list": {},\r
         "by_author": {\r
-          "type": "filter",\r
-          "args": {\r
-            "filter_item_name": "author",\r
-            "filter_key": "author_id"\r
-          }\r
+          "where": "author",\r
+          "includes": "author_id"\r
         },\r
         "by_panel": {\r
           "type": "through_filter",\r
           }\r
         },\r
         "by_author": {\r
-          "type": "element_filter",\r
-          "args": {\r
-            "from": "author",\r
-            "filter_key": "author_id"\r
-          }\r
+          "where": "by_author_where",\r
+          "includes": "by_author_includes"\r
         }\r
       },\r
       "speech_balloon": {\r