From 8eefbb2158c43b51a8c33e6c480cbe61539b9535 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 27 Aug 2012 04:16:04 -0400
Subject: [PATCH] Add option to enable HTML editor on forwarding (#1488517)

---
 program/steps/settings/func.inc |  114 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 89 insertions(+), 25 deletions(-)

diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 18a4660..59b4e37 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -5,7 +5,7 @@
  | program/steps/settings/func.inc                                       |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2005-2007, The Roundcube Dev Team                       |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team                       |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -17,9 +17,6 @@
  +-----------------------------------------------------------------------+
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
-
- $Id$
-
 */
 
 if (!$OUTPUT->ajax_call)
@@ -37,7 +34,7 @@
   $attrib['name'] = $attrib['id'];
 
   $OUTPUT->set_env('contentframe', $attrib['name']);
-  $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif');
+  $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/resources/blank.gif');
 
   return html::iframe($attrib);
 }
@@ -159,7 +156,8 @@
     case 'general':
 
     $blocks = array(
-      'main' => array('name' => Q(rcube_label('mainoptions'))),
+      'main'    => array('name' => Q(rcube_label('mainoptions'))),
+      'browser' => array('name' => Q(rcube_label('browseroptions'))),
     );
 
     // language selection
@@ -183,13 +181,16 @@
       $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id));
       $select_timezone->add(rcube_label('autodetect'), 'auto');
 
-      $now = new DateTime();
+      $zones = array();
       foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
-        $tz = new DateTimeZone($tzs);
-        $date = new DateTime('2012-12-21', $tz);
-        $offset = $date->format('Z') + 45000;
-        $sortkey = sprintf('%06d.%s', $offset, $tzs);
-        $zones[$sortkey] = array($tzs, $date->format('P'));
+        try {
+          $tz = new DateTimeZone($tzs);
+          $date = new DateTime('2012-12-21', $tz);
+          $offset = $date->format('Z') + 45000;
+          $sortkey = sprintf('%06d.%s', $offset, $tzs);
+          $zones[$sortkey] = array($tzs, $date->format('P'));
+        }
+        catch (Exception $e) {}
       }
 
       ksort($zones);
@@ -262,6 +263,16 @@
         );
       }
     }
+
+    $product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail');
+    $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');",
+      JS_OBJECT_NAME, JQ($product_name)), 'foot');
+
+    $blocks['browser']['options']['mailtoprotohandler'] = array(
+      'content' => html::a(array(
+        'href' => '#',
+        'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
+    );
 
     break;
 
@@ -459,6 +470,7 @@
       $select_htmleditor->add(rcube_label('never'), 0);
       $select_htmleditor->add(rcube_label('always'), 1);
       $select_htmleditor->add(rcube_label('htmlonreply'), 2);
+      $select_htmleditor->add(rcube_label('htmlonreplyandforward'), 3);
 
       $blocks['main']['options']['htmleditor'] = array(
         'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
@@ -533,16 +545,17 @@
       );
     }
 
-    if (!isset($no_override['top_posting'])) {
-      $field_id = 'rcmfd_top_posting';
-      $select_replymode = new html_select(array('name' => '_top_posting', 'id' => $field_id,
-        'onchange' => "\$('#rcmfd_sig_above').attr('disabled',this.selectedIndex==0)"));
+    if (!isset($no_override['reply_mode'])) {
+      $field_id = 'rcmfd_reply_mode';
+      $select_replymode = new html_select(array('name' => '_reply_mode', 'id' => $field_id,
+        'onchange' => "\$('#rcmfd_sig_above').attr('disabled',this.selectedIndex<2)"));
+      $select_replymode->add(rcube_label('replyempty'), -1);
       $select_replymode->add(rcube_label('replybottomposting'), 0);
       $select_replymode->add(rcube_label('replytopposting'), 1);
 
-      $blocks['main']['options']['top_posting'] = array(
+      $blocks['main']['options']['reply_mode'] = array(
         'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
-        'content' => $select_replymode->show($config['top_posting']?1:0),
+        'content' => $select_replymode->show(intval($config['reply_mode'])),
       );
     }
 
@@ -586,7 +599,7 @@
 
     if (!isset($no_override['sig_above'])) {
       $field_id = 'rcmfd_sig_above';
-      $select_sigabove = new html_select(array('name' => '_sig_above', 'id' => $field_id, 'disabled' => !$config['top_posting']));
+      $select_sigabove = new html_select(array('name' => '_sig_above', 'id' => $field_id, 'disabled' => $config['reply_mode'] < 1));
       $select_sigabove->add(rcube_label('belowquote'), 0);
       $select_sigabove->add(rcube_label('abovequote'), 1);
 
@@ -603,6 +616,18 @@
       $blocks['sig']['options']['strip_existing_sig'] = array(
         'title' => html::label($field_id, Q(rcube_label('replyremovesignature'))),
         'content' => $input_stripexistingsig->show($config['strip_existing_sig']?1:0),
+      );
+    }
+
+    if (!isset($no_override['forward_attachment'])) {
+      $field_id = 'rcmfd_forward_attachment';
+      $select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id));
+      $select->add(rcube_label('inline'), 0);
+      $select->add(rcube_label('asattachment'), 1);
+
+      $blocks['main']['options']['forward_attachment'] = array(
+        'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
+        'content' => $select->show(intval($config['forward_attachment'])),
       );
     }
 
@@ -651,13 +676,32 @@
       );
     }
 
-    if (!isset($no_override['autocomplete_single'])) {
-      $field_id = 'rcmfd_autocomplete_single';
-      $checkbox = new html_checkbox(array('name' => '_autocomplete_single', 'id' => $field_id, 'value' => 1));
+    // show addressbook listing mode selection
+    if (!isset($no_override['addressbook_name_listing'])) {
+      $field_id = 'rcmfd_addressbook_name_listing';
+      $select_listing = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
+      $select_listing->add(rcube_label('name'), 0);
+      $select_listing->add(rcube_label('firstname') . ' '  . rcube_label('surname'), 1);
+      $select_listing->add(rcube_label('surname')   . ' '  . rcube_label('firstname'), 2);
+      $select_listing->add(rcube_label('surname')   . ', ' . rcube_label('firstname'), 3);
 
-      $blocks['main']['options']['autocomplete_single'] = array(
-        'title' => html::label($field_id, Q(rcube_label('autocompletesingle'))),
-        'content' => $checkbox->show($config['autocomplete_single']?1:0),
+      $blocks['main']['options']['list_name_listing'] = array(
+        'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
+        'content' => $select_listing->show($config['addressbook_name_listing']),
+      );
+    }
+
+    // show addressbook sort column
+    if (!isset($no_override['addressbook_sort_col'])) {
+      $field_id = 'rcmfd_addressbook_sort_col';
+      $select_sort = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
+      $select_sort->add(rcube_label('name'), 'name');
+      $select_sort->add(rcube_label('firstname'), 'firstname');
+      $select_sort->add(rcube_label('surname'), 'surname');
+
+      $blocks['main']['options']['sort_col'] = array(
+        'title' => html::label($field_id, Q(rcube_label('listsorting'))),
+        'content' => $select_sort->show($config['addressbook_sort_col']),
       );
     }
 
@@ -671,6 +715,16 @@
       $blocks['main']['options']['pagesize'] = array(
         'title' => html::label($field_id, Q(rcube_label('pagesize'))),
         'content' => $input_pagesize->show($size ? $size : 50),
+      );
+    }
+
+    if (!isset($no_override['autocomplete_single'])) {
+      $field_id = 'rcmfd_autocomplete_single';
+      $checkbox = new html_checkbox(array('name' => '_autocomplete_single', 'id' => $field_id, 'value' => 1));
+
+      $blocks['main']['options']['autocomplete_single'] = array(
+        'title' => html::label($field_id, Q(rcube_label('autocompletesingle'))),
+        'content' => $checkbox->show($config['autocomplete_single']?1:0),
       );
     }
 
@@ -776,6 +830,16 @@
       );
     }
 
+    if (!isset($no_override['delete_junk'])) {
+      $field_id = 'rcmfd_delete_junk';
+      $input_delete_junk = new html_checkbox(array('name' => '_delete_junk', 'id' => $field_id, 'value' => 1));
+
+      $blocks['main']['options']['delete_junk'] = array(
+        'title' => html::label($field_id, Q(rcube_label('deletejunk'))),
+        'content' => $input_delete_junk->show($config['delete_junk']?1:0),
+      );
+    }
+
     // Trash purging on logout
     if (!isset($no_override['logout_purge'])) {
       $field_id = 'rcmfd_logout_purge';

--
Gitblit v1.9.1