From c3fe3fc3169fcfd3f188516ae4cd6229615528b2 Mon Sep 17 00:00:00 2001 From: Dennis1993 Date: Mon, 2 Sep 2013 12:52:21 +0200 Subject: Update save_prefs.inc --- program/steps/settings/save_prefs.inc | 1 + 1 file changed, 1 insertion(+) (limited to 'program/steps/settings') diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 3e8b1d17e..717c7ad8c 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -89,6 +89,7 @@ switch ($CURR_SECTION) 'reply_mode' => isset($_POST['_reply_mode']) ? intval($_POST['_reply_mode']) : 0, 'strip_existing_sig' => isset($_POST['_strip_existing_sig']), 'default_font' => get_input_value('_default_font', RCUBE_INPUT_POST), + 'default_font_size' => get_input_value('_default_font_size', RCUBE_INPUT_POST), 'forward_attachment' => !empty($_POST['_forward_attachment']), ); -- cgit v1.2.3 From 888f9118354054c24bb22546618f311765f9554b Mon Sep 17 00:00:00 2001 From: Dennis1993 Date: Mon, 2 Sep 2013 12:55:28 +0200 Subject: Update func.inc --- program/steps/settings/func.inc | 45 +++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'program/steps/settings') diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index fdc07be9e..8feeda17f 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -838,28 +838,29 @@ function rcmail_user_prefs($current = null) } if (!isset($no_override['default_font'])) { - if (!$current) { - continue 2; - } - - $field_id = 'rcmfd_default_font'; - $fonts = rcube_fontdefs(); - $selected = $config['default_font']; - - $select = ''; - - $blocks['main']['options']['default_font'] = array( - 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), - 'content' => $select - ); + // Default font size + $field_id = 'rcmfd_default_font_size'; + $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id)); + + $fontsizes = array('8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt'); + foreach ($fontsizes as $size) { + $select_default_font_size->add($size, $size); + } + + // Default font + $field_id = 'rcmfd_default_font'; + $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id)); + + $fonts = rcube_fontdefs(); + foreach ($fonts as $fname => $font) { + $select_default_font->add($fname, $fname); + } + + $blocks['main']['options']['default_font'] = array( + 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), + 'content' => $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)). + $select_default_font->show($RCMAIL->config->get('default_font', 1)) + ); } break; -- cgit v1.2.3 From d8d5692cff411dc769d8fc1c7dd5ea8acbb15837 Mon Sep 17 00:00:00 2001 From: Dennis1993 Date: Mon, 2 Sep 2013 12:57:15 +0200 Subject: Update func.inc --- program/steps/settings/func.inc | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'program/steps/settings') diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 8feeda17f..64fc8b05c 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -838,29 +838,29 @@ function rcmail_user_prefs($current = null) } if (!isset($no_override['default_font'])) { - // Default font size - $field_id = 'rcmfd_default_font_size'; - $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id)); - - $fontsizes = array('8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt'); - foreach ($fontsizes as $size) { - $select_default_font_size->add($size, $size); - } - - // Default font - $field_id = 'rcmfd_default_font'; - $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id)); - - $fonts = rcube_fontdefs(); - foreach ($fonts as $fname => $font) { - $select_default_font->add($fname, $fname); - } - - $blocks['main']['options']['default_font'] = array( - 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), - 'content' => $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)). - $select_default_font->show($RCMAIL->config->get('default_font', 1)) - ); + // Default font size + $field_id = 'rcmfd_default_font_size'; + $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id)); + + $fontsizes = array('8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt'); + foreach ($fontsizes as $size) { + $select_default_font_size->add($size, $size); + } + + // Default font + $field_id = 'rcmfd_default_font'; + $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id)); + + $fonts = rcube_fontdefs(); + foreach ($fonts as $fname => $font) { + $select_default_font->add($fname, $fname); + } + + $blocks['main']['options']['default_font'] = array( + 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), + 'content' => $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)). + $select_default_font->show($RCMAIL->config->get('default_font', 1)) + ); } break; -- cgit v1.2.3 From 153e455f6566cb7a4349b7f2197e842d6ec9bf90 Mon Sep 17 00:00:00 2001 From: Dennis1993 Date: Mon, 2 Sep 2013 13:16:04 +0200 Subject: Update func.inc --- program/steps/settings/func.inc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'program/steps/settings') diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 64fc8b05c..57c52a01e 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -838,6 +838,10 @@ function rcmail_user_prefs($current = null) } if (!isset($no_override['default_font'])) { + if (!$current) { + continue 2; + } + // Default font size $field_id = 'rcmfd_default_font_size'; $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id)); -- cgit v1.2.3 From 7be8a9134c73d830dec0a46a529400ada93e8664 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Fri, 13 Sep 2013 19:10:12 +0200 Subject: Move some config options to new and collapsible 'advanced' blocks --- program/steps/settings/edit_prefs.inc | 9 +++------ program/steps/settings/func.inc | 19 ++++++++++++------- skins/larry/settings.css | 20 ++++++++++++++++++++ skins/larry/ui.js | 13 +++++++++++++ 4 files changed, 48 insertions(+), 13 deletions(-) (limited to 'program/steps/settings') diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc index 468e4994d..adf6b1623 100644 --- a/program/steps/settings/edit_prefs.inc +++ b/program/steps/settings/edit_prefs.inc @@ -40,24 +40,21 @@ function rcmail_user_prefs_form($attrib) $out = $form_start; - foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $block) { + foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $class => $block) { if (!empty($block['options'])) { $table = new html_table(array('cols' => 2)); foreach ($block['options'] as $option) { - if ($option['advanced']) - $table->set_row_attribs('advanced'); - if (isset($option['title'])) { $table->add('title', $option['title']); - $table->add(null, $option['content']); + $table->add(null, $option['content']); } else { $table->add(array('colspan' => 2), $option['content']); } } - $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $table->show($attrib)); + $out .= html::tag('fieldset', $class, html::tag('legend', null, $block['name']) . $table->show($attrib)); } else if (!empty($block['content'])) { $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']); diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index fdc07be9e..ecd35e94b 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -158,6 +158,7 @@ function rcmail_user_prefs($current = null) 'main' => array('name' => Q(rcube_label('mainoptions'))), 'skin' => array('name' => Q(rcube_label('skin'))), 'browser' => array('name' => Q(rcube_label('browseroptions'))), + 'advanced'=> array('name' => Q(rcube_label('advancedoptions'))), ); // language selection @@ -367,6 +368,7 @@ function rcmail_user_prefs($current = null) $blocks = array( 'main' => array('name' => Q(rcube_label('mainoptions'))), 'new_message' => array('name' => Q(rcube_label('newmessage'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); // show config parameter for preview pane @@ -488,6 +490,7 @@ function rcmail_user_prefs($current = null) case 'mailview': $blocks = array( 'main' => array('name' => Q(rcube_label('mainoptions'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); // show checkbox to open message view in new window @@ -543,7 +546,7 @@ function rcmail_user_prefs($current = null) $field_id = 'rcmfd_default_charset'; - $blocks['main']['options']['default_charset'] = array( + $blocks['advanced']['options']['default_charset'] = array( 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))), 'content' => $RCMAIL->output->charset_selector(array( 'id' => $field_id, 'name' => '_default_charset', 'selected' => $config['default_charset'] @@ -605,6 +608,7 @@ function rcmail_user_prefs($current = null) 'main' => array('name' => Q(rcube_label('mainoptions'))), 'sig' => array('name' => Q(rcube_label('signatureoptions'))), 'spellcheck' => array('name' => Q(rcube_label('spellcheckoptions'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); // show checkbox to compose messages in a new window @@ -673,8 +677,7 @@ function rcmail_user_prefs($current = null) $select->add(rcube_label('miscfolding'), 1); $select->add(rcube_label('2047folding'), 2); - $blocks['main']['options']['mime_param_folding'] = array( - 'advanced' => true, + $blocks['advanced']['options']['mime_param_folding'] = array( 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))), 'content' => $select->show($config['mime_param_folding']), ); @@ -688,8 +691,7 @@ function rcmail_user_prefs($current = null) $field_id = 'rcmfd_force_7bit'; $input = new html_checkbox(array('name' => '_force_7bit', 'id' => $field_id, 'value' => 1)); - $blocks['main']['options']['force_7bit'] = array( - 'advanced' => true, + $blocks['advanced']['options']['force_7bit'] = array( 'title' => html::label($field_id, Q(rcube_label('force7bit'))), 'content' => $input->show($config['force_7bit']?1:0), ); @@ -866,7 +868,8 @@ function rcmail_user_prefs($current = null) // Addressbook config case 'addressbook': $blocks = array( - 'main' => array('name' => Q(rcube_label('mainoptions'))), + 'main' => array('name' => Q(rcube_label('mainoptions'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); if (!isset($no_override['default_addressbook']) @@ -962,7 +965,8 @@ function rcmail_user_prefs($current = null) // Special IMAP folders case 'folders': $blocks = array( - 'main' => array('name' => Q(rcube_label('mainoptions'))), + 'main' => array('name' => Q(rcube_label('mainoptions'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); if (!isset($no_override['show_real_foldernames'])) { @@ -1043,6 +1047,7 @@ function rcmail_user_prefs($current = null) $blocks = array( 'main' => array('name' => Q(rcube_label('mainoptions'))), 'maintenance' => array('name' => Q(rcube_label('maintenance'))), + 'advanced' => array('name' => Q(rcube_label('advancedoptions'))), ); if (!isset($no_override['read_when_deleted'])) { diff --git a/skins/larry/settings.css b/skins/larry/settings.css index 59037ac76..6afa48c40 100644 --- a/skins/larry/settings.css +++ b/skins/larry/settings.css @@ -48,6 +48,26 @@ border-radius: 4px 4px 0 0; } +#preferences-details fieldset.advanced legend { + position: relative; + display: block; + width: 100%; + cursor: pointer; +} + +#preferences-details fieldset.advanced .propform { + display: none; +} + +#preferences-details fieldset.advanced .advanced-toggle { + position: absolute; + top: 2px; + right: 6px; + text-decoration: none; + color: #666; + font-size: 11px; +} + #sections-table tbody td.section, #settings-sections span.listitem a, #settings-sections span.tablink a { diff --git a/skins/larry/ui.js b/skins/larry/ui.js index ae14d81b2..d558f16a2 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -195,6 +195,19 @@ function rcube_mail_ui() new rcube_splitter({ id:'prefviewsplitter', p1:'#sectionslist', p2:'#preferences-box', orientation:'v', relative:true, start:266, min:180, size:12 }).init(); } + else if (rcmail.env.action == 'edit-prefs') { + $('') + .addClass('advanced-toggle') + .appendTo('#preferences-details fieldset.advanced legend'); + + $('#preferences-details fieldset.advanced legend').click(function(e){ + var collapsed = $(this).hasClass('collapsed'), + toggle = $('.advanced-toggle', this).html(collapsed ? '▲' : '▼'); + $(this) + .toggleClass('collapsed') + .closest('fieldset').children('.propform').toggle() + }).addClass('collapsed') + } } /*** addressbook task ***/ else if (rcmail.env.task == 'addressbook') { -- cgit v1.2.3 From c1ff572e176dc930c52063e53364daa315d34666 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 16 Sep 2013 20:01:10 +0200 Subject: Touch new default font size settings: simplified + codestyle + updated changelog --- CHANGELOG | 1 + program/steps/mail/sendmail.inc | 5 ++--- program/steps/settings/func.inc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'program/steps/settings') diff --git a/CHANGELOG b/CHANGELOG index f18d10d94..8d5870ce4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Make default font size for HTML messages configurable (request #118) - Display full attachment name using title attribute when name is too long to display (#1489320) - Fix XSS issue in addressbook group name field [CVE-2013-5646] (#1489333) - Fix attachment icon issue when rare font/language is used (#1489326) diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 8fe149611..3f4475e46 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -473,10 +473,9 @@ $isHtml = (bool) get_input_value('_is_html', RCUBE_INPUT_POST); $message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset); if ($isHtml) { - $font = rcube_fontdefs($RCMAIL->config->get('default_font')); - $font = $font && is_string($font) ? ' '.$font : NULL; + $font_family = rcube_fontdefs($RCMAIL->config->get('default_font', 'Arial')); $font_size = $RCMAIL->config->get('default_font_size'); - $bstyle = " style='font: ".$font_size.$font.";'"; + $bstyle = ' style="font:' . $font_size . ' ' . $font_family . ';"'; // append doctype and html/body wrappers $message_body = '' . diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index b492c9644..53c98eddf 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -864,8 +864,8 @@ function rcmail_user_prefs($current = null) $blocks['main']['options']['default_font'] = array( 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), - 'content' => $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)). - $select_default_font->show($RCMAIL->config->get('default_font', 1)) + 'content' => $select_default_font->show($RCMAIL->config->get('default_font', 1)) . + $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1)) ); } break; -- cgit v1.2.3