OSDN Git Service

fix: any
[pettanr/pettanr.git] / app / assets / javascripts / views / original_pictures / show.js.coffee
index e5293d3..661d646 100644 (file)
-class Pettanr.Views.OriginalPicture.ShowModule\r
-class Pettanr.Views.OriginalPicture.ShowModule.Header extends Pettanr.Views.Show.Header\r
+class Pettanr.Views.OriginalPicture.Show extends Pettanr.View.Show\r
   \r
   initialize: (options) ->\r
-    super(options)\r
-  \r
-class Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton extends Tag.A\r
-  \r
-  initialize: (options) ->\r
-    item = options.item\r
-    super({\r
-      attr: {href: '/' + item.license_url()}, \r
-      content: I18n.t('original_pictures.show.select')\r
-    })\r
-  \r
-class Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton extends Tag.A\r
-  \r
-  initialize: (options) ->\r
-    item = options.item\r
-    super({\r
-      attr: {href: '/' + item.edit_url()}, \r
-      content: I18n.t('original_pictures.show.replace')\r
-    })\r
-  \r
-class Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton extends Tag.A\r
-  \r
-  initialize: (options) ->\r
-    item = options.item\r
-    super({\r
-      attr: {href: '/' + item.destroy_url()}, \r
-      content: I18n.t('link.destroy')\r
-    })\r
-  \r
-class Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter extends Backbone.View\r
-  tagName: 'div'\r
-  className: 'show-owner-footer'\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @item = options.item\r
-    @license = new Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton({item: @item})\r
-    @edit = new Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton({item: @item})\r
-    @destroy = new Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton({item: @item})\r
-    @listenTo(@license, 'click', @click_license)\r
-    @listenTo(@edit, 'click', @click_edit)\r
-    @listenTo(@destroy, 'click', @click_destroy)\r
+    @header = new Pettanr.View.Show.Header(@item, this, @default_header_options())\r
+    @authored_by = @item.authored_by()\r
+    @listenTo(@header, 'click:pick', @click_pick)\r
+    @listenTo(@authored_by, 'click', @click_authored_by)\r
+    @body = new Pettanr.Views.OriginalPicture.Show.Body(@item, options)\r
+    @listenTo(@body, 'http_get', @http_get)\r
+    @history = new Pettanr.Views.OriginalPicture.Show.History(@item, {})\r
+    @listenTo(@history, 'http_get', @http_get)\r
   \r
   render: () ->\r
-    super()\r
-    this.$el.append(@license.render().el)\r
-    this.$el.append(@edit.render().el)\r
-    dh = new Tag.H3({\r
-      content: 'expert only'\r
-    })\r
-    this.$el.append(dh.render().el)\r
-    this.$el.append(@destroy.render().el)\r
+    this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@authored_by.render().el)\r
+    this.$el.append(@body.render().el)\r
+    this.$el.append(@history.render().el)\r
     this\r
   \r
-  click_license: () ->\r
-    @trigger('click:license')\r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
   \r
-  click_edit: () ->\r
-    @trigger('click:edit')\r
-  \r
-  click_destroy: () ->\r
-    @trigger('click:destroy')\r
+  is_pickable: () ->\r
+    false\r
   \r
-class Pettanr.Views.OriginalPicture.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+class Pettanr.Views.OriginalPicture.Show.Body extends Pettanr.View\r
+  className: 'op-body'\r
   \r
-  initialize: (options) ->\r
+  constructor: (@item, options) ->\r
     super(options)\r
-    @listenTo(@footer, 'click:license', @click_license)\r
-  \r
-  click_license: () ->\r
-    @trigger('click:footer:license')\r
-    @trigger('click:license')\r
-  \r
-  footer_class: () ->\r
-    Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter\r
   \r
-class Pettanr.Views.OriginalPicture.Show extends Backbone.View\r
-  tagName: 'div'\r
-  \r
-  initialize: (options) ->\r
-    @item = options.item\r
-    @header = new Pettanr.Views.OriginalPicture.ShowModule.Header({\r
-      item: @item, \r
-      icon_url: @item.show_url(),\r
-      prof_url: @item.prof_url()\r
+  initialize: (@options) ->\r
+    @img = @item.real_picture()\r
+    @owner = new Pettanr.View.Show.Footer(@item, this, {\r
+      actions: {\r
+        select: {\r
+          url: @item.license_url(),\r
+          dic_name: 'original_pictures.show.select', \r
+          click: () =>\r
+            @create_dialog()\r
+            @options.click_license.call(@options.context, @dialog)\r
+        }, \r
+        replace: {\r
+          url: @item.edit_url(),\r
+          dic_name: 'original_pictures.show.replace', \r
+          click: () =>\r
+            @trigger('http_get', @item.edit_url())\r
+        }, \r
+        destroy: {\r
+          url: @item.destroy_url(),\r
+          click: () =>\r
+            redirect = (url) =>\r
+              @trigger('http_get', url)\r
+            Pettanr.Proxy.destroy(@item, {redirect: redirect})\r
+        }, \r
+      }, \r
     })\r
-    @artist = new Pettanr.Views.Show.HeaderArtist({item: @item})\r
-    @img = new Pettanr.Views.OriginalPicture.Img({item: @item})\r
-    @owner = new Pettanr.Views.OriginalPicture.ShowModule.Owner({item: @item})\r
-    @listenTo(@header, 'click:icon', @click_show)\r
-    @listenTo(@header, 'click:prof', @click_prof)\r
-    @listenTo(@artist, 'click:artist', @click_artist)\r
-    @listenTo(@owner, 'click:license', @click_license)\r
-    @listenTo(@owner, 'click:edit', @click_edit)\r
-    @listenTo(@owner, 'click:destroy', @click_destroy)\r
+    @summary = @item.summary(this, {})\r
+    @listenTo(@summary, 'http_get', @http_get)\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.append(@header.render().el)\r
-    this.$el.append(@artist.render().el)\r
     this.$el.append(@img.render().el)\r
+    this.$el.append(@summary.render().el)\r
+    @append_rb()\r
     this.$el.append(@owner.render().el)\r
     this\r
   \r
-  click_show: () ->\r
-    @trigger('http_get', @item.show_url())\r
-  \r
-  click_prof: () ->\r
-    @trigger('http_get', @item.prof_url())\r
-  \r
-  click_artist: () ->\r
-    @trigger('http_get', @item.artist().show_url())\r
-  \r
-  click_license: () ->\r
-    @create_dialog()\r
-    @trigger('click:license', @dialog)\r
-    #retriever = new Pettanr.Cache.Retriever(@item.my_class(), @item.get('id'))\r
-    #@listenTo(retriever, 'retrieve', @create_dialog)\r
-    #retriever.edit()\r
-  \r
-  click_edit: () ->\r
-    @trigger('http_get', @item.edit_url())\r
-  \r
-  click_destroy: () ->\r
-    @trigger('http_get', @item.destroy_url())\r
-  \r
   create_dialog: () ->\r
     @dialog = new Editor.PicturePublisher.Dialog({\r
       parent: this\r
@@ -148,16 +87,43 @@ class Pettanr.Views.OriginalPicture.Show extends Backbone.View
     @dialog.start(params, null)\r
     @dialog\r
   \r
-  is_pickable: () ->\r
-    false\r
-  \r
   success: (resource_picture) ->\r
     #Pettanr.cache.fix(@item)\r
-    @trigger('success', @params, @dialog)\r
+    @options.publish.call(@options.context, @dialog)\r
     @trigger('http_get', resource_picture.show_url())\r
     Pettanr.cache.refresh(@item)\r
   \r
   close_dialog: () ->\r
     #Pettanr.cache.release(@item)\r
-    @trigger('click:close', @dialog)\r
+    @options.close_dialog.call(@options.context, @dialog)\r
+  \r
+class Pettanr.Views.OriginalPicture.Show.History extends Pettanr.View\r
+  className: 'op-history'\r
+  \r
+  constructor: (@item, options) ->\r
+    super(options)\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    controller = Manifest.manifest().controllers['original_pictures']\r
+    action = controller.actions['history']\r
+    @list = action.find(id: @item.get('id'))\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    h = new Tag.H2({\r
+      content: I18n.t('original_pictures.show.history')\r
+    })\r
+    this.$el.append(h.render().el)\r
+    @list.open(this, {\r
+      success: (pictures) => \r
+        _.each pictures, (picture) =>\r
+          history = new Pettanr.Views.Picture.History(picture)\r
+          @listenTo(history, 'http_get', @http_get)\r
+          this.$el.append(history.render().el)\r
+    })\r
+    this\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
   \r