summaryrefslogtreecommitdiff
path: root/program/steps/addressbook/delete.inc
blob: e988f5569b750ebcf5b028f94aea24198d2edfce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?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$

*/

$REMOTE_REQUEST = TRUE;

if ($_GET['_cid'])
  {
  $DB->query(sprintf("UPDATE %s
                      SET    del='1'
                      WHERE  user_id=%d
                      AND    contact_id IN (%s)",
                     get_table_name('contacts'),
                     $_SESSION['user_id'],
                     $_GET['_cid']));
                     
  $count = $DB->affected_rows();
  if (!$count)
    {
    // send error message
    exit;
    }


  // count contacts for this user
  $sql_result = $DB->query(sprintf("SELECT COUNT(contact_id) AS rows
                                    FROM   %s
                                    WHERE  del!='1'
                                    AND    user_id=%d",
                                 get_table_name('contacts'),
                                 $_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->query(sprintf("SELECT * FROM %s
                                      WHERE  del!='1'
                                      AND    user_id=%d
                                      ORDER BY name",
                                     get_table_name('contacts'),
                                     $_SESSION['user_id']),
                                     $start_row,
                                     $count);
                                     
    $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;
?>