From 50fee948fd6dda6774c3e95469023d15add0d9ea Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 29 Apr 2014 19:21:19 +0200 Subject: Fix redundant warning when switching from html to text in empty editor (#1489819) We also skip ajax request in such a case. We assume "empty" here means "with no text excluding whitespace". Conflicts: program/js/app.js --- CHANGELOG | 1 + program/js/app.js | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d35644f9b..b2c97c87a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -19,6 +19,7 @@ CHANGELOG Roundcube Webmail - Fix identities_level=4 handling in new_user_dialog plugin (#1489840) - Fix various db_prefix issues (#1489839) - Fix too small length of users.preferences column data type on MySQL +- Fix redundant warning when switching from html to text in empty editor (#1489819) RELEASE 1.0.0 ------------- diff --git a/program/js/app.js b/program/js/app.js index eb646aaff..beb054bf2 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3389,17 +3389,8 @@ function rcube_webmail() $(tinyMCE.get(props.id).getBody()).css('font-family', rcmail.env.default_font); }, 500); } - else { - var thisMCE = tinyMCE.get(props.id), existingHtml; - - if (existingHtml = thisMCE.getContent()) { - if (!confirm(this.get_label('editorwarning'))) { - return false; - } - this.html2plain(existingHtml, props.id); - } + else if (this.html2plain(tinyMCE.get(props.id).getContent(), props.id)) tinyMCE.execCommand('mceRemoveControl', false, props.id); - } return true; }; @@ -6743,6 +6734,16 @@ function rcube_webmail() this.html2plain = function(htmlText, id) { + // warn the user (if converted content is not empty) + if (!htmlText || !(htmlText.replace(/<[^>]+>| |\s/g, '')).length) { + // without setTimeout() here, textarea is filled with initial (onload) content + setTimeout(function() { $('#'+id).val(''); }, 50); + return true; + } + + if (!confirm(this.get_label('editorwarning'))) + return false; + var rcmail = this, url = '?_task=utils&_action=html2text', lock = this.set_busy(true, 'converting'); @@ -6753,6 +6754,8 @@ function rcube_webmail() error: function(o, status, err) { rcmail.http_error(o, status, err, lock); }, success: function(data) { rcmail.set_busy(false, null, lock); $('#'+id).val(data); rcmail.log(data); } }); + + return true; }; this.plain2html = function(plain, id) -- cgit v1.2.3