OSDN Git Service

js add panel viewer
[pettanr/pettanr.git] / app / assets / javascripts / models / panel.js.coffee
index 1b38630..47ddffa 100644 (file)
@@ -13,10 +13,46 @@ class Pettanr.Panel extends Peta.Root
     publish: 0\r
   } \r
   \r
-  initialize: () ->\r
-    if @id\r
-      @url = @url + @id\r
+  pp: () ->\r
+    new Pettanr.PanelPicture({id: @get('pp_id')})\r
+  \r
+  is_visible: (operators) ->\r
+    switch super(operators)\r
+      when null # super return\r
+        return true\r
+      when false\r
+        return false\r
+      else\r
+        return true if @isNew()\r
+        @is_publish()\r
+  \r
+  is_usable: (operators) ->\r
+    @is_visible(operators)\r
+  \r
+  is_publish: () ->\r
+    @get('publish') > 0\r
+  \r
+  initialize: (attr = {}, options = {}) ->\r
+    @set(attr)\r
+    if @get('id')\r
+      @url = @url + @get('id')\r
+    if options.with_elements\r
+      @url = @url + '?with_elements=true'\r
   \r
 class Pettanr.Panel.Collection extends Backbone.Collection\r
   model: Pettanr.Panel\r
-  url: '/panels'\r
+  url: '/panels/'\r
+class Pettanr.RelationPanel extends Pettanr.Panel\r
+  relations: [\r
+    {\r
+      type: Backbone.HasMany,\r
+      key: 'panel_pictures',\r
+      relatedModel: 'Pettanr.PanelPicture',\r
+      collectionType: 'Pettanr.PanelPicture.Collection',\r
+      reverseRelation: {\r
+        key: 'panel_id',\r
+        includeInJSON: 'id'\r
+      }\r
+    },\r
+  ]\r
+  \r