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=96d16d9ccf05dce8bd201945d4ce746671f161a0;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=787b560f1977baa1786c35a4d6ff91369bc8dc72 diff --git a/app/assets/javascripts/models/original_picture.js.coffee b/app/assets/javascripts/models/original_picture.js.coffee index 96d16d9c..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.Picture({id: @get('picture_id')}) - - is_visible: (operators) -> + is_visible: (operators = Pettanr.cache.operators) -> @is_own(operators) filename: () -> @@ -27,26 +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: (cb) -> - this.fetch({cache: true}).done => - cb(@tmb_opt_img_tag()) - - 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 @@ -73,30 +75,6 @@ class Pettanr.OriginalPicture extends Peta.Content when @is_published() 'published' - initialize: () -> - if @id - @url = @url + @id - -class Pettanr.OriginalPicture.History extends Backbone.Collection - url: '/original_pictures/' - - initialize: (options) -> - @model = Pettanr.Picture - @url = @url + options.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 + initialize: (attr = {}, options = {}) -> + super(attr, options)