/* Initialize the IMP_Imap_Tree object. */
$imptree = $injector->getInstance('IMP_Imap_Tree');
+$mask = IMP_Imap_Tree::FLIST_CONTAINER;
/* Toggle subscribed view, if necessary. */
if ($subscribe && Horde_Util::getFormData('ts')) {
$_SESSION['imp']['showunsub'] = $showAll;
$imptree->showUnsubscribed($showAll);
if ($showAll) {
- $imptree->setIteratorFilter(IMP_Imap_Tree::FLIST_UNSUB);
+ $mask |= IMP_Imap_Tree::FLIST_UNSUB;
}
}
-/* Initialize Horde_Template. */
-$t = $injector->createInstance('Horde_Template');
-
-/* Start iterating through the list of mailboxes, displaying them. */
-$rows = array();
-foreach ($imptree as $val) {
- $poll_info = $val->polled
- ? $val->poll_info
- : null;
- $rows[] = array(
- 'level' => str_repeat(' ', $val->level * 2),
- 'label' => htmlspecialchars(Horde_String::abbreviate($val->label, 30 - ($val->level * 2))),
- 'link' => ($val->container ? null : IMP::generateIMPUrl('mailbox-mimp.php', $val->value)),
- 'msgs' => ($poll_info ? ($poll_info->unseen . '/' . $poll_info->msgs) : null)
- );
-}
-$t->set('rows', $rows);
+$imptree->setIteratorFilter($mask);
+$tree = $imptree->createTree('mimp_folders', array(
+ 'poll_info' => true,
+ 'render_type' => 'Simplehtml'
+));
$selfurl = Horde::applicationUrl('folders-mimp.php');
$menu = array(array(_("Refresh"), $selfurl));
);
}
-$t->set('menu', $injector->getInstance('IMP_Ui_Mimp')->getMenu('folders', $menu));
-
$title = _("Folders");
+
+$t = $injector->createInstance('Horde_Template');
+$t->set('menu', $injector->getInstance('IMP_Ui_Mimp')->getMenu('folders', $menu));
$t->set('title', $title);
+$t->set('tree', $tree->getTree(true));
require_once IMP_TEMPLATES . '/common-header.inc';
IMP::status();
* DEFAULT: null (add to base level)
* 'poll_info' - (boolean) Include poll information?
* DEFAULT: false
+ * 'render_type' - (string) The renderer name.
+ * DEFAULT: Javascript
* </pre>
*
* @return Horde_Tree The tree object.
*/
public function createTree($name, array $opts = array())
{
+ $opts = array_merge(array(
+ 'render_type' => 'Javascript'
+ ), $opts);
+
$this->recent = array();
$this->unseen = 0;
$indent = $opts['indent'];
$parent = $opts['parent'];
} else {
- $tree = $GLOBALS['injector']->getInstance('Horde_Tree')->getTree($name, 'Javascript', array(
+ $tree = $GLOBALS['injector']->getInstance('Horde_Tree')->getTree($name, $opts['render_type'], array(
'alternate' => true,
'lines' => true,
'lines_base' => true
$indent = 0;
$parent = null;
}
- $mailbox_url = Horde::applicationUrl('mailbox.php');
+
+ $mailbox_url = (IMP::getViewMode() == 'mimp')
+ ? Horde::applicationUrl('mailbox-mimp.php')
+ : Horde::applicationUrl('mailbox.php');
foreach ($this as $val) {
$after = $class = '';
- $label = $val->name;
$url = null;
+ if ($opts['render_type'] == 'Simplehtml') {
+ $label = htmlspecialchars(Horde_String::abbreviate($val->label, 30 - ($val->level * 2)));
+ $icon = null;
+ } else {
+ $label = $val->name;
+ $icon = $val->icon;
+ }
+
if (!empty($opts['poll_info']) && $val->polled) {
$poll_info = $val->poll_info;
}
}
- $icon = $val->icon;
$tree->addNode(
strval($parent) . $val->value,
($val->level) ? strval($parent) . $val->parent : $parent,
$val->is_open,
array(
'class' => $class,
- 'icon' => $icon->icon,
- 'iconopen' => $icon->iconopen,
+ 'icon' => $icon ? $icon->icon : null,
+ 'iconopen' => $icon ? $icon->iconopen : null,
'url' => $url
),
$after,