From c29ca0e11d1f1b3e8695935615bf11e447c6ebf6 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 14 Mar 2014 08:36:59 -0400
Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail

---
 CHANGELOG                     |    2 ++
 program/steps/mail/search.inc |    1 +
 program/steps/mail/import.inc |    2 --
 program/steps/mail/func.inc   |    3 ++-
 program/js/app.js             |   22 +++++++++++++++-------
 5 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 38204fc..240e046 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)
diff --git a/program/js/app.js b/program/js/app.js
index 790a6b0..ce87fdf 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1177,8 +1177,12 @@
 
       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 @@
       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 @@
 
   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 aa41d6a..072ee71 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -124,7 +124,7 @@
     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 @@
         $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 4f822e0..5a74feb 100644
--- a/program/steps/mail/import.inc
+++ b/program/steps/mail/import.inc
@@ -34,7 +34,6 @@
             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 @@
             while ($line !== false && trim($line) == '');
 
             if (!preg_match('/^From\s+-/', $line) && !preg_match('/^[a-z-_]+:\s+.+/i', $line)) {
-                $OUTPUT->show_message('importmessageerror', 'error');
                 continue;
             }
 
diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc
index a808872..ba8b124 100644
--- a/program/steps/mail/search.inc
+++ b/program/steps/mail/search.inc
@@ -37,6 +37,7 @@
 $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

--
Gitblit v1.9.1