From 64f20dae0cdd3a53114053e3520eb30b71bfa42c Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 31 Jul 2008 17:30:25 -0400 Subject: [PATCH] Show real names in folder drop-down + rebuild default_imap_folders property when saving prefs --- program/include/main.inc | 43 ++++++++++++++++++------------------------- 1 files changed, 18 insertions(+), 25 deletions(-) diff --git a/program/include/main.inc b/program/include/main.inc index 0a1cf60..bfba9dd 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -876,16 +876,15 @@ * @return string HTML code for the gui object */ function rcmail_mailbox_list($attrib) - { - global $IMAP, $CONFIG, $OUTPUT, $COMM_PATH; - static $s_added_script = FALSE; +{ + global $IMAP, $OUTPUT; static $a_mailboxes; + + $attrib += array('maxlength' => 100, 'relanames' => false); // add some labels to client rcube_add_label('purgefolderconfirm'); rcube_add_label('deletemessagesconfirm'); - -// $mboxlist_start = rcube_timer(); $type = $attrib['type'] ? $attrib['type'] : 'ul'; unset($attrib['type']); @@ -897,20 +896,15 @@ $mbox_name = $IMAP->get_mailbox_name(); // build the folders tree - if (empty($a_mailboxes)) - { + if (empty($a_mailboxes)) { // get mailbox list $a_folders = $IMAP->list_mailboxes(); $delimiter = $IMAP->get_hierarchy_delimiter(); $a_mailboxes = array(); -// rcube_print_time($mboxlist_start, 'list_mailboxes()'); - foreach ($a_folders as $folder) rcmail_build_folder_tree($a_mailboxes, $folder, $delimiter); - } - -// var_dump($a_mailboxes); + } if ($type=='select') { $select = new html_select($attrib); @@ -919,19 +913,18 @@ if ($attrib['noselection']) $select->add(rcube_label($attrib['noselection']), '0'); - rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength'], $select); - $out = $select->show($mbox_name); + rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength'], $select, $attrib['realnames']); + $out = $select->show(); } else { - $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $attrib['maxlength']), html::$common_attrib); + $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $attrib['maxlength'], $attrib['realnames']), html::$common_attrib); } - if ($type=='ul') $OUTPUT->add_gui_object('mailboxlist', $attrib['id']); return $out; - } +} /** @@ -944,7 +937,7 @@ { global $RCMAIL; - $p += array('maxlength' => 100); + $p += array('maxlength' => 100, 'relanames' => false); $a_mailboxes = array(); foreach ($RCMAIL->imap->list_mailboxes() as $folder) @@ -955,7 +948,7 @@ if ($p['noselection']) $select->add($p['noselection'], ''); - rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select); + rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select, $p['realnames']); return $select; } @@ -998,7 +991,7 @@ * Return html for a structured list <ul> for the mailbox tree * @access private */ -function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $nestLevel=0) +function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $realnames=false, $nestLevel=0) { global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; @@ -1009,7 +1002,7 @@ $zebra_class = (($nestLevel+1)*$idx) % 2 == 0 ? 'even' : 'odd'; $title = null; - if ($folder_class = rcmail_folder_classname($folder['id'])) + if (($folder_class = rcmail_folder_classname($folder['id'])) && !$realnames) $foldername = rcube_label($folder_class); else { @@ -1061,7 +1054,7 @@ ), Q($foldername))); if (!empty($folder['folders'])) - $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $nestLevel+1) . "</ul>\n"; + $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $realnames, $nestLevel+1) . "</ul>\n"; $out .= "</li>\n"; $idx++; @@ -1075,7 +1068,7 @@ * Return html for a flat list <select> for the mailbox tree * @access private */ -function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $nestLevel=0) +function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $realnames=false, $nestLevel=0) { global $IMAP, $OUTPUT; @@ -1083,7 +1076,7 @@ $out = ''; foreach ($arrFolders as $key=>$folder) { - if ($folder_class = rcmail_folder_classname($folder['id'])) + if (!$realnames && ($folder_class = rcmail_folder_classname($folder['id']))) $foldername = rcube_label($folder_class); else { @@ -1097,7 +1090,7 @@ $select->add(str_repeat(' ', $nestLevel*4) . $foldername, $folder['id']); if (!empty($folder['folders'])) - $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $select, $nestLevel+1); + $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $select, $realnames, $nestLevel+1); $idx++; } -- Gitblit v1.9.1