fix to work correctly with actions containing only a string/caption, using action.execute() to get automatic confirmation from action system and defaulting to default actions (not all actions) if last action is dragged off

This commit is contained in:
Ralf Becker 2014-03-06 18:38:02 +00:00
parent 06ffa47c25
commit ee50a6b9bb

View File

@ -106,7 +106,7 @@ var et2_toolbar = et2_DOMWidget.extend(
if (pref && !jQuery.isArray(pref)) this.preference = pref; if (pref && !jQuery.isArray(pref)) this.preference = pref;
//Set the default actions for the first time //Set the default actions for the first time
if (typeof pref === 'undefined') if (typeof pref === 'undefined' || jQuery.isEmptyObject(pref))
{ {
for (var name in actions) for (var name in actions)
{ {
@ -158,6 +158,7 @@ var et2_toolbar = et2_DOMWidget.extend(
for(var name in actions) for(var name in actions)
{ {
var action = actions[name]; var action = actions[name];
if (typeof action == 'string') action = {id: name, caption: action};
// Add in divider // Add in divider
if(last_group_id != action.group) if(last_group_id != action.group)
@ -269,7 +270,7 @@ var et2_toolbar = et2_DOMWidget.extend(
this.actionlist.appendTo(this.div); this.actionlist.appendTo(this.div);
this.actionbox.appendTo(this.div); this.actionbox.appendTo(this.div);
var toolbar = this.actionlist.find('span').children(), var toolbar = this.actionlist.find('span').children(),
toolbox = this.actionbox, toolbox = this.actionbox,
menulist = jQuery(this.actionbox.children()[1]); menulist = jQuery(this.actionbox.children()[1]);
@ -329,13 +330,13 @@ var et2_toolbar = et2_DOMWidget.extend(
$j(this).unbind(event); $j(this).unbind(event);
}); });
} }
}, },
create: function (event, ui) { create: function (event, ui) {
$j('html').unbind('click.outsideOfMenu'); $j('html').unbind('click.outsideOfMenu');
} }
}); });
}, },
/** /**
* Add/Or remove an action from prefence * Add/Or remove an action from prefence
* *
@ -371,7 +372,7 @@ var et2_toolbar = et2_DOMWidget.extend(
.attr('id', this.id+'-'+action.id) .attr('id', this.id+'-'+action.id)
.attr('title', (action.hint ? action.hint : action.caption)) .attr('title', (action.hint ? action.hint : action.caption))
.appendTo(this.preference[action.id]?this.actionbox.children()[1]:$j('[data-group='+action.group+']',this.actionlist)); .appendTo(this.preference[action.id]?this.actionbox.children()[1]:$j('[data-group='+action.group+']',this.actionlist));
if ( action.iconUrl) if ( action.iconUrl)
{ {
button.attr('style','background-image:url(' + action.iconUrl + ')'); button.attr('style','background-image:url(' + action.iconUrl + ')');
@ -399,7 +400,7 @@ var et2_toolbar = et2_DOMWidget.extend(
if(action) if(action)
{ {
action.data.event = e; action.data.event = e;
action.onExecute.exec(action); action.execute([]);
} }
}; };