OSDN Git Service

add: oplg dialog
[pettanr/pettanr.git] / app / assets / javascripts / views / original_pictures / show.js.coffee
index 3910dcb..cb7736d 100644 (file)
@@ -1,9 +1,148 @@
+class Pettanr.Views.OriginalPicture.ShowModule\r
+class Pettanr.Views.OriginalPicture.ShowModule.Header extends Pettanr.Views.Show.Header\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
+  \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\r
+  \r
+  click_license: () ->\r
+    @trigger('click:license')\r
+  \r
+  click_edit: () ->\r
+    @trigger('click:edit')\r
+  \r
+  click_destroy: () ->\r
+    @trigger('click:destroy')\r
+  \r
+class Pettanr.Views.OriginalPicture.ShowModule.Owner extends Pettanr.Views.Show.Owner\r
+  \r
+  initialize: (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
+    })\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
   \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(@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
+  \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
+    })\r
+    this.$el.append(dialog.render().el)\r
+    _this = this\r
+    dialog.$el.dialog({\r
+      autoOpen: false,\r
+      width: 500, \r
+      height: 500,\r
+      close: (ui, event) ->\r
+        dialog.remove()\r
+    })\r
+    params = {\r
+      controller: 'original_picture_license_groups', action: 'new', id: @item.get('id'), \r
+    }\r
+    dialog.start(params, null)\r
+    dialog\r
+  \r
+  is_pickable: () ->\r
+    false\r
+  \r