OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / locmare / filer / body / file_body / file_item.js.coffee
index 65d8749..7e8a034 100644 (file)
@@ -4,18 +4,40 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Backbone.Vi
   initialize: (options) ->\r
     @file_body = options.file_body\r
     @item = options.item\r
-    @symbol = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SymbolItemColumnFactory.factory this, @manifest().symbol, @item\r
-    @caption = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.CaptionItemColumnFactory.factory this, @manifest().caption, @item\r
-    @summary = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.SummaryItemColumnFactory.factory this, @manifest().summary, @item\r
-    @icon = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.IconItemColumnFactory.factory this, @manifest().icon, @item\r
-    @date = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.DateItemColumnFactory.factory this, @manifest().date, @item\r
-    @edit = Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.EditItemColumnFactory.factory this, @manifest().edit, @item\r
+    @symbol = @module().SymbolItemColumnFactory.factory this, @manifest().symbol, @item\r
+    @caption = @module().CaptionItemColumnFactory.factory this, @manifest().caption, @item\r
+    @summary = @module().SummaryItemColumnFactory.factory this, @manifest().summary, @item\r
+    @icon = @module().IconItemColumnFactory.factory this, @manifest().icon, @item\r
+    @date = @module().DateItemColumnFactory.factory this, @manifest().date, @item\r
+    @edit = @module().EditItemColumnFactory.factory this, @manifest().edit, @item\r
     @el.className = 'filer-item filer-item-' + @item.item_name()\r
+    @listenTo(@symbol, 'click:symbol', @click_symbol)\r
+    @listenTo(@caption, 'click:caption', @click_caption)\r
+    @listenTo(@icon, 'click:prof', @click_prof)\r
+    @listenTo(@symbol, 'http_get', @http_get)\r
+    @listenTo(@caption, 'http_get', @http_get)\r
+    @listenTo(@summary, 'http_get', @http_get)\r
+    @listenTo(@icon, 'http_get', @http_get)\r
+    @listenTo(@edit, 'http_get', @http_get)\r
+    @listenTo(@edit, 'http_post', @http_post)\r
+    @listenTo(@item, 'destroy', @destroy)\r
   \r
   render: () ->\r
-    args = {'header': this}\r
-    template = _.template($("#" + @template_name()).html())\r
-    this.$el.html(template(args))\r
+    this.$el.html('')\r
+    if @pick\r
+      this.$el.append(@pick.render().el)\r
+    if @symbol.is_visible()\r
+      this.$el.append(@symbol.render().el)\r
+    if @caption.is_visible()\r
+      this.$el.append(@caption.render().el)\r
+    if @summary.is_visible()\r
+      this.$el.append(@summary.render().el)\r
+    if @icon.is_visible()\r
+      this.$el.append(@icon.render().el)\r
+    if @date.is_visible()\r
+      this.$el.append(@date.render().el)\r
+    if !@pick and @edit.is_visible()\r
+      this.$el.append(@edit.render().el)\r
     this\r
   \r
   filer: () ->\r
@@ -33,14 +55,55 @@ class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Backbone.Vi
   items: () ->\r
     @filer().items\r
   \r
-  template_dir: () ->\r
-    @filer().template_dir\r
+  add_pick: (target_model) ->\r
+    @pick = new Pettanr.Views.Common.PickIcon({\r
+      name: target_model.pick_type(@item_name()), class_name: 'filer-item-pick'\r
+    })\r
+    @listenTo(@pick, 'click', @click_pick)\r
+    @render()\r
   \r
-  template_file_name: () ->\r
-    "file_item"\r
+  click_pick: () ->\r
+    @trigger('click:pick', this)\r
   \r
-  template_name: () ->\r
-    @template_dir() + @template_file_name()\r
+  click_symbol: () ->\r
+    @trigger('click:symbol', this)\r
+  \r
+  click_caption: () ->\r
+    @trigger('click:caption', this)\r
+  \r
+  click_prof: (url) ->\r
+    @trigger('click:prof', this)\r
+    @trigger('http_get', url)\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
+  http_post: (url) ->\r
+    @trigger('http_post', url)\r
+  \r
+  destroy: (model, collection, options) ->\r
+    @trigger('remove', this)\r
+  \r
+  module: () ->\r
+    Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
   \r
 class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule\r
 \r
+class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule\r
+class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule.PickModule.Icon extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    @name = options.name\r
+    @el.className = 'filer-item-pick'\r
+    @button = new Pettanr.Views.Common.PickIcon({name: @name})\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    @listenTo(@button, 'click', @click)\r
+    this.$el.append(@button.render().el)\r
+    this\r
+  \r
+  click: () ->\r
+    @trigger('click', this)\r
+  \r