From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 17 Apr 2015 06:28:40 -0400
Subject: [PATCH] Allow preference sections to define CSS class names

---
 program/steps/addressbook/move.inc |   36 ++++++++++++++++++++----------------
 1 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/program/steps/addressbook/move.inc b/program/steps/addressbook/move.inc
index 33dd6ea..e832765 100644
--- a/program/steps/addressbook/move.inc
+++ b/program/steps/addressbook/move.inc
@@ -25,8 +25,8 @@
 }
 
 $cids         = rcmail_get_cids();
-$target       = get_input_value('_to', RCUBE_INPUT_POST);
-$target_group = get_input_value('_togid', RCUBE_INPUT_POST);
+$target       = rcube_utils::get_input_value('_to', rcube_utils::INPUT_POST);
+$target_group = rcube_utils::get_input_value('_togid', rcube_utils::INPUT_POST);
 
 $all      = 0;
 $deleted  = 0;
@@ -97,9 +97,9 @@
             }
         }
         else {
-            $record = $result->first();
-            $ids[] = $record['ID'];
-            $errormsg = empty($a_record['email']) ? 'contactnameexists' : 'contactexists';
+            $record   = $result->first();
+            $ids[]    = $record['ID'];
+            $errormsg = empty($email) ? 'contactnameexists' : 'contactexists';
         }
     }
 
@@ -142,12 +142,6 @@
 }
 
 if (!$deleted || $deleted != $all) {
-    // update saved search after data changed
-    if ($deleted) {
-        rcmail_search_update();
-    }
-
-    $OUTPUT->command('list_contacts_clear');
     $OUTPUT->command('list_contacts');
 }
 else {
@@ -159,8 +153,13 @@
         $result = new rcube_result_set($count, $first);
         $pages  = ceil((count($records) + $delcnt) / $PAGE_SIZE);
 
+        // last page and it's empty, display previous one
+        if ($result->count && $result->count <= ($PAGE_SIZE * ($page - 1))) {
+            $OUTPUT->command('list_page', 'prev');
+            $rowcount = $RCMAIL->gettext('loading');
+        }
         // get records from the next page to add to the list
-        if ($_GET['_from'] != 'show' && $pages > 1 && $page < $pages) {
+        else if ($pages > 1 && $page < $pages) {
             // sort the records
             ksort($records, SORT_LOCALE_STRING);
 
@@ -182,10 +181,15 @@
     else {
         // count contacts for this user
         $result = $CONTACTS->count();
-        // get records from the next page to add to the list
-        $pages = ceil(($result->count + $deleted) / $PAGE_SIZE);
+        $pages  = ceil(($result->count + $deleted) / $PAGE_SIZE);
 
-        if ($_GET['_from'] != 'show' && $pages > 1 && $page < $pages) {
+        // last page and it's empty, display previous one
+        if ($result->count && $result->count <= ($PAGE_SIZE * ($page - 1))) {
+            $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);
         }
@@ -193,7 +197,7 @@
 
     // update message count display
     $OUTPUT->set_env('pagecount', ceil($result->count / $PAGE_SIZE));
-    $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text($result));
+    $OUTPUT->command('set_rowcount', $rowcount ? $rowcount : rcmail_get_rowcount_text($result));
 
     // add new rows from next page (if any)
     if (!empty($records)) {

--
Gitblit v1.9.1