From 697d1cdbacd760fa8d5ca7893a095d683dc2c22b Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Mon, 16 Jun 2014 20:16:58 +0000 Subject: [PATCH] Implement new special linking fields --- .../inc/class.addressbook_egw_record.inc.php | 5 +++-- ...lass.addressbook_import_contacts_csv.inc.php | 17 ++++++++++------- ...dressbook_wizard_import_contacts_csv.inc.php | 3 +++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/addressbook/inc/class.addressbook_egw_record.inc.php b/addressbook/inc/class.addressbook_egw_record.inc.php index 1c0b1ae3a9..dd945393ce 100644 --- a/addressbook/inc/class.addressbook_egw_record.inc.php +++ b/addressbook/inc/class.addressbook_egw_record.inc.php @@ -102,7 +102,7 @@ class addressbook_egw_record implements importexport_iface_egw_record * @return string identifier of current record */ public function get_identifier() { - return $this->identifier; + return $this->identifier ? $this->identifier : $this->id; } /** @@ -111,7 +111,8 @@ class addressbook_egw_record implements importexport_iface_egw_record * @return string identifier */ public function save ( $_dst_identifier ) { - + // Not yet implemeted + $this->identifier = $_dst_identifier; } /** diff --git a/addressbook/inc/class.addressbook_import_contacts_csv.inc.php b/addressbook/inc/class.addressbook_import_contacts_csv.inc.php index bf4c172b50..6e747c0b64 100644 --- a/addressbook/inc/class.addressbook_import_contacts_csv.inc.php +++ b/addressbook/inc/class.addressbook_import_contacts_csv.inc.php @@ -179,11 +179,11 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv { if ( !is_array( $record_array['cat_id'] ) ) $record->cat_id = explode( ',', $record->cat_id ); $record->cat_id = implode( ',', array_unique( array_merge( $record->cat_id, $contact['cat_id'] ) ) ); } - $success = $this->action( $action['action'], $record->get_record_array(), $import_csv->get_current_position() ); + $success = $this->action( $action['action'], $record, $import_csv->get_current_position() ); } } else { $action = $condition['false']; - $success = ($this->action( $action['action'], $record->get_record_array(), $import_csv->get_current_position() )); + $success = ($this->action( $action['action'], $record, $import_csv->get_current_position() )); } break; case 'equal': @@ -193,13 +193,13 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv { { // Apply true action to any matching records found $action = $condition['true']; - $success = ($this->action( $action['action'], $record->get_record_array(), $import_csv->get_current_position() )); + $success = ($this->action( $action['action'], $record, $import_csv->get_current_position() )); } else { // Apply false action if no matching records found $action = $condition['false']; - $success = ($this->action( $action['action'], $record->get_record_array(), $import_csv->get_current_position() )); + $success = ($this->action( $action['action'], $record, $import_csv->get_current_position() )); } break; @@ -212,7 +212,7 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv { } } else { // unconditional insert - $success = $this->action( 'insert', $record->get_record_array(), $import_csv->get_current_position() ); + $success = $this->action( 'insert', $record, $import_csv->get_current_position() ); } return $success; } @@ -221,10 +221,11 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv { * perform the required action * * @param int $_action one of $this->actions - * @param array $_data contact data for the action + * @param importexport_iface_egw_record $record contact data for the action * @return bool success or not */ - protected function action ( $_action, Array $_data, $record_num = 0 ) { + protected function action ( $_action, importexport_iface_egw_record &$record, $record_num = 0 ) { + $_data = $record->get_record_array(); switch ($_action) { case 'none' : return true; @@ -296,6 +297,8 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv { $this->errors[$record_num] = $this->bocontacts->error; } else { $this->results[$_action]++; + // This does nothing (yet?) but update the identifier + $record->save($result); } return $result; } diff --git a/addressbook/inc/class.addressbook_wizard_import_contacts_csv.inc.php b/addressbook/inc/class.addressbook_wizard_import_contacts_csv.inc.php index 507aaebf06..771c543098 100644 --- a/addressbook/inc/class.addressbook_wizard_import_contacts_csv.inc.php +++ b/addressbook/inc/class.addressbook_wizard_import_contacts_csv.inc.php @@ -51,6 +51,9 @@ class addressbook_wizard_import_contacts_csv extends importexport_wizard_basic_i $this->mapping_fields['#'.$name] = $data['label']; } unset($this->mapping_fields['jpegphoto']); // can't cvs import that + + // Add in special handled fields + $this->mapping_fields[lang('Special')] = addressbook_import_contacts_csv::$special_fields; // Actions $this->actions = array(