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=88d8667882b7e2bf0d38828b10aab674a3bd43a5;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=9192edc531531a036d23449859b7300e0898d886 diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 88d86678..e8af5f1b 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -1,42 +1,71 @@ # panel: panel item -# operators: operators # 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 - @operators = options.operators + @panel = @item @spot = options.spot + + @header = new Pettanr.View.Show.Header(@item, this, @default_header_options()) + @authored_by = @item.authored_by() @body = new Pettanr.Views.Panel.Body({ panel: @panel, - operators: @operators, spot: @spot }) - @credits = new Pettanr.Views.Panel.Show.Credits({panel: @panel}) + @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(@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(@credits.render().el) - rb = new Tag.RowBreak() - this.$el.append(rb.render().el) + this.$el.append(@footer.render().el) + @add_credits() + this.$el.append(@owner.render().el) if @item.is_own() this -class Pettanr.Views.Panel.Show.Credits extends Backbone.View - tagName: 'div' - className: 'credits' + click_pick: () -> + @trigger('pick', @item) + + is_pickable: () -> + true + + add_pick: (target_model) -> + @header.add_pick(target_model) + +class Pettanr.Views.Panel.Show.Footer extends Pettanr.View + tagName: 'ul' + + constructor: (@panel, @context, options) -> + super(options) initialize: (options) -> - @panel = options.panel - @pictures = @panel.licensed_pictures() + super(options) render: () -> - _this = this + super() this.$el.html('') - _.each @pictures, (picture) -> - picture.fetch({cache: true}).done -> - credit = picture.credit_view() - _this.$el.append(credit.render().el) + 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