From ae87e98bf29ad43bd24ffd6ca405766ae16d55af Mon Sep 17 00:00:00 2001 From: C Robert Date: Wed, 1 Jul 2009 20:09:26 +0000 Subject: [PATCH] Monotone-Parent: 856583f8779d38a6978fe4db950c4067c8a38e9c Monotone-Revision: 198c312f6f50dd9e647df21a626b63d5737a368b Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-07-01T20:09:26 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/ContactsUI.js | 3 +++ UI/WebServerResources/MailerUI.js | 6 +++++- UI/WebServerResources/scriptaculous/dragdrop.js | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index 6d9e8c8df..540167649 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -603,6 +603,7 @@ function appendAddressBook(name, folder) { .replace(">", ">", "g"))); setEventsOnAddressBook(li); updateAddressBooksMenus(); + configureDragAndDrop (); } return result; @@ -1066,6 +1067,8 @@ function initContacts(event) { } function configureDragAndDrop () { + Droppables.empty (); + Draggables.empty (); var mainElement = new Element ("div", {id: "dragDropVisual"}); document.body.appendChild(mainElement); mainElement.absolutize (); diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 4ae23cb17..486ae86d8 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -660,8 +660,8 @@ function messageListCallback(http) { table = $('messageList'); configureMessageListEvents(table); TableKit.Resizable.init(table, {'trueResize' : true, 'keepWidth' : true}); - setTimeout ('configureDragAndDrop ();', 500); } + configureDragAndDrop (); configureMessageListBodyEvents(table); var selected = http.callbackData; @@ -1756,6 +1756,7 @@ function onLoadMailboxesCallback(http) { checkAjaxRequestsState(); getFoldersState(); updateStatusFolders(); + configureDragAndDrop (); } } else @@ -2231,6 +2232,9 @@ Mailbox.prototype = { function configureDragAndDrop () { + Droppables.empty (); + Draggables.empty (); + var mainElement = new Element ("div", {id: "dragDropVisual"}); document.body.appendChild(mainElement); mainElement.absolutize (); diff --git a/UI/WebServerResources/scriptaculous/dragdrop.js b/UI/WebServerResources/scriptaculous/dragdrop.js index 61b1e7bdb..9e4ac5920 100644 --- a/UI/WebServerResources/scriptaculous/dragdrop.js +++ b/UI/WebServerResources/scriptaculous/dragdrop.js @@ -12,6 +12,10 @@ if(Object.isUndefined(Effect)) var Droppables = { drops: [], + empty: function () { + this.drops = []; + }, + remove: function(element) { this.drops = this.drops.reject(function(d) { return d.element==$(element) }); }, @@ -129,6 +133,11 @@ var Draggables = { drags: [], observers: [], + empty: function () { + this.drags = []; + this.observers = []; + }, + register: function(draggable) { if(this.drags.length == 0) { this.eventMouseUp = this.endDrag.bindAsEventListener(this);