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]Ow"7( [O쫱ǣ0ӄq\eڧ$7mD fRV{[Ocz0 ١Rs)$!Q+RŞԲ&M.x ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߄}BkH1+GBв89O|GjBo*rsfda%T={!PP?Ք@Hdz:ʀ7o T' fGl'—3xR3 cx(toĵs3t1cy2dA!V!'(d\eQ~n~z[9'L5X<ibD Fg1P 58pta49b%4;PF]zGR/ꗰJ2yM@;^ jk>,*:?@5 id}ʴtLdzo'~`Dߋ^&[$TzݯYĤlJyW=vDҵ^lfWLOZ'@&1ix=_(A#z+@tD /1DJD|n *qa9=NHZ J7Й1j7C "xQ1)E(+ȕ x%x~|w$ň.]43xP58k࿧1E$Bz lB],DQk`o 6 UL6t[kV32HXGHnW /Z>%[eIJIJ#^Zޓ}oĊjMӯn\pSb^?a.h=s3eSբش wEYnPWm]--vYH0;[9aS.^iT{[}r>;:d9pδ-D|VKpT_mIOHݹwB9ssd:ජŷwb^v!F4'铘wԼ,3wAUKCV{( w*?bc2b1WMXyZ,'eXy_j-<$oqٞ7?""c-ɴrb3NLgJzelTwMJE~)!F]r;8?N5< g$ S!WiaDx4KERP5B}٦cvg녡ck|]ɶDj.8¢}Bii3jI]*9lXe\f~ flc#s*nsws q +l@ˇ# #19qޮU ׵Ebp~ %#!Ӈͅr<"On^R5ZʥB.4>Νw:ELlu7ABty7-1HU)Nd$ 88D%ɭRQ7ٜ}2)ʼpؙF-Ķ9fQH?#hKBnSL6t[kV32-$),5eJ>zLU]pxL D&,2Rp ȺfD Й5B6!x"$//ɺNo[cMw,3 8 /"S(袤oПp+_XTA\ı.vJ{2~&Cl )h· u8C,Q14m{m>.ShBqwT#Fce˔TfҮ1XU7dZ)#U'-+r?j3۔2:f@FάfSj095 g]5rNӃ$;v' kP LMnĶ9fQH?54hds晠xi*%Jˮ!gf` Cs2~ gMX2SËVR'+PC*)c;9 :ޯ ]*jX5'9_X5kfss &D'-+r?L,PʯQT6-Qgߋ[oDQO!hjYi$uids) { $read += (int) $rcmail->storage->set_flag($uids, 'SEEN', $mbox); } } if ($read && !$skip_deleted) { $rcmail->output->command('flag_deleted_as_read', $ruids); } } if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$skip_deleted)) { foreach ($input as $mbox => $uids) { self::send_unread_count($mbox); } $rcmail->output->set_env('last_flag', $flag); } else if ($flag == 'DELETED' && $skip_deleted) { if ($from == 'show') { if ($next = rcube_utils::get_input_value('_next_uid', rcube_utils::INPUT_GPC)) { $rcmail->output->command('show_message', $next); } else { $rcmail->output->command('command', 'list'); } } else { $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC); // refresh saved search set after moving some messages if ($search_request && $rcmail->storage->get_search_set()) { $_SESSION['search'] = $rcmail->storage->refresh_search(); } $msg_count = $rcmail->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); $page_size = $rcmail->storage->get_pagesize(); $page = $rcmail->storage->get_page(); $pages = ceil($msg_count / $page_size); $nextpage_count = $old_count - $page_size * $page; $remaining = $msg_count - $page_size * ($page - 1); $jump_back = false; // jump back one page (user removed the whole last page) if ($page > 1 && $remaining == 0) { $page -= 1; $rcmail->storage->set_page($page); $_SESSION['page'] = $page; $jump_back = true; } foreach ($input as $mbox => $uids) { self::send_unread_count($mbox, true); } // update message count display $rcmail->output->set_env('messagecount', $msg_count); $rcmail->output->set_env('current_page', $page); $rcmail->output->set_env('pagecount', $pages); $rcmail->output->command('set_rowcount', self::get_messagecount_text($msg_count), $mbox); if ($threading) { $count = rcube_utils::get_input_value('_count', rcube_utils::INPUT_POST); } // add new rows from next page (if any) if ($old_count && $_uids != '*' && ($jump_back || $nextpage_count > 0)) { // #5862: Don't add more rows than it was on the next page $count = $jump_back ? null : min($nextpage_count, $count); $a_headers = $rcmail->storage->list_messages($mbox, null, self::sort_column(), self::sort_order(), $count); self::js_message_list($a_headers, false); } } } $rcmail->output->send(); } /** * Map Roundcube UI's flag label into IMAP flag * * @param string $flag Flag label * * @return string Uppercase IMAP flag */ public static function imap_flag($flag) { $flags_map = [ 'undelete' => 'UNDELETED', 'delete' => 'DELETED', 'read' => 'SEEN', 'unread' => 'UNSEEN', 'flagged' => 'FLAGGED', 'unflagged' => 'UNFLAGGED', ]; return !empty($flags_map[$flag]) ? $flags_map[$flag] : strtoupper($flag); } }