- Add option to set default font for HTML message (#1484137)
| | |
| | | CHANGELOG Roundcube Webmail |
| | | =========================== |
| | | |
| | | - Add option to set default font for HTML message (#1484137) |
| | | - Fix issues with big memory allocation of IMAP results |
| | | - Replace prompt() with jQuery UI dialog (#1485135) |
| | | - Fix navigation in messages search results |
| | |
| | | // Skip alternative email addresses in autocompletion (show one address per contact) |
| | | $rcmail_config['autocomplete_single'] = false; |
| | | |
| | | // Default font for composed HTML message. |
| | | // Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, |
| | | // Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana |
| | | $rcmail_config['default_font'] = ''; |
| | | |
| | | // end of config file |
| | |
| | | $RCMAIL->output->set_env('autocomplete_min_length', $RCMAIL->config->get('autocomplete_min_length')); |
| | | $RCMAIL->output->add_label('autocompletechars', 'autocompletemore'); |
| | | } |
| | | |
| | | function rcube_fontdefs($font = null) |
| | | { |
| | | $fonts = array( |
| | | 'Andale Mono' => '"Andale Mono",Times,monospace', |
| | | 'Arial' => 'Arial,Helvetica,sans-serif', |
| | | 'Arial Black' => '"Arial Black","Avant Garde",sans-serif', |
| | | 'Book Antiqua' => '"Book Antiqua",Palatino,serif', |
| | | 'Courier New' => '"Courier New",Courier,monospace', |
| | | 'Georgia' => 'Georgia,Palatino,serif', |
| | | 'Helvetica' => 'Helvetica,Arial,sans-serif', |
| | | 'Impact' => 'Impact,Chicago,sans-serif', |
| | | 'Tahoma' => 'Tahoma,Arial,Helvetica,sans-serif', |
| | | 'Terminal' => 'Terminal,Monaco,monospace', |
| | | 'Times New Roman' => '"Times New Roman",Times,serif', |
| | | 'Trebuchet MS' => '"Trebuchet MS",Geneva,sans-serif', |
| | | 'Verdana' => 'Verdana,Geneva,sans-serif', |
| | | ); |
| | | |
| | | if ($font) |
| | | return $fonts[$font]; |
| | | |
| | | return $fonts; |
| | | } |
| | |
| | | this.display_spellcheck_controls(false); |
| | | this.plain2html($('#'+props.id).val(), props.id); |
| | | tinyMCE.execCommand('mceAddControl', false, props.id); |
| | | |
| | | if (this.env.default_font) |
| | | window.setTimeout(function() { |
| | | $(tinyMCE.get(props.id).getBody()).css('font-family', rcmail.env.default_font); |
| | | }, 500); |
| | | } |
| | | else { |
| | | var thisMCE = tinyMCE.get(props.id), existingHtml; |
| | |
| | | var 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); |
| | | |
| | | if (elem && elem.type == 'select-one') { |
| | | rcmail.change_identity(elem); |
| | | // Focus previously focused element |
| | |
| | | $labels['focusonnewmessage'] = 'Focus browser window on new message'; |
| | | $labels['checkallfolders'] = 'Check all folders for new messages'; |
| | | $labels['displaynext'] = 'After message delete/move display the next message'; |
| | | $labels['defaultfont'] = 'Default font of HTML message'; |
| | | $labels['mainoptions'] = 'Main Options'; |
| | | $labels['section'] = 'Section'; |
| | | $labels['maintenance'] = 'Maintenance'; |
| | |
| | | $labels['license'] = 'Licencja'; |
| | | $labels['about'] = 'O programie'; |
| | | $labels['support'] = 'Wsparcie techniczne'; |
| | | $labels['defaultfont'] = 'Czcionka wiadomoĊci HTML'; |
| | | |
| | | ?> |
| | |
| | | // use jquery UI for showing prompt() dialogs |
| | | $RCMAIL->plugins->load_plugin('jqueryui'); |
| | | |
| | | // default font for HTML editor |
| | | $font = rcube_fontdefs($RCMAIL->config->get('default_font', 'Verdana')); |
| | | if ($font && !is_array($font)) { |
| | | $OUTPUT->set_env('default_font', $font); |
| | | } |
| | | |
| | | // get reference message and set compose mode |
| | | if ($msg_uid = $COMPOSE['param']['draft_uid']) { |
| | | $RCMAIL->imap->set_mailbox($CONFIG['drafts_mbox']); |
| | |
| | | // fetch message body |
| | | $message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset); |
| | | |
| | | if ($isHtml) { |
| | | $font = rcube_fontdefs($RCMAIL->config->get('default_font', 'Verdana')); |
| | | $bstyle = $font && is_string($font) ? " style='font-family: $font'" : ''; |
| | | |
| | | // append doctype and html/body wrappers |
| | | $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">' . |
| | | "\r\n<html><body$bstyle>\r\n" . $message_body; |
| | | } |
| | | |
| | | if (!$savedraft) { |
| | | if ($isHtml) { |
| | | // remove signature's div ID |
| | |
| | | $bstyle = 'padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%'; |
| | | $message_body = preg_replace('/<blockquote>/', |
| | | '<blockquote type="cite" style="'.$bstyle.'">', $message_body); |
| | | |
| | | // append doctype and html/body wrappers |
| | | $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">' . |
| | | "\r\n<html><body>\r\n" . $message_body; |
| | | } |
| | | |
| | | // Check spelling before send |
| | |
| | | |
| | | if ($footer) |
| | | $message_body .= "\r\n" . $footer; |
| | | if ($isHtml) |
| | | $message_body .= "\r\n</body></html>\r\n"; |
| | | } |
| | | |
| | | if ($isHtml) { |
| | | $message_body .= "\r\n</body></html>\r\n"; |
| | | } |
| | | |
| | | // set line length for body wrapping |
| | |
| | | 'sig' => array('name' => Q(rcube_label('signatureoptions'))), |
| | | ); |
| | | |
| | | // Show checkbox for HTML Editor |
| | | if (!isset($no_override['htmleditor'])) { |
| | | $field_id = 'rcmfd_htmleditor'; |
| | | $select_htmleditor = new html_select(array('name' => '_htmleditor', 'id' => $field_id)); |
| | |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['default_font'])) { |
| | | $field_id = 'rcmfd_default_font'; |
| | | $fonts = rcube_fontdefs(); |
| | | $default_font = $config['default_font'] ? $config['default_font'] : 'Verdana'; |
| | | |
| | | $select = '<select name="_default_font" id="'.$field_id.'">'; |
| | | foreach ($fonts as $fname => $font) |
| | | $select .= '<option value="'.$fname.'"' |
| | | . ($fname == $default_font ? ' selected="selected"' : '') |
| | | . ' style=\'font-family: ' . $font . '\'>' |
| | | . Q($fname) . '</option>'; |
| | | $select .= '</select>'; |
| | | |
| | | $blocks['main']['options']['default_font'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('defaultfont'))), |
| | | 'content' => $select |
| | | ); |
| | | } |
| | | |
| | | break; |
| | | |
| | | |
| | |
| | | 'top_posting' => !empty($_POST['_top_posting']), |
| | | 'strip_existing_sig' => isset($_POST['_strip_existing_sig']), |
| | | 'sig_above' => !empty($_POST['_sig_above']) && !empty($_POST['_top_posting']), |
| | | 'default_font' => get_input_value('_default_font', RCUBE_INPUT_POST), |
| | | ); |
| | | |
| | | break; |