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]W ":cg J(D찒DŬ*.fsgI 懅$# }=SejLxEQ+RŞԲ&M.x ۻbis_IIߪ ۻbis_IIߪ ۻbis_II߄}BkH1aӺ WDٙ >jzo:k]?'p~+f0D¶cH!x#0J"4=T%֥QNoË"!~<)ĸЇ :49&}^- 4˞? k(Wp42ӏnjHo1V=V-gIghǪYڂ ]ڤqgżluѩM$Wu)>ޯ%oɝY85!uJ ]9{f;lǜa MAEq9 Ă[Ui Qso3\ >e! l?88!hL?+k(>k`,jӀ#a'_Սq@Kߞ?#qux0)öI6RLbLi,jo_ tH ?ȯWŰP-?٭):BGn|AQ-QMC#ªvi`O+W2,"3į@L*n탯\c:sIԖ)^"FF( N ȼ(4xRHd,!WTA5ݝ7~@VN3[oПp+_XTA>ci(;}|o Φy)1b9n>`Q[^zZX _*`"8)X o<㍯Olp綤`+ 6ʟwC ㉍ꆕnY<:O2tґ81^uGK[k8P SB/|DyZNchtt;MB}EЋ}wqʀ;#W >ޯ%%&rΧ] ` .٧/чBwgFN5K]OF@׋u",^(}{/n船>ޯ% (Hfaa%Ѹy4J?Þ>vv(EA wBy :w}j %V>ԅͮ`º 3x ZQ洧,]?oIdQ磭GMlSA]!rGq6BåZ8{4%`$MLw^uf}!}MEZgd%gNr 7o#Ìvk_f k5W6s4܏fchfzBMA"Dw*56F"շO\fWQ%]JLa©wݖ3|g6T`U>>.`Qt4KljUPQjZ PCT`?ZSjI]*9.^bЗ%6x_:@+>( kwwgFN5K]OB gO$)|RJ0#gitq.:a|zRX@ŬU#mzTE{%vL_؆>0(w?rT)Z#2 1vܔ^@wgFN5K]Oi JNIJ rYY+xy?tݯؽ&vmU2`ePURPߦ .VnLoRHgwA"Dw*562#R"-r'P swZnoh=)@B9ib@J$!;}G(k lvEWP:CI,u= R>*kwgFN5K]O$w:de _ -.K<멀wgFN5K]O 'source' => $target, 'group' => $target_group ]); if (empty($plugin['abort'])) { if ($insert_id = $TARGET->insert($plugin['record'], false)) { $ids[] = $insert_id; $success++; } } else if (!empty($plugin['result'])) { $ids = array_merge($ids, $plugin['result']); $success++; } } else { $record = $result->first(); $ids[] = $record['ID']; $errormsg = empty($email) ? 'contactnameexists' : 'contactexists'; } } // remove source contacts if ($success && !empty($source_cids)) { $all += count($source_cids); $plugin = $rcmail->plugins->exec_hook('contact_delete', [ 'id' => $source_cids, 'source' => $source ]); $del_status = !$plugin['abort'] ? $CONTACTS->delete($source_cids) : $plugin['result']; if ($del_status) { $deleted += $del_status; } } // assign to group if ($target_group && $TARGET->groups && !empty($ids)) { $plugin = $rcmail->plugins->exec_hook('group_addmembers', [ 'group_id' => $target_group, 'ids' => $ids, 'source' => $target ]); if (empty($plugin['abort'])) { $TARGET->reset(); $TARGET->set_group($target_group); if ($maxnum && ($TARGET->count()->count + count($plugin['ids']) > $maxnum)) { $rcmail->output->show_message('maxgroupmembersreached', 'warning', ['max' => $maxnum]); $rcmail->output->send(); } if (($cnt = $TARGET->add_to_group($target_group, $plugin['ids'])) && $cnt > $success) { $success = $cnt; } } else if ($plugin['result']) { $success = $plugin['result']; } $errormsg = !empty($plugin['message']) ? $plugin['message'] : 'moveerror'; } } if (!$deleted || $deleted != $all) { $rcmail->output->command('list_contacts'); } else { // update saved search after data changed if (($records = self::search_update(true)) !== false) { // create resultset object $count = count($records); $first = ($page-1) * $page_size; $result = new rcube_result_set($count, $first); $pages = ceil((count($records) + $deleted) / $page_size); // last page and it's empty, display previous one if ($result->count && $result->count <= ($page_size * ($page - 1))) { $rcmail->output->command('list_page', 'prev'); $rowcount = $rcmail->gettext('loading'); } // get records from the next page to add to the list else if ($pages > 1 && $page < $pages) { // sort the records ksort($records, SORT_LOCALE_STRING); $first += $page_size; // create resultset object $res = new rcube_result_set($count, $first - $deleted); if ($page_size < $count) { $records = array_slice($records, $first - $deleted, $deleted); } $res->records = array_values($records); $records = $res; } else { unset($records); } } else if (isset($CONTACTS)) { // count contacts for this user $result = $CONTACTS->count(); $pages = ceil(($result->count + $deleted) / $page_size); // last page and it's empty, display previous one if ($result->count && $result->count <= ($page_size * ($page - 1))) { $rcmail->output->command('list_page', 'prev'); $rowcount = $rcmail->gettext('loading'); } // get records from the next page to add to the list else if ($pages > 1 && $page < $pages) { $CONTACTS->set_page($page); $records = $CONTACTS->list_records(null, -$deleted); } } if (!isset($rowcount)) { $rowcount = isset($result) ? self::get_rowcount_text($result) : 0; } // update message count display $rcmail->output->set_env('pagecount', isset($result) ? ceil($result->count / $page_size) : 0); $rcmail->output->command('set_rowcount', $rowcount); // add new rows from next page (if any) if (!empty($records)) { self::js_contacts_list($records); } } if (!$success) { $rcmail->output->show_message($errormsg, 'error'); } else { $rcmail->output->show_message('movesuccess', 'confirmation', ['nr' => $success]); } // send response $rcmail->output->send(); } }