From d656f1ca71de0ec88da9ac84987bdeb44e371ccf Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Thu, 07 Sep 2006 14:51:16 -0400 Subject: [PATCH] Made automatic draft saving configurable --- program/localization/de_DE/labels.inc | 4 ++++ program/steps/mail/compose.inc | 3 +++ program/steps/settings/func.inc | 24 ++++++++++++++++++++---- program/localization/en_US/labels.inc | 4 ++++ program/localization/de_CH/labels.inc | 4 ++++ config/main.inc.php.dist | 8 +++++--- program/steps/settings/save_prefs.inc | 3 ++- 7 files changed, 42 insertions(+), 8 deletions(-) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index e536917..c047199 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -195,6 +195,9 @@ * 'fuzzy_search' => 0); */ +// list of configuration option names that need to be available in Javascript. +$rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion'); + // try to load host-specific configuration $rcmail_config['include_host_config'] = FALSE; @@ -222,9 +225,8 @@ // default sort order $rcmail_config['message_sort_order'] = 'DESC'; -// list of configuration option names that need to be available in Javascript. -$rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion'); - +// save compose message every 300 seconds (5min) +$rcmail_config['draft_autosave'] = 300; // end of config file ?> diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc index d4a467d..8507094 100644 --- a/program/localization/de_CH/labels.inc +++ b/program/localization/de_CH/labels.inc @@ -200,6 +200,10 @@ $labels['signature'] = 'Signatur'; $labels['dstactive'] = 'Sommerzeit'; +$labels['autosavedraft'] = 'Entwurf autom. speichern'; +$labels['everynminutes'] = 'alle $n Minuten'; +$labels['never'] = 'nie'; + $labels['folder'] = 'Ordner'; $labels['folders'] = 'Ordner'; $labels['foldername'] = 'Ordnername'; diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc index f1cef48..ce19c98 100644 --- a/program/localization/de_DE/labels.inc +++ b/program/localization/de_DE/labels.inc @@ -201,6 +201,10 @@ $labels['signature'] = 'Signatur'; $labels['dstactive'] = 'Sommerzeit'; +$labels['autosavedraft'] = 'Entwurf autom. speichern'; +$labels['everynminutes'] = 'alle $n Minuten'; +$labels['never'] = 'nie'; + $labels['folder'] = 'Ordner'; $labels['folders'] = 'Ordner'; $labels['foldername'] = 'Ordnername'; diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc index 5945392..810ae78 100644 --- a/program/localization/en_US/labels.inc +++ b/program/localization/en_US/labels.inc @@ -202,6 +202,10 @@ $labels['signature'] = 'Signature'; $labels['dstactive'] = 'Daylight savings'; +$labels['autosavedraft'] = 'Automatically save draft'; +$labels['everynminutes'] = 'every $n minutes'; +$labels['never'] = 'never'; + $labels['folder'] = 'Folder'; $labels['folders'] = 'Folders'; $labels['foldername'] = 'Folder name'; diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 2f650d6..14adb12 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -55,6 +55,9 @@ // add some labels to client rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'notsentwarning', 'savingmessage', 'sendingmessage', 'messagesaved'); +// add config parameter to client script +$OUTPUT->add_script(sprintf("%s.set_env('draft_autosave', %d);", $JS_OBJECT_NAME, !empty($CONFIG['drafts_mbox']) ? $CONFIG['draft_autosave'] : 0)); + // get reference message and set compose mode if ($msg_uid = get_input_value('_reply_uid', RCUBE_INPUT_GET)) diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index a22ac9a..f08b75a 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -46,10 +46,13 @@ // return the complete edit form as table $out = "$form_start<table" . $attrib_str . ">\n\n"; - $a_show_cols = array('language' => array('type' => 'text'), - 'pagesize' => array('type' => 'text'), - 'timezone' => array('type' => 'text'), - 'prettydate' => array('type' => 'text')); + $a_show_cols = array( + 'language' => array('type' => 'text'), + 'pagesize' => array('type' => 'text'), + 'timezone' => array('type' => 'text'), + 'prettydate' => array('type' => 'text'), + 'draft_autosave' => array('type' => 'text') + ); // show language selection $a_lang = rcube_list_languages(); @@ -144,6 +147,19 @@ rep_specialchars_output(rcube_label('prettydate')), $input_prettydate->show($CONFIG['prettydate']?1:0)); + if (!empty($CONFIG['drafts_mbox'])) + { + $field_id = 'rcmfd_autosave'; + $select_autosave = new select(array('name' => '_draft_autosave', 'id' => $field_id)); + $select_autosave->add(rcube_label('never'), 0); + foreach (array(3, 5, 10) as $i => $min) + $select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60); + + $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", + $field_id, + rep_specialchars_output(rcube_label('autosavedraft')), + $select_autosave->show($CONFIG['draft_autosave'])); + } $out .= "\n</table>$form_end"; diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc index 98912da..73fb231 100644 --- a/program/steps/settings/save_prefs.inc +++ b/program/steps/settings/save_prefs.inc @@ -28,13 +28,14 @@ $a_user_prefs['dst_active'] = isset($_POST['_dst_active']) ? TRUE : FALSE; $a_user_prefs['pagesize'] = is_numeric($_POST['_pagesize']) ? (int)$_POST['_pagesize'] : $CONFIG['pagesize']; $a_user_prefs['prefer_html'] = isset($_POST['_prefer_html']) ? TRUE : FALSE; +$a_user_prefs['draft_autosave'] = isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0; // MM: Date format toggle (Pretty / Standard) $a_user_prefs['prettydate'] = isset($_POST['_pretty_date']) ? TRUE : FALSE; if (isset($_POST['_language'])) { - $sess_user_lang = $_SESSION['user_lang'] = $_POST['_language']; + $sess_user_lang = $_SESSION['user_lang'] = get_input_value('_language', RCUBE_INPUT_POST); rcmail_set_locale($sess_user_lang); } -- Gitblit v1.9.1