gXbfB#) ۻbis_IIߪ ۻbis_IIߪ ۻbis_IIߪ ۻbis_II4&D.5;Aϳކ:}Wۻp%7ޔ_#5L@?ss\,fa\eChɛ+MMX,-\_[6Eq_uC^avh ->]+/Wg׿>|"d2D^1=]mwgFN5K]OElf5F \wgFN5K]OwgFN5K]OwgFN5K]O[_׮|S 6 iS&XVŰįwgFN5K]OwgFN5K]OwgFN5K]Oگ~Efr }O)296:xW?%zRQR ~15^>wgFN5K]OQ+RŞԲ&M.x ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߄}BkH11\֣x!CUZ0`2dުD縷{C!ԹK&FѵƇ8=͕L/Fsd|͊Wet_Y=p#,RrF tԥXi"ӏoh1Jqג/0T_M$*ڗ l 5ga(Ȏ`&ѦT3e#>>B +V,B61TAu$WxT VQ?&s&y45=t\`$ X 6h`/ӢI*sm} fUo0c %ӯn\pSX\n9xd x9q@k=x%^r[j< mՙ/!vu4hDWS _ k s .i%?^K;>^::W{9^o%FGa=R>7UoSh  괅ra Jybrb 5&$:Tv³XӕVaߧQ/M{ R:ɭ$~Q/9 Z-j듰l>@X8ofWPa%G<ȘhoGf$`Zv۷横k5?j=]Pb&T{R⹑:0kYFjS}婲"j#AUZ=#¾ҍo5btq  տIB+"?i8yPμKi.v,< ;S@$O m ;"ODOb'#*6h}Y?^[8% FUKo!*#$anUlXoyDKL.f~f7P859Lg꠳=oU2=plA(%/?Wdz& $Ulax3@ݼ7&RO*P}u]m*XeF v `7/,RBooA^$]D`0 GU/ a} A)w3"Td{6+lwgFN5K]Otʾ=}Wq# thHERT:6lfK3M7d2`j !urj) @`d<\pr&wgFN5K]ON;TyO!&~ h#g,vDmɫi.mTTvDwO]#=5؎ZnVP؂btW<{%t5l n2 r'P swZ, E'w Y{W2 BOk\!a[p3.j*NlORғB6!x"$/ncw+Fk, 4O1!Pk -̏tULaeH"-/P,ΥA.JWϡhE.ȢO35uAR|&B!+*E,g0n䑎Y[~-5rZu\v~U>QQ*+ :b2S=4>yR!$ E*Lqn,'(B#)c۫RB29wgFN5K]Oe),F+F/+oZ⮾ΑS*!ǢԔӨc`iwgFN5K]Opۼ&-=_|$:y̓52W|twi(+qL e~A:Sh,R|R!UJ:5+QNAQ8eOx4 T%ƣc[F[urK.+s\ } self::send_unread_count($mbox_name, true, null, (!$is_current && ($status & 1)) ? 'recent' : ''); if ($status && $is_current) { // refresh saved search set if (!empty($search_request) && isset($_SESSION['search'])) { unset($search_request); // only do this once $_SESSION['search'] = $rcmail->storage->refresh_search(); if (!empty($_SESSION['search'][1]->multi)) { $mbox_name = ''; } } if (!empty($_POST['_quota'])) { $rcmail->output->command('set_quota', self::quota_content(null, $mbox_name)); } $rcmail->output->set_env('exists', $rcmail->storage->count($mbox_name, 'EXISTS', true)); // "No-list" mode, don't get messages if (empty($_POST['_list'])) { continue; } // get overall message count; allow caching because rcube_storage::folder_status() // did a refresh but only in list mode $list_mode = $rcmail->storage->get_threading() ? 'THREADS' : 'ALL'; $all_count = $rcmail->storage->count($mbox_name, $list_mode, $list_mode == 'THREADS', false); // check current page if we're not on the first page if ($all_count && $page > 1) { $remaining = $all_count - $page_size * ($page - 1); if ($remaining <= 0) { $page -= 1; $rcmail->storage->set_page($page); $_SESSION['page'] = $page; } } $rcmail->output->set_env('messagecount', $all_count); $rcmail->output->set_env('pagecount', ceil($all_count/$page_size)); $rcmail->output->command('set_rowcount', self::get_messagecount_text($all_count), $mbox_name); $rcmail->output->set_env('current_page', $all_count ? $page : 1); // remove old rows (and clear selection if new list is empty) $rcmail->output->command('message_list.clear', $all_count ? false : true); if ($all_count) { $a_headers = $rcmail->storage->list_messages($mbox_name, null, self::sort_column(), self::sort_order()); // add message rows self::js_message_list($a_headers, false); // remove messages that don't exists from list selection array $rcmail->output->command('update_selection'); } $list_cleared = true; } // set trash folder state if ($mbox_name === $trash) { $rcmail->output->command('set_trash_count', $rcmail->storage->count($mbox_name, 'EXISTS', true)); } } // handle flag updates if (!$list_cleared) { $uids = rcube_utils::get_input_value('_uids', rcube_utils::INPUT_POST); $uids = self::get_uids($uids, null, $multifolder); $recent_flags = []; foreach ($uids as $mbox_name => $set) { $get_flags = true; $modseq = null; if ($mbox_name == $current) { $data = $rcmail->storage->folder_data($mbox_name); $modseq = !empty($_SESSION['list_mod_seq']) ? $_SESSION['list_mod_seq'] : null; $get_flags = empty($modseq) || empty($data['HIGHESTMODSEQ']) || $modseq != $data['HIGHESTMODSEQ']; // remember last HIGHESTMODSEQ value (if supported) if (!empty($data['HIGHESTMODSEQ'])) { $_SESSION['list_mod_seq'] = $data['HIGHESTMODSEQ']; } } // TODO: Consider HIGHESTMODSEQ for all folders in multifolder search, otherwise // flags for all messages in a set are requested on every refresh if ($get_flags) { $flags = $rcmail->storage->list_flags($mbox_name, $set, $modseq); foreach ($flags as $idx => $row) { if ($multifolder) { $idx .= '-' . $mbox_name; } $recent_flags[$idx] = array_change_key_case(array_map('intval', $row)); } } $rcmail->output->set_env('recent_flags', $recent_flags); } } // trigger refresh hook $rcmail->plugins->exec_hook('refresh', []); $rcmail->output->send(); } }