Dimp : Folders tree partially updated after a rename folder action

Installation infos : horde-webmail-1.2 ; php-5.2.6 ; debian etch

By Dimp interface, after the renaming of a new folder, the folders tree is partially updated dynamically.

For instance, I try to rename the folder "foo" in "bar".

1) If I have no other virtual folder but the virtual inbox, then :
- I get the message 'The folder "foo" was successfully renamed to "bar"'.
But :
- The folder "foo" doesn't disappear from the folders tree.
- The folder "bar" doesn't appear in the folders tree.

Setting the javascript debugging and using dimp/js/src produces an alert :
with Firefox 2.0.0.18 :
doActionComplete callback: TypeError-$(elt) has no properties
with IE7
 doActionComplete callback: TypeError-'null' is null or not an object

Refreshing the page produces a single change :
- The folder "bar" appears successfully in the folders tree.
I need to disconnect-reconnect to see the correct folders tree without the folder "foo".

2) If I have created (and saved) a virtual folder by Imp interface, then :
- I get the message 'The folder "foo" was successfully renamed to "bar"'.
- The folder "bar" appears successfully in the folders tree.
But :
- The folder "foo" doesn't disappear from the folders tree.

Setting the javascript debugging and using dimp/js/src produces no alert.

Refreshing the page produces no change.
I need to disconnect-reconnect to see the correct folders tree without the folder "foo".

The difference between the 2 situations is probably linked to the virtual folders as I wrote in my precedent message "Dimp : folders tree not updated after an add (new) folder action" (first tome of "my dimp chronicles"). If I use my modification to avoid the virtual folders being in the getFolderResponse result (horde/dimp/lib/DIMP.php), the situation 1 is identical to the situation 2.

Concerning the remaining "foo" folder, it might be due to the use of the function _getList before the deletion of the folder "foo". It sets the static variable $full_list with the folder "foo" and caches it even after its correct deletion. So, this folder is finally maintained and does not make part of the deleted folders in the getFolderResponse result.

If I am not mistaken, a part of the calls is :
with Folder as horde/imp/lib/Folder.php, Search as horde/imp/lib/Search.php, Tree as horde/imp/lib/IMAP/Tree.php
- Previous calls to folderList set $full_list with the folder "foo"
Folder.rename calls
 Folder._onDelete which calls
   Search.sessionSetup(true) which calls
     Search.createVINBOXFolder which calls
       Tree.getPollList which calls
         Tree.folderList which calls
           Tree.showUnsubscribed which calls
Tree._getList which returns by the 1st return instruction with $full_list already set

I tried to put aside the use of $full_list to make the Tree._getList function returns by the 3rd return instruction. It makes the folder "foo" disappear properly in situation 1 and 2, but still needs a refreshing of the page to make the folder "bar" appear in situation 1.

In horde/imp/lib/IMAP/Tree.php (v 1.25.2.60) :
--- horde/imp/lib/IMAP/Tree.php 2008-11-27 10:35:23.000000000 +0100
+++ horde-webmail-1.2_um/imp/lib/IMAP/Tree.php 2008-11-27 11:42:07.000000000 +0100
@@ -313,8 +313,13 @@

        // Cached mailbox lists.
        if ($showunsub) {
+/* Debut UM EJ : 20-11-2008 */
+/*
            $full_list = array_keys($names);
            return $full_list;
+*/
+            return array_keys($names);
+/* Fin UM EJ : 20-11-2008 */
        } else {
// Need to compare to full list to remove non-existent mailboxes
            // See RFC 3501 [6.3.9]


If I add the modification of my precedent message "Dimp : folders tree not updated after an add (new) folder action", renaming a folder reacts dynamically and successfully in situation 1,
- I get the message 'The folder "foo" was successfully renamed to "bar"'.
- The folder "foo" smoothly disappears from the folders tree.
- The folder "bar" appears in the folders tree.

Maybe I have been a bit long this time (second tome of "my dimp chronicles" finished) !

Thanks for reading and help.

Emeric

--
IMP mailing list - Join the hunt: http://horde.org/bounties/#imp
Frequently Asked Questions: http://horde.org/faq/
To unsubscribe, mail: [EMAIL PROTECTED]

Reply via email to