class Pettanr.Views.Balloon.ShowModule class Pettanr.Views.Balloon.ShowModule.Header extends Pettanr.Views.Show.Header initialize: (options) -> super(options) class Pettanr.Views.Balloon.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.Balloon.ShowModule.Header({ item: @item, caption: '', icon_url: icon_url, caption_url: caption_url, prof_url: prof_url }) @listenTo(this, 'ready', @ready) retriever = @item.speech_balloon() @listenTo(retriever, 'retrieve', @retrieve_speech_balloon) retriever.retrieve() retrieve_speech_balloon: (@speech_balloon) -> retriever = @speech_balloon.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') render: () -> this.$el.html('') 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) is_pickable: () -> true add_pick: (target_model) -> @header.add_pick(target_model)