X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fmodels%2Foriginal_picture.js.coffee;h=a49e44f7ce68d79e044f7ea973793570997a8500;hp=e2283311d80b2539551cf733d4dbfc564b9fb865;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=083cd052b6a10be6ddb3534307176f8c415952a8 diff --git a/app/assets/javascripts/models/original_picture.js.coffee b/app/assets/javascripts/models/original_picture.js.coffee index e2283311..a49e44f7 100644 --- a/app/assets/javascripts/models/original_picture.js.coffee +++ b/app/assets/javascripts/models/original_picture.js.coffee @@ -1,5 +1,4 @@ class Pettanr.OriginalPicture extends Peta.Content - url: '/original_pictures/' @singular: () -> 'OriginalPicture' @@ -12,10 +11,7 @@ class Pettanr.OriginalPicture extends Peta.Content artist_id: null } - picture: () -> - new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id')) - - is_visible: (operators) -> + is_visible: (operators = Pettanr.cache.operators) -> @is_own(operators) filename: () -> @@ -27,40 +23,32 @@ class Pettanr.OriginalPicture extends Peta.Content r_url: () -> '/original_pictures/' + @filename() - opt_img_tag: () -> - {src: @r_url(), width: @get('width'), height: @get('height')} + license_url: () -> + '/original_picture_license_groups/new/' + @get('id') - tmb_opt_img_tag: () -> - new Pettanr.Image.SymbolPicture({ - attr: { - src: @r_url() - }, - picture: this + symbol_option: (context, options) -> + @retrieve(this, { + success: (symbol_item) => + options.success.call(context, symbol_item.symbol_file()) + fail: (response, opt) => + options.fail.call(context, response, opt) }) - symbol_option: () -> - retriever = @retriever() - @listenTo(retriever, 'retrieve', @retrieve_symbol) - retriever.retrieve() - - retrieve_symbol: (item) -> - @trigger('ready:symbol', item.tmb_opt_img_tag()) - - filer_caption: () -> - history = @history() - history.fetch({cache: true}).done => - caption = if _.isEmpty(history.models) - 'unpublished' - else - head = _.first(history.models) - Pettanr.to_s(head.get('revision')) - @trigger('ready:caption', caption) - - revision: () -> - new Pettanr.OriginalPicture.Head({original_picture: this}) - - history: () -> - new Pettanr.OriginalPicture.History({original_picture: this}) + filer_caption: (context, options) -> + controller = Manifest.manifest().controllers['original_pictures'] + action = controller.actions['history'] + list = action.find(id: @get('id')) + list.open(this, { + success: (pictures) => + caption = if _.isEmpty(pictures) + 'unpublished' + else + head = _.first(pictures) + Pettanr.to_s(head.get('revision')) + options.success.call(context, caption) + fail: (response, opt) => + options.fail.call(context, response, opt) + }) is_unpublished: () -> @get('published_at') == null and @get('stopped_at') == null @@ -89,30 +77,4 @@ class Pettanr.OriginalPicture extends Peta.Content initialize: (attr = {}, options = {}) -> super(attr, options) - if @id - @url = @url + @id - -class Pettanr.OriginalPicture.History extends Backbone.Collection - url: '/original_pictures/' - - initialize: (options) -> - @original_picture = options.original_picture - @model = Pettanr.Picture - @url = @url + @original_picture.get('id') + '/history' - -class Pettanr.OriginalPicture.Head extends Backbone.View - tagName: 'span' - initialize: (options) -> - @original_picture = options.original_picture - @pictures = new Pettanr.OriginalPicture.History({id: @original_picture.get('id')}) - - render: () -> - @pictures.fetch({cache: true}).done => - head = @pictures.models[0] - value = if head - head.get('revision') - else - 'unpublished' - this.$el.html(value) - this