From 3412e50b54e3daac8745234e21ab6e72be0ed165 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 04 Jun 2014 11:20:33 -0400
Subject: [PATCH] Fix attachment menu structure and aria-attributes

---
 program/lib/Roundcube/rcube_contacts.php |   52 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php
index 5c9e5ab..d215760 100644
--- a/program/lib/Roundcube/rcube_contacts.php
+++ b/program/lib/Roundcube/rcube_contacts.php
@@ -350,7 +350,7 @@
                 if (in_array($col, $this->table_cols)) {
                     switch ($mode) {
                     case 1: // strict
-                        $where[] = '(' . $this->db->quoteIdentifier($col) . ' = ' . $this->db->quote($val)
+                        $where[] = '(' . $this->db->quote_identifier($col) . ' = ' . $this->db->quote($val)
                             . ' OR ' . $this->db->ilike($col, $val . $AS . '%')
                             . ' OR ' . $this->db->ilike($col, '%' . $AS . $val . $AS . '%')
                             . ' OR ' . $this->db->ilike($col, '%' . $AS . $val) . ')';
@@ -390,7 +390,7 @@
         }
 
         foreach (array_intersect($required, $this->table_cols) as $col) {
-            $and_where[] = $this->db->quoteIdentifier($col).' <> '.$this->db->quote('');
+            $and_where[] = $this->db->quote_identifier($col).' <> '.$this->db->quote('');
         }
 
         if (!empty($where)) {
@@ -626,11 +626,11 @@
             }
         }
 
-        $save_data = $this->convert_save_data($save_data);
+        $save_data     = $this->convert_save_data($save_data);
         $a_insert_cols = $a_insert_values = array();
 
         foreach ($save_data as $col => $value) {
-            $a_insert_cols[]   = $this->db->quoteIdentifier($col);
+            $a_insert_cols[]   = $this->db->quote_identifier($col);
             $a_insert_values[] = $this->db->quote($value);
         }
 
@@ -655,17 +655,18 @@
      *
      * @param mixed Record identifier
      * @param array Assoziative array with save data
+     *
      * @return boolean True on success, False on error
      */
     function update($id, $save_cols)
     {
-        $updated = false;
+        $updated   = false;
         $write_sql = array();
-        $record = $this->get_record($id, true);
+        $record    = $this->get_record($id, true);
         $save_cols = $this->convert_save_data($save_cols, $record);
 
         foreach ($save_cols as $col => $value) {
-            $write_sql[] = sprintf("%s=%s", $this->db->quoteIdentifier($col), $this->db->quote($value));
+            $write_sql[] = sprintf("%s=%s", $this->db->quote_identifier($col), $this->db->quote($value));
         }
 
         if (!empty($write_sql)) {
@@ -683,7 +684,7 @@
             $this->result = null;  // clear current result (from get_record())
         }
 
-        return $updated;
+        return $updated ? true : false;
     }
 
 
@@ -812,16 +813,30 @@
 
     /**
      * Remove all records from the database
+     *
+     * @param bool $with_groups Remove also groups
+     *
+     * @return int Number of removed records
      */
-    function delete_all()
+    function delete_all($with_groups = false)
     {
         $this->cache = null;
 
-        $this->db->query("UPDATE ".$this->db->table_name($this->db_name).
-            " SET del=1, changed=".$this->db->now().
-            " WHERE user_id = ?", $this->user_id);
+        $this->db->query("UPDATE " . $this->db->table_name($this->db_name)
+            . " SET del = 1, changed = " . $this->db->now()
+            . " WHERE user_id = ?", $this->user_id);
 
-        return $this->db->affected_rows();
+        $count = $this->db->affected_rows();
+
+        if ($with_groups) {
+            $this->db->query("UPDATE " . $this->db->table_name($this->db_groups)
+                . " SET del = 1, changed = " . $this->db->now()
+                . " WHERE user_id = ?", $this->user_id);
+
+            $count += $this->db->affected_rows();
+        }
+
+        return $count;
     }
 
 
@@ -860,11 +875,11 @@
     function delete_group($gid)
     {
         // flag group record as deleted
-        $sql_result = $this->db->query(
-            "UPDATE ".$this->db->table_name($this->db_groups).
-            " SET del=1, changed=".$this->db->now().
-            " WHERE contactgroup_id=?".
-            " AND user_id=?",
+        $this->db->query(
+            "UPDATE " . $this->db->table_name($this->db_groups)
+            . " SET del = 1, changed = " . $this->db->now()
+            . " WHERE contactgroup_id = ?"
+            . " AND user_id = ?",
             $gid, $this->user_id
         );
 
@@ -872,7 +887,6 @@
 
         return $this->db->affected_rows();
     }
-
 
     /**
      * Rename a specific contact group

--
Gitblit v1.9.1