diff options
Diffstat (limited to 'program')
-rw-r--r-- | program/include/rcmail.php | 8 | ||||
-rw-r--r-- | program/js/app.js | 4 | ||||
-rw-r--r-- | program/js/treelist.js | 9 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube.php | 3 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_db.php | 1 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_imap.php | 6 | ||||
-rw-r--r-- | program/steps/mail/func.inc | 8 |
7 files changed, 21 insertions, 18 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php index ece0606ae..e1a62767d 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -116,11 +116,13 @@ class rcmail extends rcube $_SESSION['task'] = $this->task; } - // init output class - if (!empty($_REQUEST['_remote'])) + // init output class (not in CLI mode) + if (!empty($_REQUEST['_remote'])) { $GLOBALS['OUTPUT'] = $this->json_init(); - else + } + else if ($_SERVER['REMOTE_ADDR']) { $GLOBALS['OUTPUT'] = $this->load_gui(!empty($_REQUEST['_framed'])); + } // load plugins $this->plugins->init($this, $this->task); diff --git a/program/js/app.js b/program/js/app.js index e5a70c9f1..3ace0b0b0 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1660,7 +1660,7 @@ function rcube_webmail() } skip = obj.data('parent'); } - }, 10); + }, 10, e); }; // global keypress event handler @@ -6902,7 +6902,7 @@ function rcube_webmail() // truncate stack down to the one containing the ref link for (var i = this.menu_stack.length - 1; stack && i >= 0; i--) { if (!$(ref).parents('#'+this.menu_stack[i]).length) - this.hide_menu(this.menu_stack[i]); + this.hide_menu(this.menu_stack[i], event); } if (stack && this.menu_stack.length) { obj.data('parent', $.last(this.menu_stack)); diff --git a/program/js/treelist.js b/program/js/treelist.js index a7cd7cd43..c034f77b8 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -458,6 +458,10 @@ function rcube_treelist_widget(node, p) node.deleted = true; delete indexbyid[id]; + if (search_active) { + id2dom(id, false).remove(); + } + return true; } @@ -477,7 +481,7 @@ function rcube_treelist_widget(node, p) */ function update_dom(node) { - var li = id2dom(node.id); + var li = id2dom(node.id, true); li.attr('aria-expanded', node.collapsed ? 'false' : 'true'); li.children('ul').first()[(node.collapsed ? 'hide' : 'show')](); li.children('div.treetoggle').removeClass('collapsed expanded').addClass(node.collapsed ? 'collapsed' : 'expanded'); @@ -698,7 +702,8 @@ function rcube_treelist_widget(node, p) node.childlistclass = sublist.attr('class'); } if (node.children.length) { - node.collapsed = sublist.css('display') == 'none'; + if (node.collapsed === undefined) + node.collapsed = sublist.css('display') == 'none'; // apply saved state state = get_state(node.id, node.collapsed); diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php index eedc46c7a..3ab650cb1 100644 --- a/program/lib/Roundcube/rcube.php +++ b/program/lib/Roundcube/rcube.php @@ -1280,6 +1280,9 @@ class rcube exit(1); } + else if ($cli) { + fwrite(STDERR, 'ERROR: ' . $arg['message']); + } } diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php index a46df97d3..100afd530 100644 --- a/program/lib/Roundcube/rcube_db.php +++ b/program/lib/Roundcube/rcube_db.php @@ -68,6 +68,7 @@ class rcube_db 'sybase' => 'mssql', 'dblib' => 'mssql', 'mysqli' => 'mysql', + 'oci' => 'oracle', ); $driver = isset($driver_map[$driver]) ? $driver_map[$driver] : $driver; diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php index 44a79c8e6..a1fd87442 100644 --- a/program/lib/Roundcube/rcube_imap.php +++ b/program/lib/Roundcube/rcube_imap.php @@ -1384,7 +1384,7 @@ class rcube_imap extends rcube_storage public function index_direct($folder, $sort_field = null, $sort_order = null, $search = null) { if (!empty($search)) { - $search = $this->search_set->get_compressed(); + $search = $search->get_compressed(); } // use message index sort as default sorting @@ -3952,8 +3952,8 @@ class rcube_imap extends rcube_storage // @TODO: Honor MAXSIZE and DEPTH options foreach ($queries as $attrib => $entry) { if ($result = $this->conn->getAnnotation($folder, $entry, $attrib)) { - foreach ($result as $folder => $data) { - $res[$folder] = array_merge((array) $res[$folder], $data); + foreach ($result as $fldr => $data) { + $res[$fldr] = array_merge((array) $res[$fldr], $data); } } } diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 25f2e3175..cbeeb05fb 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -652,14 +652,6 @@ function rcmail_messagecontent_frame($attrib) if (empty($attrib['id'])) $attrib['id'] = 'rcmailcontentwindow'; - $attrib['name'] = $attrib['id']; - - if ($RCMAIL->config->get('preview_pane')) { - $OUTPUT->set_env('contentframe', $attrib['id']); - } - - $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/resources/blank.gif'); - return $OUTPUT->frame($attrib, true); } |