X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fviews%2Fresource_pictures%2Fshow.js.coffee;h=075573aed09fc728db0f5f4cc2f37c6e44ee15a4;hp=79d67bf44deef91d25e7f79b539a87f1eb8e5ff5;hb=aa9eca25671c772ffec8f2f65aecc8a978a2f375;hpb=59535c9a030167616214c63d32ebbee59a9a59bb diff --git a/app/assets/javascripts/views/resource_pictures/show.js.coffee b/app/assets/javascripts/views/resource_pictures/show.js.coffee index 79d67bf4..075573ae 100644 --- a/app/assets/javascripts/views/resource_pictures/show.js.coffee +++ b/app/assets/javascripts/views/resource_pictures/show.js.coffee @@ -4,10 +4,84 @@ class Pettanr.Views.ResourcePicture.ShowModule.Header extends Pettanr.Views.Show 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' @@ -22,15 +96,24 @@ class Pettanr.Views.ResourcePicture.Show extends Backbone.View 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: () -> @@ -42,6 +125,19 @@ class Pettanr.Views.ResourcePicture.Show extends Backbone.View 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)