From 5a90cea82b8cb85d52451d7f20eadcc3d095a87c Mon Sep 17 00:00:00 2001 From: yasushiito Date: Sat, 6 Jun 2015 14:20:36 +0900 Subject: [PATCH] fix: player --- .../javascripts/views/authors/show.js.coffee | 125 +++++++++++++++++++++ .../javascripts/views/scrolls/play.js.coffee | 30 ++++- app/assets/javascripts/views/show.js.coffee | 2 +- 3 files changed, 153 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/views/authors/show.js.coffee b/app/assets/javascripts/views/authors/show.js.coffee index 160b975c..1a6e9194 100644 --- a/app/assets/javascripts/views/authors/show.js.coffee +++ b/app/assets/javascripts/views/authors/show.js.coffee @@ -1,9 +1,134 @@ +class Pettanr.Views.Author.ShowModule +class Pettanr.Views.Author.ShowModule.Header extends Pettanr.Views.Show.Header + + initialize: (options) -> + super(options) + +class Pettanr.Views.Author.ShowModule.Scrolls extends Backbone.View + + initialize: (options) -> + super(options) + @item = options.item + + render: () -> + params = { + controller: 'scrolls', action: 'by_author', id: @item.get('id'), + page_size: 5 + } + @list = Locmare.ListGroup.list( + params['controller'], params['action'], params + ) + @list.open(() => + pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params) + filer = new Locmare.Filer({ + item_name: @list.item_name, + items: @list.items(), + pager: pager + }) + @listenTo(filer, 'http_get', @http_get) + this.$el.append(filer.render().el) + ) + this + + http_get: (url) -> + @trigger('http_get', url) + +class Pettanr.Views.Author.ShowModule.PanelsBody extends Backbone.View + + initialize: (options) -> + super(options) + @item = options.item + + render: () -> + params = { + controller: 'panels', action: 'by_author', id: @item.get('id'), + page_size: 5 + } + @list = Locmare.ListGroup.list( + params['controller'], params['action'], params + ) + @list.open(() => + pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, params) + _.each @list.items(), (panel) => + panel = panel.with_elements() # retake panel for 'with_elements' mode + panel.fetch({cache: false}).done => + panel.attributes = panel.replaced_attributes() + body = new Pettanr.Views.Panel.Body({ + panel: panel, + spot: null + }) + @trigger('ready', panel) + this.$el.append(body.render().el) + ) + this + +class Pettanr.Views.Author.ShowModule.Panels extends Backbone.View + + initialize: (options) -> + super(options) + @item = options.item + @panels_body = new Pettanr.Views.Author.ShowModule.PanelsBody({item: @item}) + @credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this}) + + render: () -> + @listenTo(@panels_body, 'ready', @ready) + @listenTo(@panels_body, 'http_get', @http_get) + @listenTo(@credits, 'click:credit:icon', @click_credit_icon) + this.$el.append(@panels_body.render().el) + this.$el.append(@credits.render().el) + this + + http_get: (url) -> + @trigger('http_get', url) + + ready: (panel) -> + @credits.push(panel.licensed_pictures()) + + click_credit_icon: (item) -> + @trigger('http_get', item.show_url()) + +class Pettanr.Views.Author.ShowModule.Body extends Backbone.View + + initialize: (options) -> + super(options) + @item = options.item + @scrolls = new Pettanr.Views.Author.ShowModule.Scrolls({item: @item}) + @panels = new Pettanr.Views.Author.ShowModule.Panels({item: @item}) + + render: () -> + this.$el.html('') + @listenTo(@scrolls, 'http_get', @http_get) + @listenTo(@panels, 'http_get', @http_get) + this.$el.append(@scrolls.render().el) + this.$el.append(@panels.render().el) + this + + http_get: (url) -> + @trigger('http_get', url) + class Pettanr.Views.Author.Show extends Backbone.View tagName: 'div' initialize: (options) -> + @item = options.item + @header = new Pettanr.Views.Author.ShowModule.Header({ + item: @item, + caption: @item.get('name'), + icon_url: @item.show_url(), + caption_url: @item.show_url(), + prof_url: @item.prof_url() + }) + @body = new Pettanr.Views.Author.ShowModule.Body({ + item: @item, + }) + @listenTo(@body, 'http_get', @http_get) render: () -> this.$el.html('') + this.$el.append(@header.render().el) + this.$el.append(@body.render().el) this + http_get: (url) -> + @trigger('http_get', url) + diff --git a/app/assets/javascripts/views/scrolls/play.js.coffee b/app/assets/javascripts/views/scrolls/play.js.coffee index ffd19aa6..f5e0ff2f 100644 --- a/app/assets/javascripts/views/scrolls/play.js.coffee +++ b/app/assets/javascripts/views/scrolls/play.js.coffee @@ -141,8 +141,12 @@ class Pettanr.Views.Scroll.PlayModule.Credits extends Backbone.View return if @licensed_pictures[pid] @licensed_pictures[pid] = picture credit = picture.credit_view() + @listenTo(credit, 'click:icon', @click_credit_icon) this.$el.append(credit.render().el) + click_credit_icon: (item) -> + @trigger('click:credit:icon', item) + class Pettanr.Views.Scroll.PlayModule.PanelBody extends Backbone.View tagName: 'div' className: 'player-item-panel' @@ -372,17 +376,37 @@ class Pettanr.Views.Scroll.Play extends Backbone.View binder: @item, list: @list, }) - @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item}) + # @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item}) @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) - @listenTo(@header, 'click:caption', @click_show) + @listenTo(@header, 'click:caption', @click_play) @listenTo(@header, 'click:prof', @click_prof) + @listenTo(@author, 'click:author', @click_author) + @listenTo(@body, 'http_get', @http_get) render: () -> this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@author.render().el) this.$el.append(@body.render().el) - this.$el.append(@owner.render().el) if @item.is_own() + # this.$el.append(@owner.render().el) if @item.is_own() this + click_show: () -> + @trigger('http_get', @item.show_url()) + + click_play: () -> + @trigger('http_get', @item.play_url()) + + click_prof: () -> + @trigger('http_get', @item.prof_url()) + + click_author: () -> + @trigger('http_get', @author.author.show_url()) + + click_pick: () -> + @trigger('pick', @item) + + http_get: (url) -> + @trigger('http_get', url) + diff --git a/app/assets/javascripts/views/show.js.coffee b/app/assets/javascripts/views/show.js.coffee index b3937c37..67704f38 100644 --- a/app/assets/javascripts/views/show.js.coffee +++ b/app/assets/javascripts/views/show.js.coffee @@ -28,7 +28,7 @@ class Pettanr.Views.Show.Header extends Backbone.View class_name: 'prof', content: @prof.render().el }) - @listenTo(@icon, 'click', @click_icon) + @listenTo(@icon_button, 'click', @click_icon) @listenTo(@caption, 'click', @click_caption) @listenTo(@prof_button, 'click', @click_prof) -- 2.11.0