From f7b2bfba092213af2f7101b18b96e957cbe0b217 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 21 Sep 2013 11:24:16 +0200 Subject: Bring back possibility to unset default font family and font size Fix style attribute quoting when font-family contains double quotes SOme code improvements --- program/js/editor.js | 10 +++++++--- program/steps/mail/compose.inc | 4 +++- program/steps/mail/sendmail.inc | 16 +++++++++++----- program/steps/settings/func.inc | 5 +++-- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/program/js/editor.js b/program/js/editor.js index e1ef36835..6d7b9538a 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -74,14 +74,18 @@ function rcmail_editor_init(config) // react to real individual tinyMCE editor init function rcmail_editor_callback() { - var elem = rcube_find_object('_from'), + var css = {}, + elem = rcube_find_object('_from'), fe = rcmail.env.compose_focus_elem; if (rcmail.env.default_font) - $(tinyMCE.get(rcmail.env.composebody).getBody()).css('font-family', rcmail.env.default_font); + css['font-family'] = rcmail.env.default_font; if (rcmail.env.default_font_size) - $(tinyMCE.get(rcmail.env.composebody).getBody()).css('font-size', rcmail.env.default_font_size); + css['font-size'] = rcmail.env.default_font_size; + + if (css['font-family'] || css['font-size']) + $(tinyMCE.get(rcmail.env.composebody).getBody()).css(css); if (elem && elem.type == 'select-one') { rcmail.change_identity(elem); diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 30c9f79fb..b62f9bf5a 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -149,7 +149,9 @@ if ($font && !is_array($font)) { } // default font size for HTML editor -$OUTPUT->set_env('default_font_size', $RCMAIL->config->get('default_font_size')); +if ($font_size = $RCMAIL->config->get('default_font_size')) { + $OUTPUT->set_env('default_font_size', $font_size); +} // get reference message and set compose mode if ($msg_uid = $COMPOSE['param']['draft_uid']) { diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 3f4475e46..dee8d2136 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -473,13 +473,19 @@ $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_family = rcube_fontdefs($RCMAIL->config->get('default_font', 'Arial')); - $font_size = $RCMAIL->config->get('default_font_size'); - $bstyle = ' style="font:' . $font_size . ' ' . $font_family . ';"'; + $bstyle = array(); + + if ($font_size = $RCMAIL->config->get('default_font_size')) { + $bstyle[] = 'font-size: ' . $font_size; + } + if ($font_family = $RCMAIL->config->get('default_font')) { + $bstyle[] = 'font-family: ' . rcmail::font_defs($font_family); + } // append doctype and html/body wrappers - $message_body = '' . - "\r\n\r\n" . $message_body; + $message_body = '' + . "\r\n\r\n" + . $message_body; } if (!$savedraft) { diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 53c98eddf..f1170178d 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -839,7 +839,7 @@ function rcmail_user_prefs($current = null) ); } - if (!isset($no_override['default_font'])) { + if (!isset($no_override['default_font']) || !isset($no_override['default_font_size'])) { if (!$current) { continue 2; } @@ -848,7 +848,7 @@ function rcmail_user_prefs($current = null) $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'); + $fontsizes = array('', '8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt'); foreach ($fontsizes as $size) { $select_default_font_size->add($size, $size); } @@ -856,6 +856,7 @@ function rcmail_user_prefs($current = null) // Default font $field_id = 'rcmfd_default_font'; $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id)); + $select_default_font->add('', ''); $fonts = rcube_fontdefs(); foreach ($fonts as $fname => $font) { -- cgit v1.2.3