From a36369c3831b26191023b3e2d5d7cd0e5eee6cdb Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 13 Mar 2014 17:58:57 -0400
Subject: [PATCH] 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 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

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)

--
Gitblit v1.9.1