X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fscrolls%2Fplay.js.coffee;h=c0657de132acd7c85812e4f9fe41aa55edd7b3f9;hp=20b4f5d59e6530923526d5ff5e8fac17a0f4b447;hb=f522407ab18ef79c237ed4dfe2f3bbb590d1b42e;hpb=64a5c08ed98fe6fef70b1078621bce7dbf2ed240 diff --git a/app/assets/javascripts/views/scrolls/play.js.coffee b/app/assets/javascripts/views/scrolls/play.js.coffee index 20b4f5d5..c0657de1 100644 --- a/app/assets/javascripts/views/scrolls/play.js.coffee +++ b/app/assets/javascripts/views/scrolls/play.js.coffee @@ -59,13 +59,13 @@ class Pettanr.Views.Scroll.PlayModule.Footer extends Pettanr.View success: (@author) => @panel_face_button = @panel.mini_face_button({ context: this, - click_panel: () -> + click: () -> @trigger('click:panel') }) @author_face_button = @author.mini_face_button({ context: this, - click_author: () -> - @trigger('click:author') + click: () -> + @trigger('click:author', @author) }) l1 = new Tag.H3({ content: Pettanr.AppHelper.t_m('Panel') @@ -152,41 +152,45 @@ class Pettanr.Views.Scroll.PlayModule.Panel extends Pettanr.View render: () -> this.$el.html('') @panel = @panel.play() # retake panel for 'with_elements' mode - @panel.fetch({cache: true}).done => - @panel.attributes = @panel.replaced_attributes() - body = new Pettanr.Views.Scroll.PlayModule.PanelBody({ - panel: @panel - }) - @footer_switch = new Pettanr.Views.Scroll.PlayModule.FooterSwitch({ - scroll_panel: @scroll_panel, - panel: @panel - }) - @listenTo(@footer_switch, 'click', @click_footer_switch) - move_to = new Tag.A({ - attr: {href: '/' + @scroll_panel.edit_url()}, - content: I18n.t('scroll_panels.player.move_to') - }) - @insert_point = new Pettanr.Views.Scroll.PlayModule.InsertPoint({ - class_name: 'insert-point', content: move_to.render().el - }) - @footer = new Pettanr.Views.Scroll.PlayModule.Footer({ - scroll: @scroll, - scroll_panel: @scroll_panel, - panel: @panel, - }) - @listenTo(move_to, 'click', @click_move_to) - @listenTo(@footer, 'click:panel', @click_show) - @listenTo(@footer, 'click:author', @click_author) - @listenTo(@footer, 'click:insert', @click_insert) - @listenTo(@footer, 'click:move', @click_move) - @listenTo(@footer, 'click:edit', @click_edit) - @listenTo(@footer, 'click:destroy', @click_destroy) - this.$el.append(@insert_point.clear().el) - @append_rb() - this.$el.append(body.render().el) - this.$el.append(@footer_switch.render().el) - this.$el.append(@footer.render().el) - @trigger('ready', @panel) + @panel.fetch({ + success: (model, response, opt) => + @panel.attributes = @panel.decoded_attributes() + body = new Pettanr.Views.Scroll.PlayModule.PanelBody({ + panel: @panel + }) + @footer_switch = new Pettanr.Views.Scroll.PlayModule.FooterSwitch({ + scroll_panel: @scroll_panel, + panel: @panel + }) + @listenTo(@footer_switch, 'click', @click_footer_switch) + move_to = new Tag.A({ + attr: {href: '/' + @scroll_panel.edit_url()}, + content: I18n.t('scroll_panels.player.move_to') + }) + @insert_point = new Pettanr.Views.Scroll.PlayModule.InsertPoint({ + class_name: 'insert-point', content: move_to.render().el + }) + @footer = new Pettanr.Views.Scroll.PlayModule.Footer({ + scroll: @scroll, + scroll_panel: @scroll_panel, + panel: @panel, + }) + @listenTo(move_to, 'click', @click_move_to) + @listenTo(@footer, 'click:panel', @click_show) + @listenTo(@footer, 'click:author', @click_author) + @listenTo(@footer, 'click:insert', @click_insert) + @listenTo(@footer, 'click:move', @click_move) + @listenTo(@footer, 'click:edit', @click_edit) + @listenTo(@footer, 'click:destroy', @click_destroy) + this.$el.append(@insert_point.clear().el) + @append_rb() + this.$el.append(body.render().el) + this.$el.append(@footer_switch.render().el) + this.$el.append(@footer.render().el) + @trigger('ready', @panel) + error: (item, response, opt) => + @open_error_dialog(response, opt) + }) this hide: () -> @@ -221,8 +225,8 @@ class Pettanr.Views.Scroll.PlayModule.Panel extends Pettanr.View click_show: () -> @trigger('http_get', @panel.show_url()) - click_author: () -> - @trigger('http_get', @panel.author().show_url()) + click_author: (author) -> + @trigger('http_get', author.show_url()) click_insert: () -> @trigger('click:insert', this) @@ -281,6 +285,7 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View scroll: @binder, scroll_panel: scroll_panel, }) @listenTo(panel_view, 'ready', @ready) + @listenTo(panel_view, 'http_get', @http_get) @listenTo(panel_view, 'click:insert', @click_insert) @listenTo(panel_view, 'click:move', @click_move) @listenTo(panel_view, 'click:destroy', @click_destroy) @@ -291,6 +296,9 @@ class Pettanr.Views.Scroll.PlayModule.Panels extends Pettanr.View ready: (panel) -> this.credits.push(panel.licensed_pictures()) + http_get: (url) -> + @trigger('http_get', url) + click_insert: (panel_view = null) -> @dialog = new Editor.Player.PanelInsertDialog({ parent: this, binder: @binder, target_model: Pettanr.ScrollPanel, @@ -460,7 +468,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View else this.$el.html('') # paginate(@pager) - credits = new Pettanr.View.Credits({parent: this}) + credits = new Pettanr.View.Credits(this, {icon: true}) @panels = new Pettanr.Views.Scroll.PlayModule.Panels({ parent: this, binder: @binder, @@ -468,6 +476,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View credits: credits, }) @listenTo(credits, 'click:credit:icon', @click_credit_icon) + @listenTo(@panels, 'http_get', @http_get) @listenTo(@panels, 'click:insert', @click_insert) @listenTo(@panels, 'click:move', @click_move) @listenTo(@panels, 'dialog:close', @close_dialog) @@ -491,6 +500,9 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View click_append: () -> @panels.click_insert() + http_get: (url) -> + @trigger('http_get', url) + click_insert: (dialog) -> @appender.hide() @trigger('click:insert', dialog)