Changeset 3e5c709 in github
- Timestamp:
- Nov 26, 2011 8:10:27 AM (18 months ago)
- Branches:
- master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.8
- Children:
- 0829b76
- Parents:
- 6a61686
- Files:
-
- 3 edited
-
CHANGELOG (modified) (1 diff)
-
program/steps/mail/search.inc (modified) (3 diffs)
-
skins/default/functions.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
CHANGELOG
r6a61686 r3e5c709 2 2 =========================== 3 3 4 - Fix so TEXT key will remove all HEADER keys in IMAP SEARCH (#1488208) 4 5 - Fix handling contact photo url with https:// prefix (#1488202) 5 6 - Prevent from memory_limit exceeding when trying to parse big messages bodies (#1487424) -
program/steps/mail/search.inc
rb1f0846 r3e5c709 32 32 $filter = get_input_value('_filter', RCUBE_INPUT_GET); 33 33 $headers = get_input_value('_headers', RCUBE_INPUT_GET); 34 $subject = array(); 34 35 35 36 $search_request = md5($mbox.$filter.$str); … … 71 72 $subject['text'] = "TEXT"; 72 73 } 73 else if (trim($str))74 else if (strlen(trim($str))) 74 75 { 75 76 if ($headers) { 76 foreach(explode(',', $headers) as $header) 77 switch ($header) { 78 case 'text': $subject['text'] = 'TEXT'; break; 79 default: $subject[$header] = 'HEADER '.strtoupper($header); 77 foreach (explode(',', $headers) as $header) { 78 if ($header == 'text') { 79 // #1488208: get rid of other headers when searching by "TEXT" 80 $subject = array('text' => 'TEXT'); 81 break; 80 82 } 83 else { 84 $subject[$header] = 'HEADER '.strtoupper($header); 85 } 86 } 81 87 82 88 // save search modifiers for the current folder to user prefs … … 90 96 } 91 97 92 $search = $srch? trim($srch) : trim($str);98 $search = isset($srch) ? trim($srch) : trim($str); 93 99 94 if ( $subject) {100 if (!empty($subject)) { 95 101 $search_str .= str_repeat(' OR', count($subject)-1); 96 102 foreach ($subject as $sub) -
skins/default/functions.js
r4b09fb6 r3e5c709 193 193 if (show && ref) { 194 194 var pos = $(ref).offset(); 195 obj.css({ left:pos.left, top:(pos.top + ref.offsetHeight + 2)}) 196 .find(':checked').prop('checked', false); 195 obj.css({left:pos.left, top:(pos.top + ref.offsetHeight + 2)}); 197 196 198 197 if (rcmail.env.search_mods) { 199 var n, mbox = rcmail.env.mailbox, mods = rcmail.env.search_mods; 200 201 if (rcmail.env.task != 'addressbook') { 198 var n, all, 199 list = $('input:checkbox[name="s_mods[]"]', obj), 200 mbox = rcmail.env.mailbox, 201 mods = rcmail.env.search_mods; 202 203 if (rcmail.env.task == 'mail') { 202 204 mods = mods[mbox] ? mods[mbox] : mods['*']; 203 205 all = 'text'; 206 } 207 else { 208 all = '*'; 209 } 210 211 if (mods[all]) 212 list.map(function() { 213 this.checked = true; 214 this.disabled = this.value != all; 215 }); 216 else { 217 list.prop('disabled', false).prop('checked', false); 204 218 for (n in mods) 205 219 $('#s_mod_' + n).prop('checked', true); 206 220 } 207 else {208 if (mods['*'])209 $('input:checkbox[name="s_mods[]"]').map(function() {210 this.checked = true;211 this.disabled = this.value != '*';212 });213 else {214 for (n in mods)215 $('#s_mod_' + n).prop('checked', true);216 }217 }218 221 } 219 222 } … … 223 226 set_searchmod: function(elem) 224 227 { 225 var task = rcmail.env.task,228 var all, m, task = rcmail.env.task, 226 229 mods = rcmail.env.search_mods, 227 230 mbox = rcmail.env.mailbox; … … 233 236 if (!mods[mbox]) 234 237 mods[mbox] = rcube_clone_object(mods['*']); 235 if (!elem.checked) 236 delete(mods[mbox][elem.value]); 237 else 238 mods[mbox][elem.value] = 1; 238 m = mods[mbox]; 239 all = 'text'; 239 240 } 240 241 else { //addressbook 241 if (!elem.checked) 242 delete(mods[elem.value]); 243 else 244 mods[elem.value] = 1; 245 246 // mark all fields 247 if (elem.value == '*') { 248 $('input:checkbox[name="s_mods[]"]').map(function() { 249 if (this == elem) 250 return; 251 252 if (elem.checked) { 253 mods[this.value] = 1; 254 this.checked = true; 255 this.disabled = true; 256 } 257 else { 258 this.disabled = false; 259 } 260 }); 261 } 262 } 263 264 rcmail.env.search_mods = mods; 242 m = mods; 243 all = '*'; 244 } 245 246 if (!elem.checked) 247 delete(m[elem.value]); 248 else 249 m[elem.value] = 1; 250 251 // mark all fields 252 if (elem.value != all) 253 return; 254 255 $('input:checkbox[name="s_mods[]"]').map(function() { 256 if (this == elem) 257 return; 258 259 this.checked = true; 260 if (elem.checked) { 261 this.disabled = true; 262 delete m[this.value]; 263 } 264 else { 265 this.disabled = false; 266 m[this.value] = 1; 267 } 268 }); 265 269 }, 266 270
Note: See TracChangeset
for help on using the changeset viewer.
