Changeset 7910c0f in github


Ignore:
Timestamp:
Mar 3, 2010 7:11:04 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:
aba0927
Parents:
d15d594
Message:

Remember search modifiers in user prefs (#1486146) + bring back the old defaults

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r47ad83f r7910c0f  
    22=========================== 
    33 
     4- Remember search modifiers in user prefs (#1486146) 
    45- Added force_7bit option to force MIME encoding of plain/text messages (#1486510) 
    56- Use case sensitive check when checking for default folders (#1486346) 
  • program/js/app.js

    rc8cf268 r7910c0f  
    26172617        this.message_list.clear(); 
    26182618        if (this.env.search_mods) { 
    2619           var head_arr = new Array(); 
    2620           for (var n in this.env.search_mods) 
    2621             head_arr.push(n); 
    2622           addurl += '&_headers='+head_arr.join(','); 
     2619          var mods = this.env.search_mods[this.env.mailbox] ? this.env.search_mods[this.env.mailbox] : this.env.search_mods['*']; 
     2620          if (mods) { 
     2621            var head_arr = new Array(); 
     2622            for (var n in mods) 
     2623              head_arr.push(n); 
     2624            addurl += '&_headers='+head_arr.join(','); 
     2625            } 
    26232626          } 
    26242627        } else if (this.contact_list) { 
  • program/js/common.js

    rf8dae9f r7910c0f  
    491491  } 
    492492 
     493// recursively copy an object 
     494function rcube_clone_object(obj) 
     495{ 
     496  var out = {}; 
     497   
     498  for (var key in obj) { 
     499    if (obj[key] && typeof obj[key] == 'object') 
     500      out[key] = clone_object(obj[key]); 
     501    else 
     502      out[key] = obj[key]; 
     503  } 
     504   
     505  return out; 
     506} 
    493507 
    494508// make a string URL safe 
  • program/steps/mail/func.inc

    rffaea6f6 r7910c0f  
    2020*/ 
    2121 
     22// setup some global vars used by mail steps 
     23$SENT_MBOX = $RCMAIL->config->get('sent_mbox'); 
     24$DRAFTS_MBOX = $RCMAIL->config->get('drafts_mbox'); 
     25$SEARCH_MODS_DEFAULT = array('*' => array('subject'=>1, 'from'=>1), $SENT_MBOX => array('subject'=>1, 'to'=>1), $DRAFTS_MBOX => array('subject'=>1, 'to'=>1)); 
     26 
    2227$EMAIL_ADDRESS_PATTERN = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9][a-z0-9\-\.]*\\.[a-z]{2,5})'; 
    2328 
     
    8085      } 
    8186     
    82       $OUTPUT->set_env('search_mods', $_SESSION['search_mods'] ? $_SESSION['search_mods'] : array('subject'=>'subject')); 
     87      $search_mods = $RCMAIL->config->get('search_mods', $SEARCH_MODS_DEFAULT); 
     88      $OUTPUT->set_env('search_mods', $search_mods); 
     89       
    8390      // make sure the message count is refreshed (for default view) 
    8491      $IMAP->messagecount($mbox_name, 'ALL', true); 
  • program/steps/mail/search.inc

    r580ff9c r7910c0f  
    7373{ 
    7474  if ($headers) { 
    75     $headers = explode(',', $headers); 
    76     foreach($headers as $header) 
     75    foreach(explode(',', $headers) as $header) 
    7776      switch ($header) { 
    7877        case 'text': $subject['text'] = 'TEXT'; break; 
    79         default: $subject[$header] = 'HEADER '.$header; 
     78        default:     $subject[$header] = 'HEADER '.strtoupper($header); 
    8079      } 
     80     
     81    // save search modifiers for the current folder to user prefs 
     82    $search_mods = $RCMAIL->config->get('search_mods', $SEARCH_MODS_DEFAULT); 
     83    $search_mods[$mbox] = array_fill_keys(array_keys($subject), 1); 
     84    $RCMAIL->user->save_prefs(array('search_mods' => $search_mods)); 
     85    console($search_mods); 
    8186  } else { 
    8287    // search in subject by default 
     
    9196  foreach ($subject as $sub) 
    9297    $search_str .= sprintf(" %s {%d}\r\n%s", $sub, strlen($search), $search); 
    93   $_SESSION['search_mods'] = $subject; 
    9498} 
    9599 
  • skins/default/functions.js

    r700ef1f r7910c0f  
    162162    var pos = $(ref).offset(); 
    163163    this.searchmenu.css({ left:pos.left, top:(pos.top + ref.offsetHeight + 2)}); 
     164    this.searchmenu.find(":checked").attr('checked', false); 
    164165 
    165166    if (rcmail.env.search_mods) { 
    166       for (var n in rcmail.env.search_mods) { 
    167         box = rcube_find_object('s_mod_' + n); 
    168         box.checked = 'checked'; 
    169       } 
     167      var search_mods = rcmail.env.search_mods[rcmail.env.mailbox] ? rcmail.env.search_mods[rcmail.env.mailbox] : rcmail.env.search_mods['*']; 
     168      for (var n in search_mods) 
     169        $('#s_mod_' + n).attr('checked', true); 
    170170    } 
    171171  } 
     
    178178    rcmail.env.search_mods = new Object(); 
    179179   
     180  if (!rcmail.env.search_mods[rcmail.env.mailbox]) 
     181    rcmail.env.search_mods[rcmail.env.mailbox] = rcube_clone_object(rcmail.env.search_mods['*']); 
     182   
    180183  if (!elem.checked) 
    181     delete(rcmail.env.search_mods[elem.value]); 
     184    delete(rcmail.env.search_mods[rcmail.env.mailbox][elem.value]); 
    182185  else 
    183     rcmail.env.search_mods[elem.value] = elem.value; 
     186    rcmail.env.search_mods[rcmail.env.mailbox][elem.value] = elem.value; 
    184187}, 
    185188 
Note: See TracChangeset for help on using the changeset viewer.