smartxml: Support for Node.object.describesParent property
[fnpeditor.git] / src / editor / modules / mainBar / mainBar.js
index ecf6812..256111f 100644 (file)
@@ -7,9 +7,20 @@ define([
 
 return function(sandbox) {
 
-    var view = $(_.template(template)());
-    view.find('button').click(function(e) {
+    /* globals gettext*/
+
+    var config = sandbox.getConfig(),
+        userName = config.user && config.user.name,
+        view = $(_.template(template)({
+            userName: userName || gettext('anonymous')
+        }));
+
+    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'));
     });
 
@@ -17,10 +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);
-        },
-        setVersion: function(version) {
-            view.find('.version').text(version);
+            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);
+            }
         }
     };