From 3e71ab7a6c84583f23c33c733f606fa1b5d68d4d Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Fri, 19 Oct 2007 10:04:43 -0400
Subject: [PATCH] Fix moving folders to root, bug introduces when using row id's instead of folder names.
---
program/js/app.js | 39 +++++++++++++++++----------------------
1 files changed, 17 insertions(+), 22 deletions(-)
diff --git a/program/js/app.js b/program/js/app.js
index 5d4f48f..c758846 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2476,41 +2476,36 @@
{
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);
}
--
Gitblit v1.9.1