Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#1485479 closed Bugs (invalid)

Plus-sign (+) in folder name won't display contents

Reported by: smultron Owned by:
Priority: 5 Milestone: 0.2-stable
Component: Client Scripts Version: git-master
Severity: normal Keywords: plus, folder, display
Cc:

Description

If a folder has a plus-sign character (+) in its name, RC won't display the contents of that folder.

Attachments (2)

plus_console.txt (1.8 KB) - added by smultron 5 years ago.
plus_websource.txt (1.8 KB) - added by smultron 4 years ago.

Download all attachments as: .zip

Change History (20)

comment:1 Changed 5 years ago by alec

  • Milestone changed from later to 0.2-stable

Works for me with Firefox and Opera. So, need more details.

comment:2 Changed 5 years ago by smultron

I'm using SVN Revision: 1948 on Mac OS X 10.5.5 Server. Tried with Safari 3, Firefox 3, and Opera 9.

I have a folder named "Folder+1" with 5 messages in it. If I click on it in the main folder-list, it says there are no messages. However, if I go to the Personal Settings > Folders tab, it shows there are 5 messages in "Folder+1". If I change the name to remove the (+), I'm able to view the folder contents just fine.

Let me know if you need more/other info. Thanks.

comment:3 Changed 5 years ago by alec

Maybe it's IMAP's issue, what name/version of IMAP server? Works for me with FF3/Ubuntu and dovecot-1.0 (RC [6eb85860]).

comment:4 Changed 5 years ago by tensor

Works for me too. [d99b9356] with Courier.

comment:5 Changed 5 years ago by smultron

Mac OS X Server uses cyrus for IMAP. However, I'm not having any issues displaying the contents of (+) folders with Thunderbird or Apple Mail, which is why I thought it might be Roundcube. (???) Anyone know if the unixhierarchysep (set to yes) option in imapd.conf would conflict?

comment:6 Changed 5 years ago by alec

Some feedback is needed. Do debug of IMAP conversation eg. by uncommenting console() calls in lib/imap.inc.

Changed 5 years ago by smultron

comment:7 Changed 5 years ago by smultron

Here's the console messages (attached). This is when I clicked on a folder called "Google+Yahoo" which is nested inside of another folder called "Folder+111". Let me know if you need more data.

comment:8 Changed 5 years ago by alec

So, it's not IMAP server's fault. Pluses were replaced by spaces in client. Next step: set 'debug_level' option to 9 and write what you have in web console. We'll see where's the problem, in JS or PHP.

comment:9 Changed 5 years ago by smultron

I set the debug_level to 9 (and every other number) but the console won't show any output. It just remains the blank white box. Any ideas on how to get this debug console to work, or another debug method?

comment:10 follow-up: Changed 4 years ago by alec

I don't know why console is empty. Do other check. After login, open page source in browser, find line beginning with "rcmail.set_env(...". There should be folder names. Are they contain pluses or spaces?

comment:11 in reply to: ↑ 10 Changed 4 years ago by smultron

Replying to alec:

I don't know why console is empty. Do other check. After login, open page source in browser, find line beginning with "rcmail.set_env(...". There should be folder names. Are they contain pluses or spaces?

There appears to be a couple different instances of each folder name—one with the plus (e.g. "Google+Yahoo"), one without the plus (e.g. "Google Yahoo"). I've attached the rest of the source.

Changed 4 years ago by smultron

comment:12 follow-up: Changed 4 years ago by alec

I can confirm that collapsing folders with '+' sign in name (or their childs) wasn't working (fixed in [f1f17fa5]), but it shouldn't be a reason that folder contents are not displayed. Need more investigating.

comment:13 in reply to: ↑ 12 Changed 4 years ago by smultron

Replying to alec:

I can confirm that collapsing folders with '+' sign in name (or their childs) wasn't working (fixed in [f1f17fa5]), but it shouldn't be a reason that folder contents are not displayed. Need more investigating.

Finally got the console working to display errors (by using Opera 10 beta). This is the console output from when I clicked on the folder "Google+Yahoo". Let me know if you need more.

HTTP request: ./?_task=mail&_action=list&_mbox=Folder%2B111%2FGoogle%2BYahoo&_page=1&_refresh=1&_remote=1
--------------------------------------
/** ajax response [05/Dec/2008 02:13:38 -0600] **/
this.set_env({mailbox:'Folder 111/Google Yahoo',quota:1,delimiter:'/',trash_mailbox:'Deleted Messages',drafts_mailbox:'Drafts',junk_mailbox:'Junk',messagecount:0,pagecount:0});
this.set_pagetitle('Roundcube Webmail :: Folder 111/Google Yahoo');
this.set_rowcount('Mailbox is empty');
this.set_mailboxname('Folder 111/Google Yahoo');
this.display_message('No messages found in this mailbox','notice');
this.set_unread_count('Folder 111/Google Yahoo',0,0);
--------------------------------------
HTTP request: ./?_task=mail&_action=check-recent&_t=1228464830708&_remote=1
--------------------------------------
/** ajax response [05/Dec/2008 02:13:51 -0600] **/
--------------------------------------

comment:14 follow-up: Changed 4 years ago by alec

On my server:

HTTP request: ./?_task=mail&_action=list&_mbox=aaa%3Aabc%2B123&_page=1&_refresh=1&_remote=1
--------------------------------------
/** ajax response [05/Dec/2008 10:03:21 +0100] **/
this.set_env({mailbox:'aaa:abc+123',

so, looks like on your server something replaces '%2B' with space in GET request. Some url rewrite or sth. Add console($_GET_mbox?); on top of index.php, you'll see that is http or php foult.

comment:15 in reply to: ↑ 14 Changed 4 years ago by smultron

Replying to alec:

so, looks like on your server something replaces '%2B' with space in GET request. Some url rewrite or sth. Add console($_GET_mbox?); on top of index.php, you'll see that is http or php foult.

Can you explain how to do this? I tried placing console($_GET_mbox?); to the top of the index.php (right after <?php), but that made the page inaccessible (blank white page).

comment:16 Changed 4 years ago by alec

Sorry, it must be placed after iniset.php include, and it should look like that

console($_GET['_mbox']);

May be it would be better if you give me access to your box? Write to alec at alec.pl.

comment:17 Changed 4 years ago by alec

  • Resolution set to invalid
  • Status changed from new to closed

Problem partially identified. Using double urlencoding fixes issue. So, it may be related to mod_rewrite or mod_proxy.

comment:18 Changed 4 years ago by smultron

I tried on my server with all mod_rewrite and mod_proxy modules turned off. Still the same result (no contents shown in + folder). If that helps any... let me know if I can do more.

Note: See TracTickets for help on using tickets.