OSDN Git Service

add lost canceler
authoryasushiito <yas@pen-chan.jp>
Wed, 21 Jan 2015 09:01:46 +0000 (18:01 +0900)
committeryasushiito <yas@pen-chan.jp>
Wed, 21 Jan 2015 09:01:46 +0000 (18:01 +0900)
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/routes.js.coffee

index 6431d4e..2d48fd5 100644 (file)
@@ -57,6 +57,7 @@ class Editor.PanelEditor extends Backbone.View
     rb = new Tag.RowBreak()\r
     this.$el.append(rb.render().el)\r
     this.$el.tabs()\r
+    window.editor = this  # enable leave cancel flag on unsave\r
     this\r
   \r
   panel_resize: () ->\r
@@ -66,6 +67,10 @@ class Editor.PanelEditor extends Backbone.View
     #$(trace + 'width').val(w)\r
     #$(trace + 'height').val(h)\r
   \r
+  quit: () ->\r
+    @dialog.$el.dialog('destroy')\r
+    window.editor = null  # enable leave cancel flag on unsave\r
+  \r
   root_item: () ->\r
     @panel\r
   \r
index c56221d..e3e093a 100644 (file)
@@ -84,6 +84,16 @@ class Pettanr.Router extends Backbone.Router
     r = new Pettanr.UsersController()\r
     r.index()\r
   \r
+  navigate: (fragment, options) ->\r
+    if window.editor\r
+      if confirm('leave? edit data unsaved')\r
+        window.editor.quit()\r
+        super(fragment, options)\r
+      else\r
+        false\r
+    else\r
+      super(fragment, options)\r
+  \r
   hoge: () ->\r
     names = _.map Manifest.manifest().controllers, (controller_manifest, controller_name) ->\r
       c = Pettanr[Pettanr.camelize(controller_name) + 'Controller']\r