X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fpanels%2Fshow.js.coffee;h=e8af5f1bcda81986eb1d1f770f9e8a7c8cbc296c;hp=9d2c68e495172874a6e3d0bfaf0067ea8f0a0cdc;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=aef339be852b4910225c5c9b8798df77bdbc9a9e diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 9d2c68e4..e8af5f1b 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -1,63 +1,32 @@ # panel: panel item # spot: no opacity element -class Pettanr.Views.Panel.Show extends Backbone.View - tagName: 'div' +class Pettanr.Views.Panel.Show extends Pettanr.View.Show initialize: (options) -> - @panel = options.panel + @panel = @item @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() - }) + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) + @authored_by = @item.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, spot: @spot }) - @footer = new Pettanr.Views.Panel.Footer({ - panel: @panel, - }) - @credits = new Pettanr.Views.Panel.ShowModule.Credits({ - pictures: @panel.licensed_pictures() - }) + @footer = new Pettanr.Views.Panel.Show.Footer(@panel, this, {}) + @owner = new Pettanr.View.Show.Footer(@item, this, @default_footer_options()) @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(@credits, 'click:credit:icon', @click_credit_icon) + @listenTo(@authored_by, 'click', @click_authored_by) render: () -> this.$el.html('') this.$el.append(@header.render().el) + this.$el.append(@authored_by.render().el) this.$el.append(@body.render().el) this.$el.append(@footer.render().el) - this.$el.append(@credits.render().el) - rb = new Tag.RowBreak() - this.$el.append(rb.render().el) + @add_credits() + this.$el.append(@owner.render().el) if @item.is_own() 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_prof: () -> - @trigger('http_get', @panel.prof_url()) - - click_credit_icon: (item) -> - @trigger('http_get', item.show_url()) - click_pick: () -> @trigger('pick', @item) @@ -67,47 +36,36 @@ class Pettanr.Views.Panel.Show extends Backbone.View add_pick: (target_model) -> @header.add_pick(target_model) -class Pettanr.Views.Panel.ShowModule -class Pettanr.Views.Panel.ShowModule.Header extends Pettanr.Views.Show.Header +class Pettanr.Views.Panel.Show.Footer extends Pettanr.View + tagName: 'ul' - initialize: (options) -> + constructor: (@panel, @context, options) -> super(options) -class Pettanr.Views.Panel.ShowModule.Credits extends Backbone.View - tagName: 'div' - className: 'credits' - initialize: (options) -> - @pictures = options.pictures - @credited = {} + super(options) render: () -> + super() this.$el.html('') - _.each @pictures, (picture, pid) => - @add_picture(picture) + this.$el.append( + Pettanr.AppHelper.distance_of_time_in_words_to_now(@panel.get('updated_at')) + ) + if Pettanr.cache.operators.is_author() + inspire_button = Pettanr.View.mini_face_button( + @panel, + Pettanr.View.Image.icon_inspire_file(), { + context: @context, + click: () => + inspire = new Pettanr.Inspire(@panel) + inspire.go(@context, { + success: (item) -> + @trigger('http_get', item.show_url()) + fail: (response, opt) => + @open_error_dialog(response, opt) + }) + } + ) + this.$el.append(inspire_button.render().el) this - add_picture: (retriever) -> - @listenTo(retriever, 'retrieve', @retrieve_picture) - retriever.retrieve() - - retrieve_picture: (picture) -> - pid = picture.get('id') - if not @credited[pid] - @credited[pid] = picture - credit = picture.credit_view() - @listenTo(credit, 'click:icon', @click_credit_icon) - this.$el.append(credit.render().el) - - click_credit_icon: (item) -> - @trigger('click:credit:icon', item) - - click_pick: () -> - @trigger('pick', @item) - - is_pickable: () -> - true - - add_pick: (target_model) -> - @header.add_pick(target_model) -