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=3c06ee97d1396a6d321bfc5621add048243d50ae;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=00f1b75256d14796fa5b6f75c79dabe4ecbe35ed diff --git a/app/assets/javascripts/views/panels/show.js.coffee b/app/assets/javascripts/views/panels/show.js.coffee index 3c06ee97..e8af5f1b 100644 --- a/app/assets/javascripts/views/panels/show.js.coffee +++ b/app/assets/javascripts/views/panels/show.js.coffee @@ -1,52 +1,32 @@ # panel: panel item # spot: no opacity element -class Pettanr.Views.Panel.Show extends Pettanr.View +class Pettanr.Views.Panel.Show extends Pettanr.View.Show - initialize: (@panel, options) -> + initialize: (options) -> + @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, spot: @spot }) - @footer = new Pettanr.Views.Panel.Footer({ - panel: @panel, - }) - @owner = new Pettanr.Views.Panel.ShowModule.Owner({item: @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(@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) + @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) @add_credits() - this.$el.append(@owner.render().el) + this.$el.append(@owner.render().el) if @item.is_own() 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) @@ -56,6 +36,36 @@ class Pettanr.Views.Panel.Show extends Pettanr.View add_pick: (target_model) -> @header.add_pick(target_model) - inspire: (item) -> - @trigger('http_get', item.show_url()) +class Pettanr.Views.Panel.Show.Footer extends Pettanr.View + tagName: 'ul' + + constructor: (@panel, @context, options) -> + super(options) + + initialize: (options) -> + super(options) + + render: () -> + super() + this.$el.html('') + 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