OSDN Git Service

fix: show's destroy button
[pettanr/pettanr.git] / app / assets / javascripts / peta / item.js.coffee
index 7292286..1c133c5 100644 (file)
@@ -1,6 +1,7 @@
 class Peta.Item extends Backbone.Model\r
   \r
   initialize: (attr = {}, options = {}) ->\r
+    @url = @default_url()\r
     super(attr, options)\r
     @expire_time = options.expire_time\r
     @boosters = {}\r
@@ -14,6 +15,9 @@ class Peta.Item extends Backbone.Model
   \r
   # ClassMethods\r
   \r
+  @default_url: () ->\r
+    '/' + @table_name() + '/'\r
+  \r
   @my_class: () ->\r
     this\r
   \r
@@ -82,6 +86,11 @@ class Peta.Item extends Backbone.Model
   \r
   #InstanceMethods\r
   \r
+  default_url: () ->\r
+    r = @my_class().default_url()\r
+    r = r.concat( @id ) if @id\r
+    r\r
+  \r
   singular: () ->\r
     @my_class().singular()\r
   \r
@@ -109,6 +118,21 @@ class Peta.Item extends Backbone.Model
     else\r
       @item_name()\r
   \r
+  has_many: (has_many_name) ->\r
+    has_many_manifest = @my_class().my_manifest().associations.has_many[has_many_name]\r
+    action_name = has_many_manifest.list_action_name\r
+    Locmare.ListGroup.list(\r
+      has_many_name, action_name, {id: @get('id')}\r
+    )\r
+  \r
+  has_one: (has_one_name) ->\r
+    has_one_manifest = @my_class().my_manifest().associations.has_one[has_one_name]\r
+    controller_name = has_one_manifest.model().table_name()\r
+    action_name = has_one_manifest.list_action_name\r
+    Locmare.ListGroup.list(\r
+      controller_name, action_name, {id: @get('id')}\r
+    )\r
+  \r
   boosts: (level) ->\r
     c = @my_class().my_peta().boost\r
     _.each c, (boost_manifest, boost_name) =>\r
@@ -123,7 +147,7 @@ class Peta.Item extends Backbone.Model
   is_extend_column: (column_name) ->\r
     @is_extend_column column_name\r
   \r
-  is_visible: (operators) ->\r
+  is_visible: (operators = Pettanr.cache.operators) ->\r
     if Manifest.manifest().magic_numbers['run_mode'] == 0\r
       return false if not operators.is_guest()\r
     else\r
@@ -197,6 +221,15 @@ class Peta.Item extends Backbone.Model
   destroy_url: () ->\r
     Pettanr.url(@table_name(), 'destroy', {id: @get('id')})\r
   \r
+  hold: () ->\r
+    Pettanr.cache.hold(this)\r
+  \r
+  fix: () ->\r
+    Pettanr.cache.fix(this)\r
+  \r
+  release: () ->\r
+    Pettanr.cache.release(this)\r
+  \r
   save: (model_attr) ->\r
     super(model_attr || @attributes, {\r
       success: (model, response, options) =>\r