OSDN Git Service

change router frame work
[pettanr/pettanr.git] / app / assets / javascripts / controllers.js.coffee
index b59e757..c1be8b7 100644 (file)
@@ -1,17 +1,11 @@
 class Pettanr.AppController\r
   \r
-  constructor: (@params, @operators) ->\r
+  constructor: (@params, @form, @operators) ->\r
     _.extend(this, Backbone.Events)\r
   \r
-  @new2: (params, operators) ->\r
+  @new2: (params, form, operators) ->\r
     c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
-    new c(params, operators)\r
-  \r
-  @fire: (params, operators, refresh_function) ->\r
-    controller = Pettanr.AppController.new2(params, operators)\r
-    @listener_function(controller, refresh_function)\r
-    action_name = params['action']\r
-    controller[action_name]()\r
+    new c(params, form, operators)\r
   \r
   set_model: () ->\r
     @my_controller = Manifest.manifest().controllers[@params['controller']]\r
@@ -71,7 +65,7 @@ class Pettanr.AppController
       @listenTo(profiler, 'navigate', @navigate)\r
       profiler.render()\r
       @trigger('ready', profiler)\r
-      @trigger('retitle', @params)\r
+      @trigger('title', @params)\r
   \r
   set_new: () ->\r
     @set_model()\r
@@ -80,12 +74,12 @@ class Pettanr.AppController
     # Backbone.Model has defaults property\r
     #@item.supply_default()\r
   \r
-  set_edit: (save_func) ->\r
+  set_edit: () ->\r
     @set_model()\r
     @item = new @my_model_class({id: @params['id']})\r
     @item.fetch({cache: true}).done =>\r
       @item.boosts 'post'\r
-      @render_form(save_func)\r
+      @render_form()\r
   \r
   render_form: () ->\r
     @form = Locmare.Form.factory({\r
@@ -97,8 +91,6 @@ class Pettanr.AppController
       operators: @operators,\r
       action: '/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id'))\r
     })\r
-    @listenTo(@form, 'post', @create)\r
-    @listenTo(@form, 'put', @update)\r
     @form.render()\r
     @trigger('ready', @form)\r
   \r
@@ -109,6 +101,20 @@ class Pettanr.AppController
   form_edit: () ->\r
     @set_edit()\r
   \r
+  post_success: (model, response) ->\r
+    @trigger('redirect', @form.item.show_url())\r
+    @trigger('success', model, response)\r
+  \r
+  post_fail: (model, response) ->\r
+    @trigger('fail', response)\r
+  \r
+  destroy_success: (model, response) ->\r
+    @trigger('redirect', '/home/' + model.path_name())\r
+    @trigger('success', model, response)\r
+  \r
+  destroy_fail: (model, response) ->\r
+    @trigger('fail', response)\r
+  \r
   navigate: (url) ->\r
     @trigger('navigate', url)\r
   \r