- Fix misleading display when chaning editor type (#1488104), fix handling of custom commands result

release-0.7
alecpl 13 years ago
parent 0c1cb2fed7
commit 14d494fd99

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail CHANGELOG Roundcube Webmail
=========================== ===========================
- Fix misleading display when chaning editor type (#1488104)
- Add loading indicator on contact delete - Add loading indicator on contact delete
- Fix bug where after delete message rows can be added to the list of another folder (#1487752) - Fix bug where after delete message rows can be added to the list of another folder (#1487752)
- Add notice on autocompletion that not all records were displayed - Add notice on autocompletion that not all records were displayed

@ -439,6 +439,8 @@ function rcube_webmail()
// execute a specific command on the web client // execute a specific command on the web client
this.command = function(command, props, obj) this.command = function(command, props, obj)
{ {
var ret;
if (obj && obj.blur) if (obj && obj.blur)
obj.blur(); obj.blur();
@ -462,25 +464,27 @@ function rcube_webmail()
// process external commands // process external commands
if (typeof this.command_handlers[command] === 'function') { if (typeof this.command_handlers[command] === 'function') {
var ret = this.command_handlers[command](props, obj); ret = this.command_handlers[command](props, obj);
return ret !== undefined ? ret : (obj ? false : true); return ret !== undefined ? ret : (obj ? false : true);
} }
else if (typeof this.command_handlers[command] === 'string') { else if (typeof this.command_handlers[command] === 'string') {
var ret = window[this.command_handlers[command]](props, obj); ret = window[this.command_handlers[command]](props, obj);
return ret !== undefined ? ret : (obj ? false : true); return ret !== undefined ? ret : (obj ? false : true);
} }
// trigger plugin hooks // trigger plugin hooks
this.triggerEvent('actionbefore', {props:props, action:command}); this.triggerEvent('actionbefore', {props:props, action:command});
var ret = this.triggerEvent('before'+command, props); ret = this.triggerEvent('before'+command, props);
if (ret !== undefined) { if (ret !== undefined) {
// abort if one the handlers returned false // abort if one of the handlers returned false
if (ret === false) if (ret === false)
return false; return false;
else else
props = ret; props = ret;
} }
ret = undefined;
// process internal command // process internal command
switch (command) { switch (command) {
@ -1045,15 +1049,17 @@ function rcube_webmail()
// unified command call (command name == function name) // unified command call (command name == function name)
default: default:
var func = command.replace(/-/g, '_'); var func = command.replace(/-/g, '_');
if (this[func] && typeof this[func] === 'function') if (this[func] && typeof this[func] === 'function') {
this[func](props); ret = this[func](props);
}
break; break;
} }
this.triggerEvent('after'+command, props); if (this.triggerEvent('after'+command, props) === false)
ret = false;
this.triggerEvent('actionafter', {props:props, action:command}); this.triggerEvent('actionafter', {props:props, action:command});
return obj ? false : true; return ret === false ? false : obj ? false : true;
}; };
// set command(s) enabled or disabled // set command(s) enabled or disabled

@ -115,13 +115,17 @@ function rcmail_toggle_editor(select, textAreaId, flagElement)
if (flagElement && (flag = rcube_find_object(flagElement))) if (flagElement && (flag = rcube_find_object(flagElement)))
flag.value = '1'; flag.value = '1';
} }
else { else if (res) {
if (!res && select.tagName == 'SELECT')
select.value = 'html';
if (flagElement && (flag = rcube_find_object(flagElement))) if (flagElement && (flag = rcube_find_object(flagElement)))
flag.value = '0'; flag.value = '0';
if (rcmail.env.composebody) if (rcmail.env.composebody)
rcube_find_object(rcmail.env.composebody).focus(); rcube_find_object(rcmail.env.composebody).focus();
} }
else { // !res
if (select.tagName == 'SELECT')
select.value = 'html';
else if (select.tagName == 'INPUT')
select.checked = true;
}
} }

Loading…
Cancel
Save