OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / peta / item.js.coffee
index 477ad94..22fe57a 100644 (file)
@@ -1,4 +1,10 @@
 class Peta.Item extends Backbone.Model\r
+  \r
+  initialize: (attr = {}, options = {}) ->\r
+    super(attr, options)\r
+    @expire_time = options.expire_time\r
+    @boosters = {}\r
+  \r
   @child_models: () ->\r
     @my_manifest().child_models()\r
   \r
@@ -124,14 +130,10 @@ class Peta.Item extends Backbone.Model
       @boost boost_manifest\r
   \r
   boost: (boost_manifest) ->\r
-    @boosters ||= {}\r
     @boosters[boost_manifest.name] = new Locmare.Booster(boost_manifest, this)\r
     # fetched item is not cleared .  force write booster\r
     #@boosters[boost_manifest.name] ||= new Locmare.Booster(boost_manifest, this)\r
   \r
-  boosters: () ->\r
-    @boosters ||= {}\r
-  \r
   is_extend_column: (column_name) ->\r
     @is_extend_column column_name\r
   \r
@@ -160,18 +162,46 @@ class Peta.Item extends Backbone.Model
   prof_url: () ->\r
     Pettanr.url(@table_name(), 'show', {id: @get('id'), format: 'prof'})\r
   \r
+  new_url: () ->\r
+    Pettanr.url(@table_name(), 'new', {})\r
+  \r
+  create_url: () ->\r
+    Pettanr.url(@table_name(), 'create', {})\r
+  \r
   edit_url: () ->\r
     Pettanr.url(@table_name(), 'edit', {id: @get('id')})\r
   \r
+  update_url: () ->\r
+    Pettanr.url(@table_name(), 'update', {id: @get('id')})\r
+  \r
   destroy_url: () ->\r
     Pettanr.url(@table_name(), 'destroy', {id: @get('id')})\r
   \r
+  save: (model_attr) ->\r
+    super(model_attr || @attributes, {\r
+      success: (model, response, options) =>\r
+        @trigger('save:success', model, response)\r
+      error: (model, response, options) =>\r
+        @trigger('save:fail', model, response)\r
+    })\r
+  \r
+  destroy: () ->\r
+    super({\r
+      success: (model, response, options) =>\r
+        @trigger('destroy:success', model, response)\r
+      error: (model, response, options) =>\r
+        @trigger('destroy:fail', model, response)\r
+    })\r
+  \r
   is_editize: () ->\r
     @editor\r
   \r
   dom_id: () ->\r
     (@get('id') || '').toString()\r
   \r
+  cache_key: () ->\r
+    @table_name() + '-' + @dom_id()\r
+  \r
   dom_pool_type: () ->\r
     @new_record ? 'stored' : 'new'\r
   \r