]> git.donarmstrong.com Git - roundcube.git/blobdiff - program/steps/addressbook/delete.inc
Imported Upstream version 0.1~beta2.2~dfsg
[roundcube.git] / program / steps / addressbook / delete.inc
diff --git a/program/steps/addressbook/delete.inc b/program/steps/addressbook/delete.inc
new file mode 100644 (file)
index 0000000..2bec51e
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/addressbook/delete.inc                                  |
+ |                                                                       |
+ | This file is part of the RoundCube Webmail client                     |
+ | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
+ | Licensed under the GNU GPL                                            |
+ |                                                                       |
+ | PURPOSE:                                                              |
+ |   Delete the submitted contacts (CIDs) from the users address book    |
+ |                                                                       |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com>                        |
+ +-----------------------------------------------------------------------+
+
+ $Id: delete.inc 429 2006-12-22 22:26:24Z thomasb $
+
+*/
+
+$REMOTE_REQUEST = TRUE;
+
+if ($_GET['_cid'] && preg_match('/^[0-9]+(,[0-9]+)*$/',$_GET['_cid']))
+  {
+  $DB->query("UPDATE ".get_table_name('contacts')."
+              SET    del=1
+              WHERE  user_id=?
+              AND    contact_id IN (".$_GET['_cid'].")",
+              $_SESSION['user_id']);
+                     
+  $count = $DB->affected_rows();
+  if (!$count)
+    {
+    // send error message
+    exit;
+    }
+
+
+  // count contacts for this user
+  $sql_result = $DB->query("SELECT COUNT(contact_id) AS rows
+                            FROM ".get_table_name('contacts')."
+                            WHERE  del<>1
+                            AND    user_id=?",
+                            $_SESSION['user_id']);
+                                   
+  $sql_arr = $DB->fetch_assoc($sql_result);
+  $rowcount = $sql_arr['rows'];    
+
+  // update message count display
+  $pages = ceil($rowcount/$CONFIG['pagesize']);
+  $commands = sprintf("this.set_rowcount('%s');\n", rcmail_get_rowcount_text($rowcount));
+  $commands .= sprintf("this.set_env('pagecount', %d);\n", $pages);
+
+
+  // add new rows from next page (if any)
+  if ($_GET['_from']!='show' && $pages>1 && $_SESSION['page'] < $pages)
+    {
+    $start_row = ($_SESSION['page'] * $CONFIG['pagesize']) - $count;
+
+    // get contacts from DB
+    $sql_result = $DB->limitquery("SELECT * FROM ".get_table_name('contacts')."
+                                   WHERE  del<>1
+                                   AND    user_id=?
+                                   ORDER BY name",
+                                   $start_row,
+                                   $count,
+                                   $_SESSION['user_id']);
+                                     
+    $commands .= rcmail_js_contacts_list($sql_result);
+
+/*
+    // define list of cols to be displayed
+    $a_show_cols = array('name', 'email');
+    
+    while ($sql_arr = $DB->fetch_assoc($sql_result))
+      {
+      $a_row_cols = array();
+            
+      // format each col
+      foreach ($a_show_cols as $col)
+        {
+        $cont = rep_specialchars_output($sql_arr[$col]);
+        $a_row_cols[$col] = $cont;
+        }
+  
+      $commands .= sprintf("this.add_contact_row(%s, %s);\n",
+                           $sql_arr['contact_id'],
+                           array2js($a_row_cols));
+      }
+*/
+    }
+
+  // send response
+  rcube_remote_response($commands);
+  }
+
+exit;
+?>