OSDN Git Service

fix: fetch fail
[pettanr/pettanr.git] / app / assets / javascripts / peta / item.js.coffee
index f47c788..c11b572 100644 (file)
@@ -153,6 +153,8 @@ class Peta.Item extends Backbone.Model
       @fetch_association(route, cxt, {\r
         success: (association_item, options) =>\r
           options.success.call(context, association_item)\r
+        fail: (response, opt) =>\r
+          options.fail.call(context, response, opt)\r
         context: context,\r
         options: options\r
       })\r
@@ -161,6 +163,8 @@ class Peta.Item extends Backbone.Model
       @fetch_association(route, this, {\r
         success: (association_item, options) =>\r
           association_item.get_association(routes, this, options)\r
+        fail: (response, opt) =>\r
+          options.fail.call(context, response, opt)\r
         context: context,\r
         options: options\r
       })\r
@@ -170,6 +174,8 @@ class Peta.Item extends Backbone.Model
     fetch_options = {\r
       success: (association_item) =>\r
         options.success.call(context, association_item, options.options)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     }\r
     if a.belongs_to[name]\r
       @get_parent(name, context, fetch_options)\r
@@ -187,6 +193,9 @@ class Peta.Item extends Backbone.Model
     @listenTo(retriever, 'retrieve', (item) =>\r
       options.success.call(context, item)\r
     )\r
+    @listenTo(retriever, 'fail', (response, opt) =>\r
+      options.fail.call(context, response, opt)\r
+    )\r
     retriever.retrieve()\r
   \r
   get_child: (has_one_name, context, options = null) ->\r
@@ -196,6 +205,8 @@ class Peta.Item extends Backbone.Model
         callback = options.success\r
         item = items[0]\r
         callback.call(context, item)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   get_children: (has_many_name, context, options = null) ->\r
@@ -204,6 +215,8 @@ class Peta.Item extends Backbone.Model
       success: (items) =>\r
         callback = options.success\r
         callback.call(context, items)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   has_many: (has_many_name) ->\r
@@ -229,6 +242,8 @@ class Peta.Item extends Backbone.Model
     @get_association(routes, this, {\r
       success: (association) => \r
         options.success.call(context, association)\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   boosts: (level) ->\r
@@ -261,6 +276,10 @@ class Peta.Item extends Backbone.Model
       callback = options.success\r
       callback.call(context, item)\r
     )\r
+    @listenTo(retriever, 'fail', (response, opt) =>\r
+      callback = options.fail\r
+      callback.call(context, response, opt)\r
+    )\r
     retriever.retrieve(options.force)\r
   \r
   @pick_item_name: () ->\r
@@ -298,6 +317,8 @@ class Peta.Item extends Backbone.Model
     @trace_to('symbol', this, {\r
       success: (symbol_item) => \r
         options.success.call(context, symbol_item.symbol_file())\r
+      fail: (response, opt) =>\r
+        options.fail.call(context, response, opt)\r
     })\r
   \r
   @face_file: () ->\r
@@ -419,6 +440,9 @@ class Peta.Item extends Backbone.Model
   release: () ->\r
     Pettanr.cache.release(this)\r
   \r
+  free: () ->\r
+    Pettanr.cache.free(this)\r
+  \r
   save: (model_attr) ->\r
     super(model_attr || @attributes, {\r
       success: (model, response, options) =>\r
@@ -430,6 +454,7 @@ class Peta.Item extends Backbone.Model
   destroy: () ->\r
     super({\r
       success: (model, response, options) =>\r
+        @free()\r
         @trigger('destroy:success', model, response)\r
       error: (model, response, options) =>\r
         @trigger('destroy:fail', model, response)\r