From a36369c3831b26191023b3e2d5d7cd0e5eee6cdb Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 13 Mar 2014 22:58:57 +0100 Subject: Fix message import dialog (#1489685): - Display alert if no file is chosen - Unlock the UI if form is not submitted - Avoid duplicate error messages - Fix javascript error due to missing attachments list widget --- program/js/app.js | 22 +++++++++++++++------- program/steps/mail/func.inc | 3 ++- program/steps/mail/import.inc | 2 -- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 790a6b076..ce87fdf20 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1177,8 +1177,12 @@ function rcube_webmail() case 'import-messages': var form = props || this.gui_objects.importform; - $('input[name="_unlock"]', form).val(this.set_busy(true, 'importwait')); - this.upload_file(form, 'import'); + var importlock = this.set_busy(true, 'importwait'); + $('input[name="_unlock"]', form).val(importlock); + if (!this.upload_file(form, 'import')) { + this.set_busy(false, null, importlock); + alert(this.get_label('selectimportfile')); + } break; case 'import': @@ -4015,11 +4019,13 @@ function rcube_webmail() if (this.env.upload_progress_time) { this.upload_progress_start('upload', ts); } + + // set reference to the form object + this.gui_objects.attachmentform = form; + return true; } - // set reference to the form object - this.gui_objects.attachmentform = form; - return true; + return false; }; // add file name to attachment list @@ -4061,8 +4067,10 @@ function rcube_webmail() this.remove_from_attachment_list = function(name) { - delete this.env.attachments[name]; - $('#'+name).remove(); + if (this.env.attachments) { + delete this.env.attachments[name]; + $('#'+name).remove(); + } }; this.remove_attachment = function(name) diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index aa41d6a0b..072ee716c 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -124,7 +124,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { if (!$OUTPUT->ajax_call) { $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage', 'copyingmessage', 'deletingmessage', 'markingmessage', - 'copy', 'move', 'quota', 'replyall', 'replylist', 'importwait'); + 'copy', 'move', 'quota', 'replyall', 'replylist'); } $pagetitle = $RCMAIL->localize_foldername($RCMAIL->storage->mod_folder($mbox_name), true); @@ -2070,6 +2070,7 @@ function rcmail_message_import_form($attrib = array()) $content); $RCMAIL->output->add_gui_object('importform', $attrib['id'].'Frm'); + $RCMAIL->output->add_label('selectimportfile','importwait'); return html::div($attrib, $out); } diff --git a/program/steps/mail/import.inc b/program/steps/mail/import.inc index 4f822e0e4..5a74feb9f 100644 --- a/program/steps/mail/import.inc +++ b/program/steps/mail/import.inc @@ -34,7 +34,6 @@ if (is_array($_FILES['_file'])) { list($mtype_primary,) = explode('/', rcube_mime::file_content_type($filepath, $_FILES['_file']['name'][$i], $_FILES['_file']['type'][$i])); if (!in_array($mtype_primary, array('text','message'))) { - $OUTPUT->show_message('importmessageerror', 'error'); continue; } @@ -46,7 +45,6 @@ if (is_array($_FILES['_file'])) { while ($line !== false && trim($line) == ''); if (!preg_match('/^From\s+-/', $line) && !preg_match('/^[a-z-_]+:\s+.+/i', $line)) { - $OUTPUT->show_message('importmessageerror', 'error'); continue; } -- cgit v1.2.3 From 1b0b398778eac83ebc628da657f428456c8b15c1 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 13 Mar 2014 23:03:07 +0100 Subject: Update changelog --- CHANGELOG | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 38204fc5f..240e046e3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ CHANGELOG Roundcube Webmail =========================== +- Fix message import dialog when no file is selected (#1489685) +- Fix opening compose screen in new window after saving as draft (#1489643) - Added toolbar button to move message in message view - Improve UI integration of ACL settings - Fix directories check in Installer on Windows (#1489576) -- cgit v1.2.3 From a9308158717265606ba4ad7fa0a290a35904c95d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 14 Mar 2014 13:11:36 +0100 Subject: Trim search filter to prevent from creating invalid search criteria when skip_deleted = true. --- program/steps/mail/search.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc index a80887254..ba8b124a3 100644 --- a/program/steps/mail/search.inc +++ b/program/steps/mail/search.inc @@ -37,6 +37,7 @@ $filter = rcube_utils::get_input_value('_filter', rcube_utils::INPUT_GET); $headers = rcube_utils::get_input_value('_headers', rcube_utils::INPUT_GET); $subject = array(); +$filter = trim($filter); $search_request = md5($mbox.$filter.$str); // add list filter string -- cgit v1.2.3