Changeset bc49601 in github


Ignore:
Timestamp:
Apr 9, 2010 11:12:40 AM (3 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
a920289
Parents:
814905c
Message:

Option not to mark messages as read when viewed in preview pane (#1485012)

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r751b22b rbc49601  
    22=========================== 
    33 
     4- Added option not to mark messages as read when viewed in preview pane (#1485012) 
     5- Allow plugins modify the Sent folder when composing (#1486548) 
    46- Added optional (max_recipients) support to restrict total number of recipients per message (#1484542) 
    57- Re-organize editor buttons, add blockquote and search buttons 
  • config/main.inc.php.dist

    rd1851ba rbc49601  
    435435$rcmail_config['preview_pane'] = false; 
    436436 
     437// Mark as read when viewed in preview pane (delay in seconds) 
     438// Set to -1 if messages in preview pane should not be marked as read 
     439$rcmail_config['preview_pane_mark_read'] = 0; 
     440 
    437441// focus new window if new message arrives 
    438442$rcmail_config['focus_on_new_message'] = true; 
  • program/js/app.js

    r53d6261 rbc49601  
    12741274      clearTimeout(this.preview_timer); 
    12751275     
     1276    if (this.preview_read_timer) 
     1277      clearTimeout(this.preview_read_timer); 
     1278 
    12761279    // save folderlist and folders location/sizes for droptarget calculation in drag_move() 
    12771280    if (this.gui_objects.folderlist && model) 
     
    14391442      clearTimeout(this.preview_timer); 
    14401443 
     1444    if (this.preview_read_timer) 
     1445      clearTimeout(this.preview_read_timer); 
     1446 
    14411447    var selected = list.get_single_selection() != null; 
    14421448 
     
    14651471      if (this.preview_timer) 
    14661472        clearTimeout(this.preview_timer); 
     1473 
     1474      if (this.preview_read_timer) 
     1475        clearTimeout(this.preview_read_timer); 
    14671476 
    14681477    var uid = list.get_single_selection(); 
     
    17551764    if (action == 'preview' && String(target.location.href).indexOf(url) >= 0) 
    17561765      this.show_contentframe(true); 
    1757     else 
    1758       { 
     1766    else { 
    17591767      this.set_busy(true, 'loading'); 
    17601768      target.location.href = this.env.comm_path+url; 
    17611769 
    17621770      // mark as read and change mbox unread counter 
    1763       if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread) 
    1764         { 
    1765         this.set_message(id, 'unread', false); 
    1766         this.update_thread_root(id, 'read'); 
    1767         if (this.env.unread_counts[this.env.mailbox]) 
    1768           { 
    1769           this.env.unread_counts[this.env.mailbox] -= 1; 
    1770           this.set_unread_count(this.env.mailbox, this.env.unread_counts[this.env.mailbox], this.env.mailbox == 'INBOX'); 
     1771      if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read >= 0) { 
     1772        this.preview_read_timer = window.setTimeout(function() { 
     1773          ref.set_message(id, 'unread', false); 
     1774          ref.update_thread_root(id, 'read'); 
     1775          if (ref.env.unread_counts[ref.env.mailbox]) { 
     1776            ref.env.unread_counts[ref.env.mailbox] -= 1; 
     1777            ref.set_unread_count(ref.env.mailbox, ref.env.unread_counts[ref.env.mailbox], ref.env.mailbox == 'INBOX'); 
    17711778          } 
    1772         } 
    1773       } 
    1774     }; 
     1779          if (ref.env.preview_pane_mark_read > 0) 
     1780            ref.http_post('mark', '_uid='+id+'&_flag=read'); 
     1781        }, this.env.preview_pane_mark_read * 1000); 
     1782      } 
     1783    } 
     1784  }; 
    17751785 
    17761786  this.show_contentframe = function(show) 
     
    46624672    } 
    46634673 
     4674  this.toggle_preview_pane = function(checkbox) 
     4675    { 
     4676    var preview_pane_mark_read; 
     4677    if (preview_pane_mark_read = document.getElementById('rcmfd_preview_pane_mark_read')) 
     4678      preview_pane_mark_read.disabled = !checkbox.checked; 
     4679    } 
     4680 
    46644681  // display fetched raw headers 
    46654682  this.set_headers = function(content) 
  • program/localization/de_CH/labels.inc

    rb57c45f rbc49601  
    272272$labels['keepalive'] = 'Auf neue Nachrichten prÃŒfen nach'; 
    273273$labels['never'] = 'nie'; 
     274$labels['immediately']  = 'sofort'; 
    274275$labels['messagesdisplaying'] = 'Nachrichtendarstellung'; 
    275276$labels['messagescomposition'] = 'Nachrichtenerstellung'; 
     
    300301$labels['abovequote'] = 'ÃŒber der Originalnachricht einfÃŒgen'; 
    301302$labels['insertsignature'] = 'Signatur einfÃŒgen'; 
     303$labels['previewpanemarkread']  = 'Nachricht in Vorschau als gelesen markieren'; 
     304$labels['afternseconds']  = 'nach $n Sekuden'; 
    302305$labels['folder'] = 'Ordner'; 
    303306$labels['folders'] = 'Ordner'; 
  • program/localization/de_DE/labels.inc

    rb57c45f rbc49601  
    272272$labels['keepalive'] = 'Auf neue Nachrichten prÃŒfen nach'; 
    273273$labels['never'] = 'nie'; 
     274$labels['immediately']  = 'sofort'; 
    274275$labels['messagesdisplaying'] = 'Nachrichtendarstellung'; 
    275276$labels['messagescomposition'] = 'Nachrichtenerstellung'; 
     
    300301$labels['abovequote'] = 'ÃŒber der Originalnachricht einfÃŒgen'; 
    301302$labels['insertsignature'] = 'Signatur einfÃŒgen'; 
     303$labels['previewpanemarkread']  = 'Nachricht in Vorschau als gelesen markieren'; 
     304$labels['afternseconds']  = 'nach $n Sekuden'; 
    302305$labels['folder'] = 'Ordner'; 
    303306$labels['folders'] = 'Ordner'; 
  • program/localization/en_US/labels.inc

    ra61bbb2 rbc49601  
    328328$labels['keepalive']  = 'Check for new messages on'; 
    329329$labels['never']  = 'never'; 
     330$labels['immediately']  = 'immediately'; 
    330331$labels['messagesdisplaying'] = 'Displaying Messages'; 
    331332$labels['messagescomposition'] = 'Composing Messages'; 
     
    356357$labels['abovequote'] = 'above the quote'; 
    357358$labels['insertsignature'] = 'Insert signature'; 
     359$labels['previewpanemarkread']  = 'Mark previewed messages as read'; 
     360$labels['afternseconds']  = 'after $n seconds'; 
    358361 
    359362$labels['folder']  = 'Folder'; 
  • program/steps/mail/compose.inc

    r814905c rbc49601  
    144144  $MESSAGE = new rcube_message($msg_uid); 
    145145   
     146  // make sure message is marked as read 
     147  if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) 
     148    $IMAP->set_flag($msg_uid, 'SEEN'); 
     149 
    146150  if (!empty($MESSAGE->headers->charset)) 
    147151    $IMAP->set_charset($MESSAGE->headers->charset); 
  • program/steps/mail/func.inc

    rce46738 rbc49601  
    122122  if ($CONFIG['display_next']) 
    123123    $OUTPUT->set_env('display_next', true); 
    124            
     124 
     125  $OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0)); 
     126 
    125127  if ($CONFIG['trash_mbox']) 
    126128    $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); 
  • program/steps/mail/show.inc

    rf52c936f rbc49601  
    141141    } 
    142142 
    143   if (!$MESSAGE->headers->seen) 
     143  if (!$MESSAGE->headers->seen && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) 
    144144    $RCMAIL->plugins->exec_hook('message_read', array('uid' => $MESSAGE->uid, 
    145145      'mailbox' => $mbox_name, 'message' => $MESSAGE)); 
     
    227227 
    228228// mark message as read 
    229 if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen) 
     229if ($MESSAGE && $MESSAGE->headers && !$MESSAGE->headers->seen && ($RCMAIL->action == 'show' || ($RCMAIL->action == 'preview' && intval($CONFIG['preview_pane_mark_read']) == 0))) 
    230230  $IMAP->set_flag($MESSAGE->uid, 'SEEN'); 
    231231 
  • program/steps/settings/func.inc

    r63ab02a rbc49601  
    280280    if (!isset($no_override['preview_pane'])) { 
    281281      $field_id = 'rcmfd_preview'; 
    282       $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1)); 
     282      $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1, 
     283        'onchange' => JS_OBJECT_NAME.'.toggle_preview_pane(this)')); 
    283284 
    284285      $blocks['main']['options']['preview_pane'] = array( 
    285286        'title' => html::label($field_id, Q(rcube_label('previewpane'))), 
    286287        'content' => $input_preview->show($config['preview_pane']?1:0), 
     288      ); 
     289    } 
     290 
     291    // show config parameter for preview pane auto mark as read delay 
     292    if (!isset($no_override['preview_pane_mark_read'])) { 
     293      // apply default if config option is not set at all 
     294      $config['preview_pane_mark_read'] = $RCMAIL->config->get('preview_pane_mark_read', 0); 
     295       
     296      $field_id = 'rcmfd_preview_pane_mark_read'; 
     297      $select_delay = new html_select(array('name' => '_preview_pane_mark_read', 'id' => $field_id, 
     298        'disabled' => $config['preview_pane']?0:1)); 
     299 
     300      $select_delay->add(rcube_label('never'), '-1'); 
     301      $select_delay->add(rcube_label('immediately'), 0); 
     302      foreach(array(5, 10, 20, 30) as $sec) 
     303        $select_delay->add(rcube_label(array('name' => 'afternseconds', 'vars' => array('n' => $sec))), $sec); 
     304 
     305      $blocks['main']['options']['preview_pane_mark_read'] = array( 
     306        'title' => html::label($field_id, Q(rcube_label('previewpanemarkread'))), 
     307        'content' => $select_delay->show(intval($config['preview_pane_mark_read'])), 
    287308      ); 
    288309    } 
  • program/steps/settings/save_prefs.inc

    rf52c936f rbc49601  
    4141    $a_user_prefs = array( 
    4242      'focus_on_new_message' => isset($_POST['_focus_on_new_message']) ? TRUE : FALSE, 
    43       'preview_pane'         => isset($_POST['_preview_pane']) ? TRUE : FALSE, 
     43      'preview_pane'         => isset($_POST['_preview_pane']) ? TRUE : FALSE, 
     44      'preview_pane_mark_read' => isset($_POST['_preview_pane_mark_read']) ? intval($_POST['_preview_pane_mark_read']) : $CONFIG['preview_pane_mark_read'], 
    4445      'autoexpand_threads'   => isset($_POST['_autoexpand_threads']) ? intval($_POST['_autoexpand_threads']) : 0, 
    4546      'mdn_requests'         => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0, 
Note: See TracChangeset for help on using the changeset viewer.