Building js & css for editor with r.js/lessc via grunt tasks
[fnpeditor.git] / modules / documentHistory / documentHistory.js
index 2c3a3b6..d435617 100644 (file)
@@ -1,9 +1,10 @@
 define([\r
 'libs/jquery-1.9.1.min',\r
 'libs/underscore-min',\r
 define([\r
 'libs/jquery-1.9.1.min',\r
 'libs/underscore-min',\r
+'./restoreDialog',\r
 'libs/text!./templates/main.html',\r
 'libs/text!./templates/item.html'\r
 'libs/text!./templates/main.html',\r
 'libs/text!./templates/item.html'\r
-], function($, _, mainTemplateSrc, itemTemplateSrc) {\r
+], function($, _, restoreDialog, mainTemplateSrc, itemTemplateSrc) {\r
 \r
 'use strict';\r
     \r
 \r
 'use strict';\r
     \r
@@ -14,6 +15,25 @@ return function(sandbox) {
         itemList: dom.find('.rng-module-documentHistory-itemsList'),\r
     }\r
     var itemViews = [];\r
         itemList: dom.find('.rng-module-documentHistory-itemsList'),\r
     }\r
     var itemViews = [];\r
+    \r
+    \r
+    dom.find('.btn.compare').click(function(e) {\r
+        var selected = historyItems.getSelected();\r
+        sandbox.publish('compare', selected[0], selected[1]);\r
+    });\r
+    \r
+    dom.find('.btn.restore').click(function(e) {\r
+        var dialog = restoreDialog.create();\r
+        dialog.on('restore', function(event) {\r
+            sandbox.publish('restoreVersion', {version: historyItems.getSelected()[0], description: event.data.description});\r
+            event.success();\r
+        });\r
+        dialog.show();\r
+    });\r
+    \r
+    dom.find('.btn.display').click(function(e) {\r
+        sandbox.publish('displayVersion', {version: historyItems.getSelected()[0]});\r
+    });\r
         \r
     var addHistoryItem = function(item, options) {\r
         historyItems.add(item);\r
         \r
     var addHistoryItem = function(item, options) {\r
         historyItems.add(item);\r
@@ -27,7 +47,7 @@ return function(sandbox) {
     \r
     var toggleItemViews = function(toggle) {\r
         itemViews.forEach(function(view) {\r
     \r
     var toggleItemViews = function(toggle) {\r
         itemViews.forEach(function(view) {\r
-            if(!historyItems.selected(view.item))\r
+            if(!historyItems.isSelected(view.item))\r
                 view.toggle(toggle);\r
         });\r
     }\r
                 view.toggle(toggle);\r
         });\r
     }\r
@@ -54,26 +74,31 @@ return function(sandbox) {
         add: function(item) {\r
             this._itemsById[item.version] = item;\r
         },\r
         add: function(item) {\r
             this._itemsById[item.version] = item;\r
         },\r
-        selected: function(item) {\r
+        isSelected: function(item) {\r
             return _.contains(this._selected, item.version);\r
         },\r
             return _.contains(this._selected, item.version);\r
         },\r
+        getSelected: function() {\r
+            return this._selected;\r
+        },\r
         _updateUI: function() {\r
             var len = this._selected.length;\r
             if(len === 0) {\r
                 toggleButton('compare', false);\r
         _updateUI: function() {\r
             var len = this._selected.length;\r
             if(len === 0) {\r
                 toggleButton('compare', false);\r
-                toggleButton('show2', false);\r
+                toggleButton('display', false);\r
                 toggleButton('restore', false);\r
             }\r
             if(len === 1) {\r
                 toggleButton('compare', false);\r
                 toggleButton('restore', false);\r
             }\r
             if(len === 1) {\r
                 toggleButton('compare', false);\r
-                toggleButton('show2', true);\r
+                toggleButton('display', true);\r
                 toggleButton('restore', true);\r
             }\r
             if(len === 2) {\r
                 toggleItemViews(false);\r
                 toggleButton('compare', true);\r
                 toggleButton('restore', true);\r
             }\r
             if(len === 2) {\r
                 toggleItemViews(false);\r
                 toggleButton('compare', true);\r
-                toggleButton('show2', false);\r
+                toggleButton('display', false);\r
                 toggleButton('restore', false);\r
                 toggleButton('restore', false);\r
+            } else {\r
+                toggleItemViews(true);\r
             }\r
         }\r
     };\r
             }\r
         }\r
     };\r
@@ -86,7 +111,7 @@ return function(sandbox) {
     };\r
     itemView.prototype.template = _.template(itemTemplateSrc);\r
     itemView.prototype.onItemClicked = function() {\r
     };\r
     itemView.prototype.template = _.template(itemTemplateSrc);\r
     itemView.prototype.onItemClicked = function() {\r
-        if(historyItems.selected(this.item)) {\r
+        if(historyItems.isSelected(this.item)) {\r
             historyItems.unselect(this.item);\r
             this.dimItem();\r
         } else if(historyItems.select(this.item)) {\r
             historyItems.unselect(this.item);\r
             this.dimItem();\r
         } else if(historyItems.select(this.item)) {\r