class Pettanr.Views.ResourcePicture.ShowModule class Pettanr.Views.ResourcePicture.ShowModule.Header extends Pettanr.Views.Show.Header initialize: (options) -> super(options) class Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton extends Tag.A initialize: (options) -> item = options.item op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')}) super({ attr: {href: '/' + op.edit_url()}, content: I18n.t('original_pictures.show.replace') }) class Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton extends Tag.A initialize: (options) -> item = options.item op = new Pettanr.OriginalPicture({id: item.get('original_picture_id')}) super({ attr: {href: '/' + op.show_url()}, content: I18n.t('original_pictures.show.title') }) class Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton extends Tag.A initialize: (options) -> item = options.item super({ attr: {href: '/' + item.destroy_url()}, content: I18n.t('original_pictures.index.stop') }) class Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter extends Backbone.View tagName: 'div' className: 'show-owner-footer' initialize: (options) -> super(options) @item = options.item @replace = new Pettanr.Views.ResourcePicture.ShowModule.LinkedReplaceButton({item: @item}) @source = new Pettanr.Views.ResourcePicture.ShowModule.LinkedSourceButton({item: @item}) @stop = new Pettanr.Views.ResourcePicture.ShowModule.LinkedStopButton({item: @item}) @listenTo(@replace, 'click', @click_replace) @listenTo(@source, 'click', @click_source) @listenTo(@stop, 'click', @click_stop) render: () -> super() this.$el.append(@replace.render().el) this.$el.append(@source.render().el) this.$el.append(@stop.render().el) this click_replace: () -> @trigger('click:replace') click_source: () -> @trigger('click:source') click_stop: () -> @trigger('click:stop') class Pettanr.Views.ResourcePicture.ShowModule.Owner extends Pettanr.Views.Show.Owner initialize: (options) -> super(options) @listenTo(@footer, 'click:replace', @click_replace) @listenTo(@footer, 'click:source', @click_source) @listenTo(@footer, 'click:stop', @click_stop) click_replace: () -> @trigger('click:replace') click_source: () -> @trigger('click:source') click_stop: () -> @trigger('click:stop') footer_class: () -> Pettanr.Views.ResourcePicture.ShowModule.OwnerFooter class Pettanr.Views.ResourcePicture.Show extends Backbone.View tagName: 'div' className: 'show' initialize: (options) -> @item = options.item @header = new Pettanr.Views.ResourcePicture.ShowModule.Header({ item: @item, icon_url: @item.show_url(), caption_url: @item.show_url(), prof_url: @item.prof_url() }) @artist = new Pettanr.Views.Show.HeaderArtist({item: @item}) @img = new Pettanr.Views.ResourcePicture.Img({item: @item}) @credit = @item.credit_view(false) @owner = new Pettanr.Views.ResourcePicture.ShowModule.Owner({item: @item, original_picture: @original_picture}) @listenTo(@header, 'click:pick', @click_pick) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:prof', @click_prof) @listenTo(@artist, 'click:artist', @click_artist) @listenTo(@owner, 'click:replace', @click_replace) @listenTo(@owner, 'click:source', @click_source) @listenTo(@owner, 'click:stop', @click_stop) render: () -> this.$el.html('') this.$el.append(@header.render().el) this.$el.append(@artist.render().el) this.$el.append(@img.render().el) this.$el.append(@credit.render().el) this.$el.append(@owner.render().el) this click_show: () -> @trigger('http_get', @item.show_url()) click_prof: () -> @trigger('http_get', @item.prof_url()) click_artist: () -> @trigger('http_get', @item.artist().show_url()) click_replace: () -> op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')}) @trigger('http_get', op.edit_url()) click_source: () -> op = new Pettanr.OriginalPicture({id: @item.get('original_picture_id')}) @trigger('http_get', op.show_url()) click_stop: () -> redirect = (url) => @trigger('http_get', url) Pettanr.Proxy.destroy(@item, {redirect: redirect}) click_pick: () -> @trigger('pick', @item) is_pickable: () -> true add_pick: (target_model) -> @header.add_pick(target_model)