Ticket #1485012: previewnotread.r2682.patch
| File previewnotread.r2682.patch, 11.0 KB (added by JohnDoh, 9 months ago) |
|---|
-
config/main.inc.php.dist
diff -Naur --exclude='*.svn*' roundcube_svn/config/main.inc.php.dist roundcube_pub/config/main.inc.php.dist
old new 387 387 // default setting if preview pane is enabled 388 388 $rcmail_config['preview_pane'] = FALSE; 389 389 390 // Preview pane mark as read 391 $rcmail_config['preview_pane_mark_read'] = TRUE; 392 393 // Preview pane mark as read delay (seconds) 394 $rcmail_config['preview_pane_mark_read_delay'] = 0; 395 396 // Message display mark as read 397 $rcmail_config['message_view_mark_read'] = TRUE; 398 390 399 // focus new window if new message arrives 391 400 $rcmail_config['focus_on_new_message'] = true; 392 401 -
program/include/rcube_config.php
diff -Naur --exclude='*.svn*' roundcube_svn/program/include/rcube_config.php roundcube_pub/program/include/rcube_config.php
old new 79 79 foreach ($this->prop['default_imap_folders'] as $n => $folder) 80 80 $this->prop['default_imap_folders'][$n] = rcube_charset_convert($folder, RCMAIL_CHARSET, 'UTF7-IMAP'); 81 81 82 // fix default mark as read behaviour 83 if (empty($this->prop['preview_pane_mark_read'])) $this->prop['preview_pane_mark_read'] = TRUE; 84 if (empty($this->prop['preview_pane_mark_read_delay'])) $this->prop['preview_pane_mark_read_delay'] = 0; 85 if (empty($this->prop['message_view_mark_read'])) $this->prop['message_view_mark_read'] = TRUE; 86 82 87 // set PHP error logging according to config 83 88 if ($this->prop['debug_level'] & 1) { 84 89 ini_set('log_errors', 1); -
program/js/app.js
diff -Naur --exclude='*.svn*' roundcube_svn/program/js/app.js roundcube_pub/program/js/app.js
old new 1249 1249 if (this.preview_timer) 1250 1250 clearTimeout(this.preview_timer); 1251 1251 1252 if (this.preview_read_timer) 1253 clearTimeout(this.preview_read_timer); 1254 1252 1255 // save folderlist and folders location/sizes for droptarget calculation in drag_move() 1253 1256 if (this.gui_objects.folderlist && model) 1254 1257 { … … 1414 1417 if (this.preview_timer) 1415 1418 clearTimeout(this.preview_timer); 1416 1419 1420 if (this.preview_read_timer) 1421 clearTimeout(this.preview_read_timer); 1422 1417 1423 var selected = list.selection.length==1; 1418 1424 1419 1425 // Hide certain command buttons when Drafts folder is selected … … 1441 1447 if (this.preview_timer) 1442 1448 clearTimeout(this.preview_timer); 1443 1449 1450 if (this.preview_read_timer) 1451 clearTimeout(this.preview_read_timer); 1452 1444 1453 var uid = list.get_single_selection(); 1445 1454 if (uid && this.env.mailbox == this.env.drafts_mailbox) 1446 1455 this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true); … … 1515 1524 target.location.href = this.env.comm_path+url; 1516 1525 1517 1526 // mark as read and change mbox unread counter 1518 if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread )1527 if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read) 1519 1528 { 1520 this.set_message(id, 'unread', false); 1521 if (this.env.unread_counts[this.env.mailbox]) 1529 this.preview_read_timer = window.setTimeout(function(rcmail){ 1530 ref.set_message(id, 'unread', false); 1531 if (ref.env.unread_counts[ref.env.mailbox]) 1522 1532 { 1523 this.env.unread_counts[this.env.mailbox] -= 1;1524 this.set_unread_count(this.env.mailbox, this.env.unread_counts[this.env.mailbox], this.env.mailbox == 'INBOX');1533 ref.env.unread_counts[ref.env.mailbox] -= 1; 1534 ref.set_unread_count(ref.env.mailbox, ref.env.unread_counts[ref.env.mailbox], ref.env.mailbox == 'INBOX'); 1525 1535 } 1536 if (ref.env.preview_pane_mark_read_delay > 0) ref.toggle_read_status('read', Array(id)); 1537 }, this.env.preview_pane_mark_read_delay * 1000); 1526 1538 } 1527 1539 } 1528 1540 }; … … 3809 3821 addrbook_show_images.disabled = !checkbox.checked; 3810 3822 } 3811 3823 3824 this.toggle_preview_pane = function(checkbox) 3825 { 3826 var preview_pane_mark_read; 3827 if (preview_pane_mark_read = document.getElementById('rcmfd_preview_pane_mark_read')) 3828 preview_pane_mark_read.disabled = !checkbox.checked; 3829 } 3830 3831 this.toggle_preview_read = function(checkbox) 3832 { 3833 var preview_pane_mark_read_delay; 3834 if (preview_pane_mark_read_delay = document.getElementById('rcmfd_preview_pane_mark_read_delay')) 3835 preview_pane_mark_read_delay.disabled = !checkbox.checked; 3836 } 3837 3812 3838 // display fetched raw headers 3813 3839 this.set_headers = function(content) 3814 3840 { -
program/localization/en_US/labels.inc
diff -Naur --exclude='*.svn*' roundcube_svn/program/localization/en_US/labels.inc roundcube_pub/program/localization/en_US/labels.inc
old new 329 329 $labels['MB'] = 'MB'; 330 330 $labels['GB'] = 'GB'; 331 331 332 $labels['previewpanemarkread'] = 'Mark previewed messages as read'; 333 $labels['previewpanemarkreaddelay'] = 'Wait %s seconds before marking message as read'; 334 $labels['messageviewmarkread'] = 'Mark displayed messages as read'; 335 332 336 ?> -
program/steps/mail/func.inc
diff -Naur --exclude='*.svn*' roundcube_svn/program/steps/mail/func.inc roundcube_pub/program/steps/mail/func.inc
old new 96 96 if ($CONFIG['skip_deleted']) 97 97 $OUTPUT->set_env('skip_deleted', true); 98 98 99 if ($CONFIG['preview_pane_mark_read']) 100 $OUTPUT->set_env('preview_pane_mark_read', true); 101 if ($CONFIG['preview_pane_mark_read_delay']) 102 $OUTPUT->set_env('preview_pane_mark_read_delay', $CONFIG['preview_pane_mark_read_delay']); 103 99 104 if ($CONFIG['trash_mbox']) 100 105 $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); 101 106 if ($CONFIG['drafts_mbox']) -
program/steps/mail/show.inc
diff -Naur --exclude='*.svn*' roundcube_svn/program/steps/mail/show.inc roundcube_pub/program/steps/mail/show.inc
old new 138 138 } 139 139 140 140 // mark message as read 141 if (!$MESSAGE->headers->seen ) {141 if (!$MESSAGE->headers->seen && (($RCMAIL->action == 'preview' && $CONFIG['preview_pane_mark_read'] && $CONFIG['preview_pane_mark_read_delay'] == 0) || ($RCMAIL->action == 'show' && $CONFIG['message_view_mark_read']))) { 142 142 $IMAP->set_flag($MESSAGE->uid, 'SEEN'); 143 143 $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, 'mailbox' => $IMAP->mailbox, 'message' => $MESSAGE)); 144 144 } -
program/steps/settings/func.inc
diff -Naur --exclude='*.svn*' roundcube_svn/program/steps/settings/func.inc roundcube_pub/program/steps/settings/func.inc
old new 180 180 // show config parameter for preview pane 181 181 if (!isset($no_override['preview_pane'])) { 182 182 $field_id = 'rcmfd_preview'; 183 $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1)); 183 $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1, 184 'onchange' => JS_OBJECT_NAME.'.toggle_preview_pane(this)')); 184 185 185 186 $table->add('title', html::label($field_id, Q(rcube_label('previewpane')))); 186 187 $table->add(null, $input_preview->show($config['preview_pane']?1:0)); 187 188 } 188 189 190 // show config parameter for preview pane auto mark as read 191 if (!isset($no_override['preview_pane_mark_read'])) { 192 $field_id = 'rcmfd_preview_pane_mark_read'; 193 $input_preview = new html_checkbox(array('name' => '_preview_pane_mark_read', 'id' => $field_id, 194 'value' => 1, 'disabled' => $config['preview_pane']?0:1, 'onchange' => JS_OBJECT_NAME.'.toggle_preview_read(this)')); 195 196 $table->add('title', html::label($field_id, Q(rcube_label('previewpanemarkread')))); 197 $table->add(null, $input_preview->show($config['preview_pane_mark_read']?1:0)); 198 } 199 200 // show config parameter for preview pane auto mark as read delay 201 if (!isset($no_override['preview_pane_mark_read_delay'])) { 202 $field_id = 'rcmfd_preview_pane_mark_read_delay'; 203 $input_delay = new html_inputfield(array('name' => '_preview_pane_mark_read_delay', 'id' => $field_id, 'size' => 5, 204 'disabled' => $config['preview_pane_mark_read']?0:1)); 205 206 $table->set_row_attribs('advanced'); 207 $table->add(array('class' => 'title', 'colspan' => '2'), " " . html::label($field_id, str_replace('%s', $input_delay->show($config['preview_pane_mark_read_delay']), Q(rcube_label('previewpanemarkreaddelay'))))); 208 $table->add_row(); 209 } 210 189 211 if (!isset($no_override['mdn_requests'])) { 190 212 $field_id = 'rcmfd_mdn_requests'; 191 213 $select_mdn_requests = new html_select(array('name' => '_mdn_requests', 'id' => $field_id)); … … 229 251 case 'mailview': 230 252 $table = new html_table(array('cols' => 2)); 231 253 254 // show config parameter for message view auto mark as read 255 if (!isset($no_override['message_view_mark_read'])) { 256 $field_id = 'rcmfd_message_view_mark_read'; 257 $input_mark = new html_checkbox(array('name' => '_message_view_mark_read', 'id' => $field_id, 'value' => 1)); 258 259 $table->add('title', html::label($field_id, Q(rcube_label('messageviewmarkread')))); 260 $table->add(null, $input_mark->show($config['message_view_mark_read']?1:0)); 261 } 262 232 263 // show checkbox for HTML/plaintext messages 233 264 if (!isset($no_override['prefer_html'])) { 234 265 $field_id = 'rcmfd_htmlmsg'; -
program/steps/settings/save_prefs.inc
diff -Naur --exclude='*.svn*' roundcube_svn/program/steps/settings/save_prefs.inc roundcube_pub/program/steps/settings/save_prefs.inc
old new 29 29 'htmleditor' => isset($_POST['_htmleditor']) ? TRUE : FALSE, 30 30 'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE, 31 31 'preview_pane' => isset($_POST['_preview_pane']) ? TRUE : FALSE, 32 'preview_pane_mark_read' => isset($_POST['_preview_pane_mark_read']) ? TRUE : FALSE, 33 'preview_pane_mark_read_delay' => is_numeric($_POST['_preview_pane_mark_read_delay']) ? intval($_POST['_preview_pane_mark_read_delay']) : $CONFIG['preview_pane_mark_read_delay'], 34 'message_view_mark_read' => isset($_POST['_message_view_mark_read']) ? TRUE : FALSE, 32 35 'focus_on_new_message' => isset($_POST['_focus_on_new_message']) ? TRUE : FALSE, 33 36 'read_when_deleted' => isset($_POST['_read_when_deleted']) ? TRUE : FALSE, 34 37 'skip_deleted' => isset($_POST['_skip_deleted']) ? TRUE : FALSE,
