1 class Pettanr.Views.Scroll.PlayModule
\r
2 class Pettanr.Views.Scroll.PlayModule.Header extends Pettanr.Views.Show.Header
\r
4 initialize: (options) ->
\r
7 class Pettanr.Views.Scroll.PlayModule.Owner extends Pettanr.Views.Show.Owner
\r
9 initialize: (options) ->
\r
12 class Pettanr.Views.Scroll.PlayModule.Footer extends Backbone.View
\r
14 className: 'no-border'
\r
16 initialize: (options) ->
\r
17 @panel = options.panel
\r
18 @scroll_panel = options.scroll_panel
\r
23 (new Pettanr.Views.Panel.Icon({item: @panel, half: true})).render().el
\r
26 (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el
\r
28 this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')))
\r
31 (new Pettanr.Views.Panel.Icon({item: @scroll_panel, half: true})).render().el
\r
34 (new Pettanr.Views.Author.Icon({item: @panel.author(), half: true})).render().el
\r
36 this.$el.append(Pettanr.AppHelper.distance_of_time_in_words_to_now(@scroll_panel.get('updated_at')))
\r
42 class Pettanr.Views.Scroll.PlayModule.Credits extends Backbone.View
\r
44 className: 'credits'
\r
46 initialize: (options) ->
\r
47 @parent = options.parent
\r
48 @licensed_pictures = {}
\r
54 push: (retrievers) ->
\r
55 _.each retrievers, (retriever) =>
\r
56 @listenTo(retriever, 'retrieve', @retrieve_picture)
\r
57 retriever.retrieve()
\r
59 retrieve_picture: (picture) ->
\r
60 pid = picture.get('id')
\r
61 return if @licensed_pictures[pid]
\r
62 @licensed_pictures[pid] = picture
\r
63 credit = picture.credit_view()
\r
64 this.$el.append(credit.render().el)
\r
66 class Pettanr.Views.Scroll.PlayModule.Panel extends Backbone.View
\r
69 initialize: (options) ->
\r
70 @scroll_panel = options.scroll_panel
\r
74 retriever = @scroll_panel.panel()
\r
75 @listenTo(retriever, 'retrieve', @retrieve_panel)
\r
76 retriever.retrieve()
\r
79 retrieve_panel: (@panel) ->
\r
84 @panel = @panel.with_elements() # retake panel for 'with_elements' mode
\r
85 @panel.fetch({cache: true}).done =>
\r
86 @panel.attributes = @panel.replaced_attributes()
\r
87 body = new Pettanr.Views.Panel.Body({
\r
91 footer = new Pettanr.Views.Panel.Footer({
\r
92 scroll_panel: @scroll_panel,
\r
95 @listenTo(footer, 'click:panel', @click_show)
\r
96 @listenTo(footer, 'click:author', @click_author)
\r
97 @listenTo(footer, 'click:edit', @click_edit)
\r
98 this.$el.append(body.render().el)
\r
99 this.$el.append(footer.render().el)
\r
100 @trigger('ready', @panel)
\r
104 @trigger('http_get', @panel.show_url())
\r
106 click_author: () ->
\r
107 @trigger('http_get', @panel.author().show_url())
\r
110 @trigger('http_get', @panel.edit_url())
\r
112 class Pettanr.Views.Scroll.PlayModule.Panels extends Backbone.View
\r
115 initialize: (options) ->
\r
116 @parent = options.parent
\r
117 @items = options.items
\r
118 @credits = options.credits
\r
122 _.each @items, (scroll_panel) =>
\r
123 return if not scroll_panel.has_panel()
\r
124 panel_view = new Pettanr.Views.Scroll.PlayModule.Panel({
\r
125 scroll_panel: scroll_panel,
\r
127 @listenTo(panel_view, 'ready', @ready)
\r
128 this.$el.append(panel_view.clear().el)
\r
132 this.credits.push(panel.licensed_pictures())
\r
134 class Pettanr.Views.Scroll.PlayModule.Body extends Backbone.View
\r
137 initialize: (options) ->
\r
138 @parent = options.parent
\r
139 @list = options.list
\r
140 @items = @list.items()
\r
141 if @items.length < 1
\r
146 render_empty: () ->
\r
148 this.$el.append((new Tag.H2({content: I18n.t('scrolls.play.empty')})).render().el)
\r
154 credits = new Pettanr.Views.Scroll.PlayModule.Credits({parent: this})
\r
155 panels = new Pettanr.Views.Scroll.PlayModule.Panels({
\r
160 @listenTo(credits, 'click:credit:icon', @click_credit_icon)
\r
161 this.$el.append(panels.render().el)
\r
162 this.$el.append(credits.render().el)
\r
163 rb = new Tag.RowBreak()
\r
164 this.$el.append(rb.render().el)
\r
168 click_credit_icon: (item) ->
\r
169 @trigger('http_get', item.show_url())
\r
171 class Pettanr.Views.Scroll.Play extends Backbone.View
\r
175 initialize: (options) ->
\r
176 @item = options.item
\r
177 @list = options.list
\r
178 icon_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id')})
\r
179 caption_url = Pettanr.url(@item.table_name(), 'play', {id: @item.get('id')})
\r
180 prof_url = Pettanr.url(@item.table_name(), 'show', {id: @item.get('id'), format: 'prof'})
\r
181 @header = new Pettanr.Views.Scroll.PlayModule.Header({
\r
183 caption: @item.get('title'),
\r
184 icon_url: icon_url,
\r
185 caption_url: caption_url,
\r
188 @author = new Pettanr.Views.Show.HeaderAuthor({item: @item})
\r
189 @body = new Pettanr.Views.Scroll.PlayModule.Body({
\r
193 @owner = new Pettanr.Views.Scroll.PlayModule.Owner({item: @item})
\r
194 @listenTo(@header, 'click:pick', @click_pick)
\r
195 @listenTo(@header, 'click:icon', @click_show)
\r
196 @listenTo(@header, 'click:caption', @click_show)
\r
197 @listenTo(@header, 'click:prof', @click_prof)
\r
201 this.$el.append(@header.render().el)
\r
202 this.$el.append(@author.render().el)
\r
203 this.$el.append(@body.render().el)
\r
204 this.$el.append(@owner.render().el) if @item.is_own()
\r