class Pettanr.Views.OriginalPicture.ShowModule class Pettanr.Views.OriginalPicture.ShowModule.Header extends Pettanr.Views.Show.Header initialize: (options) -> super(options) class Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton extends Tag.A initialize: (options) -> item = options.item super({ attr: {href: '/' + item.license_url()}, content: I18n.t('original_pictures.show.select') }) class Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton extends Tag.A initialize: (options) -> item = options.item super({ attr: {href: '/' + item.edit_url()}, content: I18n.t('original_pictures.show.replace') }) class Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton extends Tag.A initialize: (options) -> item = options.item super({ attr: {href: '/' + item.destroy_url()}, content: I18n.t('link.destroy') }) class Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter extends Backbone.View tagName: 'div' className: 'show-owner-footer' initialize: (options) -> super(options) @item = options.item @license = new Pettanr.Views.OriginalPicture.ShowModule.LinkedLicenseButton({item: @item}) @edit = new Pettanr.Views.OriginalPicture.ShowModule.LinkedReplaceButton({item: @item}) @destroy = new Pettanr.Views.OriginalPicture.ShowModule.LinkedDropButton({item: @item}) @listenTo(@license, 'click', @click_license) @listenTo(@edit, 'click', @click_edit) @listenTo(@destroy, 'click', @click_destroy) render: () -> super() this.$el.append(@license.render().el) this.$el.append(@edit.render().el) dh = new Tag.H3({ content: 'expert only' }) this.$el.append(dh.render().el) this.$el.append(@destroy.render().el) this click_license: () -> @trigger('click:license') click_edit: () -> @trigger('click:edit') click_destroy: () -> @trigger('click:destroy') class Pettanr.Views.OriginalPicture.ShowModule.Owner extends Pettanr.Views.Show.Owner initialize: (options) -> super(options) @listenTo(@footer, 'click:license', @click_license) click_license: () -> @trigger('click:footer:license') @trigger('click:license') footer_class: () -> Pettanr.Views.OriginalPicture.ShowModule.OwnerFooter class Pettanr.Views.OriginalPicture.ShowModule.History extends Backbone.View initialize: (options) -> super(options) @item = options.item @list = @item.history() render: () -> this.$el.html('') h = new Tag.H2({ content: I18n.t('original_pictures.show.history') }) this.$el.append(h.render().el) @list.fetch().done => _.each @list.models, (picture) => view = picture.history_view() @listenTo(view, 'http_get', @http_get) this.$el.append(view.render().el) this http_get: (url) -> @trigger('http_get', url) class Pettanr.Views.OriginalPicture.Show extends Backbone.View tagName: 'div' initialize: (options) -> @item = options.item @header = new Pettanr.Views.OriginalPicture.ShowModule.Header({ item: @item, icon_url: @item.show_url(), prof_url: @item.prof_url() }) @artist = new Pettanr.Views.Show.HeaderArtist({item: @item}) @img = new Pettanr.Views.OriginalPicture.Img({item: @item}) @owner = new Pettanr.Views.OriginalPicture.ShowModule.Owner({item: @item}) @history = new Pettanr.Views.OriginalPicture.ShowModule.History({item: @item}) @listenTo(@header, 'click:icon', @click_show) @listenTo(@header, 'click:prof', @click_prof) @listenTo(@artist, 'click:artist', @click_artist) @listenTo(@owner, 'click:license', @click_license) @listenTo(@owner, 'click:edit', @click_edit) @listenTo(@owner, 'click:destroy', @click_destroy) @listenTo(@history, 'http_get', @http_get) 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(@owner.render().el) this.$el.append(@history.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_license: () -> @create_dialog() @trigger('click:license', @dialog) #retriever = new Pettanr.Cache.Retriever(@item.my_class(), @item.get('id')) #@listenTo(retriever, 'retrieve', @create_dialog) #retriever.edit() click_edit: () -> @trigger('http_get', @item.edit_url()) click_destroy: () -> redirect = (url) => @trigger('http_get', url) Pettanr.Proxy.destroy(@item, {redirect: redirect}) http_get: (url) -> @trigger('http_get', url) create_dialog: () -> @dialog = new Editor.PicturePublisher.Dialog({ parent: this }) this.$el.append(@dialog.render().el) _this = this @dialog.$el.dialog({ autoOpen: false, width: 500, height: 500, close: (ui, event) -> _this.close_dialog() }) params = { controller: 'original_picture_license_groups', action: 'new', id: @item.get('id'), } @listenTo(@dialog, 'success', @success) @dialog.start(params, null) @dialog is_pickable: () -> false success: (resource_picture) -> #Pettanr.cache.fix(@item) @trigger('success', @params, @dialog) @trigger('http_get', resource_picture.show_url()) Pettanr.cache.refresh(@item) close_dialog: () -> #Pettanr.cache.release(@item) @trigger('click:close', @dialog)