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=9c78936400d202a2f21f3ab03877712e07731ac9;hp=9ebf743f0a68fdb932df1604e1be0d96a90575fb;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=d2a17869f5a5fb9a33ddad29887c8f03a129c407 diff --git a/app/assets/javascripts/views/scrolls/play.js.coffee b/app/assets/javascripts/views/scrolls/play.js.coffee index 9ebf743f..9c789364 100644 --- a/app/assets/javascripts/views/scrolls/play.js.coffee +++ b/app/assets/javascripts/views/scrolls/play.js.coffee @@ -57,17 +57,16 @@ class Pettanr.Views.Scroll.PlayModule.Footer extends Pettanr.View @hide() @panel.get_parent('author', this, { success: (@author) => - @panel_icon = new Pettanr.Views.Panel.Icon({item: @panel, half: true}) - @author_icon = new Pettanr.Views.Author.Icon({item: @author, half: true}) - @new_scroll_panel = new Pettanr.ScrollPanel() - @insert_button = new Pettanr.Views.Show.LinkedNewButton({item: @new_scroll_panel, dic_name: 'scroll_panels.player.before_insert'}) - @move_button = new Pettanr.Views.Show.LinkedEditButton({item: @scroll_panel, dic_name: 'scroll_panels.player.move'}) - @destroy_button = new Pettanr.Views.Show.LinkedDestroyButton({item: @scroll_panel, dic_name: 'scroll_panels.player.destroy'}) - @listenTo(@panel_icon, 'click', @click_panel) - @listenTo(@author_icon, 'click', @click_author) - @listenTo(@insert_button, 'click', @click_insert) - @listenTo(@move_button, 'click', @click_move) - @listenTo(@destroy_button, 'click', @click_destroy) + @panel_face_button = @panel.mini_face_button({ + context: this, + click: () -> + @trigger('click:panel') + }) + @author_face_button = @author.mini_face_button({ + context: this, + click: () -> + @trigger('click:author', @author) + }) l1 = new Tag.H3({ content: Pettanr.AppHelper.t_m('Panel') }) @@ -75,13 +74,29 @@ class Pettanr.Views.Scroll.PlayModule.Footer extends Pettanr.View content: Pettanr.AppHelper.t_m('ScrollPanel') }) this.$el.append(l1.render().el) - this.$el.append(@panel_icon.render().el) - this.$el.append(@author_icon.render().el) + this.$el.append(@panel_face_button.render().el) + this.$el.append(@author_face_button.render().el) this.$el.append( Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')) ) this.$el.append(l2.render().el) if @scroll.is_own() + @new_scroll_panel = new Pettanr.ScrollPanel() + @insert_button = new Pettanr.View.Button.ItemAction(@new_scroll_panel, 'new', 'scroll_panels.player.before_insert', { + context: this, + click: () -> + @trigger('click:insert') + }) + @move_button = new Pettanr.View.Button.ItemAction(@scroll_panel, 'edit', 'scroll_panels.player.move', { + context: this, + click: () -> + @trigger('click:move') + }) + @destroy_button = new Pettanr.View.Button.ItemAction(@scroll_panel, 'destroy', 'scroll_panels.player.destroy', { + context: this, + click: () -> + @trigger('click:destroy') + }) this.$el.append(@insert_button.render().el) @append_rb() this.$el.append(@move_button.render().el) @@ -102,21 +117,6 @@ class Pettanr.Views.Scroll.PlayModule.Footer extends Pettanr.View } this.$el.attr(attr) - click_panel: () -> - @trigger('click:panel') - - click_author: () -> - @trigger('click:author') - - click_insert: () -> - @trigger('click:insert') - - click_move: () -> - @trigger('click:move') - - click_destroy: () -> - @trigger('click:destroy') - class Pettanr.Views.Scroll.PlayModule.PanelBody extends Pettanr.View tagName: 'div' className: 'player-item-panel' @@ -151,42 +151,46 @@ class Pettanr.Views.Scroll.PlayModule.Panel extends Pettanr.View render: () -> this.$el.html('') - @panel = @panel.with_elements() # 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 = @panel.play() # retake panel for 'with_elements' mode + @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) @@ -460,7 +464,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, @@ -525,7 +529,7 @@ class Pettanr.Views.Scroll.PlayModule.Body extends Pettanr.View class Pettanr.Views.Scroll.Play extends Pettanr.View.Show - initialize: (@item, options) -> + initialize: (options) -> @list = options.list @pager = options.pager @header = new Pettanr.View.Show.Header(@item, this, @binder_header_options())