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'));
});
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);
+ }
}
};