class Pettanr.Views.Panel.ShowModule class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header initialize: (options) -> super(options) class Pettanr.Views.Panel.ShowModule.Owner extends Pettanr.Views.Show.Owner initialize: (options) -> super(options) # panel: panel item # spot: no opacity element class Pettanr.Views.Panel.Show extends Pettanr.View tagName: 'div' initialize: (options) -> @panel = options.panel @spot = options.spot @header = new Pettanr.Views.Panel.ShowModule.Header({ item: @panel, caption: @panel.get('caption'), icon_url: @panel.show_url(), caption_url: @panel.show_url(), prof_url: @panel.prof_url() }) @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @spot }) @footer = new Pettanr.Views.Panel.Footer({ panel: @panel, }) @credits = new Pettanr.Views.Common.Credits({ parent: this }) @owner = new Pettanr.Views.Panel.ShowModule.Owner({item: @panel}) @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(@footer, 'click:panel', @click_show) @listenTo(@footer, 'click:author', @click_author) @listenTo(@footer, 'click:edit', @click_edit) @listenTo(@footer, 'click:inspire', @click_inspire) @listenTo(@credits, 'click:credit:icon', @click_credit_icon) @listenTo(@owner, 'click:edit', @click_edit) @listenTo(@owner, 'click:destroy', @click_destroy) render: () -> this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@body.render().el) this.$el.append(@footer.render().el) this.$el.append(@credits.render().el) @credits.clear() @credits.push(@panel.licensed_pictures()) @rb() this.$el.append(@owner.render().el) this click_show: () -> @trigger('http_get', @panel.show_url()) click_author: () -> @trigger('http_get', @panel.author().show_url()) click_edit: () -> @trigger('http_get', @panel.edit_url()) click_destroy: () -> redirect = (url) => @trigger('http_get', url) Pettanr.Proxy.destroy(@panel, {redirect: redirect}) click_inspire: () -> inspire = new Pettanr.Inspire({item: @panel}) @listenTo(inspire, 'inspire', @inspire) inspire.inspire() click_prof: () -> @trigger('http_get', @panel.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) inspire: (item) -> @trigger('http_get', item.show_url())