1 class Pettanr.Views.Panel.ShowModule
\r
2 class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header
\r
4 initialize: (options) ->
\r
7 class Pettanr.Views.Panel.ShowModule.Owner extends Pettanr.Views.Show.Owner
\r
9 initialize: (options) ->
\r
12 class Pettanr.Views.Panel.ShowModule.Credits extends Backbone.View
\r
14 className: 'credits'
\r
16 initialize: (options) ->
\r
17 @pictures = options.pictures
\r
22 _.each @pictures, (picture, pid) =>
\r
23 @add_picture(picture)
\r
26 add_picture: (retriever) ->
\r
27 @listenTo(retriever, 'retrieve', @retrieve_picture)
\r
28 retriever.retrieve()
\r
30 retrieve_picture: (picture) ->
\r
31 pid = picture.get('id')
\r
32 if not @credited[pid]
\r
33 @credited[pid] = picture
\r
34 credit = picture.credit_view()
\r
35 @listenTo(credit, 'click:icon', @click_credit_icon)
\r
36 this.$el.append(credit.render().el)
\r
38 click_credit_icon: (item) ->
\r
39 @trigger('click:credit:icon', item)
\r
42 @trigger('pick', @item)
\r
47 add_pick: (target_model) ->
\r
48 @header.add_pick(target_model)
\r
51 # spot: no opacity element
\r
52 class Pettanr.Views.Panel.Show extends Backbone.View
\r
55 initialize: (options) ->
\r
56 @panel = options.panel
\r
57 @spot = options.spot
\r
59 @header = new Pettanr.Views.Panel.ShowModule.Header({
\r
61 caption: @panel.get('caption'),
\r
62 icon_url: @panel.show_url(),
\r
63 caption_url: @panel.show_url(),
\r
64 prof_url: @panel.prof_url()
\r
66 @body = new Pettanr.Views.Panel.Body({
\r
70 @footer = new Pettanr.Views.Panel.Footer({
\r
73 @credits = new Pettanr.Views.Panel.ShowModule.Credits({
\r
74 pictures: @panel.licensed_pictures()
\r
76 @owner = new Pettanr.Views.Panel.ShowModule.Owner({item: @panel})
\r
77 @listenTo(@header, 'click:pick', @click_pick)
\r
78 @listenTo(@header, 'click:icon', @click_show)
\r
79 @listenTo(@header, 'click:caption', @click_show)
\r
80 @listenTo(@header, 'click:prof', @click_prof)
\r
81 @listenTo(@footer, 'click:panel', @click_show)
\r
82 @listenTo(@footer, 'click:author', @click_author)
\r
83 @listenTo(@footer, 'click:edit', @click_edit)
\r
84 @listenTo(@footer, 'click:inspire', @click_inspire)
\r
85 @listenTo(@credits, 'click:credit:icon', @click_credit_icon)
\r
86 @listenTo(@owner, 'click:edit', @click_edit)
\r
87 @listenTo(@owner, 'click:destroy', @click_destroy)
\r
91 this.$el.append(@header.render().el)
\r
92 this.$el.append(@body.render().el)
\r
93 this.$el.append(@footer.render().el)
\r
94 this.$el.append(@credits.render().el)
\r
95 rb = new Tag.RowBreak()
\r
96 this.$el.append(rb.render().el)
\r
97 this.$el.append(@owner.render().el)
\r
101 @trigger('http_get', @panel.show_url())
\r
103 click_author: () ->
\r
104 @trigger('http_get', @panel.author().show_url())
\r
107 @trigger('http_get', @panel.edit_url())
\r
109 click_destroy: () ->
\r
110 redirect = (url) =>
\r
111 @trigger('http_get', url)
\r
112 Pettanr.Proxy.destroy(@panel, {redirect: redirect})
\r
114 click_inspire: () ->
\r
115 inspire = new Pettanr.Inspire({item: @panel})
\r
116 @listenTo(inspire, 'inspire', @inspire)
\r
120 @trigger('http_get', @panel.prof_url())
\r
122 click_credit_icon: (item) ->
\r
123 @trigger('http_get', item.show_url())
\r
126 @trigger('pick', @item)
\r
131 add_pick: (target_model) ->
\r
132 @header.add_pick(target_model)
\r
135 @trigger('http_get', item.show_url())
\r