OSDN Git Service

fix: player
authoryasushiito <yas@pen-chan.jp>
Sat, 6 Jun 2015 05:20:36 +0000 (14:20 +0900)
committeryasushiito <yas@pen-chan.jp>
Sat, 6 Jun 2015 05:20:36 +0000 (14:20 +0900)
app/assets/javascripts/views/authors/show.js.coffee
app/assets/javascripts/views/scrolls/play.js.coffee
app/assets/javascripts/views/show.js.coffee

index 160b975..1a6e919 100644 (file)
@@ -1,9 +1,134 @@
+class Pettanr.Views.Author.ShowModule\r
+class Pettanr.Views.Author.ShowModule.Header extends Pettanr.Views.Show.Header\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+  \r
+class Pettanr.Views.Author.ShowModule.Scrolls extends Backbone.View\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+  \r
+  render: () ->\r
+    params = {\r
+      controller: 'scrolls', action: 'by_author', id: @item.get('id'),\r
+      page_size: 5\r
+    }\r
+    @list = Locmare.ListGroup.list(\r
+      params['controller'], params['action'], params\r
+    )\r
+    @list.open(() =>\r
+      pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
+      filer = new Locmare.Filer({\r
+        item_name: @list.item_name, \r
+        items: @list.items(), \r
+        pager: pager\r
+      })\r
+      @listenTo(filer, 'http_get', @http_get)\r
+      this.$el.append(filer.render().el)\r
+    )\r
+    this\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
+class Pettanr.Views.Author.ShowModule.PanelsBody extends Backbone.View\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+  \r
+  render: () ->\r
+    params = {\r
+      controller: 'panels', action: 'by_author', id: @item.get('id'),\r
+      page_size: 5\r
+    }\r
+    @list = Locmare.ListGroup.list(\r
+      params['controller'], params['action'], params\r
+    )\r
+    @list.open(() =>\r
+      pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params)\r
+      _.each @list.items(), (panel) =>\r
+        panel = panel.with_elements() # retake panel for 'with_elements' mode\r
+        panel.fetch({cache: false}).done =>\r
+          panel.attributes = panel.replaced_attributes()\r
+          body = new Pettanr.Views.Panel.Body({\r
+            panel: panel,\r
+            spot: null\r
+          })\r
+          @trigger('ready', panel)\r
+          this.$el.append(body.render().el)\r
+    )\r
+    this\r
+  \r
+class Pettanr.Views.Author.ShowModule.Panels extends Backbone.View\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+    @panels_body = new Pettanr.Views.Author.ShowModule.PanelsBody({item: @item})\r
+    @credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})\r
+  \r
+  render: () ->\r
+    @listenTo(@panels_body, 'ready', @ready)\r
+    @listenTo(@panels_body, 'http_get', @http_get)\r
+    @listenTo(@credits, 'click:credit:icon', @click_credit_icon)\r
+    this.$el.append(@panels_body.render().el)\r
+    this.$el.append(@credits.render().el)\r
+    this\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
+  ready: (panel) ->\r
+    @credits.push(panel.licensed_pictures())\r
+  \r
+  click_credit_icon: (item) ->\r
+    @trigger('http_get', item.show_url())\r
+  \r
+class Pettanr.Views.Author.ShowModule.Body extends Backbone.View\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @item = options.item\r
+    @scrolls = new Pettanr.Views.Author.ShowModule.Scrolls({item: @item})\r
+    @panels = new Pettanr.Views.Author.ShowModule.Panels({item: @item})\r
+  \r
+  render: () ->\r
+    this.$el.html('')\r
+    @listenTo(@scrolls, 'http_get', @http_get)\r
+    @listenTo(@panels, 'http_get', @http_get)\r
+    this.$el.append(@scrolls.render().el)\r
+    this.$el.append(@panels.render().el)\r
+    this\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
 class Pettanr.Views.Author.Show extends Backbone.View\r
   tagName: 'div'\r
   \r
   initialize: (options) ->\r
+    @item = options.item\r
+    @header = new Pettanr.Views.Author.ShowModule.Header({\r
+      item: @item, \r
+      caption: @item.get('name'), \r
+      icon_url: @item.show_url(),\r
+      caption_url: @item.show_url(),\r
+      prof_url: @item.prof_url()\r
+    })\r
+    @body = new Pettanr.Views.Author.ShowModule.Body({\r
+      item: @item, \r
+    })\r
+    @listenTo(@body, 'http_get', @http_get)\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    this.$el.append(@header.render().el)\r
+    this.$el.append(@body.render().el)\r
     this\r
   \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
index ffd19aa..f5e0ff2 100644 (file)
@@ -141,8 +141,12 @@ class Pettanr.Views.Scroll.PlayModule.Credits extends Backbone.View
     return if @licensed_pictures[pid]\r
     @licensed_pictures[pid] = picture\r
     credit = picture.credit_view()\r
+    @listenTo(credit, 'click:icon', @click_credit_icon)\r
     this.$el.append(credit.render().el)\r
   \r
+  click_credit_icon: (item) ->\r
+    @trigger('click:credit:icon', item)\r
+  \r
 class Pettanr.Views.Scroll.PlayModule.PanelBody extends Backbone.View\r
   tagName: 'div'\r
   className: 'player-item-panel'\r
@@ -372,17 +376,37 @@ class Pettanr.Views.Scroll.Play extends Backbone.View
       binder: @item,\r
       list: @list, \r
     })\r
-    @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item})\r
+    @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item})\r
     @listenTo(@header, 'click:pick', @click_pick)\r
     @listenTo(@header, 'click:icon', @click_show)\r
-    @listenTo(@header, 'click:caption', @click_show)\r
+    @listenTo(@header, 'click:caption', @click_play)\r
     @listenTo(@header, 'click:prof', @click_prof)\r
+    @listenTo(@author, 'click:author', @click_author)\r
+    @listenTo(@body, 'http_get', @http_get)\r
   \r
   render: () ->\r
     this.$el.html('')\r
     this.$el.append(@header.render().el)\r
     this.$el.append(@author.render().el)\r
     this.$el.append(@body.render().el)\r
-    this.$el.append(@owner.render().el) if @item.is_own()\r
+    this.$el.append(@owner.render().el) if @item.is_own()\r
     this\r
   \r
+  click_show: () ->\r
+    @trigger('http_get', @item.show_url())\r
+  \r
+  click_play: () ->\r
+    @trigger('http_get', @item.play_url())\r
+  \r
+  click_prof: () ->\r
+    @trigger('http_get', @item.prof_url())\r
+  \r
+  click_author: () ->\r
+    @trigger('http_get', @author.author.show_url())\r
+  \r
+  click_pick: () ->\r
+    @trigger('pick', @item)\r
+  \r
+  http_get: (url) ->\r
+    @trigger('http_get', url)\r
+  \r
index b3937c3..67704f3 100644 (file)
@@ -28,7 +28,7 @@ class Pettanr.Views.Show.Header extends Backbone.View
       class_name: 'prof',\r
       content: @prof.render().el\r
     })\r
-    @listenTo(@icon, 'click', @click_icon)\r
+    @listenTo(@icon_button, 'click', @click_icon)\r
     @listenTo(@caption, 'click', @click_caption)\r
     @listenTo(@prof_button, 'click', @click_prof)\r
   \r