X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fmodels%2Foriginal_picture.js.coffee;h=871af072316029d624a849d2219b820bdc1ad383;hb=b5b8c38cc3c593a6e8622332296ccdfc24ae641d;hp=bd78f92a6e3ba0b9178c59effc0c3078f6c0adf2;hpb=458e6cecccbd13b65838495bffaa9614652b851f;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/models/original_picture.js.coffee b/app/assets/javascripts/models/original_picture.js.coffee index bd78f92a..871af072 100644 --- a/app/assets/javascripts/models/original_picture.js.coffee +++ b/app/assets/javascripts/models/original_picture.js.coffee @@ -1,4 +1,6 @@ class Pettanr.OriginalPicture extends Peta.Content + url: '/original_pictures/' + @singular: () -> 'OriginalPicture' @@ -26,18 +28,23 @@ class Pettanr.OriginalPicture extends Peta.Content {src: @r_url(), width: @get('width'), height: @get('height')} tmb_opt_img_tag: () -> - wh = Pettanr.Imager.thumbnail_size(@get('width'), @get('height')) - {src: @r_url(), width: wh[0], height: wh[1]} - - symbol_option: () -> - @tmb_opt_img_tag() + new Pettanr.Image.SymbolPicture({ + attr: { + src: @r_url() + }, + picture: this + }) + + symbol_option: (cb) -> + _this = this + this.fetch().done -> + cb(_this.tmb_opt_img_tag()) revision: () -> - head = @history()[0] - if head - head.revision() - else - 'unpublished' + new Pettanr.OriginalPicture.Head({original_picture: this}) + + history: () -> + new Pettanr.OriginalPicture.History({original_picture: this}) is_unpublished: () -> @get('published_at') == null and @get('stopped_at') == null @@ -57,6 +64,27 @@ class Pettanr.OriginalPicture extends Peta.Content if @id @url = @url + @id -class Pettanr.OriginalPicture.Collection extends Backbone.Collection - model: Pettanr.OriginalPicture - url: '/original_pictures' +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: () -> + _this = this + @pictures.fetch().done -> + head = _this.pictures.models[0] + value = if head + head.get('revision') + else + 'unpublished' + _this.$el.html(value) + this +