From 3ebac0167bf20104fb7a2a55934765117760264c Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Mon, 18 Aug 2014 03:53:18 -0400 Subject: [PATCH] Only add zen-mode text labels in compose step --- program/include/rcmail.php | 55 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 42 insertions(+), 13 deletions(-) diff --git a/program/include/rcmail.php b/program/include/rcmail.php index b105eb8..bb2346f 100644 --- a/program/include/rcmail.php +++ b/program/include/rcmail.php @@ -427,6 +427,9 @@ $this->output->set_env('user_id', $this->user->get_hash()); } + // set compose mode for all tasks (message compose step can be triggered from everywhere) + $this->output->set_env('compose_extwin', $this->config->get('compose_extwin',false)); + // add some basic labels to client $this->output->add_label('loading', 'servererror', 'connerror', 'requesttimedout', 'refreshing', 'windowopenerror'); @@ -786,11 +789,13 @@ /** * Build a valid URL to this instance of Roundcube * - * @param mixed Either a string with the action or url parameters as key-value pairs + * @param mixed Either a string with the action or url parameters as key-value pairs + * @param boolean Build an URL absolute to document root + * @param boolean Create fully qualified URL including http(s):// and hostname * * @return string Valid application URL */ - public function url($p) + public function url($p, $absolute = false, $full = false) { if (!is_array($p)) { if (strpos($p, 'http') === 0) { @@ -800,14 +805,15 @@ $p = array('_action' => @func_get_arg(0)); } - $task = $p['_task'] ? $p['_task'] : ($p['task'] ? $p['task'] : $this->task); - $p['_task'] = $task; - unset($p['task']); + $pre = array(); + $task = $p['_task'] ?: ($p['task'] ?: $this->task); + $pre['_task'] = $task; + unset($p['task'], $p['_task']); - $url = './' . $this->filename; + $url = $this->filename; $delm = '?'; - foreach (array_reverse($p) as $key => $val) { + foreach (array_merge($pre, $p) as $key => $val) { if ($val !== '' && $val !== null) { $par = $key[0] == '_' ? $key : '_'.$key; $url .= $delm.urlencode($par).'='.urlencode($val); @@ -815,7 +821,33 @@ } } - return $url; + if ($absolute || $full) { + $prefix = ''; + + // prepend protocol://hostname:port + if ($full) { + $schema = 'http'; + $default_port = 80; + if (rcube_utils::https_check()) { + $schema = 'https'; + $default_port = 443; + } + $prefix = $schema . '://' . preg_replace('/:\d+$/', '', $_SERVER['HTTP_HOST']); + if ($_SERVER['SERVER_PORT'] != $default_port) { + $prefix .= ':' . $_SERVER['SERVER_PORT']; + } + } + + // add base path to this Roundcube installation + $base_path = preg_replace('![^/]+$!', '', strval($_SERVER['SCRIPT_NAME'])); + if ($base_path == '') $base_path = '/'; + $prefix .= $base_path; + } + else { + $prefix = './'; + } + + return $prefix . $url; } /** @@ -1684,7 +1716,8 @@ $quota = $this->plugins->exec_hook('quota', $quota); $quota_result = (array) $quota; - $quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : ''; + $quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : ''; + $quota_result['folder'] = $folder !== null && $folder !== '' ? $folder : 'INBOX'; if ($quota['total'] > 0) { if (!isset($quota['percent'])) { @@ -1746,10 +1779,6 @@ unset($quota_result['abort']); if (empty($quota_result['table'])) { unset($quota_result['all']); - } - - if ($folder !== null && $folder !== '') { - $quota_result['folder'] = $folder; } return $quota_result; -- Gitblit v1.9.1