OSDN Git Service

add credit
[pettanr/pettanr.git] / app / assets / javascripts / models / original_picture.js.coffee
index bd78f92..871af07 100644 (file)
@@ -1,4 +1,6 @@
 class Pettanr.OriginalPicture extends Peta.Content\r
+  url: '/original_pictures/'\r
+  \r
   @singular: () ->\r
     'OriginalPicture'\r
   \r
@@ -26,18 +28,23 @@ class Pettanr.OriginalPicture extends Peta.Content
     {src: @r_url(), width: @get('width'), height: @get('height')}\r
   \r
   tmb_opt_img_tag: () ->\r
-    wh = Pettanr.Imager.thumbnail_size(@get('width'), @get('height'))\r
-    {src: @r_url(), width: wh[0], height: wh[1]}\r
-  \r
-  symbol_option: () ->\r
-    @tmb_opt_img_tag()\r
+    new Pettanr.Image.SymbolPicture({\r
+      attr: {\r
+        src: @r_url()\r
+      },\r
+      picture: this\r
+    })\r
+  \r
+  symbol_option: (cb) ->\r
+    _this = this\r
+    this.fetch().done ->\r
+      cb(_this.tmb_opt_img_tag())\r
   \r
   revision: () ->\r
-    head = @history()[0]\r
-    if head\r
-      head.revision()\r
-    else\r
-      'unpublished'\r
+    new Pettanr.OriginalPicture.Head({original_picture: this})\r
+  \r
+  history: () ->\r
+    new Pettanr.OriginalPicture.History({original_picture: this})\r
   \r
   is_unpublished: () ->\r
     @get('published_at') == null and @get('stopped_at') == null\r
@@ -57,6 +64,27 @@ class Pettanr.OriginalPicture extends Peta.Content
     if @id\r
       @url = @url + @id\r
   \r
-class Pettanr.OriginalPicture.Collection extends Backbone.Collection\r
-  model: Pettanr.OriginalPicture\r
-  url: '/original_pictures'\r
+class Pettanr.OriginalPicture.History extends Backbone.Collection\r
+  url: '/original_pictures/'\r
+  \r
+  initialize: (options) ->\r
+    @model = Pettanr.Picture\r
+    @url = @url + options.id + '/history'\r
+  \r
+class Pettanr.OriginalPicture.Head extends Backbone.View\r
+  tagName: 'span'\r
+  initialize: (options) ->\r
+    @original_picture = options.original_picture\r
+    @pictures = new Pettanr.OriginalPicture.History({id: @original_picture.get('id')})\r
+  \r
+  render: () ->\r
+    _this = this\r
+    @pictures.fetch().done ->\r
+      head = _this.pictures.models[0]\r
+      value = if head\r
+        head.get('revision')\r
+      else\r
+        'unpublished'\r
+      _this.$el.html(value)\r
+    this\r
+  \r