editor: plugins/core - undo/redo action support for restoring pre action canvas selection
[fnpeditor.git] / src / editor / modules / mainBar / mainBar.js
index 8658c27..0563b7c 100644 (file)
@@ -17,6 +17,10 @@ return function(sandbox) {
 
     view.find('[data-cmd]').click(function(e) {
         e.preventDefault();
+        var target = $(e.target);
+        if(target.hasClass('disabled')) {
+            return;
+        }
         sandbox.publish('cmd.' + $(e.target).attr('data-cmd'));
     });
 
@@ -24,7 +28,18 @@ return function(sandbox) {
         start: function() { sandbox.publish('ready'); },
         getView: function() {return view;},
         setCommandEnabled: function(cmd, enabled) {
-            view.find('[data-cmd='+cmd+']').toggleClass('disabled', !enabled);
+            var trigger = view.find('[data-cmd='+cmd+']'),
+                disabledText = trigger.attr('data-disabled-text'),
+                originalContent = trigger.data('originalContent');
+            trigger.toggleClass('disabled', !enabled);
+            if(enabled && originalContent) {
+                trigger.html(originalContent);
+                trigger.removeData('originalContent');
+            }
+            if(!enabled && disabledText) {
+                trigger.data('originalContent', trigger.html());
+                trigger.text(disabledText);
+            }
         },
         setVersion: function(version) {
             view.find('.version').text(version);