X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fpanel_pictures%2Fshow.js.coffee;h=fd13938153a8d53363571ee1fcd94ef89180d780;hb=87dc80d4ea2b9b1cfb5273c403b50c001225a61a;hp=6fe4c54067e10feeb031b83e3cad1b1ef0a06062;hpb=68192c602eef406802ac79d72ab9612f184dda8d;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/views/panel_pictures/show.js.coffee b/app/assets/javascripts/views/panel_pictures/show.js.coffee index 6fe4c540..fd139381 100644 --- a/app/assets/javascripts/views/panel_pictures/show.js.coffee +++ b/app/assets/javascripts/views/panel_pictures/show.js.coffee @@ -1,75 +1,29 @@ -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() - @listenTo(retriever, 'retrieve', @retrieve_panel) - retriever.retrieve() - - retrieve_panel: (item) -> - @panel = item.with_elements() - @panel.fetch().done => - @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.with_elements() + @panel.fetch().done => + @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() + }) 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)