From 14d494fd993a8530e41f65d548dd91e4a86c91b9 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 28 Sep 2011 05:00:25 -0400
Subject: [PATCH] - Fix misleading display when chaning editor type (#1488104), fix handling of custom commands result
---
CHANGELOG | 1 +
program/js/editor.js | 10 +++++++---
program/js/app.js | 22 ++++++++++++++--------
3 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 7b36c8f..f7fb73f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix misleading display when chaning editor type (#1488104)
- Add loading indicator on contact delete
- 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
diff --git a/program/js/app.js b/program/js/app.js
index a209256..22599eb 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -439,6 +439,8 @@
// execute a specific command on the web client
this.command = function(command, props, obj)
{
+ var ret;
+
if (obj && obj.blur)
obj.blur();
@@ -462,24 +464,26 @@
// process external commands
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);
}
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);
}
// trigger plugin hooks
this.triggerEvent('actionbefore', {props:props, action:command});
- var ret = this.triggerEvent('before'+command, props);
+ ret = this.triggerEvent('before'+command, props);
if (ret !== undefined) {
- // abort if one the handlers returned false
+ // abort if one of the handlers returned false
if (ret === false)
return false;
else
props = ret;
}
+
+ ret = undefined;
// process internal command
switch (command) {
@@ -1045,15 +1049,17 @@
// unified command call (command name == function name)
default:
var func = command.replace(/-/g, '_');
- if (this[func] && typeof this[func] === 'function')
- this[func](props);
+ if (this[func] && typeof this[func] === 'function') {
+ ret = this[func](props);
+ }
break;
}
- this.triggerEvent('after'+command, props);
+ if (this.triggerEvent('after'+command, props) === false)
+ ret = false;
this.triggerEvent('actionafter', {props:props, action:command});
- return obj ? false : true;
+ return ret === false ? false : obj ? false : true;
};
// set command(s) enabled or disabled
diff --git a/program/js/editor.js b/program/js/editor.js
index 906faec..63186fb 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -115,13 +115,17 @@
if (flagElement && (flag = rcube_find_object(flagElement)))
flag.value = '1';
}
- else {
- if (!res && select.tagName == 'SELECT')
- select.value = 'html';
+ else if (res) {
if (flagElement && (flag = rcube_find_object(flagElement)))
flag.value = '0';
if (rcmail.env.composebody)
rcube_find_object(rcmail.env.composebody).focus();
}
+ else { // !res
+ if (select.tagName == 'SELECT')
+ select.value = 'html';
+ else if (select.tagName == 'INPUT')
+ select.checked = true;
+ }
}
--
Gitblit v1.9.1