| | |
| | | * These are stored in local config and user preferences. |
| | | * |
| | | * @param boolean True to sort the list alphabetically |
| | | * @param boolean True if only this user's responses shall be listed |
| | | * @return array List of the current user's stored responses |
| | | */ |
| | | public function get_compose_responses($sorted = false) |
| | | public function get_compose_responses($sorted = false, $user_only = false) |
| | | { |
| | | $responses = array(); |
| | | |
| | | if (!$user_only) { |
| | | foreach ($this->config->get('compose_responses_static', array()) as $response) { |
| | | if (empty($response['key'])) |
| | | $response['key'] = substr(md5($response['name']), 0, 16); |
| | | $response['static'] = true; |
| | | $response['class'] = 'readonly'; |
| | | $k = $sorted ? '0000-' . strtolower($response['name']) : $response['key']; |
| | | $responses[$k] = $response; |
| | | } |
| | | } |
| | | |
| | | foreach ($this->config->get('compose_responses', array()) as $response) { |
| | | if (empty($response['key'])) |
| | | $response['key'] = substr(md5($response['name']), 0, 16); |
| | | $k = $sorted ? strtolower($response['name']) : $response['key']; |
| | | $responses[$k] = $response; |
| | | } |
| | | $k = $sorted ? strtolower($response['name']) : $response['key']; |
| | | $responses[$k] = $response; |
| | | } |
| | | |
| | | if ($sorted) { |
| | | // sort list by name |
| | | ksort($responses, SORT_LOCALE_STRING); |
| | | return array_values($responses); |
| | | } |
| | | // sort list by name |
| | | if ($sorted) { |
| | | ksort($responses, SORT_LOCALE_STRING); |
| | | } |
| | | |
| | | return $responses; |
| | | return array_values($responses); |
| | | } |
| | | |
| | | |
| | |
| | | $this->output->set_env('action', $this->action); |
| | | $this->output->set_env('comm_path', $this->comm_path); |
| | | $this->output->set_charset(RCUBE_CHARSET); |
| | | |
| | | if ($this->user && $this->user->ID) |
| | | $this->output->set_env('user_id', $this->user->get_hash()); |
| | | |
| | | // add some basic labels to client |
| | | $this->output->add_label('loading', 'servererror', 'requesttimedout', 'refreshing'); |
| | |
| | | $port = $config['default_port']; |
| | | } |
| | | |
| | | /* Modify username with domain if required |
| | | Inspired by Marco <P0L0_notspam_binware.org> |
| | | */ |
| | | // Check if we need to add domain |
| | | if (!empty($config['username_domain']) && strpos($username, '@') === false) { |
| | | if (is_array($config['username_domain']) && isset($config['username_domain'][$host])) |
| | | $username .= '@'.rcube_utils::parse_host($config['username_domain'][$host], $host); |
| | | else if (is_string($config['username_domain'])) |
| | | $username .= '@'.rcube_utils::parse_host($config['username_domain'], $host); |
| | | // Check if we need to add/force domain to username |
| | | if (!empty($config['username_domain'])) { |
| | | $domain = is_array($config['username_domain']) ? $config['username_domain'][$host] : $config['username_domain']; |
| | | |
| | | if ($domain = rcube_utils::parse_host((string)$domain, $host)) { |
| | | $pos = strpos($username, '@'); |
| | | |
| | | // force configured domains |
| | | if (!empty($config['username_domain_forced']) && $pos !== false) { |
| | | $username = substr($username, 0, $pos) . '@' . $domain; |
| | | } |
| | | // just add domain if not specified |
| | | else if ($pos === false) { |
| | | $username .= '@' . $domain; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!isset($config['login_lc'])) { |
| | |
| | | } |
| | | else { |
| | | $js_mailboxlist = array(); |
| | | $out = html::tag('ul', $attrib, $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib); |
| | | $tree = $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib); |
| | | |
| | | $rcmail->output->include_script('treelist.js'); |
| | | $rcmail->output->add_gui_object('mailboxlist', $attrib['id']); |
| | | if ($type != 'js') { |
| | | $out = html::tag('ul', $attrib, $tree, html::$common_attrib); |
| | | |
| | | $rcmail->output->include_script('treelist.js'); |
| | | $rcmail->output->add_gui_object('mailboxlist', $attrib['id']); |
| | | $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']); |
| | | $rcmail->output->set_env('collapsed_folders', (string)$rcmail->config->get('collapsed_folders')); |
| | | } |
| | | |
| | | $rcmail->output->set_env('mailboxes', $js_mailboxlist); |
| | | $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']); |
| | | $rcmail->output->set_env('collapsed_folders', (string)$rcmail->config->get('collapsed_folders')); |
| | | |
| | | // we can't use object keys in javascript because they are unordered |
| | | // we need sorted folders list for folder-selector widget |
| | | $rcmail->output->set_env('mailboxes_list', array_keys($js_mailboxlist)); |
| | | } |
| | | |
| | | return $out; |
| | |
| | | $jslist[$folder['id']] = array( |
| | | 'id' => $folder['id'], |
| | | 'name' => $foldername, |
| | | 'virtual' => $folder['virtual'] |
| | | 'virtual' => $folder['virtual'], |
| | | ); |
| | | |
| | | if (!empty($folder_class)) { |
| | | $jslist[$folder['id']]['class'] = $folder_class; |
| | | } |
| | | |
| | | if (!empty($folder['folders'])) { |
| | | $out .= html::tag('ul', array('style' => ($is_collapsed ? "display:none;" : null)), |
| | |
| | | |
| | | $rcmail->output->add_script('rcmail.set_quota('.rcube_output::json_serialize($quota).');', 'docready'); |
| | | |
| | | return html::span($attrib, ''); |
| | | return html::span($attrib, ' '); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | $this->output->set_env('max_filesize', $max_filesize); |
| | | $max_filesize = self::show_bytes($max_filesize); |
| | | $max_filesize = $this->show_bytes($max_filesize); |
| | | $this->output->set_env('filesizeerror', $this->gettext(array( |
| | | 'name' => 'filesizeerror', 'vars' => array('size' => $max_filesize)))); |
| | | |