OSDN Git Service

separate manifest
authoryasushiito <yas@pen-chan.jp>
Fri, 21 Mar 2014 02:00:38 +0000 (11:00 +0900)
committeryasushiito <yas@pen-chan.jp>
Fri, 21 Mar 2014 02:00:38 +0000 (11:00 +0900)
222 files changed:
app/assets/javascripts/manifest/work/list_groups.js.coffee.erb
app/assets/javascripts/panels.js.coffee
app/assets/javascripts/system.js.coffee
app/controllers/application_controller.rb
app/controllers/system_controller.rb
app/views/system/index.html.erb
config/environment.rb
lib/editor/panel_dock/bay/root.rb
lib/editor/panel_dock/board/element.rb
lib/local_manifest.rb [new file with mode: 0644]
lib/local_manifest/filer.rb [moved from lib/manifest/filer.rb with 82% similarity]
lib/local_manifest/filer/caption.rb [moved from lib/manifest/filer/caption.rb with 70% similarity]
lib/local_manifest/filer/caption/base.rb [moved from lib/manifest/filer/caption/base.rb with 97% similarity]
lib/local_manifest/filer/caption/default.rb [moved from lib/manifest/filer/caption/default.rb with 79% similarity]
lib/local_manifest/filer/caption/default/face.rb [moved from lib/manifest/filer/caption/default/face.rb with 89% similarity]
lib/local_manifest/filer/caption/default/face/face.rb [moved from lib/manifest/filer/caption/default/face/face.rb with 98% similarity]
lib/local_manifest/filer/caption/default/link.rb [moved from lib/manifest/filer/caption/default/link.rb with 90% similarity]
lib/local_manifest/filer/caption/default/link/link.rb [moved from lib/manifest/filer/caption/default/link/link.rb with 98% similarity]
lib/local_manifest/filer/caption/none.rb [moved from lib/manifest/filer/caption/none.rb with 93% similarity]
lib/local_manifest/filer/caption/template.rb [moved from lib/manifest/filer/caption/template.rb with 95% similarity]
lib/local_manifest/filer/date.rb [moved from lib/manifest/filer/date.rb with 88% similarity]
lib/local_manifest/filer/date/date.rb [moved from lib/manifest/filer/date/date.rb with 96% similarity]
lib/local_manifest/filer/edit.rb [moved from lib/manifest/filer/edit.rb with 89% similarity]
lib/local_manifest/filer/edit/edit.rb [moved from lib/manifest/filer/edit/edit.rb with 98% similarity]
lib/local_manifest/filer/icon.rb [moved from lib/manifest/filer/icon.rb with 88% similarity]
lib/local_manifest/filer/icon/icon.rb [moved from lib/manifest/filer/icon/icon.rb with 96% similarity]
lib/local_manifest/filer/summary.rb [moved from lib/manifest/filer/summary.rb with 88% similarity]
lib/local_manifest/filer/summary/summary.rb [moved from lib/manifest/filer/summary/summary.rb with 97% similarity]
lib/local_manifest/filer/symbol.rb [moved from lib/manifest/filer/symbol.rb with 75% similarity]
lib/local_manifest/filer/symbol/base.rb [moved from lib/manifest/filer/symbol/base.rb with 97% similarity]
lib/local_manifest/filer/symbol/default.rb [moved from lib/manifest/filer/symbol/default.rb with 79% similarity]
lib/local_manifest/filer/symbol/default/face.rb [moved from lib/manifest/filer/symbol/default/face.rb with 89% similarity]
lib/local_manifest/filer/symbol/default/face/face.rb [moved from lib/manifest/filer/symbol/default/face/face.rb with 98% similarity]
lib/local_manifest/filer/symbol/default/link.rb [moved from lib/manifest/filer/symbol/default/link.rb with 90% similarity]
lib/local_manifest/filer/symbol/default/link/link.rb [moved from lib/manifest/filer/symbol/default/link/link.rb with 98% similarity]
lib/local_manifest/filer/symbol/template.rb [moved from lib/manifest/filer/symbol/template.rb with 95% similarity]
lib/local_manifest/form.rb [moved from lib/manifest/form.rb with 96% similarity]
lib/local_manifest/form/field.rb [moved from lib/manifest/form/field.rb with 89% similarity]
lib/local_manifest/form/field/field.rb [moved from lib/manifest/form/field/field.rb with 92% similarity]
lib/local_manifest/form/field/helper.rb [moved from lib/manifest/form/field/helper.rb with 70% similarity]
lib/local_manifest/form/field/helper/base.rb [moved from lib/manifest/form/field/helper/base.rb with 97% similarity]
lib/local_manifest/form/field/helper/color.rb [moved from lib/manifest/form/field/helper/color.rb with 94% similarity]
lib/local_manifest/form/field/helper/popup.rb [moved from lib/manifest/form/field/helper/popup.rb with 93% similarity]
lib/local_manifest/form/field/helper/size.rb [moved from lib/manifest/form/field/helper/size.rb with 94% similarity]
lib/local_manifest/form/field/helper/tail_angle.rb [moved from lib/manifest/form/field/helper/tail_angle.rb with 93% similarity]
lib/local_manifest/form/field/label.rb [moved from lib/manifest/form/field/label.rb with 87% similarity]
lib/local_manifest/form/field/label/label.rb [moved from lib/manifest/form/field/label/label.rb with 98% similarity]
lib/local_manifest/form/field/tag.rb [moved from lib/manifest/form/field/tag.rb with 66% similarity]
lib/local_manifest/form/field/tag/base.rb [moved from lib/manifest/form/field/tag/base.rb with 97% similarity]
lib/local_manifest/form/field/tag/hidden.rb [moved from lib/manifest/form/field/tag/hidden.rb with 87% similarity]
lib/local_manifest/form/field/tag/number.rb [moved from lib/manifest/form/field/tag/number.rb with 95% similarity]
lib/local_manifest/form/field/tag/select.rb [moved from lib/manifest/form/field/tag/select.rb with 87% similarity]
lib/local_manifest/form/field/tag/text.rb [moved from lib/manifest/form/field/tag/text.rb with 95% similarity]
lib/local_manifest/form/field/tag/text_area.rb [moved from lib/manifest/form/field/tag/text_area.rb with 95% similarity]
lib/local_manifest/list_group.rb [moved from lib/manifest/list_group.rb with 93% similarity]
lib/local_manifest/list_group/list.rb [moved from lib/manifest/list_group/list.rb with 62% similarity]
lib/local_manifest/list_group/list/base.rb [moved from lib/manifest/list_group/list/base.rb with 90% similarity]
lib/local_manifest/list_group/list/filter.rb [moved from lib/manifest/list_group/list/filter.rb with 96% similarity]
lib/local_manifest/list_group/list/foreign_filter.rb [moved from lib/manifest/list_group/list/foreign_filter.rb with 63% similarity]
lib/local_manifest/list_group/list/includes.rb [moved from lib/manifest/list_group/list/includes.rb with 71% similarity]
lib/local_manifest/list_group/list/includes/auto.rb [moved from lib/manifest/list_group/list/includes/auto.rb with 97% similarity]
lib/local_manifest/list_group/list/includes/base.rb [moved from lib/manifest/list_group/list/includes/base.rb with 97% similarity]
lib/local_manifest/list_group/list/includes/method.rb [moved from lib/manifest/list_group/list/includes/method.rb with 96% similarity]
lib/local_manifest/list_group/list/includes/none.rb [moved from lib/manifest/list_group/list/includes/none.rb with 94% similarity]
lib/local_manifest/list_group/list/play.rb [moved from lib/manifest/list_group/list/play.rb with 99% similarity]
lib/local_manifest/list_group/list/private.rb [moved from lib/manifest/list_group/list/private.rb with 84% similarity]
lib/local_manifest/list_group/list/public.rb [moved from lib/manifest/list_group/list/public.rb with 91% similarity]
lib/local_manifest/list_group/list/system_resource.rb [moved from lib/manifest/list_group/list/system_resource.rb with 92% similarity]
lib/local_manifest/list_group/list/through_filter.rb [moved from lib/manifest/list_group/list/through_filter.rb with 93% similarity]
lib/local_manifest/list_group/list/where.rb [moved from lib/manifest/list_group/list/where.rb with 75% similarity]
lib/local_manifest/list_group/list/where/auto.rb [moved from lib/manifest/list_group/list/where/auto.rb with 96% similarity]
lib/local_manifest/list_group/list/where/base.rb [moved from lib/manifest/list_group/list/where/base.rb with 97% similarity]
lib/local_manifest/list_group/list/where/method.rb [moved from lib/manifest/list_group/list/where/method.rb with 96% similarity]
lib/local_manifest/local_manifest.rb [new file with mode: 0644]
lib/local_manifest/profiler.rb [moved from lib/manifest/profiler.rb with 86% similarity]
lib/local_manifest/profiler/association.rb [moved from lib/manifest/profiler/association.rb with 84% similarity]
lib/local_manifest/profiler/association/belongs_to.rb [moved from lib/manifest/profiler/association/belongs_to.rb with 96% similarity]
lib/local_manifest/profiler/association/has_many.rb [moved from lib/manifest/profiler/association/has_many.rb with 93% similarity]
lib/local_manifest/profiler/association/has_one.rb [moved from lib/manifest/profiler/association/has_one.rb with 93% similarity]
lib/local_manifest/profiler/column.rb [moved from lib/manifest/profiler/column.rb with 98% similarity]
lib/local_manifest/profiler/list.rb [moved from lib/manifest/profiler/list.rb with 97% similarity]
lib/locmare.rb [new file with mode: 0644]
lib/locmare/filer.rb [new file with mode: 0644]
lib/locmare/filer/body.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body.rb [moved from lib/manifest/local/view/filer/body.rb with 50% similarity]
lib/locmare/filer/body/file_body/file_item.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/base.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/default.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/default/face.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/default/face/face.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/default/link.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/default/link/link.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/none.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/caption/template.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/date.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/date/date.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/edit.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/edit/edit.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/icon.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/icon/icon.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/summary.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/summary/summary.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/base.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/default.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/default/face.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/default/face/face.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/default/link.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/default/link/link.rb [new file with mode: 0644]
lib/locmare/filer/body/file_body/file_item/symbol/template.rb [new file with mode: 0644]
lib/locmare/filer/body/file_header.rb [new file with mode: 0644]
lib/locmare/filer/body/file_header/base.rb [moved from lib/manifest/local/view/filer/body/file_body.rb with 57% similarity]
lib/locmare/filer/body/file_header/none.rb [new file with mode: 0644]
lib/locmare/filer/body/file_header/show.rb [new file with mode: 0644]
lib/locmare/filer/footer.rb [new file with mode: 0644]
lib/locmare/filer/header.rb [new file with mode: 0644]
lib/locmare/form.rb [new file with mode: 0644]
lib/locmare/form/field.rb [new file with mode: 0644]
lib/locmare/form/field/helper.rb [new file with mode: 0644]
lib/locmare/form/field/helper/base.rb [new file with mode: 0644]
lib/locmare/form/field/helper/color.rb [new file with mode: 0644]
lib/locmare/form/field/helper/popup.rb [new file with mode: 0644]
lib/locmare/form/field/helper/size.rb [new file with mode: 0644]
lib/locmare/form/field/helper/tail_angle.rb [new file with mode: 0644]
lib/locmare/form/field/label.rb [new file with mode: 0644]
lib/locmare/form/field/label/label.rb [new file with mode: 0644]
lib/locmare/form/field/tag.rb [new file with mode: 0644]
lib/locmare/form/field/tag/base.rb [new file with mode: 0644]
lib/locmare/form/field/tag/hidden.rb [new file with mode: 0644]
lib/locmare/form/field/tag/number.rb [new file with mode: 0644]
lib/locmare/form/field/tag/select.rb [new file with mode: 0644]
lib/locmare/form/field/tag/text.rb [new file with mode: 0644]
lib/locmare/form/field/tag/text_area.rb [new file with mode: 0644]
lib/locmare/list_group.rb [new file with mode: 0644]
lib/locmare/list_group/list/base.rb [new file with mode: 0644]
lib/locmare/list_group/list/filter.rb [new file with mode: 0644]
lib/locmare/list_group/list/foreign_filter.rb [new file with mode: 0644]
lib/locmare/list_group/list/play.rb [new file with mode: 0644]
lib/locmare/list_group/list/private.rb [new file with mode: 0644]
lib/locmare/list_group/list/public.rb [new file with mode: 0644]
lib/locmare/list_group/list/system_resource.rb [new file with mode: 0644]
lib/locmare/list_group/list/through_filter.rb [new file with mode: 0644]
lib/locmare/locmare.rb [new file with mode: 0644]
lib/locmare/profiler.rb [new file with mode: 0644]
lib/locmare/profiler/association.rb [new file with mode: 0644]
lib/locmare/profiler/association/belongs_to.rb [new file with mode: 0644]
lib/locmare/profiler/association/has_many.rb [new file with mode: 0644]
lib/locmare/profiler/association/has_one.rb [new file with mode: 0644]
lib/locmare/profiler/column.rb [new file with mode: 0644]
lib/locmare/profiler/header.rb [new file with mode: 0644]
lib/manifest.rb
lib/manifest/local/view.rb [deleted file]
lib/manifest/local/view/filer.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/base.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/default.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face/face.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link/link.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/none.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/caption/template.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/date.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/date/date.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/edit.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/edit/edit.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/icon.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/icon/icon.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/summary.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/summary/summary.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/base.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face/face.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link/link.rb [deleted file]
lib/manifest/local/view/filer/body/file_body/file_item/symbol/template.rb [deleted file]
lib/manifest/local/view/filer/body/file_header.rb [deleted file]
lib/manifest/local/view/filer/body/file_header/base.rb [deleted file]
lib/manifest/local/view/filer/body/file_header/none.rb [deleted file]
lib/manifest/local/view/filer/body/file_header/show.rb [deleted file]
lib/manifest/local/view/filer/footer.rb [deleted file]
lib/manifest/local/view/filer/header.rb [deleted file]
lib/manifest/local/view/form.rb [deleted file]
lib/manifest/local/view/form/field.rb [deleted file]
lib/manifest/local/view/form/field/helper.rb [deleted file]
lib/manifest/local/view/form/field/helper/base.rb [deleted file]
lib/manifest/local/view/form/field/helper/color.rb [deleted file]
lib/manifest/local/view/form/field/helper/popup.rb [deleted file]
lib/manifest/local/view/form/field/helper/size.rb [deleted file]
lib/manifest/local/view/form/field/helper/tail_angle.rb [deleted file]
lib/manifest/local/view/form/field/label.rb [deleted file]
lib/manifest/local/view/form/field/label/label.rb [deleted file]
lib/manifest/local/view/form/field/tag.rb [deleted file]
lib/manifest/local/view/form/field/tag/base.rb [deleted file]
lib/manifest/local/view/form/field/tag/hidden.rb [deleted file]
lib/manifest/local/view/form/field/tag/number.rb [deleted file]
lib/manifest/local/view/form/field/tag/select.rb [deleted file]
lib/manifest/local/view/form/field/tag/text.rb [deleted file]
lib/manifest/local/view/form/field/tag/text_area.rb [deleted file]
lib/manifest/local/view/list_group.rb [deleted file]
lib/manifest/local/view/list_group/list/base.rb [deleted file]
lib/manifest/local/view/list_group/list/filter.rb [deleted file]
lib/manifest/local/view/list_group/list/foreign_filter.rb [deleted file]
lib/manifest/local/view/list_group/list/play.rb [deleted file]
lib/manifest/local/view/list_group/list/private.rb [deleted file]
lib/manifest/local/view/list_group/list/public.rb [deleted file]
lib/manifest/local/view/list_group/list/system_resource.rb [deleted file]
lib/manifest/local/view/list_group/list/through_filter.rb [deleted file]
lib/manifest/local/view/profiler.rb [deleted file]
lib/manifest/local/view/profiler/association.rb [deleted file]
lib/manifest/local/view/profiler/association/belongs_to.rb [deleted file]
lib/manifest/local/view/profiler/association/has_many.rb [deleted file]
lib/manifest/local/view/profiler/association/has_one.rb [deleted file]
lib/manifest/local/view/profiler/column.rb [deleted file]
lib/manifest/local/view/profiler/header.rb [deleted file]
lib/manifest/manifest.rb
lib/manifest/system_resource.rb
public/local_manifest.json [new file with mode: 0644]

index 3c71f6f..14f2193 100644 (file)
@@ -43,7 +43,7 @@
         type: 'filter',\r
       },\r
       by_author: {\r
-        type: 'filter',\r
+        type: 'foreign_filter',\r
         args: {\r
           tree_name: 'scroll_owner',\r
         },\r
         type: 'private',\r
       },\r
       by_author: {\r
-        type: 'foreign_filter',\r
-        args: {\r
-          tree_name: 'comic_owner',\r
-        },\r
+        type: 'filter',\r
       },\r
     },\r
   },\r
index 9033f61..c846200 100644 (file)
@@ -8,20 +8,22 @@ $ ->
   confirm_confirm_confirm = () ->\r
     confirm(  )\r
   editor = window.PettanrEditor\r
-  configurations =  {\r
+  manifest =  {\r
     controllers: window.controllers,\r
     models: window.models,\r
     system_resources: window.system_resources,\r
     magic_numbers: window.magic_numbers,\r
-    locals: {\r
-      profilers: window.profilers,\r
-      filers: window.filers,\r
-      list_groups: window.list_groups,\r
-      forms: window.forms,\r
-    }\r
   }\r
-  j = JSON.stringify(configurations, undefined, 2)\r
-  $('#pettanr-configurations').val(j)\r
+  local_manifest =  {\r
+    list_groups: window.list_groups,\r
+    profilers: window.profilers,\r
+    filers: window.filers,\r
+    forms: window.forms,\r
+  }\r
+  j = JSON.stringify(manifest, undefined, 2)\r
+  $('#pettanr-manifest').val(j)\r
+  j = JSON.stringify(local_manifest, undefined, 2)\r
+  $('#pettanr-local_manifest').val(j)\r
   WritingFormat = window.PettanrWritingFormat\r
   WritingFormat.load($('#writing_formats'))\r
   SpeechBalloonTemplate = window.PettanrSpeechBalloonTemplate\r
index 94e77c0..e51224a 100644 (file)
@@ -1,15 +1,17 @@
 $ ->\r
-  configurations =  {\r
+  manifest =  {\r
     controllers: window.controllers,\r
     models: window.models,\r
     system_resources: window.system_resources,\r
     magic_numbers: window.magic_numbers,\r
-    locals: {\r
-      list_groups: window.list_groups,\r
-      profilers: window.profilers,\r
-      filers: window.filers,\r
-      forms: window.forms,\r
-    }\r
   }\r
-  j = JSON.stringify(configurations, undefined, 2)\r
-  $('#pettanr-configurations').val(j)\r
+  local_manifest =  {\r
+    list_groups: window.list_groups,\r
+    profilers: window.profilers,\r
+    filers: window.filers,\r
+    forms: window.forms,\r
+  }\r
+  j = JSON.stringify(manifest, undefined, 2)\r
+  $('#pettanr-manifest').val(j)\r
+  j = JSON.stringify(local_manifest, undefined, 2)\r
+  $('#pettanr-local_manifest').val(j)\r
index 620649c..2b1f42c 100644 (file)
@@ -117,7 +117,7 @@ class ApplicationController < ActionController::Base
   
   def set_list
     set_model
-    @list = Manifest::View::ListGroup.list @my_action.item_name, @my_action.list_name
+    @list = Locmare::ListGroup.list @my_action.item_name, @my_action.list_name
   end
   
   def filer_list
@@ -126,7 +126,7 @@ class ApplicationController < ActionController::Base
     @items = list_result.items 
     respond_to do |format|
       format.html {
-        @filer = Manifest::View::Filer.new @list.item_name, list_result.items, list_result.paginate, @operators
+        @filer = Locmare::Filer.new @list.item_name, list_result.items, list_result.paginate, @operators
         render @filer.template_name, :locals => {
           :filer => @filer
         }
@@ -145,7 +145,7 @@ class ApplicationController < ActionController::Base
  def show_prof_format format
     format.prof {
       self.formats = [:html]
-      @profiler = Manifest::View::Profiler.new @my_model.model_name, @item, @operators
+      @profiler = Locmare::Profiler.new @my_model.model_name, @item, @operators
       render @profiler.template_name, :locals => {
         :profiler => @profiler
       }
@@ -170,7 +170,7 @@ class ApplicationController < ActionController::Base
   def render_form
     respond_to do |format|
       format.html { 
-        @form = Manifest::View::Form.new @item.item_name, @item, true, true, @operators
+        @form = Locmare::Form.new @item.item_name, @item, true, true, @operators
         render @form.template_name, :locals => {
           :form => @form
         }
@@ -217,7 +217,7 @@ class ApplicationController < ActionController::Base
   end
   
   def assist_items item_name, list_name
-    list = Manifest::View::ListGroup.list item_name, list_name
+    list = Locmare::ListGroup.list item_name, list_name
     list_result = list.open(@operators, {:id => @item.id, :page => 1, :page_size => 5})
     list_result.items
   end
index 03d3595..e2fe608 100644 (file)
@@ -15,6 +15,8 @@ class SystemController < ApplicationController
   def reload_manifest
     Manifest::load JSON.parse(open(Rails.root + 'public/manifest.json').read)
     Manifest.manifest.init
+    LocalManifest::load JSON.parse(open(Rails.root + 'public/local_manifest.json').read)
+    LocalManifest.manifest.init
     respond_to do |format|
       format.html { redirect_to({:action => :index}) }
     end
index 6be9224..a773e66 100644 (file)
@@ -23,4 +23,5 @@
 <div>
   <%= link_to 'reload_manifest', :action => :reload_manifest %>
 </div>
-  <%= text_area_tag "json", '', :id => 'pettanr-configurations' %>
+  <%= text_area_tag "json", '', :id => 'pettanr-manifest' %>
+  <%= text_area_tag "json", '', :id => 'pettanr-local_manifest' %>
index 81c96d0..461bca1 100644 (file)
@@ -13,6 +13,10 @@ require 'peta'
 # Initialize the rails application
 Pettanr::Application.initialize!
 require_dependency 'manifest'
+require_dependency 'local_manifest'
+require_dependency 'locmare'
 require_dependency 'editor'
 Manifest.manifest.init
+LocalManifest.manifest.init
+Manifest.manifest.system_resources_init
 Manifest.manifest.load_models_manifest
index 3027b36..e32ed26 100644 (file)
@@ -13,7 +13,7 @@ module Editor
           
           def initialize parent
             super
-            @form = ::Manifest::View::Form.new self.root_item.item_name, self.root_item, self.mounted, true, @operators
+            @form = Locmare::Form.new self.root_item.item_name, self.root_item, self.mounted, true, @operators
             @bucket = FormBucket.new self, @form
           end
           
index 9e13a2c..a525ad0 100644 (file)
@@ -36,7 +36,7 @@ module Editor
           
           def initialize parent
             super
-            @form = ::Manifest::View::Form.new self.element.item_name, self.element, self.mounted, false, @operators
+            @form = Locmare::Form.new self.element.item_name, self.element, self.mounted, false, @operators
             @bucket = FormBucket.new self, @form
           end
           
diff --git a/lib/local_manifest.rb b/lib/local_manifest.rb
new file mode 100644 (file)
index 0000000..bc8a148
--- /dev/null
@@ -0,0 +1,10 @@
+module LocalManifest
+end
+require_dependency "local_manifest/local_manifest"
+require_dependency "local_manifest/profiler"
+require_dependency "local_manifest/filer"
+require_dependency "local_manifest/form"
+require_dependency "local_manifest/list_group"
+LocalManifest::load JSON.parse(open(File.expand_path('../../public/local_manifest.json', __FILE__)).read)
+
+LocalManifest.manifest.init
similarity index 82%
rename from lib/manifest/filer.rb
rename to lib/local_manifest/filer.rb
index 4d6b93c..6f1c3e3 100644 (file)
@@ -1,10 +1,10 @@
-require_dependency "manifest/filer/symbol"
-require_dependency "manifest/filer/caption"
-require_dependency "manifest/filer/summary"
-require_dependency "manifest/filer/icon"
-require_dependency "manifest/filer/date"
-require_dependency "manifest/filer/edit"
-module Manifest
+require_dependency "local_manifest/filer/symbol"
+require_dependency "local_manifest/filer/caption"
+require_dependency "local_manifest/filer/summary"
+require_dependency "local_manifest/filer/icon"
+require_dependency "local_manifest/filer/date"
+require_dependency "local_manifest/filer/edit"
+module LocalManifest
   class Filer
     
     def self.manager manifest, my_manifests
similarity index 70%
rename from lib/manifest/filer/caption.rb
rename to lib/local_manifest/filer/caption.rb
index d57a0cf..3289dbe 100644 (file)
@@ -1,8 +1,8 @@
-require_dependency "manifest/filer/caption/base"
-require_dependency "manifest/filer/caption/default"
-require_dependency "manifest/filer/caption/template"
-require_dependency "manifest/filer/caption/none"
-module Manifest
+require_dependency "local_manifest/filer/caption/base"
+require_dependency "local_manifest/filer/caption/default"
+require_dependency "local_manifest/filer/caption/template"
+require_dependency "local_manifest/filer/caption/none"
+module LocalManifest
   module FilerModule
     class CaptionFactory
       include CaptionModule
similarity index 97%
rename from lib/manifest/filer/caption/base.rb
rename to lib/local_manifest/filer/caption/base.rb
index 81bdab9..7ed16a4 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module CaptionModule
       class Base
similarity index 79%
rename from lib/manifest/filer/caption/default.rb
rename to lib/local_manifest/filer/caption/default.rb
index 1d98019..a35b9d7 100644 (file)
@@ -1,6 +1,6 @@
-require_dependency "manifest/filer/caption/default/face"
-require_dependency "manifest/filer/caption/default/link"
-module Manifest
+require_dependency "local_manifest/filer/caption/default/face"
+require_dependency "local_manifest/filer/caption/default/link"
+module LocalManifest
   module FilerModule
     module CaptionModule
       class Default < Base
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/caption/default/face/face"
-module Manifest
+require_dependency "local_manifest/filer/caption/default/face/face"
+module LocalManifest
   module FilerModule
     module CaptionModule
       module DefaultModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module CaptionModule
       module DefaultModule
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/caption/default/link/link"
-module Manifest
+require_dependency "local_manifest/filer/caption/default/link/link"
+module LocalManifest
   module FilerModule
     module CaptionModule
       module DefaultModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module CaptionModule
       module DefaultModule
similarity index 93%
rename from lib/manifest/filer/caption/none.rb
rename to lib/local_manifest/filer/caption/none.rb
index 363ea95..6fa2694 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module CaptionModule
       class None < Base
similarity index 95%
rename from lib/manifest/filer/caption/template.rb
rename to lib/local_manifest/filer/caption/template.rb
index 56bcf7a..c7267e4 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module CaptionModule
       class Template < Base
similarity index 88%
rename from lib/manifest/filer/date.rb
rename to lib/local_manifest/filer/date.rb
index 039fc26..c9d6038 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/date/date"
-module Manifest
+require_dependency "local_manifest/filer/date/date"
+module LocalManifest
   module FilerModule
     class DateFactory
       include DateModule
similarity index 96%
rename from lib/manifest/filer/date/date.rb
rename to lib/local_manifest/filer/date/date.rb
index 7682bf9..d5e9e2a 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module  DateModule
       class Base
similarity index 89%
rename from lib/manifest/filer/edit.rb
rename to lib/local_manifest/filer/edit.rb
index a9be4a2..7f9d527 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/edit/edit"
-module Manifest
+require_dependency "local_manifest/filer/edit/edit"
+module LocalManifest
   module FilerModule
     class EditFactory
       include EditModule
similarity index 98%
rename from lib/manifest/filer/edit/edit.rb
rename to lib/local_manifest/filer/edit/edit.rb
index 030e21c..1468ad7 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module  EditModule
       class Base
similarity index 88%
rename from lib/manifest/filer/icon.rb
rename to lib/local_manifest/filer/icon.rb
index e14fecc..7b28d18 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/icon/icon"
-module Manifest
+require_dependency "local_manifest/filer/icon/icon"
+module LocalManifest
   module FilerModule
     class IconFactory
       include IconModule
similarity index 96%
rename from lib/manifest/filer/icon/icon.rb
rename to lib/local_manifest/filer/icon/icon.rb
index af85c32..88fb879 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module  IconModule
       class Base
similarity index 88%
rename from lib/manifest/filer/summary.rb
rename to lib/local_manifest/filer/summary.rb
index e756a8c..c7fd547 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/summary/summary"
-module Manifest
+require_dependency "local_manifest/filer/summary/summary"
+module LocalManifest
   module FilerModule
     class SummaryFactory
       include SummaryModule
similarity index 97%
rename from lib/manifest/filer/summary/summary.rb
rename to lib/local_manifest/filer/summary/summary.rb
index 69b18a3..d1b29af 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module  SummaryModule
       class Base
similarity index 75%
rename from lib/manifest/filer/symbol.rb
rename to lib/local_manifest/filer/symbol.rb
index 2b37d3d..312ca37 100644 (file)
@@ -1,7 +1,7 @@
-require_dependency "manifest/filer/symbol/base"
-require_dependency "manifest/filer/symbol/default"
-require_dependency "manifest/filer/symbol/template"
-module Manifest
+require_dependency "local_manifest/filer/symbol/base"
+require_dependency "local_manifest/filer/symbol/default"
+require_dependency "local_manifest/filer/symbol/template"
+module LocalManifest
   module FilerModule
     class SymbolFactory
       include SymbolModule
similarity index 97%
rename from lib/manifest/filer/symbol/base.rb
rename to lib/local_manifest/filer/symbol/base.rb
index 8d1965a..4dd5cb2 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module SymbolModule
       class Base
similarity index 79%
rename from lib/manifest/filer/symbol/default.rb
rename to lib/local_manifest/filer/symbol/default.rb
index be17974..fdfd993 100644 (file)
@@ -1,6 +1,6 @@
-require_dependency "manifest/filer/symbol/default/face"
-require_dependency "manifest/filer/symbol/default/link"
-module Manifest
+require_dependency "local_manifest/filer/symbol/default/face"
+require_dependency "local_manifest/filer/symbol/default/link"
+module LocalManifest
   module FilerModule
     module SymbolModule
       class Default < Base
similarity index 89%
rename from lib/manifest/filer/symbol/default/face.rb
rename to lib/local_manifest/filer/symbol/default/face.rb
index 1f4f582..42e16d3 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/symbol/default/face/face"
-module Manifest
+require_dependency "local_manifest/filer/symbol/default/face/face"
+module LocalManifest
   module FilerModule
     module SymbolModule
       module DefaultModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module SymbolModule
       module DefaultModule
similarity index 90%
rename from lib/manifest/filer/symbol/default/link.rb
rename to lib/local_manifest/filer/symbol/default/link.rb
index b75a2fe..f1a56c6 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/filer/symbol/default/link/link"
-module Manifest
+require_dependency "local_manifest/filer/symbol/default/link/link"
+module LocalManifest
   module FilerModule
     module SymbolModule
       module DefaultModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module SymbolModule
       module DefaultModule
similarity index 95%
rename from lib/manifest/filer/symbol/template.rb
rename to lib/local_manifest/filer/symbol/template.rb
index 956ad8e..5b1409c 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FilerModule
     module SymbolModule
       class Template < Base
similarity index 96%
rename from lib/manifest/form.rb
rename to lib/local_manifest/form.rb
index 48d40d0..b049cc8 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/form/field"
-module Manifest
+require_dependency "local_manifest/form/field"
+module LocalManifest
   class Form
     include FormModule
     
similarity index 89%
rename from lib/manifest/form/field.rb
rename to lib/local_manifest/form/field.rb
index 591493b..beb720b 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/form/field/field"
-module Manifest
+require_dependency "local_manifest/form/field/field"
+module LocalManifest
   module FormModule
     class FieldFactory
       include FieldModule
similarity index 92%
rename from lib/manifest/form/field/field.rb
rename to lib/local_manifest/form/field/field.rb
index b81614c..84c3d63 100644 (file)
@@ -1,7 +1,7 @@
-require_dependency "manifest/form/field/tag"
-require_dependency "manifest/form/field/label"
-require_dependency "manifest/form/field/helper"
-module Manifest
+require_dependency "local_manifest/form/field/tag"
+require_dependency "local_manifest/form/field/label"
+require_dependency "local_manifest/form/field/helper"
+module LocalManifest
   module FormModule
     class Field
       include FieldModule
similarity index 70%
rename from lib/manifest/form/field/helper.rb
rename to lib/local_manifest/form/field/helper.rb
index cf2f91f..e1bd2c9 100644 (file)
@@ -1,9 +1,9 @@
-require_dependency "manifest/form/field/helper/base"
-require_dependency "manifest/form/field/helper/size"
-require_dependency "manifest/form/field/helper/tail_angle"
-require_dependency "manifest/form/field/helper/color"
-require_dependency "manifest/form/field/helper/popup"
-module Manifest
+require_dependency "local_manifest/form/field/helper/base"
+require_dependency "local_manifest/form/field/helper/size"
+require_dependency "local_manifest/form/field/helper/tail_angle"
+require_dependency "local_manifest/form/field/helper/color"
+require_dependency "local_manifest/form/field/helper/popup"
+module LocalManifest
   module FormModule
     module FieldModule
       class HelperFactory
similarity index 97%
rename from lib/manifest/form/field/helper/base.rb
rename to lib/local_manifest/form/field/helper/base.rb
index 8b1eab4..878c326 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module HelperModule
similarity index 94%
rename from lib/manifest/form/field/helper/color.rb
rename to lib/local_manifest/form/field/helper/color.rb
index dbcc198..38d08fa 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module HelperModule
similarity index 93%
rename from lib/manifest/form/field/helper/popup.rb
rename to lib/local_manifest/form/field/helper/popup.rb
index c51b0fd..7bad7ff 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module HelperModule
similarity index 94%
rename from lib/manifest/form/field/helper/size.rb
rename to lib/local_manifest/form/field/helper/size.rb
index 494ee71..e6f32d5 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module HelperModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module HelperModule
similarity index 87%
rename from lib/manifest/form/field/label.rb
rename to lib/local_manifest/form/field/label.rb
index 6295ed9..2aaa7a9 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/form/field/label/label"
-module Manifest
+require_dependency "local_manifest/form/field/label/label"
+module LocalManifest
   module FormModule
     module FieldModule
       class LabelFactory
similarity index 98%
rename from lib/manifest/form/field/label/label.rb
rename to lib/local_manifest/form/field/label/label.rb
index ed5298d..ed53f3b 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module LabelModule
similarity index 66%
rename from lib/manifest/form/field/tag.rb
rename to lib/local_manifest/form/field/tag.rb
index 847a02d..9d3951a 100644 (file)
@@ -1,10 +1,10 @@
-require_dependency "manifest/form/field/tag/base"
-require_dependency "manifest/form/field/tag/text"
-require_dependency "manifest/form/field/tag/number"
-require_dependency "manifest/form/field/tag/text_area"
-require_dependency "manifest/form/field/tag/select"
-require_dependency "manifest/form/field/tag/hidden"
-module Manifest
+require_dependency "local_manifest/form/field/tag/base"
+require_dependency "local_manifest/form/field/tag/text"
+require_dependency "local_manifest/form/field/tag/number"
+require_dependency "local_manifest/form/field/tag/text_area"
+require_dependency "local_manifest/form/field/tag/select"
+require_dependency "local_manifest/form/field/tag/hidden"
+module LocalManifest
   module FormModule
     module FieldModule
       class TagFactory
similarity index 97%
rename from lib/manifest/form/field/tag/base.rb
rename to lib/local_manifest/form/field/tag/base.rb
index 6c7ca5d..7694423 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 87%
rename from lib/manifest/form/field/tag/hidden.rb
rename to lib/local_manifest/form/field/tag/hidden.rb
index 087c594..2bbb52d 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 95%
rename from lib/manifest/form/field/tag/number.rb
rename to lib/local_manifest/form/field/tag/number.rb
index 83c17d9..9794151 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 87%
rename from lib/manifest/form/field/tag/select.rb
rename to lib/local_manifest/form/field/tag/select.rb
index 0a20eec..c6609ce 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 95%
rename from lib/manifest/form/field/tag/text.rb
rename to lib/local_manifest/form/field/tag/text.rb
index deb9776..15c92af 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 95%
rename from lib/manifest/form/field/tag/text_area.rb
rename to lib/local_manifest/form/field/tag/text_area.rb
index 602dfaa..023d9a4 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module FormModule
     module FieldModule
       module TagModule
similarity index 93%
rename from lib/manifest/list_group.rb
rename to lib/local_manifest/list_group.rb
index e5f808a..5d98144 100644 (file)
@@ -1,5 +1,5 @@
-require_dependency "manifest/list_group/list"
-module Manifest
+require_dependency "local_manifest/list_group/list"
+module LocalManifest
   class ListGroup
     include ListGroupModule
     def self.manager manifest, my_manifests
similarity index 62%
rename from lib/manifest/list_group/list.rb
rename to lib/local_manifest/list_group/list.rb
index fba57eb..4976af9 100644 (file)
@@ -1,12 +1,12 @@
-require_dependency "manifest/list_group/list/base"
-require_dependency "manifest/list_group/list/public"
-require_dependency "manifest/list_group/list/private"
-require_dependency "manifest/list_group/list/system_resource"
-require_dependency "manifest/list_group/list/filter"
-require_dependency "manifest/list_group/list/through_filter"
-require_dependency "manifest/list_group/list/foreign_filter"
-require_dependency "manifest/list_group/list/play"
-module Manifest
+require_dependency "local_manifest/list_group/list/base"
+require_dependency "local_manifest/list_group/list/public"
+require_dependency "local_manifest/list_group/list/private"
+require_dependency "local_manifest/list_group/list/system_resource"
+require_dependency "local_manifest/list_group/list/filter"
+require_dependency "local_manifest/list_group/list/through_filter"
+require_dependency "local_manifest/list_group/list/foreign_filter"
+require_dependency "local_manifest/list_group/list/play"
+module LocalManifest
   module ListGroupModule
     class ListFactory
       include ListModule
similarity index 90%
rename from lib/manifest/list_group/list/base.rb
rename to lib/local_manifest/list_group/list/base.rb
index 314ebab..b78118c 100644 (file)
@@ -1,6 +1,6 @@
-require_dependency "manifest/list_group/list/where"
-require_dependency "manifest/list_group/list/includes"
-module Manifest
+require_dependency "local_manifest/list_group/list/where"
+require_dependency "local_manifest/list_group/list/includes"
+module LocalManifest
   module ListGroupModule
     module ListModule
       class Base
similarity index 96%
rename from lib/manifest/list_group/list/filter.rb
rename to lib/local_manifest/list_group/list/filter.rb
index 567330e..4696226 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class FilterList < Base
@@ -1,15 +1,17 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class ForeignFilterList <  FilterList
+        attr :tree_name
         
         def set_default
           super
+          @list_manifest['args']['tree_name'] ||= 'owner'
         end
         
         def init
           super
-          @filter_table_name = ::Manifest.manifest.models[@filter_item_name].classify.table_name
+          @tree_name = @args['tree_name']
         end
         
       end
similarity index 71%
rename from lib/manifest/list_group/list/includes.rb
rename to lib/local_manifest/list_group/list/includes.rb
index 9264d04..411b67a 100644 (file)
@@ -1,8 +1,8 @@
-require_dependency "manifest/list_group/list/includes/base"
-require_dependency "manifest/list_group/list/includes/method"
-require_dependency "manifest/list_group/list/includes/auto"
-require_dependency "manifest/list_group/list/includes/none"
-module Manifest
+require_dependency "local_manifest/list_group/list/includes/base"
+require_dependency "local_manifest/list_group/list/includes/method"
+require_dependency "local_manifest/list_group/list/includes/auto"
+require_dependency "local_manifest/list_group/list/includes/none"
+module LocalManifest
   module ListGroupModule
     module ListModule
       class IncludeFactory
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module IncludeModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module IncludeModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module IncludeModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module IncludeModule
similarity index 99%
rename from lib/manifest/list_group/list/play.rb
rename to lib/local_manifest/list_group/list/play.rb
index 09f5510..7351abd 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class PlayList
similarity index 84%
rename from lib/manifest/list_group/list/private.rb
rename to lib/local_manifest/list_group/list/private.rb
index 13e8aba..580ceee 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class PrivateList < Base
similarity index 91%
rename from lib/manifest/list_group/list/public.rb
rename to lib/local_manifest/list_group/list/public.rb
index 2baed0c..b59674e 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class PublicList < Base
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class SystemResourceList < Base
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       class ThroughFilterList < FilterList
similarity index 75%
rename from lib/manifest/list_group/list/where.rb
rename to lib/local_manifest/list_group/list/where.rb
index 88ea3ef..799407d 100644 (file)
@@ -1,7 +1,7 @@
-require_dependency "manifest/list_group/list/where/base"
-require_dependency "manifest/list_group/list/where/method"
-require_dependency "manifest/list_group/list/where/auto"
-module Manifest
+require_dependency "local_manifest/list_group/list/where/base"
+require_dependency "local_manifest/list_group/list/where/method"
+require_dependency "local_manifest/list_group/list/where/auto"
+module LocalManifest
   module ListGroupModule
     module ListModule
       class WhereFactory
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module WhereModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module WhereModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ListGroupModule
     module ListModule
       module WhereModule
diff --git a/lib/local_manifest/local_manifest.rb b/lib/local_manifest/local_manifest.rb
new file mode 100644 (file)
index 0000000..65534dd
--- /dev/null
@@ -0,0 +1,37 @@
+module LocalManifest
+  class LocalManifest
+    cattr_accessor :manifest
+    attr :list_groups, :profilers, :filers, :forms
+    # call me before load routes.rb
+    # routes.rb needs engine_resources manifest in system_resources
+    # ex. it's adding license_groups routes
+    def initialize local_json
+      @local_json = local_json || {}
+    end
+    
+    def init
+      # managers can't initialize before load  application.rb
+      return unless defined? ::Pettanr
+      @list_groups = ListGroup.manager(self, @local_json['list_groups'] || {})
+      @filers = Filer.manager(self, @local_json['filers'] || {})
+      @profilers = Profiler.manager(self, @local_json['profilers'] || {})
+      @forms = Form.base_manager(self, @local_json['forms'] || {})
+      @forms.merge(Form.extend_manager(self, @local_json['forms'] || {}))
+    end
+    
+  end
+  
+  module ModuleMethods
+    def manifest
+      LocalManifest.manifest
+    end
+    
+    def load local_json
+      LocalManifest.manifest = LocalManifest.new local_json
+    end
+    
+  end
+
+  extend ModuleMethods
+end
+
similarity index 86%
rename from lib/manifest/profiler.rb
rename to lib/local_manifest/profiler.rb
index d58dab3..56f4ab2 100644 (file)
@@ -1,7 +1,7 @@
-require_dependency "manifest/profiler/column"
-require_dependency "manifest/profiler/list"
-require_dependency "manifest/profiler/association"
-module Manifest
+require_dependency "local_manifest/profiler/column"
+require_dependency "local_manifest/profiler/list"
+require_dependency "local_manifest/profiler/association"
+module LocalManifest
   class Profiler
     
     def self.manager manifest, my_manifests
similarity index 84%
rename from lib/manifest/profiler/association.rb
rename to lib/local_manifest/profiler/association.rb
index 3dc1cf0..db7365b 100644 (file)
@@ -1,7 +1,7 @@
-require_dependency "manifest/profiler/association/belongs_to"
-require_dependency "manifest/profiler/association/has_many"
-require_dependency "manifest/profiler/association/has_one"
-module Manifest
+require_dependency "local_manifest/profiler/association/belongs_to"
+require_dependency "local_manifest/profiler/association/has_many"
+require_dependency "local_manifest/profiler/association/has_one"
+module LocalManifest
   module ProfilerModule
     class Association
       include AssociationModule
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ProfilerModule
     module AssociationModule
       class BelongsTo
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ProfilerModule
     module AssociationModule
       class HasMany
@@ -28,7 +28,7 @@ module Manifest
               raise "undefined list for profilers > #{self.profiler.item_name} > has_many > #{@profiler_list_name}\n"
             end
           end
-          @list = ::Manifest::View::ListGroup.list @model_name, @list_name
+          @list = Locmare::ListGroup.list @model_name, @list_name
         end
         
         def model
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ProfilerModule
     module AssociationModule
       class HasOne
@@ -27,7 +27,7 @@ module Manifest
               raise "undefined list for profilers > #{self.profiler.item_name} > has_one > #{@profiler_list_name}\n"
             end
           end
-          @list = ::Manifest::View::ListGroup.list @model_name, @list_name
+          @list = Locmare::ListGroup.list @model_name, @list_name
         end
         
         def model
similarity index 98%
rename from lib/manifest/profiler/column.rb
rename to lib/local_manifest/profiler/column.rb
index 4ea7b91..843abff 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ProfilerModule
     class Column
       def initialize item_name, column_name, item, operators, manifest
similarity index 97%
rename from lib/manifest/profiler/list.rb
rename to lib/local_manifest/profiler/list.rb
index f9adef7..8fc8fcc 100644 (file)
@@ -1,4 +1,4 @@
-module Manifest
+module LocalManifest
   module ProfilerModule
     class List
       attr :profiler, :my_name, :list_manifest, 
diff --git a/lib/locmare.rb b/lib/locmare.rb
new file mode 100644 (file)
index 0000000..a45d3fd
--- /dev/null
@@ -0,0 +1 @@
+require_dependency "locmare/locmare"
diff --git a/lib/locmare/filer.rb b/lib/locmare/filer.rb
new file mode 100644 (file)
index 0000000..3ce3b88
--- /dev/null
@@ -0,0 +1,39 @@
+require_dependency "locmare/filer/header"
+require_dependency "locmare/filer/body"
+require_dependency "locmare/filer/footer"
+module Locmare
+  class Filer
+    include FilerModule
+    attr :manifest, :item_name, :items, :paginate, :operators, :template_dir, 
+      :header, :body, :footer
+    def initialize item_name, items, paginate, operators
+      @item_name = item_name
+      @items = items
+      @paginate = paginate
+      @operators = operators
+      @manifest = LocalManifest.manifest.filers[@item_name]
+      @template_dir = 'templates/r/filer/'
+      @header = Header.new self
+      @body = Body.new self
+      @footer = Footer.new self, paginate
+    end
+    
+    def model
+      ::Manifest::item_name_to_model @item_name
+    end
+    
+    def template_file_name
+      "filer"
+    end
+    
+    def template_name
+      self.template_dir + self.template_file_name
+    end
+    
+    def image_dir
+      '/images/'
+    end
+    
+  end
+end
+
diff --git a/lib/locmare/filer/body.rb b/lib/locmare/filer/body.rb
new file mode 100644 (file)
index 0000000..017e824
--- /dev/null
@@ -0,0 +1,45 @@
+require_dependency "locmare/filer/body/file_header"
+require_dependency "locmare/filer/body/file_body"
+module Locmare
+  module FilerModule
+    class Body
+      include BodyModule
+      attr :filer, 
+        :file_header, :file_body
+      def initialize filer
+        @filer = filer
+        @file_header = FileHeader.new self
+        @file_body = FileBody.new self
+      end
+      
+      def manifest
+        @filer.manifest
+      end
+      
+      def item_name
+        self.filer.item_name
+      end
+      
+      def model
+        self.filer.model
+      end
+      
+      def items
+        self.filer.items
+      end
+      
+      def template_dir
+        @filer.template_dir
+      end
+      
+      def template_file_name
+        "body"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+    end
+  end
+end
similarity index 50%
rename from lib/manifest/local/view/filer/body.rb
rename to lib/locmare/filer/body/file_body.rb
index a475ad5..850c32b 100644 (file)
@@ -1,20 +1,23 @@
-require_dependency "manifest/local/view/filer/body/file_header"
-require_dependency "manifest/local/view/filer/body/file_body"
-module Manifest
-  module View
-    module FilerModule
-      class Body
-        include BodyModule
-        attr :filer, 
-          :file_header, :file_body
-        def initialize filer
-          @filer = filer
-          @file_header = FileHeader.new self
-          @file_body = FileBody.new self
+require_dependency "locmare/filer/body/file_body/file_item"
+module Locmare
+  module FilerModule
+    module BodyModule
+      class FileBody
+        include FileBodyModule
+        attr :body, :file_items
+        def initialize body
+          @body = body
+          @file_items = self.items.map {|item| 
+            FileItem.new self, item
+          }
+        end
+        
+        def filer
+          @body.filer
         end
         
         def manifest
-          @filer.manifest
+          self.filer.manifest
         end
         
         def item_name
@@ -30,11 +33,11 @@ module Manifest
         end
         
         def template_dir
-          @filer.template_dir
+          self.filer.template_dir
         end
         
         def template_file_name
-          "body"
+          "file_body"
         end
         
         def template_name
diff --git a/lib/locmare/filer/body/file_body/file_item.rb b/lib/locmare/filer/body/file_body/file_item.rb
new file mode 100644 (file)
index 0000000..89656e2
--- /dev/null
@@ -0,0 +1,63 @@
+require_dependency "locmare/filer/body/file_body/file_item/symbol"
+require_dependency "locmare/filer/body/file_body/file_item/caption"
+require_dependency "locmare/filer/body/file_body/file_item/summary"
+require_dependency "locmare/filer/body/file_body/file_item/icon"
+require_dependency "locmare/filer/body/file_body/file_item/date"
+require_dependency "locmare/filer/body/file_body/file_item/edit"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        class FileItem
+          include FileItemModule
+          
+          attr :file_body, :item, 
+            :symbol, :caption, :summary, :icon, :date, :edit
+          def initialize file_body, item
+            @file_body = file_body
+            @item = item
+            @symbol = SymbolItemColumnFactory.factory self, self.filer.manifest.symbol, @item
+            @caption = CaptionItemColumnFactory.factory self, self.filer.manifest.caption, @item
+            @summary = SummaryItemColumnFactory.factory self, self.filer.manifest.summary, @item
+            @icon = IconItemColumnFactory.factory self, self.filer.manifest.icon, @item
+            @date = DateItemColumnFactory.factory self, self.filer.manifest.date, @item
+            @edit = EditItemColumnFactory.factory self, self.filer.manifest.edit, @item
+          end
+          
+          def filer
+            @file_body.filer
+          end
+          
+          def manifest
+            self.filer.manifest
+          end
+          
+          def item_name
+            self.filer.item_name
+          end
+          
+          def model
+            self.filer.model
+          end
+          
+          def items
+            self.filer.items
+          end
+          
+          def template_dir
+            self.filer.template_dir
+          end
+          
+          def template_file_name
+            "file_item"
+          end
+          
+          def template_name
+            self.template_dir + self.template_file_name
+          end
+          
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption.rb b/lib/locmare/filer/body/file_body/file_item/caption.rb
new file mode 100644 (file)
index 0000000..1885256
--- /dev/null
@@ -0,0 +1,28 @@
+require_dependency "locmare/filer/body/file_body/file_item/caption/base"
+require_dependency "locmare/filer/body/file_body/file_item/caption/default"
+require_dependency "locmare/filer/body/file_body/file_item/caption/template"
+require_dependency "locmare/filer/body/file_body/file_item/caption/none"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class CaptionItemColumnFactory
+            include CaptionItemColumnModule
+            @@types = {
+              'default' => Default, 'template' => Template, '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} > 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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/base.rb b/lib/locmare/filer/body/file_body/file_item/caption/base.rb
new file mode 100644 (file)
index 0000000..ad808fe
--- /dev/null
@@ -0,0 +1,60 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            class Base
+              attr :file_item, :caption_manifest, :item, :column_name
+              
+              def initialize file_item, caption_manifest, item
+                @file_item = file_item
+                @caption_manifest = caption_manifest
+                @item = item
+                @column_name = 'caption'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'caption/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/default.rb b/lib/locmare/filer/body/file_body/file_item/caption/default.rb
new file mode 100644 (file)
index 0000000..ed81628
--- /dev/null
@@ -0,0 +1,37 @@
+require_dependency "locmare/filer/body/file_body/file_item/caption/default/face"
+require_dependency "locmare/filer/body/file_body/file_item/caption/default/link"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            class Default < Base
+              include DefaultModule
+              attr :face, :link
+              
+              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
+              end
+              
+              def column_template_file_name
+                'show'
+              end
+              
+              def item_template_file_name
+                if @caption_manifest.link.type == 'none'
+                  'default_without_link'
+                else
+                  'default'
+                end
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/default/face.rb b/lib/locmare/filer/body/file_body/file_item/caption/default/face.rb
new file mode 100644 (file)
index 0000000..d63018f
--- /dev/null
@@ -0,0 +1,29 @@
+require_dependency "locmare/filer/body/file_body/file_item/caption/default/face/face"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            module DefaultModule
+              class FaceFactory
+                include FaceModule
+                @@types = {
+                  'column' => ColumnFace, 'method' => MethodFace, 'none' => NoneFace
+                }
+                def self.factory file_item, my_manifest, item
+                  type = my_manifest.type
+                  raise "undefined type for local view filers > #{file_item.item_name} > caption > face\n" unless type
+                  my_class = @@types[type]
+                  raise "undefined class for local view filers > #{file_item.item_name} > caption > face > #{type}\n" unless my_class
+                  my_class.new(file_item, my_manifest, item)
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/default/face/face.rb b/lib/locmare/filer/body/file_body/file_item/caption/default/face/face.rb
new file mode 100644 (file)
index 0000000..210137a
--- /dev/null
@@ -0,0 +1,87 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            module DefaultModule
+              module FaceModule
+                class BaseFace
+                  attr :default_caption, :face_manifest, :item
+                  def initialize default_caption, face_manifest, item
+                    @default_caption = default_caption
+                    @face_manifest = face_manifest
+                    @item = item
+                  end
+                  
+                  def filer
+                    @default_caption.filer
+                  end
+                  
+                  def manifest
+                    self.filer.manifest
+                  end
+                  
+                  def item_name
+                    self.filer.item_name
+                  end
+                  
+                  def template_dir
+                    self.filer.template_dir + "caption_face/"
+                  end
+                  
+                  def template_file_name
+                    raise "undefined template_file_name\n"
+                  end
+                  
+                  def template_name
+                    self.template_dir + self.template_file_name
+                  end
+                  
+                end
+                
+                class ColumnFace < BaseFace
+                  def template_file_name
+                    if face.blank?
+                      'empty'
+                    else
+                      'column'
+                    end
+                  end
+                  
+                  def face
+                    @item.attributes[@face_manifest.column_name]
+                  end
+                  
+                end
+                
+                class MethodFace < BaseFace
+                  def template_file_name
+                    if face.blank?
+                      'empty'
+                    else
+                      'column'
+                    end
+                  end
+                  
+                  def face
+                    @item.__send__ @face_manifest.method_name
+                  end
+                  
+                end
+                
+                class NoneFace < BaseFace
+                  def template_file_name
+                    'none'
+                  end
+                  
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/default/link.rb b/lib/locmare/filer/body/file_body/file_item/caption/default/link.rb
new file mode 100644 (file)
index 0000000..4174b3f
--- /dev/null
@@ -0,0 +1,29 @@
+require_dependency "locmare/filer/body/file_body/file_item/caption/default/link/link"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            module DefaultModule
+              class LinkFactory
+                include LinkModule
+                @@types = {
+                  'action' => ActionLink, 'none' => NoneLink, 'url_column' => UrlColumnLink
+                }
+                def self.factory file_item, my_manifest, item
+                  type = my_manifest.type
+                  raise "undefined type for local view filers > #{file_item.item_name} > caption > link\n" unless type
+                  my_class = @@types[type]
+                  raise "undefined class for local view filers > #{file_item.item_name} > caption > link > #{type}\n" unless my_class
+                  my_class.new(file_item, my_manifest, item)
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/default/link/link.rb b/lib/locmare/filer/body/file_body/file_item/caption/default/link/link.rb
new file mode 100644 (file)
index 0000000..54dfcb4
--- /dev/null
@@ -0,0 +1,54 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            module DefaultModule
+              module LinkModule
+                class BaseLink
+                  attr :default_caption, :link_manifest, :item
+                  def initialize default_caption, link_manifest, item
+                    @default_caption = default_caption
+                    @link_manifest = link_manifest
+                    @item = item
+                  end
+                  
+                  def url
+                    raise "undefined url\n"
+                  end
+                  
+                end
+                
+                class ActionLink < BaseLink
+                  
+                  def url
+                    @link_manifest.action_path + @item.id.to_s
+                  end
+                  
+                end
+                
+                class NoneLink < BaseLink
+                  
+                  def url
+                    nil
+                  end
+                  
+                end
+                
+                class UrlColumnLink < BaseLink
+                  
+                  def url
+                    @item.attributes[@link_manifest.column_name]
+                  end
+                  
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/none.rb b/lib/locmare/filer/body/file_body/file_item/caption/none.rb
new file mode 100644 (file)
index 0000000..661ed75
--- /dev/null
@@ -0,0 +1,19 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            class None < Base
+              
+              def column_template_file_name
+                'none'
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/caption/template.rb b/lib/locmare/filer/body/file_body/file_item/caption/template.rb
new file mode 100644 (file)
index 0000000..b775b69
--- /dev/null
@@ -0,0 +1,18 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module CaptionItemColumnModule
+            class Template < Base
+              def template_file_name
+                @caption_manifest.template_name
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/date.rb b/lib/locmare/filer/body/file_body/file_item/date.rb
new file mode 100644 (file)
index 0000000..4034239
--- /dev/null
@@ -0,0 +1,25 @@
+require_dependency "locmare/filer/body/file_body/file_item/date/date"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class DateItemColumnFactory
+            include DateItemColumnModule
+            @@types = {
+              '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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/date/date.rb b/lib/locmare/filer/body/file_body/file_item/date/date.rb
new file mode 100644 (file)
index 0000000..a13ea13
--- /dev/null
@@ -0,0 +1,78 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module DateItemColumnModule
+            class Base
+              attr :file_item, :date_manifest, :item, :column_name
+              
+              def initialize file_item, date_manifest, item
+                @file_item = file_item
+                @date_manifest = date_manifest
+                @item = item
+                @column_name = 'date'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'date/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            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
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/edit.rb b/lib/locmare/filer/body/file_body/file_item/edit.rb
new file mode 100644 (file)
index 0000000..ee7e335
--- /dev/null
@@ -0,0 +1,25 @@
+require_dependency "locmare/filer/body/file_body/file_item/edit/edit"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class EditItemColumnFactory
+            include EditItemColumnModule
+            @@types = {
+              'default' => Default, 'none' => None, 'account' => Account, 'template' => Template
+            }
+            def self.factory file_item, my_manifest, item
+              type = my_manifest.type
+              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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/edit/edit.rb b/lib/locmare/filer/body/file_body/file_item/edit/edit.rb
new file mode 100644 (file)
index 0000000..ee199a3
--- /dev/null
@@ -0,0 +1,158 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module EditItemColumnModule
+            class Base
+              attr :file_item, :edit_manifest, :item, :column_name
+              
+              def initialize file_item, edit_manifest, item
+                @file_item = file_item
+                @edit_manifest = edit_manifest
+                @item = item
+                @column_name = 'edit'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def image_dir
+                self.filer.image_dir
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'edit/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            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
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/icon.rb b/lib/locmare/filer/body/file_body/file_item/icon.rb
new file mode 100644 (file)
index 0000000..ece8c12
--- /dev/null
@@ -0,0 +1,25 @@
+require_dependency "locmare/filer/body/file_body/file_item/icon/icon"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class IconItemColumnFactory
+            include IconItemColumnModule
+            @@types = {
+              '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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/icon/icon.rb b/lib/locmare/filer/body/file_body/file_item/icon/icon.rb
new file mode 100644 (file)
index 0000000..87eeb35
--- /dev/null
@@ -0,0 +1,86 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module IconItemColumnModule
+            class Base
+              attr :file_item, :icon_manifest, :item, :column_name
+              
+              def initialize file_item, icon_manifest, item
+                @file_item = file_item
+                @icon_manifest = icon_manifest
+                @item = item
+                @column_name = 'icon'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'icon/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            end
+            
+            class Default < Base
+              def column_template_file_name
+                'show'
+              end
+              
+              def item_template_file_name
+                'default'
+              end
+              
+              def icon_file_name
+                '/images/prof.png'
+              end
+              
+              def icon_size
+                Manifest.manifest.magic_numbers['thumbnail_width']
+              end
+              
+            end
+            
+            class None < Base
+              def column_template_file_name
+                'none'
+              end
+              
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/summary.rb b/lib/locmare/filer/body/file_body/file_item/summary.rb
new file mode 100644 (file)
index 0000000..f1d62c8
--- /dev/null
@@ -0,0 +1,25 @@
+require_dependency "locmare/filer/body/file_body/file_item/summary/summary"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class SummaryItemColumnFactory
+            include SummaryItemColumnModule
+            @@types = {
+              'none' => None, 'template' => Template
+            }
+            def self.factory file_item, my_manifest, item
+              type = my_manifest.type
+              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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/summary/summary.rb b/lib/locmare/filer/body/file_body/file_item/summary/summary.rb
new file mode 100644 (file)
index 0000000..b382aed
--- /dev/null
@@ -0,0 +1,89 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module  SummaryItemColumnModule
+            class Base
+              attr :file_item, :summary_manifest, :item, :column_name
+              
+              def initialize file_item, summary_manifest, item
+                @file_item = file_item
+                @summary_manifest = summary_manifest
+                @item = item
+                @column_name = 'summary'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'summary/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            end
+            
+            class None < Base
+              def column_template_file_name
+                "none"
+              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
+                @summary_manifest.template_name
+              end
+              
+              def template_name
+                self.template_dir + self.template_file_name
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol.rb b/lib/locmare/filer/body/file_body/file_item/symbol.rb
new file mode 100644 (file)
index 0000000..3d5b559
--- /dev/null
@@ -0,0 +1,27 @@
+require_dependency "locmare/filer/body/file_body/file_item/symbol/base"
+require_dependency "locmare/filer/body/file_body/file_item/symbol/default"
+require_dependency "locmare/filer/body/file_body/file_item/symbol/template"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          class SymbolItemColumnFactory
+            include SymbolItemColumnModule
+            @@types = {
+              'default' => Default, 'template' => Template
+            }
+            def self.factory file_item, my_manifest, item
+              type = my_manifest.type
+              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, item)
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/base.rb b/lib/locmare/filer/body/file_body/file_item/symbol/base.rb
new file mode 100644 (file)
index 0000000..aa066e8
--- /dev/null
@@ -0,0 +1,60 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            class Base
+              attr :file_item, :symbol_manifest, :item, :column_name
+              
+              def initialize file_item, symbol_manifest, item
+                @file_item = file_item
+                @symbol_manifest = symbol_manifest
+                @item = item
+                @column_name = 'symbol'
+              end
+              
+              def filer
+                @file_item.filer
+              end
+              
+              def manifest
+                self.filer.manifest
+              end
+              
+              def item_name
+                self.filer.item_name
+              end
+              
+              def column_template_dir
+                self.filer.template_dir + 'item_column/'
+              end
+              
+              def column_template_file_name
+                raise "undefined column_template_file_name\n"
+              end
+              
+              def column_template_name
+                self.column_template_dir + self.column_template_file_name
+              end
+              
+              def item_template_dir
+                self.filer.template_dir + 'symbol/'
+              end
+              
+              def item_template_file_name
+                raise "undefined item_template_file_name\n"
+              end
+              
+              def item_template_name
+                self.item_template_dir + self.item_template_file_name
+              end
+              
+            end
+            
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/default.rb b/lib/locmare/filer/body/file_body/file_item/symbol/default.rb
new file mode 100644 (file)
index 0000000..fad23bc
--- /dev/null
@@ -0,0 +1,37 @@
+require_dependency "locmare/filer/body/file_body/file_item/symbol/default/face"
+require_dependency "locmare/filer/body/file_body/file_item/symbol/default/link"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            class Default < Base
+              include DefaultModule
+              attr :face, :link
+              
+              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
+              end
+              
+              def column_template_file_name
+                'show'
+              end
+              
+              def item_template_file_name
+                if @symbol_manifest.link.type == 'none'
+                  'default_without_link'
+                else
+                  'default'
+                end
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/default/face.rb b/lib/locmare/filer/body/file_body/file_item/symbol/default/face.rb
new file mode 100644 (file)
index 0000000..f62942c
--- /dev/null
@@ -0,0 +1,29 @@
+require_dependency "locmare/filer/body/file_body/file_item/symbol/default/face/face"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            module DefaultModule
+              class FaceFactory
+                include FaceModule
+                @@types = {
+                  'image' => ImageFace, 'picture' => PictureFace
+                }
+                def self.factory file_item, my_manifest, item
+                  type = my_manifest.type
+                  raise "undefined type for local view filers > #{file_item.item_name} > symbol > face\n" unless type
+                  my_class = @@types[type]
+                  raise "undefined class for local view filers > #{file_item.item_name} > symbol > face > #{type}\n" unless my_class
+                  my_class.new(file_item, my_manifest, item)
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/default/face/face.rb b/lib/locmare/filer/body/file_body/file_item/symbol/default/face/face.rb
new file mode 100644 (file)
index 0000000..72121c4
--- /dev/null
@@ -0,0 +1,84 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            module DefaultModule
+              module FaceModule
+                class BaseFace
+                  attr :default_symbol, :face_manifest, :item
+                  def initialize default_symbol, face_manifest, item
+                    @default_symbol = default_symbol
+                    @face_manifest = face_manifest
+                    @item = item
+                  end
+                  
+                  def filer
+                    @default_symbol.filer
+                  end
+                  
+                  def manifest
+                    self.filer.manifest
+                  end
+                  
+                  def item_name
+                    self.filer.item_name
+                  end
+                  
+                  def template_dir
+                    self.filer.template_dir + "symbol_face/"
+                  end
+                  
+                  def template_file_name
+                    raise "undefined template_file_name\n"
+                  end
+                  
+                  def template_name
+                    self.template_dir + self.template_file_name
+                  end
+                  
+                end
+                
+                class ImageFace < BaseFace
+                  def template_file_name
+                    'image'
+                  end
+                  
+                  def url
+                    @face_manifest.url
+                  end
+                  
+                  def tag_opt
+                    {:src => self.url, :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
+                  end
+                  
+                end
+                
+                class PictureFace < BaseFace
+                  def template_file_name
+                    'picture'
+                  end
+                  
+                  def method_name
+                    @face_manifest.method_name
+                  end
+                  
+                  def tag_opt
+                    if @item.methods(true).include?(self.method_name.to_sym)
+                      @item.__send__ self.method_name
+                    else
+                      {:src => '/images/error.png', :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
+                    end
+                  end
+                  
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/default/link.rb b/lib/locmare/filer/body/file_body/file_item/symbol/default/link.rb
new file mode 100644 (file)
index 0000000..9761ba7
--- /dev/null
@@ -0,0 +1,29 @@
+require_dependency "locmare/filer/body/file_body/file_item/symbol/default/link/link"
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            module DefaultModule
+              class LinkFactory
+                include LinkModule
+                @@types = {
+                  'action' => ActionLink, 'none' => NoneLink, 'url_column' => UrlColumnLink
+                }
+                def self.factory file_item, my_manifest, item
+                  type = my_manifest.type
+                  raise "undefined type for local view filers > #{file_item.item_name} > symbol > link\n" unless type
+                  my_class = @@types[type]
+                  raise "undefined class for local view filers > #{file_item.item_name} > symbol > link > #{type}\n" unless my_class
+                  my_class.new(file_item, my_manifest, item)
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/default/link/link.rb b/lib/locmare/filer/body/file_body/file_item/symbol/default/link/link.rb
new file mode 100644 (file)
index 0000000..dba6389
--- /dev/null
@@ -0,0 +1,53 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            module DefaultModule
+              module LinkModule
+                class BaseLink
+                  attr :default_symbol, :link_manifest, :item
+                  def initialize default_symbol, link_manifest, item
+                    @default_symbol = default_symbol
+                    @link_manifest = link_manifest
+                    @item = item
+                  end
+                  
+                  def url
+                    raise "undefined url\n"
+                  end
+                  
+                end
+                
+                class ActionLink < BaseLink
+                  
+                  def url
+                    @link_manifest.action_path + @item.id.to_s
+                  end
+                end
+                
+                class NoneLink < BaseLink
+                  
+                  def url
+                    nil
+                  end
+                  
+                end
+                
+                class UrlColumnLink < BaseLink
+                  
+                  def url
+                    @item.attributes[@link_manifest.column_name]
+                  end
+                  
+                end
+                
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_body/file_item/symbol/template.rb b/lib/locmare/filer/body/file_body/file_item/symbol/template.rb
new file mode 100644 (file)
index 0000000..23ddc6d
--- /dev/null
@@ -0,0 +1,34 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileBodyModule
+        module FileItemModule
+          module SymbolItemColumnModule
+            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
+                @symbol_manifest.template_name
+              end
+              
+              def template_name
+                self.template_dir + self.template_file_name
+              end
+              
+            end
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_header.rb b/lib/locmare/filer/body/file_header.rb
new file mode 100644 (file)
index 0000000..4fcf5c7
--- /dev/null
@@ -0,0 +1,63 @@
+require_dependency "locmare/filer/body/file_header/base"
+require_dependency "locmare/filer/body/file_header/show"
+require_dependency "locmare/filer/body/file_header/none"
+module Locmare
+  module FilerModule
+    module BodyModule
+      class FileHeader
+        include FileHeaderModule
+        
+        attr :body,
+          :symbol, :caption, :summary, :icon, :date, :edit
+        def initialize body
+          @body = body
+          c = self.filer.manifest.symbol.visible? ? Show : None
+          @symbol = c.new self, 'symbol'
+          c = self.filer.manifest.caption.visible? ? Show : None
+          @caption = c.new self, 'caption'
+          c = self.filer.manifest.summary.visible? ? Show : None
+          @summary = c.new self, 'summary'
+          c = self.filer.manifest.icon.visible? ? Show : None
+          @icon = c.new self, 'icon'
+          c = self.filer.manifest.date.visible? ? Show : None
+          @date = c.new self, 'date'
+          c = self.filer.manifest.edit.visible? ? Show : None
+          @edit = c.new self, 'edit'
+        end
+        
+        def filer
+          @body.filer
+        end
+        
+        def manifest
+          self.filer.manifest
+        end
+        
+        def item_name
+          self.filer.item_name
+        end
+        
+        def model
+          self.filer.model
+        end
+        
+        def items
+          self.filer.items
+        end
+        
+        def template_dir
+          @body.template_dir
+        end
+        
+        def template_file_name
+          "file_header"
+        end
+        
+        def template_name
+          self.template_dir + self.template_file_name
+        end
+        
+      end
+    end
+  end
+end
similarity index 57%
rename from lib/manifest/local/view/filer/body/file_body.rb
rename to lib/locmare/filer/body/file_header/base.rb
index 4235355..100c9e3 100644 (file)
@@ -1,20 +1,16 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        class FileBody
-          include FileBodyModule
-          attr :body, :file_items
-          def initialize body
-            @body = body
-            @file_items = self.items.map {|item| 
-              FileItem.new self, item
-            }
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileHeaderModule
+        class Base
+          attr :file_header, :column_name
+          def initialize file_header, column_name
+            @file_header = file_header
+            @column_name = column_name
           end
           
           def filer
-            @body.filer
+            @file_header.filer
           end
           
           def manifest
@@ -34,11 +30,11 @@ module Manifest
           end
           
           def template_dir
-            self.filer.template_dir
+            self.filer.template_dir + 'header_column/'
           end
           
           def template_file_name
-            "file_body"
+            "show"
           end
           
           def template_name
diff --git a/lib/locmare/filer/body/file_header/none.rb b/lib/locmare/filer/body/file_header/none.rb
new file mode 100644 (file)
index 0000000..9fe0cf4
--- /dev/null
@@ -0,0 +1,13 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileHeaderModule
+        class None < Base
+          def template_file_name
+            "none"
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/body/file_header/show.rb b/lib/locmare/filer/body/file_header/show.rb
new file mode 100644 (file)
index 0000000..e2c60db
--- /dev/null
@@ -0,0 +1,13 @@
+module Locmare
+  module FilerModule
+    module BodyModule
+      module FileHeaderModule
+        class Show < Base
+          def template_file_name
+            "show"
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/lib/locmare/filer/footer.rb b/lib/locmare/filer/footer.rb
new file mode 100644 (file)
index 0000000..7e98a3d
--- /dev/null
@@ -0,0 +1,24 @@
+module Locmare
+  module FilerModule
+    class Footer
+      attr :filer, :paginate
+      def initialize filer, paginate
+        @filer = filer
+        @paginate = paginate
+      end
+      
+      def template_dir
+        @filer.template_dir
+      end
+      
+      def template_file_name
+        "footer"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+    end
+  end
+end
diff --git a/lib/locmare/filer/header.rb b/lib/locmare/filer/header.rb
new file mode 100644 (file)
index 0000000..e165dba
--- /dev/null
@@ -0,0 +1,39 @@
+module Locmare
+  module FilerModule
+    class Header
+      attr :filer
+      def initialize filer
+        @filer = filer
+      end
+      
+      def model
+        @filer.model
+      end
+      
+      def icon_name
+        self.model.singular
+      end
+      
+      def icon_size
+        Manifest.manifest.magic_numbers['thumbnail_width'] / 2
+      end
+      
+      def human_name
+        self.model.model_name.human
+      end
+      
+      def template_dir
+        @filer.template_dir
+      end
+      
+      def template_file_name
+        "header"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+    end
+  end
+end
diff --git a/lib/locmare/form.rb b/lib/locmare/form.rb
new file mode 100644 (file)
index 0000000..7fc8dd5
--- /dev/null
@@ -0,0 +1,65 @@
+require_dependency "locmare/form/field"
+module Locmare
+  class Form
+    include FormModule
+    attr :form_name, :item, :mounted, :submit, :operators, :template_dir, 
+      :fields
+    def initialize form_name, item, mounted, submit, operators
+      @form_name = form_name
+      @item = item
+      @mounted = mounted
+      @submit = submit
+      @operators = operators
+      @manifest = LocalManifest.manifest.forms[@form_name]
+      @template_dir = 'templates/r/form/'
+      @fields = {}
+      @manifest.each_field do |field_name, field_manifest| 
+        @fields[field_name] = Field.new self, field_name, field_manifest
+      end
+    end
+    
+    def each_field
+      @manifest.each_field do |field_name, field_manifest| 
+        yield field_name, @fields[field_name]
+      end
+    end
+    
+    def template_file_name
+      "form"
+    end
+    
+    def template_name
+      self.template_dir + self.template_file_name
+    end
+    
+    def submit_name
+      if @item.new_record?
+        @item.table_name + '.submit.new'
+      else
+        @item.table_name + '.submit.edit'
+      end
+    end
+    
+    def submit_template_dir
+      self.template_dir + 'submit/'
+    end
+    
+    def submit_template_name
+      if @submit
+        self.submit_template_dir + 'submit'
+      else
+        self.submit_template_dir + 'none'
+      end
+    end
+    
+    def fields_template_name
+      self.template_dir + 'fields'
+    end
+    
+    def image_dir
+      '/images/'
+    end
+    
+  end
+end
+
diff --git a/lib/locmare/form/field.rb b/lib/locmare/form/field.rb
new file mode 100644 (file)
index 0000000..014eb57
--- /dev/null
@@ -0,0 +1,81 @@
+require_dependency "locmare/form/field/label"
+require_dependency "locmare/form/field/tag"
+require_dependency "locmare/form/field/helper"
+module Locmare
+  module FormModule
+    class Field
+      include FieldModule
+      attr :form, :field_name, :field_manifest, 
+        :label, :tag, :helpers, :options
+      def initialize form, field_name, field_manifest
+        @form = form
+        @field_name = field_name
+        @field_manifest = field_manifest
+        @label = LabelFactory.factory self, @field_manifest.label
+        @tag = TagFactory.factory self, @field_manifest.tag
+        @helpers = {}
+        @field_manifest.helpers.each {|helper_name, helper_manifest|
+          @helpers[helper_name] = HelperFactory.factory self, helper_manifest
+        }
+        @options = {'data-model' => @field_manifest.model_name}
+      end
+      
+      def mounted
+        @form.mounted ? 0 : 1
+      end
+      
+      def mount_option
+        {'mount' => self.mounted}
+      end
+      
+      def item
+        @form.item
+      end
+      
+      def value
+        self.item.attributes[@field_manifest.column_name]
+      end
+      
+      def options tag_options = {}
+        self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option)
+      end
+      
+      def form_field_name
+        @field_manifest.form_field_name
+      end
+      
+      def form_name
+        @form.form_name
+      end
+      
+      def template_dir
+        @form.template_dir + 'field/'
+      end
+      
+      def template_file_name
+        @field_manifest.type
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+      def row_break_template_dir
+        @form.template_dir + 'row_break/'
+      end
+      
+      def row_break_template_file_name
+        if @field_manifest.row_break
+          'br'
+        else
+          'no_break'
+        end
+      end
+      
+      def row_break_template_name
+        self.row_break_template_dir + self.row_break_template_file_name
+      end
+      
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper.rb b/lib/locmare/form/field/helper.rb
new file mode 100644 (file)
index 0000000..22d921b
--- /dev/null
@@ -0,0 +1,26 @@
+require_dependency "locmare/form/field/helper/base"
+require_dependency "locmare/form/field/helper/size"
+require_dependency "locmare/form/field/helper/tail_angle"
+require_dependency "locmare/form/field/helper/color"
+require_dependency "locmare/form/field/helper/popup"
+module Locmare
+  module FormModule
+    module FieldModule
+      class HelperFactory
+        include HelperModule
+        @@types = {
+          'size' => Size, 'tail_angle' => TailAngle, 'color' => Color, 
+          'popup' => Popup
+        }
+        def self.factory field, my_manifest
+          type = my_manifest.type
+          my_class = @@types[type]
+          raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > helper > #{type}\n" unless my_class
+          my_class.new(field, my_manifest)
+        end
+        
+      end
+      
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper/base.rb b/lib/locmare/form/field/helper/base.rb
new file mode 100644 (file)
index 0000000..a974459
--- /dev/null
@@ -0,0 +1,50 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class Base
+          attr :field, :helper_manifest
+          
+          def initialize field, helper_manifest
+            @field = field
+            @helper_manifest = helper_manifest
+          end
+          
+          def type
+            @helper_manifest.type
+          end
+          
+          def path
+            @helper_manifest.path
+          end
+          
+          def form
+            @field.form
+          end
+          
+          def template_dir
+            self.form.template_dir + 'helper/'
+          end
+          
+          def template_file_name
+            @helper_manifest.file_name
+          end
+          
+          def template_name
+            self.template_dir + self.template_file_name
+          end
+          
+          def form_name
+            @field.form_name
+          end
+          
+          def field_name
+            @field.field_name
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper/color.rb b/lib/locmare/form/field/helper/color.rb
new file mode 100644 (file)
index 0000000..8d2c3a1
--- /dev/null
@@ -0,0 +1,15 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class Color < Base
+          def wrapper
+            @helper_manifest.wrapper
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper/popup.rb b/lib/locmare/form/field/helper/popup.rb
new file mode 100644 (file)
index 0000000..4fa7e1c
--- /dev/null
@@ -0,0 +1,13 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class Popup < Base
+          attr :source
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper/size.rb b/lib/locmare/form/field/helper/size.rb
new file mode 100644 (file)
index 0000000..dac12b9
--- /dev/null
@@ -0,0 +1,16 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class Size < Base
+          
+          def dom_class
+            @helper_manifest.dom_class
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/helper/tail_angle.rb b/lib/locmare/form/field/helper/tail_angle.rb
new file mode 100644 (file)
index 0000000..4ec9d01
--- /dev/null
@@ -0,0 +1,12 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module HelperModule
+        class TailAngle < Base
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/label.rb b/lib/locmare/form/field/label.rb
new file mode 100644 (file)
index 0000000..e351982
--- /dev/null
@@ -0,0 +1,21 @@
+require_dependency "locmare/form/field/label/label"\r
+module Locmare\r
+  module FormModule\r
+    module FieldModule\r
+      class LabelFactory\r
+        include LabelModule\r
+        @@types = {\r
+          'default' => Default, 'none' => None\r
+        }\r
+        def self.factory field, my_manifest\r
+          type = my_manifest.type\r
+          my_class = @@types[type]\r
+          raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > label > #{type}\n" unless my_class\r
+          my_class.new(field, my_manifest)\r
+        end\r
+        \r
+      end\r
+      \r
+    end\r
+  end\r
+end\r
diff --git a/lib/locmare/form/field/label/label.rb b/lib/locmare/form/field/label/label.rb
new file mode 100644 (file)
index 0000000..3d10dd7
--- /dev/null
@@ -0,0 +1,92 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module LabelModule
+        class Base
+          attr :field, :label_manifest
+          
+          def initialize field, label_manifest
+            @field = field
+            @label_manifest = label_manifest
+          end
+          
+          def form
+            @field.form
+          end
+          
+          def manifest
+            self.form.manifest
+          end
+          
+          def form_name
+            self.form.form_name
+          end
+          
+          def model
+            self.form.model
+          end
+          
+          def item
+            self.form.item
+          end
+          
+          def model_name
+            @label_manifest.model_name
+          end
+          
+          def column_name
+            @label_manifest.column_name
+          end
+          
+          def template_dir
+            self.form.template_dir + 'label/'
+          end
+          
+          def template_file_name
+            raise "undefined template_file_name\n"
+          end
+          
+          def template_name
+            self.template_dir + self.template_file_name
+          end
+          
+          def label_row_break_template_dir
+            self.form.template_dir + 'label_row_break/'
+          end
+          
+          def label_row_break_template_file_name
+            if @label_manifest.row_break
+              'br'
+            else
+              'no_break'
+            end
+          end
+          
+          def label_row_break_template_name
+            self.label_row_break_template_dir + self.label_row_break_template_file_name
+          end
+          
+        end
+        
+        class Default < Base
+          def template_file_name
+            'default'
+          end
+          
+          def label_name
+            'activerecord.attributes.' + self.model_name + '.' +  self.column_name
+          end
+          
+        end
+        
+        class None < Base
+          def template_file_name
+            'none'
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag.rb b/lib/locmare/form/field/tag.rb
new file mode 100644 (file)
index 0000000..075dc04
--- /dev/null
@@ -0,0 +1,27 @@
+require_dependency "locmare/form/field/tag/base"\r
+require_dependency "locmare/form/field/tag/text"\r
+require_dependency "locmare/form/field/tag/number"\r
+require_dependency "locmare/form/field/tag/text_area"\r
+require_dependency "locmare/form/field/tag/select"\r
+require_dependency "locmare/form/field/tag/hidden"\r
+module Locmare\r
+  module FormModule\r
+    module FieldModule\r
+      class TagFactory\r
+        include TagModule\r
+        @@types = {\r
+          'text' => TextTag, 'number' => NumberTag, 'text_area' => TextAreaTag, \r
+          'select' => SelectTag, 'hidden' => HiddenTag\r
+        }\r
+        def self.factory field, my_manifest\r
+          type = my_manifest.type\r
+          my_class = @@types[type]\r
+          raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > tag > #{type}\n" unless my_class\r
+          my_class.new(field, my_manifest)\r
+        end\r
+        \r
+      end\r
+      \r
+    end\r
+  end\r
+end\r
diff --git a/lib/locmare/form/field/tag/base.rb b/lib/locmare/form/field/tag/base.rb
new file mode 100644 (file)
index 0000000..484608a
--- /dev/null
@@ -0,0 +1,70 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class Base
+          attr :field, :tag_manifest
+          
+          def initialize field, tag_manifest
+            @field = field
+            @tag_manifest = tag_manifest
+          end
+          
+          def form_field_name
+            @field.form_field_name
+          end
+          
+          def value
+            @field.value
+          end
+          
+          def options
+            @field.options @tag_manifest.options
+          end
+          
+          def form
+            @field.form
+          end
+          
+          def manifest
+            self.form.manifest
+          end
+          
+          def form_name
+            self.form.form_name
+          end
+          
+          def model
+            self.form.model
+          end
+          
+          def item
+            self.form.item
+          end
+          
+          def model_name
+            @label_manifest.model_name
+          end
+          
+          def column_name
+            @label_manifest.column_name
+          end
+          
+          def template_dir
+            self.form.template_dir + 'tag/'
+          end
+          
+          def template_file_name
+            raise "undefined template_file_name\n"
+          end
+          
+          def template_name
+            self.template_dir + self.template_file_name
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag/hidden.rb b/lib/locmare/form/field/tag/hidden.rb
new file mode 100644 (file)
index 0000000..19e97d6
--- /dev/null
@@ -0,0 +1,15 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class HiddenTag < Base
+          def template_file_name
+            'hidden'
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag/number.rb b/lib/locmare/form/field/tag/number.rb
new file mode 100644 (file)
index 0000000..891daf1
--- /dev/null
@@ -0,0 +1,15 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class NumberTag < Base
+          def template_file_name
+            'number'
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag/select.rb b/lib/locmare/form/field/tag/select.rb
new file mode 100644 (file)
index 0000000..3da48a0
--- /dev/null
@@ -0,0 +1,25 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class SelectTag < Base
+          def template_file_name
+            'select'
+          end
+          
+          def select_item_name
+            model = ::Manifest.manifest.models[@field.field_manifest.model_name]
+            attr = model.attributes[@field.field_manifest.column_name]
+            attr.source.select_item_name
+          end
+          
+          def items
+            ::Manifest.manifest.system_resources.select_items[self.select_item_name]
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag/text.rb b/lib/locmare/form/field/tag/text.rb
new file mode 100644 (file)
index 0000000..9d66832
--- /dev/null
@@ -0,0 +1,15 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class TextTag < Base
+          def template_file_name
+            'text'
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/form/field/tag/text_area.rb b/lib/locmare/form/field/tag/text_area.rb
new file mode 100644 (file)
index 0000000..2cbf03f
--- /dev/null
@@ -0,0 +1,15 @@
+module Locmare
+  module FormModule
+    module FieldModule
+      module TagModule
+        class TextAreaTag < Base
+          def template_file_name
+            'text_area'
+          end
+          
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/list_group.rb b/lib/locmare/list_group.rb
new file mode 100644 (file)
index 0000000..e208938
--- /dev/null
@@ -0,0 +1,29 @@
+require_dependency "locmare/list_group/list/base"
+require_dependency "locmare/list_group/list/public"
+require_dependency "locmare/list_group/list/private"
+require_dependency "locmare/list_group/list/system_resource"
+require_dependency "locmare/list_group/list/filter"
+require_dependency "locmare/list_group/list/through_filter"
+require_dependency "locmare/list_group/list/foreign_filter"
+require_dependency "locmare/list_group/list/play"
+module Locmare
+  class ListGroup
+    include ListGroupModule
+    
+    def self.types
+      {
+        'public' => PublicList, 'private' => PrivateList, 'system_resource' => SystemResourceList,
+        'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList, 
+        'play' => PlayList
+      }
+    end
+    
+    def self.list item_name, list_name
+      list_group_manifest = LocalManifest.manifest.list_groups[item_name]
+      list_manifest = list_group_manifest.lists[list_name]
+      self.types[list_manifest.type].new item_name, list_name
+    end
+    
+  end
+end
+
diff --git a/lib/locmare/list_group/list/base.rb b/lib/locmare/list_group/list/base.rb
new file mode 100644 (file)
index 0000000..7e71f68
--- /dev/null
@@ -0,0 +1,107 @@
+module Locmare
+  module ListGroupModule
+    class Base
+      class ListResult
+        attr :items, :paginate
+        def initialize items, paginate
+          @items = items
+          @paginate = paginate
+        end
+        
+      end
+      
+      attr :item_name, :list_name, 
+        :model_manifest, :model_list_manifest, :model, 
+        :default_page_size, :max_page_size
+      def initialize item_name, list_name
+        @item_name = item_name
+        @list_name = list_name
+        self.init
+      end
+      
+      def init
+        @list_group_manifest = LocalManifest.manifest.list_groups[@item_name]
+        @list_manifest = @list_group_manifest.lists[@list_name]
+        @where = @list_manifest.where
+        @includes = @list_manifest.includes
+        @model_manifest = ::Manifest.manifest.models[@item_name]
+        @model_list_manifest = @model_manifest.list
+        @model = ::Manifest.item_name_to_model @item_name
+        @table_name = @model.table_name
+      end
+      
+      def model_name
+        @model.model_name
+      end
+      
+      def model_manifest
+        @model.model_manifest
+      end
+      
+      def page_number prm = nil
+        page = prm.to_i
+        page = 1 if page < 1
+        page
+      end
+      
+      def page_size prm
+        page_size = prm.to_i
+        page_size = self.max_page_size if page_size > self.max_page_size
+        page_size = self.default_page_size if page_size < 1
+        page_size
+      end
+      
+      def default_page_size
+        @model_list_manifest.default_page_size
+      end
+      
+      def max_page_size
+        @model_list_manifest.max_page_size
+      end
+      
+      def base_where_condition
+        method_name = @where.conditions do |name|
+          name
+        end
+        @model.__send__ method_name
+      end
+      
+      def where_condition
+        base_where_condition
+      end
+      
+      def include_hash
+        @includes.includes
+      end
+      
+      def order
+        @model.list_order
+      end
+      
+      def items operators, options, offset, page_size
+        @model.where(self.where_condition).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
+      end
+      
+      def count operators, options
+        @model.where(self.where_condition).includes(self.include_hash).count
+      end
+      
+      def paginate count, offset, page_size
+        c = count ? count.to_i : 0
+        Kaminari.paginate_array(Array.new(c, nil)).page(offset).per(page_size)
+      end
+      
+      def open operators, options
+        page = self.page_number(options[:page]) 
+        page_size = self.page_size options[:page_size]
+        offset = (page -1) * page_size
+        items = self.items operators, options, offset, page_size
+        count = self.count operators, options
+        pg = self.paginate count, offset, page_size
+        ListResult.new items, pg
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/filter.rb b/lib/locmare/list_group/list/filter.rb
new file mode 100644 (file)
index 0000000..b105091
--- /dev/null
@@ -0,0 +1,37 @@
+module Locmare
+  module ListGroupModule
+    class FilterList < Base
+      attr :filter_key, :filter_item_name
+      
+      def init
+        super
+        @filter_key = @list_manifest.filter_key
+        @filter_item_name = @list_manifest.filter_item_name
+      end
+      
+      def where_condition filter_item_id
+        w = self.base_where_condition
+        w += ' and ' unless w.blank?
+        [w + @table_name + '.' + @filter_key + ' = ?', filter_item_id] 
+      end
+      
+      def include_hash
+        w = super
+        w.merge!({@filter_item_name => {} }) unless w[@filter_item_name]
+        w
+      end
+      
+      def items operators, options, offset, page_size
+        filter_item_id = options[:id]
+        @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
+      end
+      
+      def count operators, options
+        filter_item_id = options[:id]
+        @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).count
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/foreign_filter.rb b/lib/locmare/list_group/list/foreign_filter.rb
new file mode 100644 (file)
index 0000000..007e072
--- /dev/null
@@ -0,0 +1,24 @@
+module Locmare
+  module ListGroupModule
+    class ForeignFilterList < FilterList
+      
+      def init
+        super
+        @filter_table_name = ::Manifest.manifest.models[@filter_item_name].classify.table_name
+        @tree_name = @list_manifest.tree_name
+      end
+      
+      def where_condition filter_item_id
+        w = self.base_where_condition
+        w += ' and ' unless w.blank?
+        [w + @filter_table_name + '.id' + ' = ?', filter_item_id] 
+      end
+      
+      def include_hash
+        @model_manifest.tree[@tree_name].include_hash
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/play.rb b/lib/locmare/list_group/list/play.rb
new file mode 100644 (file)
index 0000000..7261236
--- /dev/null
@@ -0,0 +1,41 @@
+module Locmare
+  module ListGroupModule
+    class PlayList
+      attr :model, :list_name, :list_manifest, :type, 
+        :default_page_size, :max_page_size
+      
+      def initialize model, list_name, list_manifest
+        @model = model
+        @list_name = list_name
+        @list_manifest = list_manifest
+        self.set_default
+        self.init
+      end
+      
+      def set_default
+        @list_manifest['args'] ||= {}
+        return
+        @default_page_size = @conf['default_page_size'] || 25
+        @max_page_size = @conf['max_page_size'] || 100
+        @params_offset = params_offset
+        @params_count = params_count
+        @list_list_conf = @manifest.list(@item_name).lists[list_name] || {}
+        @model_name = @list_list_conf['model']
+        @filter_key = @list_list_conf['filter_key']
+        @model = @model_name.classify.constantize
+        @table_name = @model.table_name
+        if @model.content?
+          @owner_model = @model.owner_model
+          @owner_table_name = @owner_model.table_name if @owner_model
+        end
+      end
+      
+      def init
+        @type = @list_manifest['type']
+        @args = @list_manifest['args']
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/private.rb b/lib/locmare/list_group/list/private.rb
new file mode 100644 (file)
index 0000000..27aeefa
--- /dev/null
@@ -0,0 +1,42 @@
+module Locmare
+  module ListGroupModule
+    class PrivateList < Base
+      
+      def init
+        super
+      end
+      
+      def where_condition operators
+        case @model.owner_type
+        when :author
+          operator = operators.author
+        when :artist
+          operator = operators.artist
+        end
+        t = if @owner_model
+          if @owner_model.owner_model
+            @owner_model.owner_model.table_name
+          else
+            @owner_model.table_name
+          end
+        else
+          @table_name
+        end
+        @where.conditions do |name|
+          [t + '.' + @model.owner_type.to_s + '_id = ?', operator.id]
+        end
+      end
+    
+      def items operators, options, offset, page_size
+        @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
+      end
+      
+      def count operators, options
+        filter_item_id = options[:id]
+        @model.where(self.where_condition(operators)).includes(self.include_hash).count
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/public.rb b/lib/locmare/list_group/list/public.rb
new file mode 100644 (file)
index 0000000..9259827
--- /dev/null
@@ -0,0 +1,16 @@
+module Locmare
+  module ListGroupModule
+    class PublicList < Base
+      
+      def init
+        super
+      end
+      
+      def order
+        @model.list_order
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/system_resource.rb b/lib/locmare/list_group/list/system_resource.rb
new file mode 100644 (file)
index 0000000..94b1846
--- /dev/null
@@ -0,0 +1,19 @@
+module Locmare
+  module ListGroupModule
+    class SystemResourceList < Base
+      
+      def init
+        super
+      end
+      
+      def items operators, options, offset, page_size
+        # enable_list does not work when configured auto load in development.rb
+        # auto loader undefing MODEL at reload manifest file
+        # @model.enable_list
+        super
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/list_group/list/through_filter.rb b/lib/locmare/list_group/list/through_filter.rb
new file mode 100644 (file)
index 0000000..322cd3f
--- /dev/null
@@ -0,0 +1,25 @@
+module Locmare
+  module ListGroupModule
+    class ThroughFilterList < FilterList
+      attr :through
+      
+      def init
+        super
+        @through = @list_manifest.through
+        @filter_table_name = ::Manifest.manifest.models[@filter_item_name].classify.table_name
+      end
+      
+      def include_hash
+        {@through => {@filter_item_name => {}} }
+      end
+      
+      def where_condition filter_item_id
+        w = self.base_where_condition
+        w += ' and ' unless w.blank?
+        [w + @filter_table_name + '.id' + ' = ?', filter_item_id] 
+      end
+      
+    end
+    
+  end
+end
diff --git a/lib/locmare/locmare.rb b/lib/locmare/locmare.rb
new file mode 100644 (file)
index 0000000..3606e89
--- /dev/null
@@ -0,0 +1,4 @@
+require_dependency "locmare/filer"
+require_dependency "locmare/form"
+require_dependency "locmare/profiler"
+require_dependency "locmare/list_group"
diff --git a/lib/locmare/profiler.rb b/lib/locmare/profiler.rb
new file mode 100644 (file)
index 0000000..e1672c4
--- /dev/null
@@ -0,0 +1,64 @@
+require_dependency "locmare/profiler/header"
+require_dependency "locmare/profiler/column"
+require_dependency "locmare/profiler/association"
+module Locmare
+  class Profiler
+    include ProfilerModule
+    attr :profiler_manifest, :item_name, :item, :operators, :template_dir, 
+      :header, :columns, :associations
+    def initialize item_name, item, operators
+      @item_name = item_name
+      @item = item
+      @operators = operators
+      @profiler_manifest = LocalManifest.manifest.profilers[@item_name]
+      @template_dir = 'templates/r/profiler/'
+      @header = Header.new self
+      @columns = @profiler_manifest.column_names.map {|column_name|
+        Column.new self, column_name
+      }
+      @associations = Association.new self, @profiler_manifest.associations
+    end
+    
+    def model
+      ::Manifest::item_name_to_model @item_name
+    end
+    
+    def template_file_name
+      "profiler"
+    end
+    
+    def template_name
+      self.template_dir + self.template_file_name
+    end
+    
+    def header_template_file_name
+      "header"
+    end
+    
+    def header_template_name
+      self.template_dir + self.header_template_file_name
+    end
+    
+    def columns_template_file_name
+      "columns"
+    end
+    
+    def columns_template_name
+      self.template_dir + self.columns_template_file_name
+    end
+    
+    def associations_template_file_name
+      "associations"
+    end
+    
+    def associations_template_name
+      self.template_dir + self.associations_template_file_name
+    end
+    
+    def image_dir
+      '/images/'
+    end
+    
+  end
+end
+
diff --git a/lib/locmare/profiler/association.rb b/lib/locmare/profiler/association.rb
new file mode 100644 (file)
index 0000000..a5c6f40
--- /dev/null
@@ -0,0 +1,68 @@
+require_dependency "locmare/profiler/association/belongs_to"
+require_dependency "locmare/profiler/association/has_many"
+require_dependency "locmare/profiler/association/has_one"
+module Locmare
+  module ProfilerModule
+    class Association
+      include AssociationModule
+      attr :profiler, :association_manifest,
+        :belongs_to, :has_many, :has_one
+      def initialize profiler, association_manifest
+        @profiler = profiler
+        @association_manifest = association_manifest
+        @belongs_to = @association_manifest.belongs_to.map {|belongs_to_manifest|
+          BelongsTo.new self, belongs_to_manifest
+        }
+        @has_many = @association_manifest.has_many.map {|list_name|
+          HasMany.new self, list_name
+        }
+        @has_one = @association_manifest.has_one.map {|list_name|
+          HasOne.new self, list_name
+        }
+      end
+      
+      def item
+        @profiler.item
+      end
+      
+      def model_manifest
+        ::Manifest.manifest.models[@profiler.item_name]
+      end
+      
+      def model_attribute_manifest
+        model_manifest.attributes[@column_name]
+      end
+      
+      def template_dir 
+        @profiler.template_dir
+      end
+      
+      def template_file_name
+        "associations"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+      def each_belongs_to_filer
+        @belongs_to.each {|b|
+          yield b.filer
+        }
+      end
+      
+      def each_has_many_filer
+        @has_many.each {|h|
+          yield h.filer
+        }
+      end
+      
+      def each_has_one_filer
+        @has_one.each {|h|
+          yield h.filer
+        }
+      end
+      
+    end
+  end
+end
diff --git a/lib/locmare/profiler/association/belongs_to.rb b/lib/locmare/profiler/association/belongs_to.rb
new file mode 100644 (file)
index 0000000..6dbc1d0
--- /dev/null
@@ -0,0 +1,48 @@
+module Locmare
+  module ProfilerModule
+    module AssociationModule
+      class BelongsTo
+        attr :association, :belongs_to_manifest
+        def initialize association, belongs_to_manifest
+          @association = association
+          @belongs_to_manifest = belongs_to_manifest
+        end
+        
+        def item
+          self.profiler.item
+        end
+        
+        def parent_model
+          @belongs_to_manifest.model
+        end
+        
+        def parent_id
+          self.item.attributes[self.model_belongs_to_manifest.id_column]
+        end
+        
+        def filer
+          r = nil
+          begin
+            r = [self.parent_model.show(self.parent_id, self.profiler.operators)]
+          rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
+            r = []
+          end
+          ::Locmare::Filer.new self.parent_model.item_name, r, nil, self.profiler.operators
+        end
+        
+        def model_manifest
+          ::Manifest.manifest.models[self.profiler.item_name]
+        end
+        
+        def model_belongs_to_manifest
+          self.model_manifest.associations.belongs_to[@belongs_to_manifest.model_name]
+        end
+        
+        def profiler
+          @association.profiler
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/profiler/association/has_many.rb b/lib/locmare/profiler/association/has_many.rb
new file mode 100644 (file)
index 0000000..27bd9ea
--- /dev/null
@@ -0,0 +1,32 @@
+module Locmare
+  module ProfilerModule
+    module AssociationModule
+      class HasMany
+        attr :association, :has_many_manifest
+        def initialize association, has_many_manifest
+          @association = association
+          @has_many_manifest = has_many_manifest
+        end
+        
+        def item
+          self.profiler.item
+        end
+        
+        def has_many_model
+          @has_many_manifest.model
+        end
+        
+        def filer
+          list_result = @has_many_manifest.list.open(self.profiler.operators, {:id => self.item.id, :page => 1, :page_size => 3})
+          items = list_result.items 
+          ::Locmare::Filer.new self.has_many_model.item_name, items, nil, self.profiler.operators
+        end
+        
+        def profiler
+          @association.profiler
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/profiler/association/has_one.rb b/lib/locmare/profiler/association/has_one.rb
new file mode 100644 (file)
index 0000000..9191174
--- /dev/null
@@ -0,0 +1,32 @@
+module Locmare
+  module ProfilerModule
+    module AssociationModule
+      class HasOne
+        attr :association, :has_one_manifest
+        def initialize association, has_one_manifest
+          @association = association
+          @has_one_manifest = has_one_manifest
+        end
+        
+        def item
+          self.profiler.item
+        end
+        
+        def has_one_model
+          @has_one_manifest.model
+        end
+        
+        def filer
+          list_result = @has_one_manifest.list.open(self.profiler.operators, {:id => self.item.id})
+          items = list_result.items 
+          ::Locmare::Filer.new self.has_one_model.item_name, items, nil, self.profiler.operators
+        end
+        
+        def profiler
+          @association.profiler
+        end
+        
+      end
+    end
+  end
+end
diff --git a/lib/locmare/profiler/column.rb b/lib/locmare/profiler/column.rb
new file mode 100644 (file)
index 0000000..8e33c12
--- /dev/null
@@ -0,0 +1,116 @@
+module Locmare
+  module ProfilerModule
+    class Column
+      attr :profiler, :column_name
+      def initialize profiler, column_name
+        @profiler = profiler
+        @column_name = column_name
+      end
+      
+      def label
+        self.item.class.human_attribute_name(@column_name)
+      end
+      
+      def value
+        self.item.attributes[@column_name]
+      end
+      
+      def note
+      end
+      
+      def date?
+        case model_attribute_manifest.type
+        when 'datetime'
+          if self.value
+            true
+          else
+            false
+          end
+        else
+          false
+        end
+      end
+      
+      def note?
+        if self.model_attribute_source_manifest
+          case self.model_attribute_source_manifest.type
+          when 'magic_number'
+            true
+          when 'model'
+            false
+          else
+            false
+          end
+        else
+          false
+        end
+      end
+      
+      def select_item_name
+        self.model_attribute_source_manifest.select_item_name
+      end
+      
+      def item
+        @profiler.item
+      end
+      
+      def model_manifest
+        ::Manifest.manifest.models[@profiler.item_name]
+      end
+      
+      def model_attribute_manifest
+        self.model_manifest.attributes[@column_name]
+      end
+      
+      def model_attribute_source_manifest
+        self.model_attribute_manifest.source
+      end
+      
+      def template_dir 
+        @profiler.template_dir
+      end
+      
+      def template_file_name
+        "column"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+      def value_template_dir 
+        @profiler.template_dir + "column_value/"
+      end
+      
+      def value_template_file_name
+        if self.date?
+          'date'
+        else
+          'default'
+        end
+      end
+      
+      def value_template_name
+        self.value_template_dir + self.value_template_file_name
+      end
+      
+      def note_template_dir 
+        @profiler.template_dir + "column_note/"
+      end
+      
+      def note_template_file_name
+        if self.note?
+          'default'
+        else
+          'none'
+        end
+      end
+      
+      def note_template_name
+        self.note_template_dir + self.note_template_file_name
+      end
+      
+    end
+  end
+end
+
diff --git a/lib/locmare/profiler/header.rb b/lib/locmare/profiler/header.rb
new file mode 100644 (file)
index 0000000..92d8c6d
--- /dev/null
@@ -0,0 +1,17 @@
+module Locmare
+  module ProfilerModule
+    class Header
+      attr :profiler
+      def initialize profiler
+        @profiler = profiler
+      end
+      
+      def filer
+        Locmare::Filer.new @profiler.item_name, [@profiler.item], nil, @profiler.operators
+      end
+      
+    end
+    
+  end
+end
+
index 056e05d..1982071 100644 (file)
@@ -3,12 +3,7 @@ end
 require_dependency "manifest/manifest"
 require_dependency "manifest/controller"
 require_dependency "manifest/model"
-require_dependency "manifest/profiler"
-require_dependency "manifest/filer"
-require_dependency "manifest/form"
-require_dependency "manifest/list_group"
 require_dependency "manifest/system_resource"
-require_dependency "manifest/local/view"
 Manifest::load JSON.parse(open(File.expand_path('../../public/manifest.json', __FILE__)).read)
 
 Manifest.manifest.init
diff --git a/lib/manifest/local/view.rb b/lib/manifest/local/view.rb
deleted file mode 100644 (file)
index 6b116d6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-require_dependency "manifest/local/view/filer"
-require_dependency "manifest/local/view/form"
-require_dependency "manifest/local/view/profiler"
-require_dependency "manifest/local/view/list_group"
-module Manifest
-  module View
-  end
-  
-end
-
diff --git a/lib/manifest/local/view/filer.rb b/lib/manifest/local/view/filer.rb
deleted file mode 100644 (file)
index 50a44ab..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-require_dependency "manifest/local/view/filer/header"
-require_dependency "manifest/local/view/filer/body"
-require_dependency "manifest/local/view/filer/footer"
-module Manifest
-  module View
-    class Filer
-      include FilerModule
-      attr :manifest, :item_name, :items, :paginate, :operators, :template_dir, 
-        :header, :body, :footer
-      def initialize item_name, items, paginate, operators
-        @item_name = item_name
-        @items = items
-        @paginate = paginate
-        @operators = operators
-        @manifest = Manifest.manifest.filers[@item_name]
-        @template_dir = 'templates/r/filer/'
-        @header = Header.new self
-        @body = Body.new self
-        @footer = Footer.new self, paginate
-      end
-      
-      def model
-        ::Manifest::item_name_to_model @item_name
-      end
-      
-      def template_file_name
-        "filer"
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-      def image_dir
-        '/images/'
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item.rb b/lib/manifest/local/view/filer/body/file_body/file_item.rb
deleted file mode 100644 (file)
index 24f9899..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/summary"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/icon"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/date"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/edit"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          class FileItem
-            include FileItemModule
-            
-            attr :file_body, :item, 
-              :symbol, :caption, :summary, :icon, :date, :edit
-            def initialize file_body, item
-              @file_body = file_body
-              @item = item
-              @symbol = SymbolItemColumnFactory.factory self, self.filer.manifest.symbol, @item
-              @caption = CaptionItemColumnFactory.factory self, self.filer.manifest.caption, @item
-              @summary = SummaryItemColumnFactory.factory self, self.filer.manifest.summary, @item
-              @icon = IconItemColumnFactory.factory self, self.filer.manifest.icon, @item
-              @date = DateItemColumnFactory.factory self, self.filer.manifest.date, @item
-              @edit = EditItemColumnFactory.factory self, self.filer.manifest.edit, @item
-            end
-            
-            def filer
-              @file_body.filer
-            end
-            
-            def manifest
-              self.filer.manifest
-            end
-            
-            def item_name
-              self.filer.item_name
-            end
-            
-            def model
-              self.filer.model
-            end
-            
-            def items
-              self.filer.items
-            end
-            
-            def template_dir
-              self.filer.template_dir
-            end
-            
-            def template_file_name
-              "file_item"
-            end
-            
-            def template_name
-              self.template_dir + self.template_file_name
-            end
-            
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption.rb
deleted file mode 100644 (file)
index e1c342f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/base"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/default"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/template"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/none"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class CaptionItemColumnFactory
-              include CaptionItemColumnModule
-              @@types = {
-                'default' => Default, 'template' => Template, '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} > 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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/base.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/base.rb
deleted file mode 100644 (file)
index 7e3ce52..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              class Base
-                attr :file_item, :caption_manifest, :item, :column_name
-                
-                def initialize file_item, caption_manifest, item
-                  @file_item = file_item
-                  @caption_manifest = caption_manifest
-                  @item = item
-                  @column_name = 'caption'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'caption/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/default.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/default.rb
deleted file mode 100644 (file)
index dd66375..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/default/face"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/default/link"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              class Default < Base
-                include DefaultModule
-                attr :face, :link
-                
-                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
-                end
-                
-                def column_template_file_name
-                  'show'
-                end
-                
-                def item_template_file_name
-                  if @caption_manifest.link.type == 'none'
-                    'default_without_link'
-                  else
-                    'default'
-                  end
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face.rb
deleted file mode 100644 (file)
index 8f8c4f9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/default/face/face"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              module DefaultModule
-                class FaceFactory
-                  include FaceModule
-                  @@types = {
-                    'column' => ColumnFace, 'method' => MethodFace, 'none' => NoneFace
-                  }
-                  def self.factory file_item, my_manifest, item
-                    type = my_manifest.type
-                    raise "undefined type for local view filers > #{file_item.item_name} > caption > face\n" unless type
-                    my_class = @@types[type]
-                    raise "undefined class for local view filers > #{file_item.item_name} > caption > face > #{type}\n" unless my_class
-                    my_class.new(file_item, my_manifest, item)
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face/face.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/face/face.rb
deleted file mode 100644 (file)
index e2bf7e9..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              module DefaultModule
-                module FaceModule
-                  class BaseFace
-                    attr :default_caption, :face_manifest, :item
-                    def initialize default_caption, face_manifest, item
-                      @default_caption = default_caption
-                      @face_manifest = face_manifest
-                      @item = item
-                    end
-                    
-                    def filer
-                      @default_caption.filer
-                    end
-                    
-                    def manifest
-                      self.filer.manifest
-                    end
-                    
-                    def item_name
-                      self.filer.item_name
-                    end
-                    
-                    def template_dir
-                      self.filer.template_dir + "caption_face/"
-                    end
-                    
-                    def template_file_name
-                      raise "undefined template_file_name\n"
-                    end
-                    
-                    def template_name
-                      self.template_dir + self.template_file_name
-                    end
-                    
-                  end
-                  
-                  class ColumnFace < BaseFace
-                    def template_file_name
-                      if face.blank?
-                        'empty'
-                      else
-                        'column'
-                      end
-                    end
-                    
-                    def face
-                      @item.attributes[@face_manifest.column_name]
-                    end
-                    
-                  end
-                  
-                  class MethodFace < BaseFace
-                    def template_file_name
-                      if face.blank?
-                        'empty'
-                      else
-                        'column'
-                      end
-                    end
-                    
-                    def face
-                      @item.__send__ @face_manifest.method_name
-                    end
-                    
-                  end
-                  
-                  class NoneFace < BaseFace
-                    def template_file_name
-                      'none'
-                    end
-                    
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link.rb
deleted file mode 100644 (file)
index 1878053..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/caption/default/link/link"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              module DefaultModule
-                class LinkFactory
-                  include LinkModule
-                  @@types = {
-                    'action' => ActionLink, 'none' => NoneLink, 'url_column' => UrlColumnLink
-                  }
-                  def self.factory file_item, my_manifest, item
-                    type = my_manifest.type
-                    raise "undefined type for local view filers > #{file_item.item_name} > caption > link\n" unless type
-                    my_class = @@types[type]
-                    raise "undefined class for local view filers > #{file_item.item_name} > caption > link > #{type}\n" unless my_class
-                    my_class.new(file_item, my_manifest, item)
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link/link.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/default/link/link.rb
deleted file mode 100644 (file)
index e42feb5..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              module DefaultModule
-                module LinkModule
-                  class BaseLink
-                    attr :default_caption, :link_manifest, :item
-                    def initialize default_caption, link_manifest, item
-                      @default_caption = default_caption
-                      @link_manifest = link_manifest
-                      @item = item
-                    end
-                    
-                    def url
-                      raise "undefined url\n"
-                    end
-                    
-                  end
-                  
-                  class ActionLink < BaseLink
-                    
-                    def url
-                      @link_manifest.action_path + @item.id.to_s
-                    end
-                    
-                  end
-                  
-                  class NoneLink < BaseLink
-                    
-                    def url
-                      nil
-                    end
-                    
-                  end
-                  
-                  class UrlColumnLink < BaseLink
-                    
-                    def url
-                      @item.attributes[@link_manifest.column_name]
-                    end
-                    
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/none.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/none.rb
deleted file mode 100644 (file)
index d8a0dcd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              class None < Base
-                
-                def column_template_file_name
-                  'none'
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/caption/template.rb b/lib/manifest/local/view/filer/body/file_body/file_item/caption/template.rb
deleted file mode 100644 (file)
index e7b9ccb..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module CaptionItemColumnModule
-              class Template < Base
-                def template_file_name
-                  @caption_manifest.template_name
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/date.rb b/lib/manifest/local/view/filer/body/file_body/file_item/date.rb
deleted file mode 100644 (file)
index 5cda87a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/date/date"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class DateItemColumnFactory
-              include DateItemColumnModule
-              @@types = {
-                '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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/date/date.rb b/lib/manifest/local/view/filer/body/file_body/file_item/date/date.rb
deleted file mode 100644 (file)
index 176d962..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module DateItemColumnModule
-              class Base
-                attr :file_item, :date_manifest, :item, :column_name
-                
-                def initialize file_item, date_manifest, item
-                  @file_item = file_item
-                  @date_manifest = date_manifest
-                  @item = item
-                  @column_name = 'date'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'date/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              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
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/edit.rb b/lib/manifest/local/view/filer/body/file_body/file_item/edit.rb
deleted file mode 100644 (file)
index 6dc62e0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/edit/edit"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class EditItemColumnFactory
-              include EditItemColumnModule
-              @@types = {
-                'default' => Default, 'none' => None, 'account' => Account, 'template' => Template
-              }
-              def self.factory file_item, my_manifest, item
-                type = my_manifest.type
-                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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/edit/edit.rb b/lib/manifest/local/view/filer/body/file_body/file_item/edit/edit.rb
deleted file mode 100644 (file)
index 86419c0..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module EditItemColumnModule
-              class Base
-                attr :file_item, :edit_manifest, :item, :column_name
-                
-                def initialize file_item, edit_manifest, item
-                  @file_item = file_item
-                  @edit_manifest = edit_manifest
-                  @item = item
-                  @column_name = 'edit'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def image_dir
-                  self.filer.image_dir
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'edit/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              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
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/icon.rb b/lib/manifest/local/view/filer/body/file_body/file_item/icon.rb
deleted file mode 100644 (file)
index be392b7..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/icon/icon"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class IconItemColumnFactory
-              include IconItemColumnModule
-              @@types = {
-                '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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/icon/icon.rb b/lib/manifest/local/view/filer/body/file_body/file_item/icon/icon.rb
deleted file mode 100644 (file)
index 31db72b..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module IconItemColumnModule
-              class Base
-                attr :file_item, :icon_manifest, :item, :column_name
-                
-                def initialize file_item, icon_manifest, item
-                  @file_item = file_item
-                  @icon_manifest = icon_manifest
-                  @item = item
-                  @column_name = 'icon'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'icon/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              end
-              
-              class Default < Base
-                def column_template_file_name
-                  'show'
-                end
-                
-                def item_template_file_name
-                  'default'
-                end
-                
-                def icon_file_name
-                  '/images/prof.png'
-                end
-                
-                def icon_size
-                  Manifest.manifest.magic_numbers['thumbnail_width']
-                end
-                
-              end
-              
-              class None < Base
-                def column_template_file_name
-                  'none'
-                end
-                
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/summary.rb b/lib/manifest/local/view/filer/body/file_body/file_item/summary.rb
deleted file mode 100644 (file)
index 3dd2cfa..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/summary/summary"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class SummaryItemColumnFactory
-              include SummaryItemColumnModule
-              @@types = {
-                'none' => None, 'template' => Template
-              }
-              def self.factory file_item, my_manifest, item
-                type = my_manifest.type
-                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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/summary/summary.rb b/lib/manifest/local/view/filer/body/file_body/file_item/summary/summary.rb
deleted file mode 100644 (file)
index eab6c6f..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module  SummaryItemColumnModule
-              class Base
-                attr :file_item, :summary_manifest, :item, :column_name
-                
-                def initialize file_item, summary_manifest, item
-                  @file_item = file_item
-                  @summary_manifest = summary_manifest
-                  @item = item
-                  @column_name = 'summary'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'summary/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              end
-              
-              class None < Base
-                def column_template_file_name
-                  "none"
-                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
-                  @summary_manifest.template_name
-                end
-                
-                def template_name
-                  self.template_dir + self.template_file_name
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol.rb
deleted file mode 100644 (file)
index b515b3c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/base"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/default"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/template"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            class SymbolItemColumnFactory
-              include SymbolItemColumnModule
-              @@types = {
-                'default' => Default, 'template' => Template
-              }
-              def self.factory file_item, my_manifest, item
-                type = my_manifest.type
-                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, item)
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/base.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/base.rb
deleted file mode 100644 (file)
index f4e7617..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              class Base
-                attr :file_item, :symbol_manifest, :item, :column_name
-                
-                def initialize file_item, symbol_manifest, item
-                  @file_item = file_item
-                  @symbol_manifest = symbol_manifest
-                  @item = item
-                  @column_name = 'symbol'
-                end
-                
-                def filer
-                  @file_item.filer
-                end
-                
-                def manifest
-                  self.filer.manifest
-                end
-                
-                def item_name
-                  self.filer.item_name
-                end
-                
-                def column_template_dir
-                  self.filer.template_dir + 'item_column/'
-                end
-                
-                def column_template_file_name
-                  raise "undefined column_template_file_name\n"
-                end
-                
-                def column_template_name
-                  self.column_template_dir + self.column_template_file_name
-                end
-                
-                def item_template_dir
-                  self.filer.template_dir + 'symbol/'
-                end
-                
-                def item_template_file_name
-                  raise "undefined item_template_file_name\n"
-                end
-                
-                def item_template_name
-                  self.item_template_dir + self.item_template_file_name
-                end
-                
-              end
-              
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default.rb
deleted file mode 100644 (file)
index 1b28350..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/default/face"
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/default/link"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              class Default < Base
-                include DefaultModule
-                attr :face, :link
-                
-                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
-                end
-                
-                def column_template_file_name
-                  'show'
-                end
-                
-                def item_template_file_name
-                  if @symbol_manifest.link.type == 'none'
-                    'default_without_link'
-                  else
-                    'default'
-                  end
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face.rb
deleted file mode 100644 (file)
index 4cab529..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/default/face/face"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              module DefaultModule
-                class FaceFactory
-                  include FaceModule
-                  @@types = {
-                    'image' => ImageFace, 'picture' => PictureFace
-                  }
-                  def self.factory file_item, my_manifest, item
-                    type = my_manifest.type
-                    raise "undefined type for local view filers > #{file_item.item_name} > symbol > face\n" unless type
-                    my_class = @@types[type]
-                    raise "undefined class for local view filers > #{file_item.item_name} > symbol > face > #{type}\n" unless my_class
-                    my_class.new(file_item, my_manifest, item)
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face/face.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/face/face.rb
deleted file mode 100644 (file)
index 1d20a45..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              module DefaultModule
-                module FaceModule
-                  class BaseFace
-                    attr :default_symbol, :face_manifest, :item
-                    def initialize default_symbol, face_manifest, item
-                      @default_symbol = default_symbol
-                      @face_manifest = face_manifest
-                      @item = item
-                    end
-                    
-                    def filer
-                      @default_symbol.filer
-                    end
-                    
-                    def manifest
-                      self.filer.manifest
-                    end
-                    
-                    def item_name
-                      self.filer.item_name
-                    end
-                    
-                    def template_dir
-                      self.filer.template_dir + "symbol_face/"
-                    end
-                    
-                    def template_file_name
-                      raise "undefined template_file_name\n"
-                    end
-                    
-                    def template_name
-                      self.template_dir + self.template_file_name
-                    end
-                    
-                  end
-                  
-                  class ImageFace < BaseFace
-                    def template_file_name
-                      'image'
-                    end
-                    
-                    def url
-                      @face_manifest.url
-                    end
-                    
-                    def tag_opt
-                      {:src => self.url, :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
-                    end
-                    
-                  end
-                  
-                  class PictureFace < BaseFace
-                    def template_file_name
-                      'picture'
-                    end
-                    
-                    def method_name
-                      @face_manifest.method_name
-                    end
-                    
-                    def tag_opt
-                      if @item.methods(true).include?(self.method_name.to_sym)
-                        @item.__send__ self.method_name
-                      else
-                        {:src => '/images/error.png', :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
-                      end
-                    end
-                    
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link.rb
deleted file mode 100644 (file)
index ce39204..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_body/file_item/symbol/default/link/link"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              module DefaultModule
-                class LinkFactory
-                  include LinkModule
-                  @@types = {
-                    'action' => ActionLink, 'none' => NoneLink, 'url_column' => UrlColumnLink
-                  }
-                  def self.factory file_item, my_manifest, item
-                    type = my_manifest.type
-                    raise "undefined type for local view filers > #{file_item.item_name} > symbol > link\n" unless type
-                    my_class = @@types[type]
-                    raise "undefined class for local view filers > #{file_item.item_name} > symbol > link > #{type}\n" unless my_class
-                    my_class.new(file_item, my_manifest, item)
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link/link.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/default/link/link.rb
deleted file mode 100644 (file)
index ab0e459..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              module DefaultModule
-                module LinkModule
-                  class BaseLink
-                    attr :default_symbol, :link_manifest, :item
-                    def initialize default_symbol, link_manifest, item
-                      @default_symbol = default_symbol
-                      @link_manifest = link_manifest
-                      @item = item
-                    end
-                    
-                    def url
-                      raise "undefined url\n"
-                    end
-                    
-                  end
-                  
-                  class ActionLink < BaseLink
-                    
-                    def url
-                      @link_manifest.action_path + @item.id.to_s
-                    end
-                  end
-                  
-                  class NoneLink < BaseLink
-                    
-                    def url
-                      nil
-                    end
-                    
-                  end
-                  
-                  class UrlColumnLink < BaseLink
-                    
-                    def url
-                      @item.attributes[@link_manifest.column_name]
-                    end
-                    
-                  end
-                  
-                end
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_body/file_item/symbol/template.rb b/lib/manifest/local/view/filer/body/file_body/file_item/symbol/template.rb
deleted file mode 100644 (file)
index fa974f8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileBodyModule
-          module FileItemModule
-            module SymbolItemColumnModule
-              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
-                  @symbol_manifest.template_name
-                end
-                
-                def template_name
-                  self.template_dir + self.template_file_name
-                end
-                
-              end
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_header.rb b/lib/manifest/local/view/filer/body/file_header.rb
deleted file mode 100644 (file)
index 8f26799..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-require_dependency "manifest/local/view/filer/body/file_header/base"
-require_dependency "manifest/local/view/filer/body/file_header/show"
-require_dependency "manifest/local/view/filer/body/file_header/none"
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        class FileHeader
-          include FileHeaderModule
-          
-          attr :body,
-            :symbol, :caption, :summary, :icon, :date, :edit
-          def initialize body
-            @body = body
-            c = self.filer.manifest.symbol.visible? ? Show : None
-            @symbol = c.new self, 'symbol'
-            c = self.filer.manifest.caption.visible? ? Show : None
-            @caption = c.new self, 'caption'
-            c = self.filer.manifest.summary.visible? ? Show : None
-            @summary = c.new self, 'summary'
-            c = self.filer.manifest.icon.visible? ? Show : None
-            @icon = c.new self, 'icon'
-            c = self.filer.manifest.date.visible? ? Show : None
-            @date = c.new self, 'date'
-            c = self.filer.manifest.edit.visible? ? Show : None
-            @edit = c.new self, 'edit'
-          end
-          
-          def filer
-            @body.filer
-          end
-          
-          def manifest
-            self.filer.manifest
-          end
-          
-          def item_name
-            self.filer.item_name
-          end
-          
-          def model
-            self.filer.model
-          end
-          
-          def items
-            self.filer.items
-          end
-          
-          def template_dir
-            @body.template_dir
-          end
-          
-          def template_file_name
-            "file_header"
-          end
-          
-          def template_name
-            self.template_dir + self.template_file_name
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_header/base.rb b/lib/manifest/local/view/filer/body/file_header/base.rb
deleted file mode 100644 (file)
index cfe363e..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileHeaderModule
-          class Base
-            attr :file_header, :column_name
-            def initialize file_header, column_name
-              @file_header = file_header
-              @column_name = column_name
-            end
-            
-            def filer
-              @file_header.filer
-            end
-            
-            def manifest
-              self.filer.manifest
-            end
-            
-            def item_name
-              self.filer.item_name
-            end
-            
-            def model
-              self.filer.model
-            end
-            
-            def items
-              self.filer.items
-            end
-            
-            def template_dir
-              self.filer.template_dir + 'header_column/'
-            end
-            
-            def template_file_name
-              "show"
-            end
-            
-            def template_name
-              self.template_dir + self.template_file_name
-            end
-            
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_header/none.rb b/lib/manifest/local/view/filer/body/file_header/none.rb
deleted file mode 100644 (file)
index d1bf4b9..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileHeaderModule
-          class None < Base
-            def template_file_name
-              "none"
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/body/file_header/show.rb b/lib/manifest/local/view/filer/body/file_header/show.rb
deleted file mode 100644 (file)
index 3f69cd8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      module BodyModule
-        module FileHeaderModule
-          class Show < Base
-            def template_file_name
-              "show"
-            end
-          end
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/footer.rb b/lib/manifest/local/view/filer/footer.rb
deleted file mode 100644 (file)
index 1220376..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      class Footer
-        attr :filer, :paginate
-        def initialize filer, paginate
-          @filer = filer
-          @paginate = paginate
-        end
-        
-        def template_dir
-          @filer.template_dir
-        end
-        
-        def template_file_name
-          "footer"
-        end
-        
-        def template_name
-          self.template_dir + self.template_file_name
-        end
-        
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/filer/header.rb b/lib/manifest/local/view/filer/header.rb
deleted file mode 100644 (file)
index 381eed5..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-module Manifest
-  module View
-    module FilerModule
-      class Header
-        attr :filer
-        def initialize filer
-          @filer = filer
-        end
-        
-        def model
-          @filer.model
-        end
-        
-        def icon_name
-          self.model.singular
-        end
-        
-        def icon_size
-          Manifest.manifest.magic_numbers['thumbnail_width'] / 2
-        end
-        
-        def human_name
-          self.model.model_name.human
-        end
-        
-        def template_dir
-          @filer.template_dir
-        end
-        
-        def template_file_name
-          "header"
-        end
-        
-        def template_name
-          self.template_dir + self.template_file_name
-        end
-        
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form.rb b/lib/manifest/local/view/form.rb
deleted file mode 100644 (file)
index ffa8581..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-require_dependency "manifest/local/view/form/field"
-module Manifest
-  module View
-    class Form
-      include FormModule
-      attr :form_name, :item, :mounted, :submit, :operators, :template_dir, 
-        :fields
-      def initialize form_name, item, mounted, submit, operators
-        @form_name = form_name
-        @item = item
-        @mounted = mounted
-        @submit = submit
-        @operators = operators
-        @manifest = Manifest.manifest.forms[@form_name]
-        @template_dir = 'templates/r/form/'
-        @fields = {}
-        @manifest.each_field do |field_name, field_manifest| 
-          @fields[field_name] = Field.new self, field_name, field_manifest
-        end
-      end
-      
-      def each_field
-        @manifest.each_field do |field_name, field_manifest| 
-          yield field_name, @fields[field_name]
-        end
-      end
-      
-      def template_file_name
-        "form"
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-      def submit_name
-        if @item.new_record?
-          @item.table_name + '.submit.new'
-        else
-          @item.table_name + '.submit.edit'
-        end
-      end
-      
-      def submit_template_dir
-        self.template_dir + 'submit/'
-      end
-      
-      def submit_template_name
-        if @submit
-          self.submit_template_dir + 'submit'
-        else
-          self.submit_template_dir + 'none'
-        end
-      end
-      
-      def fields_template_name
-        self.template_dir + 'fields'
-      end
-      
-      def image_dir
-        '/images/'
-      end
-      
-    end
-  end
-  
-end
diff --git a/lib/manifest/local/view/form/field.rb b/lib/manifest/local/view/form/field.rb
deleted file mode 100644 (file)
index 753b7a0..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-require_dependency "manifest/local/view/form/field/label"
-require_dependency "manifest/local/view/form/field/tag"
-require_dependency "manifest/local/view/form/field/helper"
-module Manifest
-  module View
-    module FormModule
-      class Field
-        include FieldModule
-        attr :form, :field_name, :field_manifest, 
-          :label, :tag, :helpers, :options
-        def initialize form, field_name, field_manifest
-          @form = form
-          @field_name = field_name
-          @field_manifest = field_manifest
-          @label = LabelFactory.factory self, @field_manifest.label
-          @tag = TagFactory.factory self, @field_manifest.tag
-          @helpers = {}
-          @field_manifest.helpers.each {|helper_name, helper_manifest|
-            @helpers[helper_name] = HelperFactory.factory self, helper_manifest
-          }
-          @options = {'data-model' => @field_manifest.model_name}
-        end
-        
-        def mounted
-          @form.mounted ? 0 : 1
-        end
-        
-        def mount_option
-          {'mount' => self.mounted}
-        end
-        
-        def item
-          @form.item
-        end
-        
-        def value
-          self.item.attributes[@field_manifest.column_name]
-        end
-        
-        def options tag_options = {}
-          self.item.field_tag_attributes(@field_manifest.column_name, tag_options).merge(self.mount_option)
-        end
-        
-        def form_field_name
-          @field_manifest.form_field_name
-        end
-        
-        def form_name
-          @form.form_name
-        end
-        
-        def template_dir
-          @form.template_dir + 'field/'
-        end
-        
-        def template_file_name
-          @field_manifest.type
-        end
-        
-        def template_name
-          self.template_dir + self.template_file_name
-        end
-        
-        def row_break_template_dir
-          @form.template_dir + 'row_break/'
-        end
-        
-        def row_break_template_file_name
-          if @field_manifest.row_break
-            'br'
-          else
-            'no_break'
-          end
-        end
-        
-        def row_break_template_name
-          self.row_break_template_dir + self.row_break_template_file_name
-        end
-        
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper.rb b/lib/manifest/local/view/form/field/helper.rb
deleted file mode 100644 (file)
index bc3210f..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-require_dependency "manifest/local/view/form/field/helper/base"
-require_dependency "manifest/local/view/form/field/helper/size"
-require_dependency "manifest/local/view/form/field/helper/tail_angle"
-require_dependency "manifest/local/view/form/field/helper/color"
-require_dependency "manifest/local/view/form/field/helper/popup"
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        class HelperFactory
-          include HelperModule
-          @@types = {
-            'size' => Size, 'tail_angle' => TailAngle, 'color' => Color, 
-            'popup' => Popup
-          }
-          def self.factory field, my_manifest
-            type = my_manifest.type
-            my_class = @@types[type]
-            raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > helper > #{type}\n" unless my_class
-            my_class.new(field, my_manifest)
-          end
-          
-        end
-        
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper/base.rb b/lib/manifest/local/view/form/field/helper/base.rb
deleted file mode 100644 (file)
index a2f628a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module HelperModule
-          class Base
-            attr :field, :helper_manifest
-            
-            def initialize field, helper_manifest
-              @field = field
-              @helper_manifest = helper_manifest
-            end
-            
-            def type
-              @helper_manifest.type
-            end
-            
-            def path
-              @helper_manifest.path
-            end
-            
-            def form
-              @field.form
-            end
-            
-            def template_dir
-              self.form.template_dir + 'helper/'
-            end
-            
-            def template_file_name
-              @helper_manifest.file_name
-            end
-            
-            def template_name
-              self.template_dir + self.template_file_name
-            end
-            
-            def form_name
-              @field.form_name
-            end
-            
-            def field_name
-              @field.field_name
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper/color.rb b/lib/manifest/local/view/form/field/helper/color.rb
deleted file mode 100644 (file)
index 66e66d8..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module HelperModule
-          class Color < Base
-            def wrapper
-              @helper_manifest.wrapper
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper/popup.rb b/lib/manifest/local/view/form/field/helper/popup.rb
deleted file mode 100644 (file)
index a525c23..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module HelperModule
-          class Popup < Base
-            attr :source
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper/size.rb b/lib/manifest/local/view/form/field/helper/size.rb
deleted file mode 100644 (file)
index dc9127a..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module HelperModule
-          class Size < Base
-            
-            def dom_class
-              @helper_manifest.dom_class
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/helper/tail_angle.rb b/lib/manifest/local/view/form/field/helper/tail_angle.rb
deleted file mode 100644 (file)
index b271692..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module HelperModule
-          class TailAngle < Base
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/label.rb b/lib/manifest/local/view/form/field/label.rb
deleted file mode 100644 (file)
index eb80b1d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-require_dependency "manifest/local/view/form/field/label/label"\r
-module Manifest\r
-  module View\r
-    module FormModule\r
-      module FieldModule\r
-        class LabelFactory\r
-          include LabelModule\r
-          @@types = {\r
-            'default' => Default, 'none' => None\r
-          }\r
-          def self.factory field, my_manifest\r
-            type = my_manifest.type\r
-            my_class = @@types[type]\r
-            raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > label > #{type}\n" unless my_class\r
-            my_class.new(field, my_manifest)\r
-          end\r
-          \r
-        end\r
-        \r
-      end\r
-    end\r
-  end\r
-end\r
diff --git a/lib/manifest/local/view/form/field/label/label.rb b/lib/manifest/local/view/form/field/label/label.rb
deleted file mode 100644 (file)
index d7b776b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module LabelModule
-          class Base
-            attr :field, :label_manifest
-            
-            def initialize field, label_manifest
-              @field = field
-              @label_manifest = label_manifest
-            end
-            
-            def form
-              @field.form
-            end
-            
-            def manifest
-              self.form.manifest
-            end
-            
-            def form_name
-              self.form.form_name
-            end
-            
-            def model
-              self.form.model
-            end
-            
-            def item
-              self.form.item
-            end
-            
-            def model_name
-              @label_manifest.model_name
-            end
-            
-            def column_name
-              @label_manifest.column_name
-            end
-            
-            def template_dir
-              self.form.template_dir + 'label/'
-            end
-            
-            def template_file_name
-              raise "undefined template_file_name\n"
-            end
-            
-            def template_name
-              self.template_dir + self.template_file_name
-            end
-            
-            def label_row_break_template_dir
-              self.form.template_dir + 'label_row_break/'
-            end
-            
-            def label_row_break_template_file_name
-              if @label_manifest.row_break
-                'br'
-              else
-                'no_break'
-              end
-            end
-            
-            def label_row_break_template_name
-              self.label_row_break_template_dir + self.label_row_break_template_file_name
-            end
-            
-          end
-          
-          class Default < Base
-            def template_file_name
-              'default'
-            end
-            
-            def label_name
-              'activerecord.attributes.' + self.model_name + '.' +  self.column_name
-            end
-            
-          end
-          
-          class None < Base
-            def template_file_name
-              'none'
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag.rb b/lib/manifest/local/view/form/field/tag.rb
deleted file mode 100644 (file)
index 48c1539..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-require_dependency "manifest/local/view/form/field/tag/base"\r
-require_dependency "manifest/local/view/form/field/tag/text"\r
-require_dependency "manifest/local/view/form/field/tag/number"\r
-require_dependency "manifest/local/view/form/field/tag/text_area"\r
-require_dependency "manifest/local/view/form/field/tag/select"\r
-require_dependency "manifest/local/view/form/field/tag/hidden"\r
-module Manifest\r
-  module View\r
-    module FormModule\r
-      module FieldModule\r
-        class TagFactory\r
-          include TagModule\r
-          @@types = {\r
-            'text' => TextTag, 'number' => NumberTag, 'text_area' => TextAreaTag, \r
-            'select' => SelectTag, 'hidden' => HiddenTag\r
-          }\r
-          def self.factory field, my_manifest\r
-            type = my_manifest.type\r
-            my_class = @@types[type]\r
-            raise "undefined class for local view forms > #{field.form_name} > fields > #{field.field_name} > tag > #{type}\n" unless my_class\r
-            my_class.new(field, my_manifest)\r
-          end\r
-          \r
-        end\r
-        \r
-      end\r
-    end\r
-  end\r
-end\r
diff --git a/lib/manifest/local/view/form/field/tag/base.rb b/lib/manifest/local/view/form/field/tag/base.rb
deleted file mode 100644 (file)
index 3389660..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class Base
-            attr :field, :tag_manifest
-            
-            def initialize field, tag_manifest
-              @field = field
-              @tag_manifest = tag_manifest
-            end
-            
-            def form_field_name
-              @field.form_field_name
-            end
-            
-            def value
-              @field.value
-            end
-            
-            def options
-              @field.options @tag_manifest.options
-            end
-            
-            def form
-              @field.form
-            end
-            
-            def manifest
-              self.form.manifest
-            end
-            
-            def form_name
-              self.form.form_name
-            end
-            
-            def model
-              self.form.model
-            end
-            
-            def item
-              self.form.item
-            end
-            
-            def model_name
-              @label_manifest.model_name
-            end
-            
-            def column_name
-              @label_manifest.column_name
-            end
-            
-            def template_dir
-              self.form.template_dir + 'tag/'
-            end
-            
-            def template_file_name
-              raise "undefined template_file_name\n"
-            end
-            
-            def template_name
-              self.template_dir + self.template_file_name
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag/hidden.rb b/lib/manifest/local/view/form/field/tag/hidden.rb
deleted file mode 100644 (file)
index 93476d0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class HiddenTag < Base
-            def template_file_name
-              'hidden'
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag/number.rb b/lib/manifest/local/view/form/field/tag/number.rb
deleted file mode 100644 (file)
index 8b96c10..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class NumberTag < Base
-            def template_file_name
-              'number'
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag/select.rb b/lib/manifest/local/view/form/field/tag/select.rb
deleted file mode 100644 (file)
index 36f7dd6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class SelectTag < Base
-            def template_file_name
-              'select'
-            end
-            
-            def select_item_name
-              model = ::Manifest.manifest.models[@field.field_manifest.model_name]
-              attr = model.attributes[@field.field_manifest.column_name]
-              attr.source.select_item_name
-            end
-            
-            def items
-              ::Manifest.manifest.system_resources.select_items[self.select_item_name]
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag/text.rb b/lib/manifest/local/view/form/field/tag/text.rb
deleted file mode 100644 (file)
index ed71478..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class TextTag < Base
-            def template_file_name
-              'text'
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/form/field/tag/text_area.rb b/lib/manifest/local/view/form/field/tag/text_area.rb
deleted file mode 100644 (file)
index 23cfdfa..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-module Manifest
-  module View
-    module FormModule
-      module FieldModule
-        module TagModule
-          class TextAreaTag < Base
-            def template_file_name
-              'text_area'
-            end
-            
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group.rb b/lib/manifest/local/view/list_group.rb
deleted file mode 100644 (file)
index b689072..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-require_dependency "manifest/local/view/list_group/list/base"
-require_dependency "manifest/local/view/list_group/list/public"
-require_dependency "manifest/local/view/list_group/list/private"
-require_dependency "manifest/local/view/list_group/list/system_resource"
-require_dependency "manifest/local/view/list_group/list/filter"
-require_dependency "manifest/local/view/list_group/list/through_filter"
-require_dependency "manifest/local/view/list_group/list/foreign_filter"
-require_dependency "manifest/local/view/list_group/list/play"
-module Manifest
-  module View
-    class ListGroup
-      include ListGroupModule
-      
-      def self.types
-        {
-          'public' => PublicList, 'private' => PrivateList, 'system_resource' => SystemResourceList,
-          'filter' => FilterList, 'through_filter' => ThroughFilterList, 'foreign_filter' => ForeignFilterList, 
-          'play' => PlayList
-        }
-      end
-      
-      def self.list item_name, list_name
-        list_group_manifest = Manifest.manifest.list_groups[item_name]
-        list_manifest = list_group_manifest.lists[list_name]
-        self.types[list_manifest.type].new item_name, list_name
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/base.rb b/lib/manifest/local/view/list_group/list/base.rb
deleted file mode 100644 (file)
index 9adb6f4..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class Base
-        class ListResult
-          attr :items, :paginate
-          def initialize items, paginate
-            @items = items
-            @paginate = paginate
-          end
-          
-        end
-        
-        attr :item_name, :list_name, 
-          :model_manifest, :model_list_manifest, :model, 
-          :default_page_size, :max_page_size
-        def initialize item_name, list_name
-          @item_name = item_name
-          @list_name = list_name
-          self.init
-        end
-        
-        def init
-          @list_group_manifest = ::Manifest.manifest.list_groups[@item_name]
-          @list_manifest = @list_group_manifest.lists[@list_name]
-          @where = @list_manifest.where
-          @includes = @list_manifest.includes
-          @model_manifest = ::Manifest.manifest.models[@item_name]
-          @model_list_manifest = @model_manifest.list
-          @model = ::Manifest.item_name_to_model @item_name
-          @table_name = @model.table_name
-        end
-        
-        def model_name
-          @model.model_name
-        end
-        
-        def model_manifest
-          @model.model_manifest
-        end
-        
-        def page_number prm = nil
-          page = prm.to_i
-          page = 1 if page < 1
-          page
-        end
-        
-        def page_size prm
-          page_size = prm.to_i
-          page_size = self.max_page_size if page_size > self.max_page_size
-          page_size = self.default_page_size if page_size < 1
-          page_size
-        end
-        
-        def default_page_size
-          @model_list_manifest.default_page_size
-        end
-        
-        def max_page_size
-          @model_list_manifest.max_page_size
-        end
-        
-        def base_where_condition
-          method_name = @where.conditions do |name|
-            name
-          end
-          @model.__send__ method_name
-        end
-        
-        def where_condition
-          base_where_condition
-        end
-        
-        def include_hash
-          @includes.includes
-        end
-        
-        def order
-          @model.list_order
-        end
-        
-        def items operators, options, offset, page_size
-          @model.where(self.where_condition).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
-        end
-        
-        def count operators, options
-          @model.where(self.where_condition).includes(self.include_hash).count
-        end
-        
-        def paginate count, offset, page_size
-          c = count ? count.to_i : 0
-          Kaminari.paginate_array(Array.new(c, nil)).page(offset).per(page_size)
-        end
-        
-        def open operators, options
-          page = self.page_number(options[:page]) 
-          page_size = self.page_size options[:page_size]
-          offset = (page -1) * page_size
-          items = self.items operators, options, offset, page_size
-          count = self.count operators, options
-          pg = self.paginate count, offset, page_size
-          ListResult.new items, pg
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/filter.rb b/lib/manifest/local/view/list_group/list/filter.rb
deleted file mode 100644 (file)
index 2e4d7b4..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class FilterList < Base
-        attr :filter_key, :filter_item_name
-        
-        def init
-          super
-          @filter_key = @list_manifest.filter_key
-          @filter_item_name = @list_manifest.filter_item_name
-        end
-        
-        def where_condition filter_item_id
-          w = self.base_where_condition
-          w += ' and ' unless w.blank?
-          [w + @table_name + '.' + @filter_key + ' = ?', filter_item_id] 
-        end
-        
-        def include_hash
-          w = super
-          w.merge!({@filter_item_name => {} }) unless w[@filter_item_name]
-          w
-        end
-        
-        def items operators, options, offset, page_size
-          filter_item_id = options[:id]
-          @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
-        end
-        
-        def count operators, options
-          filter_item_id = options[:id]
-          @model.where(self.where_condition(filter_item_id)).includes(self.include_hash).count
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/foreign_filter.rb b/lib/manifest/local/view/list_group/list/foreign_filter.rb
deleted file mode 100644 (file)
index 2ccee25..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class ForeignFilterList < FilterList
-        
-        def init
-          super
-        end
-        
-        def where_condition filter_item_id
-          w = self.base_where_condition
-          w += ' and ' unless w.blank?
-          [w + @filter_table_name + '.id' + ' = ?', filter_item_id] 
-        end
-        
-        def include_hash
-          @model_manifest.tree[@tree_name].include_hash
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/play.rb b/lib/manifest/local/view/list_group/list/play.rb
deleted file mode 100644 (file)
index dbba790..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class PlayList
-        attr :model, :list_name, :list_manifest, :type, 
-          :default_page_size, :max_page_size
-        
-        def initialize model, list_name, list_manifest
-          @model = model
-          @list_name = list_name
-          @list_manifest = list_manifest
-          self.set_default
-          self.init
-        end
-        
-        def set_default
-          @list_manifest['args'] ||= {}
-          return
-          @default_page_size = @conf['default_page_size'] || 25
-          @max_page_size = @conf['max_page_size'] || 100
-          @params_offset = params_offset
-          @params_count = params_count
-          @list_list_conf = @manifest.list(@item_name).lists[list_name] || {}
-          @model_name = @list_list_conf['model']
-          @filter_key = @list_list_conf['filter_key']
-          @model = @model_name.classify.constantize
-          @table_name = @model.table_name
-          if @model.content?
-            @owner_model = @model.owner_model
-            @owner_table_name = @owner_model.table_name if @owner_model
-          end
-        end
-        
-        def init
-          @type = @list_manifest['type']
-          @args = @list_manifest['args']
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/private.rb b/lib/manifest/local/view/list_group/list/private.rb
deleted file mode 100644 (file)
index f025193..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class PrivateList < Base
-        
-        def init
-          super
-        end
-        
-        def where_condition operators
-          case @model.owner_type
-          when :author
-            operator = operators.author
-          when :artist
-            operator = operators.artist
-          end
-          t = if @owner_model
-            if @owner_model.owner_model
-              @owner_model.owner_model.table_name
-            else
-              @owner_model.table_name
-            end
-          else
-            @table_name
-          end
-          @where.conditions do |name|
-            [t + '.' + @model.owner_type.to_s + '_id = ?', operator.id]
-          end
-        end
-      
-        def items operators, options, offset, page_size
-          @model.where(self.where_condition(operators)).includes(self.include_hash).order(self.order).offset(offset).limit(page_size)
-        end
-        
-        def count operators, options
-          filter_item_id = options[:id]
-          @model.where(self.where_condition(operators)).includes(self.include_hash).count
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/public.rb b/lib/manifest/local/view/list_group/list/public.rb
deleted file mode 100644 (file)
index 4b37f7d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class PublicList < Base
-        
-        def init
-          super
-        end
-        
-        def order
-          @model.list_order
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/system_resource.rb b/lib/manifest/local/view/list_group/list/system_resource.rb
deleted file mode 100644 (file)
index 321746e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class SystemResourceList < Base
-        
-        def init
-          super
-        end
-        
-        def items operators, options, offset, page_size
-          # enable_list does not work when configured auto load in development.rb
-          # auto loader undefing MODEL at reload manifest file
-          # @model.enable_list
-          super
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/list_group/list/through_filter.rb b/lib/manifest/local/view/list_group/list/through_filter.rb
deleted file mode 100644 (file)
index b400894..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-module Manifest
-  module View
-    module ListGroupModule
-      class ThroughFilterList < FilterList
-        attr :through
-        
-        def init
-          super
-          @through = @list_manifest.through
-          @filter_table_name = ::Manifest.manifest.models[@filter_item_name].classify.table_name
-        end
-        
-        def include_hash
-          {@through => {@filter_item_name => {}} }
-        end
-        
-        def where_condition filter_item_id
-          w = self.base_where_condition
-          w += ' and ' unless w.blank?
-          [w + @filter_table_name + '.id' + ' = ?', filter_item_id] 
-        end
-        
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler.rb b/lib/manifest/local/view/profiler.rb
deleted file mode 100644 (file)
index ffb9efd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-require_dependency "manifest/local/view/profiler/header"
-require_dependency "manifest/local/view/profiler/column"
-require_dependency "manifest/local/view/profiler/association"
-module Manifest
-  module View
-    class Profiler
-      include ProfilerModule
-      attr :profiler_manifest, :item_name, :item, :operators, :template_dir, 
-        :header, :columns, :associations
-      def initialize item_name, item, operators
-        @item_name = item_name
-        @item = item
-        @operators = operators
-        @profiler_manifest = Manifest.manifest.profilers[@item_name]
-        @template_dir = 'templates/r/profiler/'
-        @header = Header.new self
-        @columns = @profiler_manifest.column_names.map {|column_name|
-          Column.new self, column_name
-        }
-        @associations = Association.new self, @profiler_manifest.associations
-      end
-      
-      def model
-        ::Manifest::item_name_to_model @item_name
-      end
-      
-      def template_file_name
-        "profiler"
-      end
-      
-      def template_name
-        self.template_dir + self.template_file_name
-      end
-      
-      def header_template_file_name
-        "header"
-      end
-      
-      def header_template_name
-        self.template_dir + self.header_template_file_name
-      end
-      
-      def columns_template_file_name
-        "columns"
-      end
-      
-      def columns_template_name
-        self.template_dir + self.columns_template_file_name
-      end
-      
-      def associations_template_file_name
-        "associations"
-      end
-      
-      def associations_template_name
-        self.template_dir + self.associations_template_file_name
-      end
-      
-      def image_dir
-        '/images/'
-      end
-      
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler/association.rb b/lib/manifest/local/view/profiler/association.rb
deleted file mode 100644 (file)
index 35cde9c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-require_dependency "manifest/local/view/profiler/association/belongs_to"
-require_dependency "manifest/local/view/profiler/association/has_many"
-require_dependency "manifest/local/view/profiler/association/has_one"
-module Manifest
-  module View
-    module ProfilerModule
-      class Association
-        include AssociationModule
-        attr :profiler, :association_manifest,
-          :belongs_to, :has_many, :has_one
-        def initialize profiler, association_manifest
-          @profiler = profiler
-          @association_manifest = association_manifest
-          @belongs_to = @association_manifest.belongs_to.map {|belongs_to_manifest|
-            BelongsTo.new self, belongs_to_manifest
-          }
-          @has_many = @association_manifest.has_many.map {|list_name|
-            HasMany.new self, list_name
-          }
-          @has_one = @association_manifest.has_one.map {|list_name|
-            HasOne.new self, list_name
-          }
-        end
-        
-        def item
-          @profiler.item
-        end
-        
-        def model_manifest
-          ::Manifest.manifest.models[@profiler.item_name]
-        end
-        
-        def model_attribute_manifest
-          model_manifest.attributes[@column_name]
-        end
-        
-        def template_dir 
-          @profiler.template_dir
-        end
-        
-        def template_file_name
-          "associations"
-        end
-        
-        def template_name
-          self.template_dir + self.template_file_name
-        end
-        
-        def each_belongs_to_filer
-          @belongs_to.each {|b|
-            yield b.filer
-          }
-        end
-        
-        def each_has_many_filer
-          @has_many.each {|h|
-            yield h.filer
-          }
-        end
-        
-        def each_has_one_filer
-          @has_one.each {|h|
-            yield h.filer
-          }
-        end
-        
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler/association/belongs_to.rb b/lib/manifest/local/view/profiler/association/belongs_to.rb
deleted file mode 100644 (file)
index 8955be0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-module Manifest
-  module View
-    module ProfilerModule
-      module AssociationModule
-        class BelongsTo
-          attr :association, :belongs_to_manifest
-          def initialize association, belongs_to_manifest
-            @association = association
-            @belongs_to_manifest = belongs_to_manifest
-          end
-          
-          def item
-            self.profiler.item
-          end
-          
-          def parent_model
-            @belongs_to_manifest.model
-          end
-          
-          def parent_id
-            self.item.attributes[self.model_belongs_to_manifest.id_column]
-          end
-          
-          def filer
-            filer = nil
-            begin
-              r = self.parent_model.show(self.parent_id, self.profiler.operators)
-             if r
-                filer = ::Manifest::View::Filer.new self.parent_model.item_name, [r], nil, self.profiler.operators
-              end
-           rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
-            end
-            filer
-          end
-          
-          def model_manifest
-            ::Manifest.manifest.models[self.profiler.item_name]
-          end
-          
-          def model_belongs_to_manifest
-            self.model_manifest.associations.belongs_to[@belongs_to_manifest.model_name]
-          end
-          
-          def profiler
-            @association.profiler
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler/association/has_many.rb b/lib/manifest/local/view/profiler/association/has_many.rb
deleted file mode 100644 (file)
index 46ea719..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-module Manifest
-  module View
-    module ProfilerModule
-      module AssociationModule
-        class HasMany
-          attr :association, :has_many_manifest
-          def initialize association, has_many_manifest
-            @association = association
-            @has_many_manifest = has_many_manifest
-          end
-          
-          def item
-            self.profiler.item
-          end
-          
-          def has_many_model
-            @has_many_manifest.model
-          end
-          
-          def filer
-            list_result = @has_many_manifest.list.open(self.profiler.operators, {:id => self.item.id, :page => 1, :page_size => 3})
-            items = list_result.items 
-            ::Manifest::View::Filer.new self.has_many_model.item_name, items, nil, self.profiler.operators
-          end
-          
-          def profiler
-            @association.profiler
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler/association/has_one.rb b/lib/manifest/local/view/profiler/association/has_one.rb
deleted file mode 100644 (file)
index 3b53201..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-module Manifest
-  module View
-    module ProfilerModule
-      module AssociationModule
-        class HasOne
-          attr :association, :has_one_manifest
-          def initialize association, has_one_manifest
-            @association = association
-            @has_one_manifest = has_one_manifest
-          end
-          
-          def item
-            self.profiler.item
-          end
-          
-          def has_one_model
-            @has_one_manifest.model
-          end
-          
-          def filer
-            list_result = @has_one_manifest.list.open(self.profiler.operators, {:id => self.item.id})
-            items = list_result.items 
-            ::Manifest::View::Filer.new self.has_one_model.item_name, items, nil, self.profiler.operators
-          end
-          
-          def profiler
-            @association.profiler
-          end
-          
-        end
-      end
-    end
-  end
-end
diff --git a/lib/manifest/local/view/profiler/column.rb b/lib/manifest/local/view/profiler/column.rb
deleted file mode 100644 (file)
index 9a7dc0a..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-module Manifest
-  module View
-    module ProfilerModule
-      class Column
-        attr :profiler, :column_name
-        def initialize profiler, column_name
-          @profiler = profiler
-          @column_name = column_name
-        end
-        
-        def label
-          self.item.class.human_attribute_name(@column_name)
-        end
-        
-        def value
-          self.item.attributes[@column_name]
-        end
-        
-        def note
-        end
-        
-        def date?
-          case model_attribute_manifest.type
-          when 'datetime'
-            if self.value
-              true
-            else
-              false
-            end
-          else
-            false
-          end
-        end
-        
-        def note?
-          if self.model_attribute_source_manifest
-            case self.model_attribute_source_manifest.type
-            when 'magic_number'
-              true
-            when 'model'
-              false
-            else
-              false
-            end
-          else
-            false
-          end
-        end
-        
-        def select_item_name
-          self.model_attribute_source_manifest.select_item_name
-        end
-        
-        def item
-          @profiler.item
-        end
-        
-        def model_manifest
-          ::Manifest.manifest.models[@profiler.item_name]
-        end
-        
-        def model_attribute_manifest
-          self.model_manifest.attributes[@column_name]
-        end
-        
-        def model_attribute_source_manifest
-          self.model_attribute_manifest.source
-        end
-        
-        def template_dir 
-          @profiler.template_dir
-        end
-        
-        def template_file_name
-          "column"
-        end
-        
-        def template_name
-          self.template_dir + self.template_file_name
-        end
-        
-        def value_template_dir 
-          @profiler.template_dir + "column_value/"
-        end
-        
-        def value_template_file_name
-          if self.date?
-            'date'
-          else
-            'default'
-          end
-        end
-        
-        def value_template_name
-          self.value_template_dir + self.value_template_file_name
-        end
-        
-        def note_template_dir 
-          @profiler.template_dir + "column_note/"
-        end
-        
-        def note_template_file_name
-          if self.note?
-            'default'
-          else
-            'none'
-          end
-        end
-        
-        def note_template_name
-          self.note_template_dir + self.note_template_file_name
-        end
-        
-      end
-    end
-  end
-end
-  
diff --git a/lib/manifest/local/view/profiler/header.rb b/lib/manifest/local/view/profiler/header.rb
deleted file mode 100644 (file)
index 80a1d15..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-module Manifest
-  module View
-    module ProfilerModule
-      class Header
-        attr :profiler
-        def initialize profiler
-          @profiler = profiler
-        end
-        
-        def filer
-          ::Manifest::View::Filer.new @profiler.item_name, [@profiler.item], nil, @profiler.operators
-        end
-        
-      end
-      
-    end
-  end
-end
-
index 866ed0d..17a9680 100644 (file)
@@ -2,28 +2,24 @@ module Manifest
   class Manifest
     cattr_accessor :manifest
     attr :system_resources, :magic_numbers,
-      :controllers, :models, 
-      :list_groups, :profilers, :filers, :forms
+      :controllers, :models
     # call me before load routes.rb
     # routes.rb needs engine_resources manifest in system_resources
     # ex. it's adding license_groups routes
-    def initialize manifest
-      @manifest = manifest || {}
-      @system_resources = SystemResource.new(self, SystemResource.set_default(@manifest['system_resources']))
-      @magic_numbers = @manifest['magic_numbers']
+    def initialize global_json
+      @global_json = global_json || {}
+      @system_resources = SystemResource.new(self, SystemResource.set_default(@global_json['system_resources']))
+      @magic_numbers = @global_json['magic_numbers']
     end
     
     def init
       # managers can't initialize before load  application.rb
       return unless defined? ::Pettanr
-      @controllers = Controller.manager(self, @manifest['controllers'] || {})
-      @models = Model.manager(self, @manifest['models'] || {})
-      @locals = @manifest['locals']
-      @list_groups = ListGroup.manager(self, @locals['list_groups'] || {})
-      @filers = Filer.manager(self, @locals['filers'] || {})
-      @profilers = Profiler.manager(self, @locals['profilers'] || {})
-      @forms = Form.base_manager(self, @locals['forms'] || {})
-      @forms.merge(Form.extend_manager(self, @locals['forms'] || {}))
+      @controllers = Controller.manager(self, @global_json['controllers'] || {})
+      @models = Model.manager(self, @global_json['models'] || {})
+    end
+    
+    def system_resources_init
       @system_resources.init
     end
     
@@ -40,8 +36,8 @@ module Manifest
       Manifest.manifest
     end
     
-    def load json
-      Manifest.manifest = Manifest.new json
+    def load global_json
+      Manifest.manifest = Manifest.new global_json
     end
     
     def item_name_to_model item_name
index 67561de..5a3f4bf 100644 (file)
@@ -40,7 +40,7 @@ module Manifest
           resource_model_name = source_manifest.resource_model_name
           resource_list_name = source_manifest.resource_list_name
           caption = source_manifest.caption_name
-          list = ::Manifest::View::ListGroup.list resource_model_name, resource_list_name
+          list = Locmare::ListGroup.list resource_model_name, resource_list_name
           r = list.open nil, {}
           @select_items[source_manifest.select_item_name] = 
             r.items.map {|item| [item.attributes[caption], item.id]}
diff --git a/public/local_manifest.json b/public/local_manifest.json
new file mode 100644 (file)
index 0000000..56bd0d6
--- /dev/null
@@ -0,0 +1,2712 @@
+{\r
+  "list_groups": {\r
+    "scroll": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_author": {\r
+          "type": "filter"\r
+        },\r
+        "by_panel": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "scroll_panels"\r
+          }\r
+        },\r
+        "play": {\r
+          "type": "play",\r
+          "args": {\r
+            "filter_item_name": "scroll",\r
+            "filter_model_name": "scroll_panel",\r
+            "filter_key": "scroll_id"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "scroll_panel": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_scroll": {\r
+          "type": "filter"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "scroll_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "comic": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_author": {\r
+          "type": "filter"\r
+        }\r
+      }\r
+    },\r
+    "story": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_comic": {\r
+          "type": "filter"\r
+        },\r
+        "by_sheet": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "story_sheets"\r
+          }\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "comic_owner"\r
+          }\r
+        },\r
+        "play": {\r
+          "type": "play"\r
+        }\r
+      }\r
+    },\r
+    "story_sheet": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_story": {\r
+          "type": "filter"\r
+        },\r
+        "by_sheet": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "comic_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "sheet": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_story": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "story_sheets"\r
+          }\r
+        },\r
+        "by_panel": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "sheet_panels"\r
+          }\r
+        },\r
+        "by_author": {\r
+          "type": "filter"\r
+        },\r
+        "play": {\r
+          "type": "play"\r
+        }\r
+      }\r
+    },\r
+    "sheet_panel": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_sheet": {\r
+          "type": "filter"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "sheet_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "panel": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_scroll": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "scroll_panels"\r
+          }\r
+        },\r
+        "by_sheet": {\r
+          "type": "through_filter",\r
+          "args": {\r
+            "through": "sheet_panels"\r
+          }\r
+        },\r
+        "by_author": {\r
+          "type": "filter"\r
+        },\r
+        "by_speech_balloon_template": {\r
+          "type": "through_filter"\r
+        }\r
+      }\r
+    },\r
+    "panel_picture": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "speech_balloon": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_speech_balloon_template": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "speech": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_speech_balloon": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "balloon": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "by_speech_balloon": {\r
+          "type": "filter"\r
+        },\r
+        "by_writing_format": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "ground_picture": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "ground_color": {\r
+      "tree_name": "owner",\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_panel": {\r
+          "type": "filter"\r
+        },\r
+        "by_author": {\r
+          "type": "foreign_filter",\r
+          "args": {\r
+            "tree_name": "panel_owner"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "original_picture": {\r
+      "lists": {\r
+        "private": {\r
+          "type": "private"\r
+        }\r
+      }\r
+    },\r
+    "picture": {},\r
+    "resource_picture": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "private": {\r
+          "type": "private"\r
+        },\r
+        "by_original_picture": {\r
+          "type": "filter"\r
+        },\r
+        "by_license": {\r
+          "type": "filter"\r
+        },\r
+        "by_artist": {\r
+          "type": "filter"\r
+        }\r
+      }\r
+    },\r
+    "speech_balloon_template": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "select_items": {\r
+          "type": "system_resource"\r
+        }\r
+      }\r
+    },\r
+    "writing_format": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "select_items": {\r
+          "type": "system_resource"\r
+        },\r
+        "by_system_picture": {\r
+          "type": "filter"\r
+        }\r
+      }\r
+    },\r
+    "license_group": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "select_items": {\r
+          "type": "system_resource"\r
+        }\r
+      }\r
+    },\r
+    "license": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        },\r
+        "by_license_group": {\r
+          "type": "filter"\r
+        },\r
+        "by_system_picture": {\r
+          "type": "filter"\r
+        }\r
+      }\r
+    },\r
+    "author": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "artist": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    },\r
+    "system_picture": {\r
+      "lists": {\r
+        "public": {\r
+          "type": "public"\r
+        }\r
+      }\r
+    }\r
+  },\r
+  "profilers": {\r
+    "scroll": {\r
+      "column_names": [\r
+        "title",\r
+        "description",\r
+        "visible",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "author"\r
+        ],\r
+        "has_many": [\r
+          "scroll_panels.by_scroll",\r
+          "panels.by_scroll"\r
+        ]\r
+      }\r
+    },\r
+    "scroll_panel": {\r
+      "column_names": [\r
+        "scroll_id",\r
+        "panel_id",\r
+        "t",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "scroll",\r
+          "panel"\r
+        ]\r
+      }\r
+    },\r
+    "comic": {\r
+      "column_names": [\r
+        "title",\r
+        "description",\r
+        "visible",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "author"\r
+        ],\r
+        "has_many": [\r
+          "stories.by_comic"\r
+        ]\r
+      }\r
+    },\r
+    "story": {\r
+      "column_names": [\r
+        "comic_id",\r
+        "title",\r
+        "description",\r
+        "t",\r
+        "visible"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "comic"\r
+        ],\r
+        "has_many": [\r
+          "story_sheets.by_story",\r
+          "sheets.by_story"\r
+        ]\r
+      }\r
+    },\r
+    "story_sheet": {\r
+      "column_names": [\r
+        "story_id",\r
+        "sheet_id",\r
+        "t",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "story",\r
+          "sheet"\r
+        ]\r
+      }\r
+    },\r
+    "sheet": {\r
+      "column_names": [\r
+        "caption",\r
+        "width",\r
+        "height",\r
+        "visible",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "author"\r
+        ],\r
+        "has_many": [\r
+          "story_sheets.by_sheet",\r
+          "stories.by_sheet",\r
+          "sheet_panels.by_sheet",\r
+          "panels.by_sheet"\r
+        ]\r
+      }\r
+    },\r
+    "sheet_panel": {\r
+      "column_names": [\r
+        "sheet_id",\r
+        "panel_id",\r
+        "x",\r
+        "y",\r
+        "z",\r
+        "t",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "sheet",\r
+          "panel"\r
+        ]\r
+      }\r
+    },\r
+    "panel": {\r
+      "column_names": [\r
+        "width",\r
+        "height",\r
+        "border",\r
+        "caption",\r
+        "publish",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "author"\r
+        ],\r
+        "has_many": [\r
+          "scroll_panels.by_panel",\r
+          "scrolls.by_panel",\r
+          "sheet_panels.by_panel",\r
+          "sheets.by_panel",\r
+          "panel_pictures.by_panel",\r
+          "speech_balloons.by_panel",\r
+          "ground_pictures.by_panel",\r
+          "ground_colors.by_panel"\r
+        ]\r
+      }\r
+    },\r
+    "panel_picture": {\r
+      "column_names": [\r
+        "panel_id",\r
+        "picture_id",\r
+        "caption",\r
+        "x",\r
+        "y",\r
+        "width",\r
+        "height",\r
+        "link",\r
+        "z",\r
+        "t"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "panel"\r
+        ]\r
+      }\r
+    },\r
+    "speech_balloon": {\r
+      "column_names": [\r
+        "panel_id",\r
+        "speech_balloon_template_id",\r
+        "classname",\r
+        "z",\r
+        "t",\r
+        "settings",\r
+        "caption"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "panel"\r
+        ],\r
+        "has_one": [\r
+          "balloon.by_speech_balloon",\r
+          "speech.by_speech_balloon"\r
+        ]\r
+      }\r
+    },\r
+    "speech": {\r
+      "column_names": [\r
+        "speech_balloon_id",\r
+        "writing_format_id",\r
+        "content",\r
+        "font_size",\r
+        "text_align",\r
+        "fore_color",\r
+        "x",\r
+        "y",\r
+        "width",\r
+        "height",\r
+        "quotes",\r
+        "settings"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "speech_balloon",\r
+          "writing_format"\r
+        ]\r
+      }\r
+    },\r
+    "balloon": {\r
+      "column_names": [\r
+        "speech_balloon_id",\r
+        "system_picture_id",\r
+        "x",\r
+        "y",\r
+        "width",\r
+        "height",\r
+        "r",\r
+        "settings"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "speech_balloon",\r
+          "system_picture"\r
+        ]\r
+      }\r
+    },\r
+    "ground_picture": {\r
+      "column_names": [\r
+        "panel_id",\r
+        "picture_id",\r
+        "caption",\r
+        "repeat",\r
+        "x",\r
+        "y",\r
+        "z",\r
+        "t"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "panel"\r
+        ]\r
+      }\r
+    },\r
+    "ground_color": {\r
+      "column_names": [\r
+        "panel_id",\r
+        "caption",\r
+        "code",\r
+        "orientation",\r
+        "xy",\r
+        "wh",\r
+        "z",\r
+        "t"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "panel"\r
+        ]\r
+      }\r
+    },\r
+    "original_picture": {\r
+      "column_names": [\r
+        "ext",\r
+        "width",\r
+        "height",\r
+        "filesize",\r
+        "artist_id",\r
+        "md5",\r
+        "uploaded_at",\r
+        "published_at",\r
+        "stopped_at"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "artist"\r
+        ],\r
+        "has_one": [\r
+          "resource_picture.by_original_picture"\r
+        ]\r
+      }\r
+    },\r
+    "picture": {\r
+      "column_names": [\r
+        "original_picture_id",\r
+        "revision",\r
+        "ext",\r
+        "width",\r
+        "height",\r
+        "filesize",\r
+        "artist_id",\r
+        "license_id",\r
+        "md5",\r
+        "artist_name",\r
+        "credit",\r
+        "settings",\r
+        "classname"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "license",\r
+          "artist"\r
+        ]\r
+      }\r
+    },\r
+    "resource_picture": {\r
+      "column_names": [\r
+        "original_picture_id",\r
+        "revision",\r
+        "ext",\r
+        "width",\r
+        "height",\r
+        "filesize",\r
+        "artist_id",\r
+        "license_id",\r
+        "md5",\r
+        "artist_name",\r
+        "credit",\r
+        "settings",\r
+        "picture_id",\r
+        "classname"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "original_picture",\r
+          "license",\r
+          "artist"\r
+        ]\r
+      }\r
+    },\r
+    "speech_balloon_template": {\r
+      "column_names": [\r
+        "name",\r
+        "classname",\r
+        "caption",\r
+        "t",\r
+        "system_picture_id",\r
+        "settings"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "system_picture"\r
+        ]\r
+      }\r
+    },\r
+    "writing_format": {\r
+      "column_names": [\r
+        "name",\r
+        "classname",\r
+        "caption",\r
+        "system_picture_id",\r
+        "settings"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "system_picture"\r
+        ],\r
+        "has_many": []\r
+      }\r
+    },\r
+    "license_group": {\r
+      "column_names": [\r
+        "name",\r
+        "classname",\r
+        "caption",\r
+        "url"\r
+      ],\r
+      "associations": {\r
+        "has_many": [\r
+          "licenses.by_license_group"\r
+        ]\r
+      }\r
+    },\r
+    "license": {\r
+      "column_names": [\r
+        "license_group_id",\r
+        "name",\r
+        "caption",\r
+        "system_picture_id",\r
+        "url",\r
+        "settings",\r
+        "credit_pictures"\r
+      ],\r
+      "associations": {\r
+        "belongs_to": [\r
+          "license_group",\r
+          "system_picture"\r
+        ],\r
+        "has_many": [\r
+          "resource_pictures.by_license"\r
+        ]\r
+      }\r
+    },\r
+    "author": {\r
+      "column_names": [\r
+        "name",\r
+        "user_id"\r
+      ],\r
+      "associations": {\r
+        "has_many": [\r
+          "scrolls.by_author",\r
+          "scroll_panels.by_author",\r
+          "comics.by_author",\r
+          "stories.by_author",\r
+          "sheets.by_author",\r
+          "sheet_panels.by_author",\r
+          "panels.by_author",\r
+          "panel_pictures.by_author",\r
+          "speech_balloons.by_author",\r
+          "balloons.by_author",\r
+          "speeches.by_author",\r
+          "ground_pictures.by_author",\r
+          "ground_colors.by_author"\r
+        ]\r
+      }\r
+    },\r
+    "artist": {\r
+      "column_names": [\r
+        "name",\r
+        "author_id"\r
+      ],\r
+      "associations": {\r
+        "has_many": [\r
+          "resource_pictures.by_artist"\r
+        ]\r
+      }\r
+    },\r
+    "system_picture": {\r
+      "column_names": [\r
+        "ext",\r
+        "width",\r
+        "height",\r
+        "filesize",\r
+        "md5"\r
+      ],\r
+      "associations": {\r
+        "has_many": [\r
+          "licenses.by_system_picture"\r
+        ]\r
+      }\r
+    }\r
+  },\r
+  "filers": {\r
+    "scroll": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "title"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "action",\r
+            "args": {\r
+              "action_name": "play"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {}\r
+    },\r
+    "scroll_panel": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "comic": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "title"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {}\r
+    },\r
+    "story": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "method",\r
+            "args": {\r
+              "method_name": "title_with_t"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "action",\r
+            "args": {\r
+              "action_name": "play"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {}\r
+    },\r
+    "story_sheet": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "sheet": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {},\r
+          "link": {\r
+            "type": "action",\r
+            "args": {\r
+              "action_name": "play"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {}\r
+    },\r
+    "sheet_panel": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "panel": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {}\r
+    },\r
+    "panel_picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "speech_balloon": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "method",\r
+            "args": {\r
+              "method_name": "plain_scenario"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "speech": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "content"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "balloon": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "ground_picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "ground_color": {\r
+      "symbol": {\r
+        "type": "template",\r
+        "args": {\r
+          "template_name": "symbol"\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "none"\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "original_picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "method",\r
+            "args": {\r
+              "method_name": "revision"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "action",\r
+            "args": {\r
+              "action_name": "history"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "template",\r
+        "args": {\r
+          "template_name": "publish"\r
+        }\r
+      }\r
+    },\r
+    "picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "revision"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "resource_picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "speech_balloon_template": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {},\r
+      "summary": {\r
+        "type": "none"\r
+      },\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "writing_format": {\r
+      "symbol": {},\r
+      "caption": {},\r
+      "summary": {\r
+        "type": "none"\r
+      },\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "license_group": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "link": {\r
+            "type": "url_column",\r
+            "args": {\r
+              "column_name": "url"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {\r
+        "type": "none"\r
+      },\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "license": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "method",\r
+            "args": {\r
+              "method_name": "caption_with_group"\r
+            }\r
+          },\r
+          "link": {\r
+            "type": "url_column",\r
+            "args": {\r
+              "column_name": "url"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    },\r
+    "author": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "name"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "account"\r
+      }\r
+    },\r
+    "artist": {\r
+      "symbol": {},\r
+      "caption": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "column",\r
+            "args": {\r
+              "column_name": "name"\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "summary": {},\r
+      "edit": {\r
+        "type": "account"\r
+      }\r
+    },\r
+    "system_picture": {\r
+      "symbol": {\r
+        "type": "default",\r
+        "args": {\r
+          "face": {\r
+            "type": "picture"\r
+          }\r
+        }\r
+      },\r
+      "caption": {\r
+        "type": "none"\r
+      },\r
+      "summary": {\r
+        "type": "none"\r
+      },\r
+      "edit": {\r
+        "type": "none"\r
+      }\r
+    }\r
+  },\r
+  "forms": {\r
+    "base": {\r
+      "scroll": {\r
+        "fields": {\r
+          "title": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "description": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text_area"\r
+              }\r
+            }\r
+          },\r
+          "visible": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "author_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "title",\r
+          "description",\r
+          "visible",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "scroll_panel": {\r
+        "fields": {\r
+          "scroll_id": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "panel_id": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "scroll_id",\r
+          "panel_id",\r
+          "t",\r
+          "id"\r
+        ]\r
+      },\r
+      "comic": {\r
+        "fields": {\r
+          "title": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "description": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text_area"\r
+              }\r
+            }\r
+          },\r
+          "visible": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "author_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "title",\r
+          "description",\r
+          "visible",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "story": {\r
+        "fields": {\r
+          "comic_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "title": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "description": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text_area"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "visible": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "author_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "comic_id",\r
+          "title",\r
+          "description",\r
+          "visible",\r
+          "t",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "story_sheet": {\r
+        "fields": {\r
+          "story_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "sheet_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "story_id",\r
+          "sheet_id",\r
+          "t",\r
+          "id"\r
+        ]\r
+      },\r
+      "sheet": {\r
+        "fields": {\r
+          "caption": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "width": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "height": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "visible": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "author_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "caption",\r
+          "width",\r
+          "height",\r
+          "visible",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "sheet_panel": {\r
+        "fields": {\r
+          "sheet_id": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "panel_id": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "x": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "y": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "z": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "sheet_id",\r
+          "panel_id",\r
+          "x",\r
+          "y",\r
+          "z",\r
+          "t",\r
+          "id"\r
+        ]\r
+      },\r
+      "panel": {\r
+        "fields": {\r
+          "caption": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "width": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "height": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "border": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "publish": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "author_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "caption",\r
+          "width",\r
+          "height",\r
+          "border",\r
+          "publish",\r
+          "id",\r
+          "author_id"\r
+        ]\r
+      },\r
+      "panel_picture": {\r
+        "fields": {\r
+          "caption": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "x": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "y": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "width": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "helpers": {\r
+                "size": {\r
+                  "type": "size",\r
+                  "args": {\r
+                    "dom_class": "panel_picture_width_tool"\r
+                  }\r
+                }\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "height": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "helpers": {\r
+                "size": {\r
+                  "type": "size",\r
+                  "args": {\r
+                    "dom_class": "panel_picture_height_tool"\r
+                  }\r
+                }\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "link": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "panel_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "picture_id": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "hidden"\r
+              },\r
+              "helpers": {\r
+                "popup": {\r
+                  "type": "popup",\r
+                  "args": {\r
+                    "source": "pictures"\r
+                  }\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "z": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "caption",\r
+          "x",\r
+          "y",\r
+          "width",\r
+          "height",\r
+          "link",\r
+          "id",\r
+          "panel_id",\r
+          "picture_id",\r
+          "z",\r
+          "t"\r
+        ]\r
+      },\r
+      "speech_balloon": {\r
+        "fields": {\r
+          "speech_balloon.id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.panel_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.speech_balloon_template_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.caption": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "speech_balloon.z": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.t": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.classname": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech_balloon.settings": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "balloon.id": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "balloon.speech_balloon_id": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "balloon.system_picture_id": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "balloon.r": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "helpers": {\r
+                "tail_angle": {\r
+                  "type": "size",\r
+                  "args": {}\r
+                }\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "balloon.x": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "balloon.y": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {},\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "balloon.width": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "balloon.height": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "balloon.settings": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.id": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.speech_balloon_id": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.x": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.y": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.width": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.height": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "speech.writing_format_id": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              }\r
+            }\r
+          },\r
+          "speech.font_size": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "speech.text_align": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              }\r
+            }\r
+          },\r
+          "speech.quotes": {\r
+            "type": "part",\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              }\r
+            }\r
+          },\r
+          "speech.content": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text_area",\r
+                "args": {\r
+                  "options": {\r
+                    "size": "45x5"\r
+                  }\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "speech.fore_color": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "row_break": true\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              },\r
+              "helpers": {\r
+                "color": {\r
+                  "type": "color",\r
+                  "args": {\r
+                    "wrapper": "speech-fore_color-wrap"\r
+                  }\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "speech.settings": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        }\r
+      },\r
+      "ground_picture": {\r
+        "fields": {\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "panel_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "picture_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "caption": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "repeat": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select",\r
+                "args": {\r
+                  "source": "magic_number",\r
+                  "key": "ground_picture_repeat_items"\r
+                }\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "x": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "y": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "z": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "caption",\r
+          "repeat",\r
+          "x",\r
+          "y",\r
+          "z",\r
+          "t",\r
+          "id",\r
+          "panel_id",\r
+          "picture_id"\r
+        ]\r
+      },\r
+      "ground_color": {\r
+        "fields": {\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "panel_id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "caption": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "code": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              },\r
+              "helpers": {\r
+                "color": {\r
+                  "type": "color",\r
+                  "args": {\r
+                    "wrapper": "ground_color-code-wrap"\r
+                  }\r
+                }\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "orientation": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "select"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "xy": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              }\r
+            }\r
+          },\r
+          "wh": {\r
+            "args": {\r
+              "tag": {\r
+                "type": "number"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "z": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "t": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "id",\r
+          "panel_id",\r
+          "caption",\r
+          "code",\r
+          "orientation",\r
+          "xy",\r
+          "wh",\r
+          "z",\r
+          "t"\r
+        ]\r
+      },\r
+      "author": {\r
+        "fields": {\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "name": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "id",\r
+          "name"\r
+        ]\r
+      },\r
+      "artist": {\r
+        "fields": {\r
+          "id": {\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          },\r
+          "name": {\r
+            "args": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "id",\r
+          "name"\r
+        ]\r
+      }\r
+    },\r
+    "extend": {\r
+      "CircleSpeechBalloon": {\r
+        "base": "speech_balloon",\r
+        "fields": {},\r
+        "field_names": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      },\r
+      "PlainSpeechBalloon": {\r
+        "base": "speech_balloon",\r
+        "fields": {\r
+          "balloon.r": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      },\r
+      "SquareSpeechBalloon": {\r
+        "base": "speech_balloon",\r
+        "fields": {\r
+          "balloon.r": {\r
+            "type": "part",\r
+            "args": {\r
+              "label": {\r
+                "type": "none"\r
+              },\r
+              "tag": {\r
+                "type": "hidden"\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "field_names": [\r
+          "speech_balloon.caption",\r
+          "balloon.r",\r
+          "balloon.x",\r
+          "balloon.y",\r
+          "balloon.width",\r
+          "balloon.height",\r
+          "balloon.id",\r
+          "balloon.speech_balloon_id",\r
+          "balloon.system_picture_id",\r
+          "balloon.settings",\r
+          "speech.writing_format_id",\r
+          "speech.font_size",\r
+          "speech.text_align",\r
+          "speech.quotes",\r
+          "speech.content",\r
+          "speech.fore_color",\r
+          "speech.id",\r
+          "speech.speech_balloon_id",\r
+          "speech.x",\r
+          "speech.y",\r
+          "speech.width",\r
+          "speech.height",\r
+          "speech.settings",\r
+          "speech_balloon.id",\r
+          "speech_balloon.panel_id",\r
+          "speech_balloon.speech_balloon_template_id",\r
+          "speech_balloon.classname",\r
+          "speech_balloon.z",\r
+          "speech_balloon.t",\r
+          "speech_balloon.settings"\r
+        ]\r
+      }\r
+    }\r
+  }\r
+}
\ No newline at end of file