From e019f2d0f2dc2fbfa345ab5d7ae85e67bfdd76b8 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 25 Sep 2010 09:03:53 -0400
Subject: [PATCH] - s/RoundCube/Roundcube/

---
 program/steps/addressbook/save.inc |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 639e0f2..b4b9ae4 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -4,8 +4,8 @@
  +-----------------------------------------------------------------------+
  | program/steps/addressbook/save.inc                                    |
  |                                                                       |
- | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
+ | This file is part of the Roundcube Webmail client                     |
+ | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -54,20 +54,28 @@
 // update an existing contact
 if (!empty($cid))
 {
-  $plugin = $RCMAIL->plugins->exec_hook('save_contact', array('id' => $cid, 'record' => $a_record, 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
+  $plugin = $RCMAIL->plugins->exec_hook('contact_update',
+    array('id' => $cid, 'record' => $a_record, 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
   $a_record = $plugin['record'];
   
-  if (!$plugin['abort'] && $CONTACTS->update($cid, $a_record))
+  if (!$plugin['abort'] && ($result = $CONTACTS->update($cid, $a_record)))
   {
+    // LDAP DN change
+    if (is_string($result) && strlen($result)>1) {
+      $newcid = $result;
+      // change cid in POST for 'show' action
+      $_POST['_cid'] = $newcid;
+    }
+    
     // define list of cols to be displayed
     $a_js_cols = array();
-    $record = $CONTACTS->get_record($cid, true);
+    $record = $CONTACTS->get_record($newcid ? $newcid : $cid, true);
 
     foreach (array('name', 'email') as $col)
       $a_js_cols[] = (string)$record[$col];
 
     // update the changed col in list
-    $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols);
+    $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid);
       
     // show confirmation
     $OUTPUT->show_message('successfullysaved', 'confirmation', null, false);
@@ -86,7 +94,7 @@
 {
   // check for existing contacts
   $existing = $CONTACTS->search('email', $a_record['email'], true, false);
-  
+
   // show warning message
   if ($existing->count)
   {
@@ -95,7 +103,7 @@
     return;
   }
 
-  $plugin = $RCMAIL->plugins->exec_hook('create_contact', array('record' => $a_record, 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
+  $plugin = $RCMAIL->plugins->exec_hook('contact_create', array('record' => $a_record, 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
   $a_record = $plugin['record'];
 
   // insert record and send response
@@ -114,8 +122,7 @@
 
     // show confirmation
     $OUTPUT->show_message('successfullysaved', 'confirmation', null, false);
-    rcmail_overwrite_action('show');
-    $_GET['_cid'] = $insert_id;
+    $OUTPUT->send('iframe');
   }
   else
   {
@@ -125,4 +132,4 @@
   }
 }
 
-?>
+

--
Gitblit v1.9.1