From e66a77e5601842a855963a25c3f4e229969c3392 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sun, 17 Aug 2014 03:11:56 -0400 Subject: [PATCH] Fix contacts list update after adding/deleting/moving a contact (#1490028, #1490033) --- program/js/editor.js | 36 ++++++++++++++++++++++++------------ 1 files changed, 24 insertions(+), 12 deletions(-) diff --git a/program/js/editor.js b/program/js/editor.js index 0dd8fef..b2e96d1 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -50,7 +50,8 @@ convert_urls: false, // #1486944 image_description: false, paste_webkit_style: "color font-size font-family", - paste_data_images: true + paste_data_images: true, + browser_spellcheck: true }; // register spellchecker for plain text editor @@ -103,6 +104,10 @@ }); ed.on('keypress', function() { rcmail.compose_type_activity++; + }); + // secure spellchecker requests with Roundcube token + tinymce.util.XHR.on('beforeSend', function(e) { + e.xhr.setRequestHeader('X-Roundcube-Request', rcmail.env.request_token); }); }; @@ -283,9 +288,10 @@ var ed = this.editor; if (ed) { - if (ed.plugins && ed.plugins.spellchecker && this.spellcheck_active) - ed.execCommand('mceSpellCheck'); + if (ed.plugins && ed.plugins.spellchecker && this.spellcheck_active) { + ed.execCommand('mceSpellCheck', false); this.spellcheck_observer(); + } } else if (ed = this.spellchecker) { if (ed.state && ed.state != 'ready' && ed.state != 'no_error_found') @@ -304,17 +310,13 @@ return ed.state != 'ready' && ed.state != 'no_error_found'; }; - // resume spellchecking, highlight provided mispellings without new ajax request + // resume spellchecking, highlight provided mispellings without a new ajax request this.spellcheck_resume = function(data) { var ed = this.editor; if (ed) { - ed.settings.spellchecker_callback = function(name, text, done, error) { done(data); }; - ed.execCommand('mceSpellCheck'); - ed.settings.spellchecker_callback = null; - - this.spellcheck_observer(); + ed.plugins.spellchecker.markErrors(data); } else if (ed = this.spellchecker) { ed.prepare(false, true); @@ -589,8 +591,14 @@ this.hack_file_input(elem, rcmail.gui_objects.uploadform); // enable drag-n-drop area - if (rcmail.gui_objects.filedrop && rcmail.env.filedrop && ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData)) { - rcmail.env.old_file_drop = rcmail.gui_objects.filedrop; + if ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData) { + if (!rcmail.env.filedrop) { + rcmail.env.filedrop = {}; + } + if (rcmail.gui_objects.filedrop) { + rcmail.env.old_file_drop = rcmail.gui_objects.filedrop; + } + rcmail.gui_objects.filedrop = $('#image-selector-form'); rcmail.gui_objects.filedrop.addClass('droptarget') .bind('dragover dragleave', function(e) { @@ -637,6 +645,10 @@ { if (!file.complete || !file.mimetype) { return; + } + + if (rcmail.file_upload_id) { + rcmail.set_busy(false, null, rcmail.file_upload_id); } var rx, img_src; @@ -692,7 +704,7 @@ this.hack_file_input = function(elem, clone_form) { var link = $(elem), - file = $('<input>').attr('name', '_files[]'), + file = $('<input>').attr('name', '_file[]'), form = $('<form>').attr({method: 'post', enctype: 'multipart/form-data'}), offset = link.offset(); -- Gitblit v1.9.1