OSDN Git Service

save point
[pettanr/pettanr.git] / app / assets / javascripts / views / layouts / sns.js.coffee
index 69ef296..e8e715b 100644 (file)
@@ -3,19 +3,46 @@ class Pettanr.Views.Layout.Sns.Header extends Backbone.View
   id: 'header'\r
   \r
   initialize: (options) ->\r
+    _.extend(this, Pettanr.Views.Layout.ControllerManager.prototype)\r
     @parent = options.parent\r
+    @local_router = new Pettanr.LocalRouter()\r
+    @listenTo(@local_router, 'fire', @fire)\r
   \r
   render: () ->\r
     this.$el.html('')\r
     this\r
   \r
+  fire: (params) ->\r
+    controller = Pettanr.AppController.new2(params, @operators())\r
+    @add_listener(controller, this)\r
+    action_name = params['action']\r
+    controller[action_name]()\r
+  \r
+  sign_in_success: (user, response) ->\r
+    @trigger('sign_in:success', user, response)\r
+  \r
+  sign_in_fail: (user, response) ->\r
+    @trigger('sign_in:fail', user, response)\r
+  \r
+  sign_out_success: (user, response) ->\r
+    @trigger('sign_out:success', user, response)\r
+  \r
+  sign_out_fail: (user, response) ->\r
+    @trigger('sign_out:fail', user, response)\r
+  \r
+  retitle: (params, str = null) ->\r
+    @trigger('retitle', params, str = null)\r
+  \r
   refresh: (view) ->\r
     @listenTo(view, 'navigate', @navigate)\r
-    this.$el.html(view.el)\r
+    this.$el.html(view.render().el)\r
   \r
   sign_out: () ->\r
+    @trigger('sign_out')\r
   \r
   navigate: (url) ->\r
+    # header's message replace body\r
+    # @local_router.navigate(url, true)\r
     @trigger('navigate', url)\r
   \r
   operators: () ->\r
@@ -26,17 +53,42 @@ class Pettanr.Views.Layout.Sns.Body extends Backbone.View
   id: 'body'\r
   \r
   initialize: (options) ->\r
+    _.extend(this, Pettanr.Views.Layout.ControllerManager.prototype)\r
     @parent = options.parent\r
+    @local_router = new Pettanr.LocalRouter()\r
+    @listenTo(@local_router, 'fire', @fire)\r
   \r
   render: () ->\r
     this.$el.html('')\r
     this\r
   \r
+  fire: (params) ->\r
+    controller = Pettanr.AppController.new2(params, @operators())\r
+    @add_listener(controller, this)\r
+    action_name = params['action']\r
+    controller[action_name]()\r
+  \r
+  sign_in_success: (user, response) ->\r
+    @trigger('sign_in:success', user, response)\r
+  \r
+  sign_in_fail: (user, response) ->\r
+    @trigger('sign_in:fail', user, response)\r
+  \r
+  sign_out_success: (user, response) ->\r
+    @trigger('sign_out:success', user, response)\r
+  \r
+  sign_out_fail: (user, response) ->\r
+    @trigger('sign_out:fail', user, response)\r
+  \r
+  retitle: (params, str = null) ->\r
+    @trigger('retitle', params, str = null)\r
+  \r
   refresh: (view) ->\r
     @listenTo(view, 'navigate', @navigate)\r
-    this.$el.html(view.el)\r
+    this.$el.html(view.render().el)\r
   \r
   navigate: (url) ->\r
+    @local_router.navigate(url, true)\r
     @trigger('navigate', url)\r
   \r
   operators: () ->\r