# panel: panel item # spot: no opacity element class Pettanr.Views.Panel.Show extends Pettanr.View initialize: (@panel, options) -> @spot = options.spot @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @spot }) @footer = new Pettanr.Views.Panel.Footer({ panel: @panel, }) @owner = new Pettanr.Views.Panel.ShowModule.Owner({item: @panel}) @listenTo(@header, 'click:pick', @click_pick) @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(@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) @add_credits() this.$el.append(@owner.render().el) this 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_pick: () -> @trigger('pick', @item) is_pickable: () -> true add_pick: (target_model) -> @header.add_pick(target_model) inspire: (item) -> @trigger('http_get', item.show_url())