X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fpanel_pictures%2Fshow.js.coffee;h=e2ec28a83d088e45bac41e4efc90ebc5aa8e661c;hp=6fa7b22522714b9eb532c955e3db267c39a5b3df;hb=e05f18d1db38e531e7bca45d4ba8db71b082402f;hpb=689d83c6bf755e7fa4912b48773ef6cfb0f64b13 diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index 6fa7b225..e2ec28a8 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -1,73 +1,33 @@ -class Pettanr.Views.PanelPicture.ShowModule -class Pettanr.Views.PanelPicture.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.PanelPicture.Show extends Pettanr.View.Show initialize: (options) -> - super(options) - -class Pettanr.Views.PanelPicture.Show extends Backbone.View - tagName: 'div' - className: 'show' - - initialize: (options) -> - @item = options.item - icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')}) - caption_url = icon_url - prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'}) - @header = new Pettanr.Views.PanelPicture.ShowModule.Header({ - item: @item, - caption: @item.get('caption'), - icon_url: icon_url, - caption_url: caption_url, - prof_url: prof_url - }) - @listenTo(this, 'ready', @ready) - retriever = @item.panel().with_elements() - @listenTo(retriever, 'retrieve', @retrieve_panel) - retriever.retrieve() - - retrieve_panel: (@panel) -> - @panel.attributes = @panel.replaced_attributes() - @author = new Pettanr.Views.Show.HeaderAuthor({item: @panel}) - @body = new Pettanr.Views.Panel.Body({ - panel: @panel, - spot: @item - }) - @credits = new Pettanr.Views.Panel.ShowModule.Credits({ - pictures: @panel.licensed_pictures() - }) - @listenTo(@header, 'click:pick', @click_pick) - @listenTo(@header, 'click:icon', @click_show) - @listenTo(@header, 'click:caption', @click_show) - @listenTo(@header, 'click:prof', @click_prof) - @listenTo(@author, 'click:author', @click_author) - @listenTo(@credits, 'click:credit:icon', @click_credit_icon) - @trigger('ready') + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) render: () -> this.$el.html('') + @item.get_parent('panel', this, { + success: (item) => + @panel = item.play() + @panel.fetch({ + success: (model, response, opt) => + @panel.attributes = @panel.decoded_attributes() + @authored_by = @panel.authored_by() + @body = new Pettanr.Views.Panel.Body({ + panel: @panel, + spot: @item + }) + @listenTo(@header, 'click:pick', @click_pick) + @listenTo(@authored_by, 'click', @click_authored_by) + this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) + this.$el.append(@body.render().el) + @add_credits() + error: (item, response, opt) => + @open_error_dialog(response, opt) + }) + }) this - ready: () -> - this.$el.html('') - this.$el.append(@header.render().el) - this.$el.append(@author.render().el) - this.$el.append(@body.render().el) - this.$el.append(@credits.render().el) - rb = new Tag.RowBreak() - this.$el.append(rb.render().el) - - click_show: () -> - @trigger('http_get', @item.show_url()) - - click_author: () -> - @trigger('http_get', @panel.author().show_url()) - - click_prof: () -> - @trigger('http_get', @item.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item)