From 16c7644ccbbbebbec9e7821da08ca95a46a5bfb7 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 31 Mar 2014 13:32:07 -0400
Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail

---
 program/include/rcmail.php |   40 +++++++++++++++++++++++++++-------------
 1 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index f4013d3..0fe5dbc 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -5,8 +5,8 @@
  | program/include/rcmail.php                                            |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2008-2013, The Roundcube Dev Team                       |
- | Copyright (C) 2011-2013, Kolab Systems AG                             |
+ | Copyright (C) 2008-2014, The Roundcube Dev Team                       |
+ | Copyright (C) 2011-2014, Kolab Systems AG                             |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -157,12 +157,7 @@
      */
     public function set_user($user)
     {
-        if (is_object($user)) {
-            $this->user = $user;
-
-            // overwrite config with user preferences
-            $this->config->set_user_prefs((array)$this->user->get_prefs());
-        }
+        parent::set_user($user);
 
         $lang = $this->language_prop($this->config->get('language', $_SESSION['language']));
         $_SESSION['language'] = $this->user->language = $lang;
@@ -1167,11 +1162,11 @@
             $week_limit  = mktime(0, 0, 0, $now_date['mon'], $now_date['mday']-6, $now_date['year']);
             $pretty_date = $this->config->get('prettydate');
 
-            if ($pretty_date && $timestamp > $today_limit && $timestamp < $now) {
+            if ($pretty_date && $timestamp > $today_limit && $timestamp <= $now) {
                 $format = $this->config->get('date_today', $this->config->get('time_format', 'H:i'));
                 $today  = true;
             }
-            else if ($pretty_date && $timestamp > $week_limit && $timestamp < $now) {
+            else if ($pretty_date && $timestamp > $week_limit && $timestamp <= $now) {
                 $format = $this->config->get('date_short', 'D H:i');
             }
             else {
@@ -1360,12 +1355,31 @@
 
         $delimiter = $storage->get_hierarchy_delimiter();
 
-        foreach ($list as $folder) {
-            if (empty($p['exceptions']) || !in_array($folder, $p['exceptions'])) {
-                $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
+        if (!empty($p['exceptions'])) {
+            $list = array_diff($list, (array) $p['exceptions']);
+        }
+
+        if (!empty($p['additional'])) {
+            foreach ($p['additional'] as $add_folder) {
+                $add_items = explode($delimiter, $add_folder);
+                $folder    = '';
+                while (count($add_items)) {
+                    $folder .= array_shift($add_items);
+
+                    // @TODO: sorting
+                    if (!in_array($folder, $list)) {
+                        $list[] = $folder;
+                    }
+
+                    $folder .= $delimiter;
+                }
             }
         }
 
+        foreach ($list as $folder) {
+            $this->build_folder_tree($a_mailboxes, $folder, $delimiter);
+        }
+
         $select = new html_select($p);
 
         if ($p['noselection']) {

--
Gitblit v1.9.1