From 3e71ab7a6c84583f23c33c733f606fa1b5d68d4d Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Fri, 19 Oct 2007 14:04:43 +0000
Subject: Fix moving folders to root, bug introduces when using row id's
 instead of folder names.

---
 program/js/app.js | 39 +++++++++++++++++----------------------
 1 file changed, 17 insertions(+), 22 deletions(-)

(limited to 'program/js')

diff --git a/program/js/app.js b/program/js/app.js
index 5d4f48fbf..c7588469b 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2476,41 +2476,36 @@ function rcube_webmail()
     {
     var row, folder;
     var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
-    if (this.env.subscriptionrows[id] &&
-        (folder = this.env.subscriptionrows[id][0]) &&
-        this.drag_active && this.check_droptarget(folder) &&
-        (folder != this.env.folder.replace(reg, '')) &&
-        (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter)))) &&
-        (row = document.getElementById(id)))
-      if (find_in_array(this.env.defaultfolders, folder)>=0)
+
+    if (this.drag_active && (row = document.getElementById(id)))
+      if (this.env.subscriptionrows[id] &&
+          (folder = this.env.subscriptionrows[id][0]))
         {
-        if (this.env.folder.replace(reg, '')!='')
+        if (this.check_droptarget(folder) &&
+            (folder != this.env.folder.replace(reg, '')) &&
+            (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter)))))
           {
-          this.set_env('dstfolder', this.env.delimiter);
-          this.set_classname(this.subscription_list.frame, 'droptarget', true);
+          this.set_env('dstfolder', folder);
+          this.set_classname(row, 'droptarget', true);
           }
         }
-      else
+      else if (this.env.folder.match(new RegExp(RegExp.escape(this.env.delimiter))))
         {
-        this.set_env('dstfolder', folder);
-        this.set_classname(row, 'droptarget', true);
+        this.set_env('dstfolder', this.env.delimiter);
+        this.set_classname(this.subscription_list.frame, 'droptarget', true);
         }
     }
 
 
   this.unfocus_subscription = function(id)
     {
-    var row, folder;
-    if (this.env.subscriptionrows[id] &&
-        (folder = this.env.subscriptionrows[id][0]) &&
-        (row = document.getElementById(id)))
-      {
+      var row;
       this.set_env('dstfolder', null);
-      if (find_in_array(this.env.defaultfolders, folder)>=0)
-        this.set_classname(this.subscription_list.frame, 'droptarget', false);
-      else
+      if (this.env.subscriptionrows[id] &&
+          (row = document.getElementById(id)))
         this.set_classname(row, 'droptarget', false);
-      }
+      else
+        this.set_classname(this.subscription_list.frame, 'droptarget', false);
     }
 
 
-- 
cgit v1.2.3