mirror of
https://github.com/roundcube/roundcubemail.git
synced 2026-02-20 01:21:20 +01:00
Elastic: Minimize forms/colors blink on page load
This commit is contained in:
@@ -17,6 +17,7 @@ CHANGELOG Roundcube Webmail
|
||||
- Change folders sorting so shared/other users namespaces are listed last (#5012)
|
||||
- Display a warning and do not try to open empty attachments (#7332)
|
||||
- Elastic: Dark mode (#6709)
|
||||
- Elastic: Minimize forms/colors blink on page load
|
||||
- Elastic: Improve mail header "detailed mode" (#7224)
|
||||
- Elastic: Moving single recipients between recipient inputs with drag-n-drop (#5069)
|
||||
- Elastic: Display a special icon for other users and shared namespace roots (#5012)
|
||||
|
||||
@@ -312,9 +312,9 @@ class acl extends rcube_plugin
|
||||
function templ_user($attrib)
|
||||
{
|
||||
// Create username input
|
||||
$attrib['name'] = 'acluser';
|
||||
$class = $attrib['class'];
|
||||
unset($attrib['class']);
|
||||
$attrib['name'] = 'acluser';
|
||||
$attrib['class'] = 'form-control';
|
||||
|
||||
$textfield = new html_inputfield($attrib);
|
||||
|
||||
|
||||
@@ -403,6 +403,7 @@ class archive extends rcube_plugin
|
||||
'folder_filter' => 'mail',
|
||||
'folder_rights' => 'w',
|
||||
'onchange' => "if ($(this).val() == 'INBOX') $(this).val('')",
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
}
|
||||
else {
|
||||
@@ -418,7 +419,7 @@ class archive extends rcube_plugin
|
||||
// we do not allow archive splitting, for simplicity (#5057)
|
||||
if ($rcmail->get_storage()->get_capability(rcube_storage::DUAL_USE_FOLDERS)) {
|
||||
// add option for structuring the archive folder
|
||||
$archive_type = new html_select(array('name' => '_archive_type', 'id' => 'ff_archive_type'));
|
||||
$archive_type = new html_select(array('name' => '_archive_type', 'id' => 'ff_archive_type', 'class' => 'custom-select'));
|
||||
$archive_type->add($this->gettext('none'), '');
|
||||
$archive_type->add($this->gettext('archivetypeyear'), 'year');
|
||||
$archive_type->add($this->gettext('archivetypemonth'), 'month');
|
||||
|
||||
@@ -371,7 +371,7 @@ class enigma extends rcube_plugin
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_enigma_password_time';
|
||||
$select = new html_select(array('name' => '_enigma_password_time', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_enigma_password_time', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
foreach (array(1, 5, 10, 15, 30) as $m) {
|
||||
$label = $this->gettext(array('name' => 'nminutes', 'vars' => array('m' => $m)));
|
||||
|
||||
@@ -609,8 +609,13 @@ class enigma_ui
|
||||
|
||||
if (empty($attrib['part']) || $attrib['part'] == 'import') {
|
||||
$title = $this->enigma->gettext('keyimportlabel');
|
||||
$upload = new html_inputfield(array('type' => 'file', 'name' => '_file',
|
||||
'id' => 'rcmimportfile', 'size' => 30));
|
||||
$upload = new html_inputfield(array(
|
||||
'type' => 'file',
|
||||
'name' => '_file',
|
||||
'id' => 'rcmimportfile',
|
||||
'size' => 30,
|
||||
'class' => 'form-control'
|
||||
));
|
||||
|
||||
$max_filesize = $this->rc->upload_init();
|
||||
$upload_button = new html_button(array(
|
||||
@@ -635,7 +640,7 @@ class enigma_ui
|
||||
if (empty($attrib['part']) || $attrib['part'] == 'search') {
|
||||
$title = $this->enigma->gettext('keyimportsearchlabel');
|
||||
$search = new html_inputfield(array('type' => 'text', 'name' => '_search',
|
||||
'id' => 'rcmimportsearch', 'size' => 30));
|
||||
'id' => 'rcmimportsearch', 'size' => 30, 'class' => 'form-control'));
|
||||
|
||||
$search_button = new html_button(array(
|
||||
'class' => 'button search',
|
||||
@@ -760,7 +765,7 @@ class enigma_ui
|
||||
$table->add(null, html::tag('ul', 'proplist', implode("\n", $identities)));
|
||||
|
||||
// Key size
|
||||
$select = new html_select(array('name' => 'size', 'id' => 'key-size'));
|
||||
$select = new html_select(array('name' => 'size', 'id' => 'key-size', 'class' => 'custom-select'));
|
||||
$select->add($this->enigma->gettext('key2048'), '2048');
|
||||
$select->add($this->enigma->gettext('key4096'), '4096');
|
||||
|
||||
|
||||
@@ -55,7 +55,12 @@ class hide_blockquote extends rcube_plugin
|
||||
$rcmail = rcmail::get_instance();
|
||||
$limit = (int) $rcmail->config->get('hide_blockquote_limit');
|
||||
$field_id = 'hide_blockquote_limit';
|
||||
$input = new html_inputfield(array('name' => '_'.$field_id, 'id' => $field_id, 'size' => 5));
|
||||
$input = new html_inputfield(array(
|
||||
'name' => '_' . $field_id,
|
||||
'id' => $field_id,
|
||||
'size' => 5,
|
||||
'class' => 'form-control'
|
||||
));
|
||||
|
||||
$args['blocks']['main']['options']['hide_blockquote_limit'] = array(
|
||||
'title' => html::label($field_id, $this->gettext('quotelimit')),
|
||||
@@ -73,5 +78,4 @@ class hide_blockquote extends rcube_plugin
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1344,8 +1344,12 @@ class rcube_sieve_engine
|
||||
$this->rc->output->include_script('list.js');
|
||||
}
|
||||
else {
|
||||
$select = new html_select(array('name' => '_set', 'id' => $attrib['id'],
|
||||
'onchange' => $this->rc->task != 'mail' ? 'rcmail.managesieve_set()' : ''));
|
||||
$select = new html_select(array(
|
||||
'name' => '_set',
|
||||
'id' => $attrib['id'],
|
||||
'class' => 'custom-select',
|
||||
'onchange' => $this->rc->task != 'mail' ? 'rcmail.managesieve_set()' : ''
|
||||
));
|
||||
|
||||
if ($list) {
|
||||
foreach ($list as $set)
|
||||
@@ -1427,7 +1431,7 @@ class rcube_sieve_engine
|
||||
|
||||
// filter set name input
|
||||
$input_name = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30,
|
||||
'class' => ($this->errors['name'] ? 'error' : '')));
|
||||
'class' => ($this->errors['name'] ? 'error form-control' : 'form-control')));
|
||||
|
||||
$table->add('title', html::label('_name', rcube::Q($this->plugin->gettext('filtersetname'))));
|
||||
$table->add(null, $input_name->show($name));
|
||||
@@ -1443,7 +1447,7 @@ class rcube_sieve_engine
|
||||
|
||||
// filters set list
|
||||
$list = $this->list_scripts();
|
||||
$select = new html_select(array('name' => '_copy', 'id' => '_copy'));
|
||||
$select = new html_select(array('name' => '_copy', 'id' => '_copy', 'class' => 'custom-select'));
|
||||
|
||||
if (is_array($list)) {
|
||||
asort($list, SORT_LOCALE_STRING);
|
||||
@@ -1466,7 +1470,7 @@ class rcube_sieve_engine
|
||||
|
||||
// script upload box
|
||||
$upload = new html_inputfield(array('name' => '_file', 'id' => '_file', 'size' => 30,
|
||||
'type' => 'file', 'class' => ($this->errors['file'] ? 'error' : '')));
|
||||
'type' => 'file', 'class' => ($this->errors['file'] ? 'error form-control' : 'form-control')));
|
||||
|
||||
$filters .= '<li>' . html::label('from_file', html::tag('input', array(
|
||||
'type' => 'radio',
|
||||
@@ -1534,7 +1538,7 @@ class rcube_sieve_engine
|
||||
'name' => '_name',
|
||||
'id' => '_name',
|
||||
'size' => 30,
|
||||
'class' => ($this->errors['name'] ? ' error' : '')
|
||||
'class' => ($this->errors['name'] ? 'form-control error' : 'form-control')
|
||||
));
|
||||
|
||||
if ($this->errors['name']) {
|
||||
@@ -1567,7 +1571,7 @@ class rcube_sieve_engine
|
||||
rcube::Q($this->plugin->gettext('filterenabled')));
|
||||
|
||||
if ($compact) {
|
||||
$select = new html_select(array('name' => '_join', 'id' => '_join',
|
||||
$select = new html_select(array('name' => '_join', 'id' => '_join', 'class' => 'custom-select',
|
||||
'onchange' => 'rule_join_radio(this.value)'));
|
||||
|
||||
foreach (array('allof', 'anyof', 'any') as $val) {
|
||||
@@ -1683,7 +1687,7 @@ class rcube_sieve_engine
|
||||
|
||||
// headers select
|
||||
$select_header = new html_select(array('name' => "_header[$id]", 'id' => 'header'.$id,
|
||||
'onchange' => 'rule_header_select(' .$id .')'));
|
||||
'onchange' => 'rule_header_select(' .$id .')', 'class' => 'custom-select'));
|
||||
|
||||
foreach ($this->headers as $index => $header) {
|
||||
$header = $this->rc->text_exists($index) ? $this->plugin->gettext($index) : $header;
|
||||
@@ -1794,9 +1798,11 @@ class rcube_sieve_engine
|
||||
if (in_array('date', $this->exts) || in_array('currentdate', $this->exts)) {
|
||||
$date_parts = array('date', 'iso8601', 'std11', 'julian', 'time',
|
||||
'year', 'month', 'day', 'hour', 'minute', 'second', 'weekday', 'zone');
|
||||
$select_dp = new html_select(array('name' => "_rule_date_part[$id]", 'id' => 'rule_date_part'.$id,
|
||||
'style' => in_array($rule['test'], array('currentdate', 'date')) && !preg_match('/^(notcount|count)-/', $test) ? '' : 'display:none',
|
||||
'class' => 'datepart_selector',
|
||||
$select_dp = new html_select(array(
|
||||
'name' => "_rule_date_part[$id]",
|
||||
'id' => 'rule_date_part'.$id,
|
||||
'style' => in_array($rule['test'], array('currentdate', 'date')) && !preg_match('/^(notcount|count)-/', $test) ? '' : 'display:none',
|
||||
'class' => 'datepart_selector custom-select',
|
||||
));
|
||||
|
||||
foreach ($date_parts as $part) {
|
||||
@@ -1808,9 +1814,11 @@ class rcube_sieve_engine
|
||||
|
||||
// message test select (e.g. duplicate)
|
||||
if (in_array('duplicate', $this->exts)) {
|
||||
$select_msg = new html_select(array('name' => "_rule_message[$id]", 'id' => 'rule_message'.$id,
|
||||
'style' => in_array($rule['test'], array('duplicate')) ? '' : 'display:none',
|
||||
'class' => 'message_selector',
|
||||
$select_msg = new html_select(array(
|
||||
'name' => "_rule_message[$id]",
|
||||
'id' => 'rule_message'.$id,
|
||||
'style' => in_array($rule['test'], array('duplicate')) ? '' : 'display:none',
|
||||
'class' => 'message_selector custom-select',
|
||||
));
|
||||
|
||||
$select_msg->add(rcube::Q($this->plugin->gettext('duplicate')), 'duplicate');
|
||||
@@ -1825,11 +1833,19 @@ class rcube_sieve_engine
|
||||
'class' => $this->error_class($id, 'test', 'target', 'rule_target')
|
||||
)) . "\n";
|
||||
|
||||
$select_size_op = new html_select(array('name' => "_rule_size_op[$id]", 'id' => 'rule_size_op'.$id, 'class' => 'input-group-prepend'));
|
||||
$select_size_op = new html_select(array(
|
||||
'name' => "_rule_size_op[$id]",
|
||||
'id' => 'rule_size_op'.$id,
|
||||
'class' => 'input-group-prepend custom-select'
|
||||
));
|
||||
$select_size_op->add(rcube::Q($this->plugin->gettext('filterover')), 'over');
|
||||
$select_size_op->add(rcube::Q($this->plugin->gettext('filterunder')), 'under');
|
||||
|
||||
$select_size_item = new html_select(array('name' => "_rule_size_item[$id]", 'id' => 'rule_size_item'.$id, 'class' => 'input-group-append'));
|
||||
$select_size_item = new html_select(array(
|
||||
'name' => "_rule_size_item[$id]",
|
||||
'id' => 'rule_size_item'.$id,
|
||||
'class' => 'input-group-append custom-select'
|
||||
));
|
||||
foreach (array('', 'K', 'M', 'G') as $unit) {
|
||||
$select_size_item->add($this->plugin->gettext($unit . 'B'), $unit);
|
||||
}
|
||||
@@ -1849,15 +1865,23 @@ class rcube_sieve_engine
|
||||
$tout .= '</div>';
|
||||
|
||||
// Advanced modifiers (address, envelope)
|
||||
$select_mod = new html_select(array('name' => "_rule_mod[$id]", 'id' => 'rule_mod_op'.$id,
|
||||
'onchange' => 'rule_mod_select(' .$id .')'));
|
||||
$select_mod = new html_select(array(
|
||||
'name' => "_rule_mod[$id]",
|
||||
'id' => 'rule_mod_op' . $id,
|
||||
'class' => 'custom-select',
|
||||
'onchange' => 'rule_mod_select(' .$id .')'
|
||||
));
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('none')), '');
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('address')), 'address');
|
||||
if (in_array('envelope', $this->exts)) {
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('envelope')), 'envelope');
|
||||
}
|
||||
|
||||
$select_type = new html_select(array('name' => "_rule_mod_type[$id]", 'id' => 'rule_mod_type'.$id));
|
||||
$select_type = new html_select(array(
|
||||
'name' => "_rule_mod_type[$id]",
|
||||
'id' => 'rule_mod_type' . $id,
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
$select_type->add(rcube::Q($this->plugin->gettext('allparts')), 'all');
|
||||
$select_type->add(rcube::Q($this->plugin->gettext('domain')), 'domain');
|
||||
$select_type->add(rcube::Q($this->plugin->gettext('localpart')), 'localpart');
|
||||
@@ -1888,8 +1912,12 @@ class rcube_sieve_engine
|
||||
if (in_array('mime', $this->exts)) {
|
||||
$need_mime = !$rule || in_array($rule['test'], array('header', 'address', 'exists'));
|
||||
$mime_type = '';
|
||||
$select_mime = new html_select(array('name' => "_rule_mime_type[$id]", 'id' => 'rule_mime_type' . $id,
|
||||
'style' => 'min-width:8em', 'onchange' => 'rule_mime_select(' . $id . ')'));
|
||||
$select_mime = new html_select(array(
|
||||
'name' => "_rule_mime_type[$id]",
|
||||
'id' => 'rule_mime_type' . $id,
|
||||
'style' => 'min-width:8em', 'onchange' => 'rule_mime_select(' . $id . ')',
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
$select_mime->add('-', '');
|
||||
|
||||
foreach (array('contenttype', 'type', 'subtype', 'param') as $val) {
|
||||
@@ -1900,7 +1928,11 @@ class rcube_sieve_engine
|
||||
$select_mime->add(rcube::Q($this->plugin->gettext('mime-' . $val)), $val);
|
||||
}
|
||||
|
||||
$select_mime_part = new html_select(array('name' => "_rule_mime_part[$id]", 'id' => 'rule_mime_part' . $id));
|
||||
$select_mime_part = new html_select(array(
|
||||
'name' => "_rule_mime_part[$id]",
|
||||
'id' => 'rule_mime_part' . $id,
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
$select_mime_part->add(rcube::Q($this->plugin->gettext('mime-message')), '');
|
||||
$select_mime_part->add(rcube::Q($this->plugin->gettext('mime-anychild')), 'anychild');
|
||||
|
||||
@@ -1918,8 +1950,12 @@ class rcube_sieve_engine
|
||||
}
|
||||
|
||||
// Advanced modifiers (body transformations)
|
||||
$select_mod = new html_select(array('name' => "_rule_trans[$id]", 'id' => 'rule_trans_op'.$id,
|
||||
'onchange' => 'rule_trans_select(' .$id .')'));
|
||||
$select_mod = new html_select(array(
|
||||
'name' => "_rule_trans[$id]",
|
||||
'id' => 'rule_trans_op' . $id,
|
||||
'class' => 'custom-select',
|
||||
'onchange' => 'rule_trans_select(' .$id .')'
|
||||
));
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('text')), 'text');
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('undecoded')), 'raw');
|
||||
$select_mod->add(rcube::Q($this->plugin->gettext('contenttype')), 'content');
|
||||
@@ -2110,8 +2146,12 @@ class rcube_sieve_engine
|
||||
$out .= '<table class="compact-table"><tr><td class="rowactions">';
|
||||
|
||||
// action select
|
||||
$select_action = new html_select(array('name' => "_action_type[$id]", 'id' => 'action_type'.$id,
|
||||
'onchange' => 'action_type_select(' .$id .')'));
|
||||
$select_action = new html_select(array(
|
||||
'name' => "_action_type[$id]",
|
||||
'id' => 'action_type' . $id,
|
||||
'class' => 'custom-select',
|
||||
'onchange' => 'action_type_select(' . $id . ')'
|
||||
));
|
||||
if (in_array('fileinto', $this->exts))
|
||||
$select_action->add($this->plugin->gettext('messagemoveto'), 'fileinto');
|
||||
if (in_array('fileinto', $this->exts) && in_array('copy', $this->exts))
|
||||
@@ -2160,7 +2200,11 @@ class rcube_sieve_engine
|
||||
if (!empty($domains)) {
|
||||
sort($domains);
|
||||
|
||||
$domain_select = new html_select(array('name' => "_action_target_domain[$id]", 'id' => 'action_target_domain'.$id));
|
||||
$domain_select = new html_select(array(
|
||||
'name' => "_action_target_domain[$id]",
|
||||
'id' => 'action_target_domain' . $id,
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
$domain_select->add(array_combine($domains, $domains));
|
||||
|
||||
if ($action['type'] == 'redirect') {
|
||||
@@ -2263,7 +2307,10 @@ class rcube_sieve_engine
|
||||
'class' => $this->error_class($id, 'action', 'interval', 'action_interval'),
|
||||
));
|
||||
if ($vsec) {
|
||||
$interval_select = new html_select(array('name' => '_action_interval_type[' . $id . ']', 'class' => 'input-group-append'));
|
||||
$interval_select = new html_select(array(
|
||||
'name' => '_action_interval_type[' . $id . ']',
|
||||
'class' => 'input-group-append custom-select'
|
||||
));
|
||||
$interval_select->add($this->plugin->gettext('days'), 'days');
|
||||
$interval_select->add($this->plugin->gettext('seconds'), 'seconds');
|
||||
$out .= $interval_select->show(isset($action['seconds']) ? 'seconds' : 'days');
|
||||
@@ -2370,7 +2417,7 @@ class rcube_sieve_engine
|
||||
$select_method = new html_select(array(
|
||||
'name' => "_action_notifymethod[$id]",
|
||||
'id' => "_action_notifymethod$id",
|
||||
'class' => 'input-group-prepend ' . $this->error_class($id, 'action', 'method', 'action_notifymethod'),
|
||||
'class' => 'input-group-prepend custom-select ' . $this->error_class($id, 'action', 'method', 'action_notifymethod'),
|
||||
));
|
||||
foreach ($notify_methods as $m_n) {
|
||||
$select_method->add(rcube::Q($this->rc->text_exists('managesieve.notifymethod'.$m_n) ? $this->plugin->gettext('managesieve.notifymethod'.$m_n) : $m_n), $m_n);
|
||||
@@ -2379,7 +2426,7 @@ class rcube_sieve_engine
|
||||
$select_importance = new html_select(array(
|
||||
'name' => "_action_notifyimportance[$id]",
|
||||
'id' => "_action_notifyimportance$id",
|
||||
'class' => $this->error_class($id, 'action', 'importance', 'action_notifyimportance')
|
||||
'class' => 'custom-select ' . $this->error_class($id, 'action', 'importance', 'action_notifyimportance')
|
||||
));
|
||||
foreach ($importance_options as $io_v => $io_n) {
|
||||
$select_importance->add(rcube::Q($this->plugin->gettext($io_n)), $io_v);
|
||||
@@ -2432,14 +2479,14 @@ class rcube_sieve_engine
|
||||
$pos1_selector = new html_select(array(
|
||||
'name' => "_action_addheader_pos[$id]",
|
||||
'id' => "action_addheader_pos$id",
|
||||
'class' => $this->error_class($id, 'action', 'pos', 'action_addheader_pos')
|
||||
'class' => 'custom-select ' . $this->error_class($id, 'action', 'pos', 'action_addheader_pos')
|
||||
));
|
||||
$pos1_selector->add($this->plugin->gettext('headeratstart'), '');
|
||||
$pos1_selector->add($this->plugin->gettext('headeratend'), 'last');
|
||||
$pos2_selector = new html_select(array(
|
||||
'name' => "_action_delheader_pos[$id]",
|
||||
'id' => "action_delheader_pos$id",
|
||||
'class' => $this->error_class($id, 'action', 'pos', 'action_delheader_pos')
|
||||
'class' => 'custom-select ' . $this->error_class($id, 'action', 'pos', 'action_delheader_pos')
|
||||
));
|
||||
$pos2_selector->add($this->plugin->gettext('headerfromstart'), '');
|
||||
$pos2_selector->add($this->plugin->gettext('headerfromend'), 'last');
|
||||
@@ -3062,7 +3109,7 @@ class rcube_sieve_engine
|
||||
'name' => "_{$name}[$id]",
|
||||
'id' => "{$name}{$id}",
|
||||
'style' => 'display:' .(!in_array($rule, array('size', 'duplicate')) ? 'inline' : 'none'),
|
||||
'class' => 'operator_selector col-6',
|
||||
'class' => 'operator_selector col-6 custom-select',
|
||||
'onchange' => "{$name}_select(this, '{$id}')",
|
||||
));
|
||||
|
||||
@@ -3100,7 +3147,11 @@ class rcube_sieve_engine
|
||||
|
||||
protected function comparator_selector($comparator, $name, $id)
|
||||
{
|
||||
$select_comp = new html_select(array('name' => "_{$name}[$id]", 'id' => "{$name}_op{$id}"));
|
||||
$select_comp = new html_select(array(
|
||||
'name' => "_{$name}[$id]",
|
||||
'id' => "{$name}_op{$id}",
|
||||
'class' => 'custom-select'
|
||||
));
|
||||
$select_comp->add(rcube::Q($this->plugin->gettext('default')), '');
|
||||
$select_comp->add(rcube::Q($this->plugin->gettext('octet')), 'i;octet');
|
||||
$select_comp->add(rcube::Q($this->plugin->gettext('asciicasemap')), 'i;ascii-casemap');
|
||||
|
||||
@@ -256,8 +256,8 @@ class rcube_sieve_forward extends rcube_sieve_engine
|
||||
|
||||
|
||||
// form elements
|
||||
$status = new html_select(array('name' => 'forward_status', 'id' => 'forward_status'));
|
||||
$action = new html_select(array('name' => 'forward_action', 'id' => 'forward_action'));
|
||||
$status = new html_select(array('name' => 'forward_status', 'id' => 'forward_status', 'class' => 'custom-select'));
|
||||
$action = new html_select(array('name' => 'forward_action', 'id' => 'forward_action', 'class' => 'custom-select'));
|
||||
|
||||
$status->add($this->plugin->gettext('forward.on'), 'on');
|
||||
$status->add($this->plugin->gettext('forward.off'), 'off');
|
||||
@@ -274,7 +274,7 @@ class rcube_sieve_forward extends rcube_sieve_engine
|
||||
if (!empty($domains)) {
|
||||
sort($domains);
|
||||
|
||||
$domain_select = new html_select(array('name' => 'action_domain', 'id' => 'action_domain'));
|
||||
$domain_select = new html_select(array('name' => 'action_domain', 'id' => 'action_domain', 'class' => 'custom-select'));
|
||||
$domain_select->add(array_combine($domains, $domains));
|
||||
|
||||
if ($redirect && $this->forward['target']) {
|
||||
|
||||
@@ -383,14 +383,14 @@ class rcube_sieve_vacation extends rcube_sieve_engine
|
||||
}
|
||||
|
||||
// form elements
|
||||
$from = new html_inputfield(array('name' => 'vacation_from', 'id' => 'vacation_from', 'size' => 50));
|
||||
$subject = new html_inputfield(array('name' => 'vacation_subject', 'id' => 'vacation_subject', 'size' => 50));
|
||||
$from = new html_inputfield(array('name' => 'vacation_from', 'id' => 'vacation_from', 'size' => 50, 'class' => 'form-control'));
|
||||
$subject = new html_inputfield(array('name' => 'vacation_subject', 'id' => 'vacation_subject', 'size' => 50, 'class' => 'form-control'));
|
||||
$reason = new html_textarea(array('name' => 'vacation_reason', 'id' => 'vacation_reason', 'cols' => 60, 'rows' => 8));
|
||||
$interval = new html_inputfield(array('name' => 'vacation_interval', 'id' => 'vacation_interval', 'size' => 5));
|
||||
$interval = new html_inputfield(array('name' => 'vacation_interval', 'id' => 'vacation_interval', 'size' => 5, 'class' => 'form-control'));
|
||||
$addresses = '<textarea name="vacation_addresses" id="vacation_addresses" data-type="list" data-size="30" style="display: none">'
|
||||
. rcube::Q(implode("\n", (array) $this->vacation['addresses']), 'strict', false) . '</textarea>';
|
||||
$status = new html_select(array('name' => 'vacation_status', 'id' => 'vacation_status'));
|
||||
$action = new html_select(array('name' => 'vacation_action', 'id' => 'vacation_action', 'onchange' => 'vacation_action_select()'));
|
||||
$status = new html_select(array('name' => 'vacation_status', 'id' => 'vacation_status', 'class' => 'custom-select'));
|
||||
$action = new html_select(array('name' => 'vacation_action', 'id' => 'vacation_action', 'class' => 'custom-select', 'onchange' => 'vacation_action_select()'));
|
||||
$addresses_link = new html_inputfield(array(
|
||||
'type' => 'button',
|
||||
'href' => '#',
|
||||
@@ -413,7 +413,7 @@ class rcube_sieve_vacation extends rcube_sieve_engine
|
||||
&& !empty($this->vacation['list'])
|
||||
&& in_array($this->script_name, $this->active)
|
||||
) {
|
||||
$after = new html_select(array('name' => 'vacation_after', 'id' => 'vacation_after'));
|
||||
$after = new html_select(array('name' => 'vacation_after', 'id' => 'vacation_after', 'class' => 'custom-select'));
|
||||
|
||||
$after->add('---', '');
|
||||
foreach ($this->vacation['list'] as $idx => $rule) {
|
||||
@@ -423,7 +423,7 @@ class rcube_sieve_vacation extends rcube_sieve_engine
|
||||
|
||||
$interval_txt = $interval->show(self::vacation_interval($this->vacation, $this->exts));
|
||||
if ($seconds_extension) {
|
||||
$interval_select = new html_select(array('name' => 'vacation_interval_type'));
|
||||
$interval_select = new html_select(array('name' => 'vacation_interval_type', 'class' => 'custom-select'));
|
||||
$interval_select->add($this->plugin->gettext('days'), 'days');
|
||||
$interval_select->add($this->plugin->gettext('seconds'), 'seconds');
|
||||
$interval_txt .= $interval_select->show(isset($this->vacation['seconds']) ? 'seconds' : 'days');
|
||||
@@ -434,14 +434,14 @@ class rcube_sieve_vacation extends rcube_sieve_engine
|
||||
}
|
||||
|
||||
if ($date_extension || $regex_extension) {
|
||||
$date_from = new html_inputfield(array('name' => 'vacation_datefrom', 'id' => 'vacation_datefrom', 'class' => 'datepicker', 'size' => 12));
|
||||
$date_to = new html_inputfield(array('name' => 'vacation_dateto', 'id' => 'vacation_dateto', 'class' => 'datepicker', 'size' => 12));
|
||||
$date_from = new html_inputfield(array('name' => 'vacation_datefrom', 'id' => 'vacation_datefrom', 'class' => 'datepicker form-control', 'size' => 12));
|
||||
$date_to = new html_inputfield(array('name' => 'vacation_dateto', 'id' => 'vacation_dateto', 'class' => 'datepicker form-control', 'size' => 12));
|
||||
$date_format = $this->rc->config->get('date_format', 'Y-m-d');
|
||||
}
|
||||
|
||||
if ($date_extension) {
|
||||
$time_from = new html_inputfield(array('name' => 'vacation_timefrom', 'id' => 'vacation_timefrom', 'size' => 7));
|
||||
$time_to = new html_inputfield(array('name' => 'vacation_timeto', 'id' => 'vacation_timeto', 'size' => 7));
|
||||
$time_from = new html_inputfield(array('name' => 'vacation_timefrom', 'id' => 'vacation_timefrom', 'size' => 7, 'class' => 'form-control'));
|
||||
$time_to = new html_inputfield(array('name' => 'vacation_timeto', 'id' => 'vacation_timeto', 'size' => 7, 'class' => 'form-control'));
|
||||
$time_format = $this->rc->config->get('time_format', 'H:i');
|
||||
$date_value = array();
|
||||
|
||||
@@ -482,7 +482,7 @@ class rcube_sieve_vacation extends rcube_sieve_engine
|
||||
if (!empty($domains)) {
|
||||
sort($domains);
|
||||
|
||||
$domain_select = new html_select(array('name' => 'action_domain', 'id' => 'action_domain'));
|
||||
$domain_select = new html_select(array('name' => 'action_domain', 'id' => 'action_domain', 'class' => 'custom-select'));
|
||||
$domain_select->add(array_combine($domains, $domains));
|
||||
|
||||
if ($redirect && $this->vacation['target']) {
|
||||
|
||||
@@ -124,7 +124,7 @@ class newmail_notifier extends rcube_plugin
|
||||
$key = 'newmail_notifier_' . $type;
|
||||
if (!in_array($key, $dont_override)) {
|
||||
$field_id = '_' . $key;
|
||||
$select = new html_select(array('name' => $field_id, 'id' => $field_id));
|
||||
$select = new html_select(array('name' => $field_id, 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
foreach (array(5, 10, 15, 30, 45, 60) as $sec) {
|
||||
$label = $this->rc->gettext(array('name' => 'afternseconds', 'vars' => array('n' => $sec)));
|
||||
|
||||
@@ -2262,6 +2262,7 @@ class rcmail extends rcube
|
||||
'id' => $attrib['id'] . 'Input',
|
||||
'type' => 'file',
|
||||
'name' => '_attachments[]',
|
||||
'class' => 'form-control',
|
||||
);
|
||||
|
||||
$form_attr = array(
|
||||
|
||||
@@ -2186,7 +2186,7 @@ EOF;
|
||||
$hide_host = false;
|
||||
|
||||
if (is_array($default_host) && count($default_host) > 1) {
|
||||
$input_host = new html_select(array('name' => '_host', 'id' => 'rcmloginhost'));
|
||||
$input_host = new html_select(array('name' => '_host', 'id' => 'rcmloginhost', 'class' => 'custom-select'));
|
||||
|
||||
foreach ($default_host as $key => $value) {
|
||||
if (!is_array($value)) {
|
||||
@@ -2204,7 +2204,7 @@ EOF;
|
||||
'name' => '_host', 'id' => 'rcmloginhost', 'value' => is_numeric($host) ? $default_host[$host] : $host) + $attrib);
|
||||
}
|
||||
else if (empty($default_host)) {
|
||||
$input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost')
|
||||
$input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost', 'class' => 'form-control')
|
||||
+ $attrib + $host_attrib);
|
||||
}
|
||||
|
||||
|
||||
@@ -572,7 +572,11 @@ function rcmail_contact_form($form, $record, $attrib = null)
|
||||
continue;
|
||||
}
|
||||
|
||||
$select_add = new html_select(array('class' => 'addfieldmenu', 'rel' => $section, 'data-compact' => $compact ? "true" : null));
|
||||
$select_add = new html_select(array(
|
||||
'class' => 'addfieldmenu custom-select',
|
||||
'rel' => $section,
|
||||
'data-compact' => $compact ? "true" : null
|
||||
));
|
||||
$select_add->add($RCMAIL->gettext('addfield'), '');
|
||||
|
||||
// render head section with name fields (not a regular list of rows)
|
||||
|
||||
@@ -225,7 +225,7 @@ function rcmail_import_form($attrib)
|
||||
|
||||
// addressbook selector
|
||||
if (count($writable_books) > 1) {
|
||||
$select = new html_select(array('name' => '_target', 'id' => 'rcmimporttarget', 'is_escaped' => true));
|
||||
$select = new html_select(array('name' => '_target', 'id' => 'rcmimporttarget', 'is_escaped' => true, 'class' => 'custom-select'));
|
||||
|
||||
foreach ($writable_books as $book) {
|
||||
$select->add($book['name'], $book['id']);
|
||||
|
||||
@@ -95,7 +95,7 @@ function rcmail_folder_form($attrib)
|
||||
$folder = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true));
|
||||
}
|
||||
|
||||
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30));
|
||||
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30, 'class' => 'form-control'));
|
||||
$foldername = '<span class="input-group">' . $foldername->show($folder);
|
||||
|
||||
if ($options['special'] && ($sname = $RCMAIL->localize_foldername($mbox, false, true)) != $folder) {
|
||||
|
||||
@@ -184,7 +184,7 @@ function rcmail_user_prefs($current = null)
|
||||
asort($a_lang);
|
||||
|
||||
$field_id = 'rcmfd_lang';
|
||||
$select = new html_select(array('name' => '_language', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_language', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
$select->add(array_values($a_lang), array_keys($a_lang));
|
||||
|
||||
$blocks['main']['options']['language'] = array(
|
||||
@@ -200,7 +200,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_timezone';
|
||||
$select = new html_select(array('name' => '_timezone', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_timezone', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
$select->add($RCMAIL->gettext('autodetect'), 'auto');
|
||||
|
||||
$zones = array();
|
||||
@@ -233,7 +233,7 @@ function rcmail_user_prefs($current = null)
|
||||
$defaults = array('G:i', 'H:i', 'g:i a', 'h:i A');
|
||||
$formats = (array)$RCMAIL->config->get('time_formats', $defaults);
|
||||
$field_id = 'rcmfd_time_format';
|
||||
$select = new html_select(array('name' => '_time_format', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_time_format', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
foreach ($formats as $choice) {
|
||||
$select->add(date($choice, $reftime), $choice);
|
||||
@@ -254,7 +254,7 @@ function rcmail_user_prefs($current = null)
|
||||
$defaults = array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y');
|
||||
$formats = (array)$RCMAIL->config->get('date_formats', $defaults);
|
||||
$field_id = 'rcmfd_date_format';
|
||||
$select = new html_select(array('name' => '_date_format', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_date_format', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
foreach ($formats as $choice) {
|
||||
$select->add(date($choice, $refdate), $choice);
|
||||
@@ -302,7 +302,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_refresh_interval';
|
||||
$select = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_refresh_interval', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('never'), 0);
|
||||
foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) {
|
||||
@@ -410,7 +410,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_layout';
|
||||
$select = new html_select(array('name' => '_layout', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_layout', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$layouts = array(
|
||||
'widescreen' => 'layoutwidescreendesc',
|
||||
@@ -439,7 +439,7 @@ function rcmail_user_prefs($current = null)
|
||||
$config['mail_read_time'] = intval($RCMAIL->config->get('mail_read_time'));
|
||||
|
||||
$field_id = 'rcmfd_mail_read_time';
|
||||
$select = new html_select(array('name' => '_mail_read_time', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_mail_read_time', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('never'), -1);
|
||||
$select->add($RCMAIL->gettext('immediately'), 0);
|
||||
@@ -461,7 +461,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_mdn_requests';
|
||||
$select = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_mdn_requests', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
$select->add($RCMAIL->gettext('askuser'), 0);
|
||||
$select->add($RCMAIL->gettext('autosend'), 1);
|
||||
$select->add($RCMAIL->gettext('autosendknown'), 3);
|
||||
@@ -484,7 +484,7 @@ function rcmail_user_prefs($current = null)
|
||||
|
||||
if ($supported) {
|
||||
$field_id = 'rcmfd_autoexpand_threads';
|
||||
$select = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
$select->add($RCMAIL->gettext('never'), 0);
|
||||
$select->add($RCMAIL->gettext('do_expand'), 1);
|
||||
$select->add($RCMAIL->gettext('expand_only_unread'), 2);
|
||||
@@ -503,7 +503,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_mail_pagesize';
|
||||
$input = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5));
|
||||
$input = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5, 'class' => 'form-control'));
|
||||
$size = intval($config['mail_pagesize'] ?: $config['pagesize']);
|
||||
|
||||
$blocks['main']['options']['pagesize'] = array(
|
||||
@@ -590,8 +590,12 @@ function rcmail_user_prefs($current = null)
|
||||
$blocks['advanced']['options']['default_charset'] = array(
|
||||
'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('defaultcharset'))),
|
||||
'content' => $RCMAIL->output->charset_selector(array(
|
||||
'id' => $field_id, 'name' => '_default_charset', 'selected' => $config['default_charset']
|
||||
)));
|
||||
'id' => $field_id,
|
||||
'name' => '_default_charset',
|
||||
'selected' => $config['default_charset'],
|
||||
'class' => 'custom-select',
|
||||
))
|
||||
);
|
||||
}
|
||||
|
||||
if (!isset($no_override['show_images'])) {
|
||||
@@ -600,8 +604,12 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_show_images';
|
||||
$input = new html_select(array('name' => '_show_images', 'id' => $field_id,
|
||||
'disabled' => !$config['prefer_html']));
|
||||
$input = new html_select(array(
|
||||
'name' => '_show_images',
|
||||
'id' => $field_id,
|
||||
'class' => 'custom-select',
|
||||
'disabled' => !$config['prefer_html']
|
||||
));
|
||||
|
||||
$input->add($RCMAIL->gettext('never'), 0);
|
||||
$input->add($RCMAIL->gettext('fromknownsenders'), 1);
|
||||
@@ -658,7 +666,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_htmleditor';
|
||||
$select = new html_select(array('name' => '_htmleditor', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_htmleditor', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('never'), 0);
|
||||
$select->add($RCMAIL->gettext('htmlonreply'), 2);
|
||||
@@ -678,7 +686,12 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_autosave';
|
||||
$select = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
|
||||
$select = new html_select(array(
|
||||
'name' => '_draft_autosave',
|
||||
'id' => $field_id,
|
||||
'class' => 'custom-select',
|
||||
'disabled' => empty($config['drafts_mbox'])
|
||||
));
|
||||
|
||||
$select->add($RCMAIL->gettext('never'), 0);
|
||||
foreach (array(1, 3, 5, 10) as $i => $min) {
|
||||
@@ -698,7 +711,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_param_folding';
|
||||
$select = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id, 'class' => 'custom-select',));
|
||||
|
||||
$select->add($RCMAIL->gettext('2231folding'), 0);
|
||||
$select->add($RCMAIL->gettext('miscfolding'), 1);
|
||||
@@ -772,7 +785,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_reply_mode';
|
||||
$select = new html_select(array('name' => '_reply_mode', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_reply_mode', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('replyempty'), -1);
|
||||
$select->add($RCMAIL->gettext('replybottomposting'), 0);
|
||||
@@ -823,7 +836,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_show_sig';
|
||||
$select = new html_select(array('name' => '_show_sig', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_show_sig', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('never'), 0);
|
||||
$select->add($RCMAIL->gettext('always'), 1);
|
||||
@@ -884,7 +897,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_forward_attachment';
|
||||
$select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('inline'), 0);
|
||||
$select->add($RCMAIL->gettext('asattachment'), 1);
|
||||
@@ -902,27 +915,29 @@ function rcmail_user_prefs($current = null)
|
||||
|
||||
// Default font size
|
||||
$field_id = 'rcmfd_default_font_size';
|
||||
$select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id));
|
||||
$select_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$fontsizes = array('', '8pt', '9pt', '10pt', '11pt', '12pt', '14pt', '18pt', '24pt', '36pt');
|
||||
foreach ($fontsizes as $size) {
|
||||
$select_default_font_size->add($size, $size);
|
||||
$select_size->add($size, $size);
|
||||
}
|
||||
|
||||
// Default font
|
||||
$field_id = 'rcmfd_default_font';
|
||||
$select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id));
|
||||
$select_default_font->add('', '');
|
||||
$select_font = new html_select(array('name' => '_default_font', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
$select_font->add('', '');
|
||||
|
||||
$fonts = rcmail::font_defs();
|
||||
foreach (array_keys($fonts) as $fname) {
|
||||
$select_default_font->add($fname, $fname);
|
||||
$select_font->add($fname, $fname);
|
||||
}
|
||||
|
||||
$blocks['main']['options']['default_font'] = array(
|
||||
'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('defaultfont'))),
|
||||
'content' => html::div('input-group', $select_default_font->show($RCMAIL->config->get('default_font', 1)) .
|
||||
$select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)))
|
||||
'content' => html::div('input-group',
|
||||
$select_font->show($RCMAIL->config->get('default_font', 1)) .
|
||||
$select_size->show($RCMAIL->config->get('default_font_size', 1))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -932,7 +947,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_reply_all_mode';
|
||||
$select = new html_select(array('name' => '_reply_all_mode', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_reply_all_mode', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('replyalldefault'), 0);
|
||||
$select->add($RCMAIL->gettext('replyalllist'), 1);
|
||||
@@ -974,7 +989,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_default_addressbook';
|
||||
$select = new html_select(array('name' => '_default_addressbook', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_default_addressbook', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
foreach ($books as $book) {
|
||||
$select->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']);
|
||||
@@ -993,7 +1008,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_addressbook_name_listing';
|
||||
$select = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('name'), 0);
|
||||
$select->add($RCMAIL->gettext('firstname') . ' ' . $RCMAIL->gettext('surname'), 1);
|
||||
@@ -1013,7 +1028,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_addressbook_sort_col';
|
||||
$select = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
|
||||
$select = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id, 'class' => 'custom-select'));
|
||||
|
||||
$select->add($RCMAIL->gettext('name'), 'name');
|
||||
$select->add($RCMAIL->gettext('firstname'), 'firstname');
|
||||
@@ -1032,7 +1047,7 @@ function rcmail_user_prefs($current = null)
|
||||
}
|
||||
|
||||
$field_id = 'rcmfd_addressbook_pagesize';
|
||||
$input = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5));
|
||||
$input = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5, 'class' => 'form-control'));
|
||||
$size = intval($config['addressbook_pagesize'] ?: $config['pagesize']);
|
||||
|
||||
$blocks['main']['options']['pagesize'] = array(
|
||||
@@ -1086,6 +1101,7 @@ function rcmail_user_prefs($current = null)
|
||||
'maxlength' => 30,
|
||||
'folder_filter' => 'mail',
|
||||
'folder_rights' => 'w',
|
||||
'class' => 'custom-select',
|
||||
));
|
||||
|
||||
// #1486114, #1488279, #1489219
|
||||
|
||||
@@ -49,14 +49,14 @@
|
||||
<div class="form-group row">
|
||||
<label for="compose-priority" class="col-form-label col-6"><roundcube:label name="priority" /></label>
|
||||
<div class="col-6">
|
||||
<roundcube:object name="prioritySelector" id="compose-priority" noform="true" tabindex="2" />
|
||||
<roundcube:object name="prioritySelector" id="compose-priority" noform="true" tabindex="2" class="custom-select" />
|
||||
</div>
|
||||
</div>
|
||||
<roundcube:if condition="!config:no_save_sent_messages" />
|
||||
<div class="form-group row">
|
||||
<label for="compose-store-target" class="col-form-label col-6"><roundcube:label name="savesentmessagein" /></label>
|
||||
<div class="col-6">
|
||||
<roundcube:object name="storetarget" id="compose-store-target" noform="true" tabindex="2" />
|
||||
<roundcube:object name="storetarget" id="compose-store-target" noform="true" tabindex="2" class="custom-select" />
|
||||
</div>
|
||||
</div>
|
||||
<roundcube:endif />
|
||||
|
||||
@@ -28,6 +28,17 @@
|
||||
<link rel="stylesheet" href="/styles/styles.css">
|
||||
<roundcube:link rel="stylesheet" href="/styles/print.css" condition="env:action == 'print'" />
|
||||
<roundcube:endif />
|
||||
<roundcube:if condition="env:action != 'print' && empty(config:devel_mode)" />
|
||||
<script>
|
||||
try {
|
||||
if (document.cookie.indexOf('colorMode=dark') > -1
|
||||
|| (document.cookie.indexOf('colorMode=light') === -1 && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||
) {
|
||||
document.documentElement.className += ' dark-mode';
|
||||
}
|
||||
} catch (e) { }
|
||||
</script>
|
||||
<roundcube:endif />
|
||||
</head>
|
||||
<body class="task-<roundcube:exp expression="env:error_task ?: env:task ?: 'error'"> action-<roundcube:exp expression="asciiwords(env:action, true, '-') ?: 'none'">">
|
||||
<roundcube:if condition="!env:framed || env:extwin" />
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div id="layout-content" class="selected no-navbar" role="main">
|
||||
<roundcube:object name="logo" src="/images/logo.svg" data-src-small="0" id="logo" alt="Logo" />
|
||||
<roundcube:form id="login-form" name="login-form" method="post" class="propform">
|
||||
<roundcube:object name="loginform" form="login-form" size="40" submit=true />
|
||||
<roundcube:object name="loginform" form="login-form" size="40" submit=true class="form-control" />
|
||||
<div id="login-footer" role="contentinfo">
|
||||
<roundcube:object name="productname" condition="config:display_product_info > 0" />
|
||||
<roundcube:object name="version" condition="config:display_product_info == 2" />
|
||||
|
||||
@@ -62,19 +62,19 @@
|
||||
<div class="input-group-prepend">
|
||||
<label for="searchfilter" class="input-group-text"><roundcube:label name="type" /></label>
|
||||
</div>
|
||||
<roundcube:object name="searchfilter" id="searchfilter" noevent="true" />
|
||||
<roundcube:object name="searchfilter" id="searchfilter" noevent="true" class="custom-select" />
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<label for="s_interval" class="input-group-text"><roundcube:label name="date" /></label>
|
||||
</div>
|
||||
<roundcube:object name="searchinterval" id="s_interval" />
|
||||
<roundcube:object name="searchinterval" id="s_interval" class="custom-select" />
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<label for="s_scope" class="input-group-text"><roundcube:label name="searchscope" /></label>
|
||||
</div>
|
||||
<select name="s_scope" id="s_scope">
|
||||
<select name="s_scope" id="s_scope" class="custom-select">
|
||||
<option value="base"><roundcube:label name="currentfolder" /></option>
|
||||
<option value="sub"><roundcube:label name="subfolders" /></option>
|
||||
<option value="all"><roundcube:label name="allfolders" /></option>
|
||||
|
||||
@@ -809,22 +809,23 @@ function rcube_elastic_ui()
|
||||
$('#taskmenu a.theme').on('click', function() {
|
||||
color_mode = $(this).is('.dark') ? 'dark' : 'light';
|
||||
switch_color_mode();
|
||||
save_pref('color.mode', color_mode);
|
||||
rcmail.set_cookie('colorMode', color_mode);
|
||||
});
|
||||
|
||||
// Note: this does not work in IE and Safari
|
||||
color_scheme.addListener(function(e) {
|
||||
color_mode = e.matches ? 'dark' : 'light';
|
||||
switch_color_mode();
|
||||
save_pref('color.mode', null);
|
||||
rcmail.set_cookie('colorMode', null);
|
||||
});
|
||||
|
||||
if (color_scheme.matches) {
|
||||
color_mode = 'dark';
|
||||
}
|
||||
else if (pref = get_pref('color.mode')) {
|
||||
// We deliberately use only cookies here, not local storage
|
||||
if (pref = rcmail.get_cookie('colorMode')) {
|
||||
color_mode = pref;
|
||||
}
|
||||
else if (color_scheme.matches) {
|
||||
color_mode = 'dark';
|
||||
}
|
||||
|
||||
switch_color_mode();
|
||||
|
||||
|
||||
@@ -24,6 +24,15 @@ html.dark-mode > body {
|
||||
background-blend-mode: soft-light;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
try {
|
||||
if (document.cookie.indexOf('colorMode=dark') > -1
|
||||
|| (document.cookie.indexOf('colorMode=light') === -1 && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||
) {
|
||||
document.documentElement.className += ' dark-mode';
|
||||
}
|
||||
} catch (e) { }
|
||||
</script>
|
||||
</head>
|
||||
<body></body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user