diff --git a/app/contacts/app_languages.php b/app/contacts/app_languages.php index d6cd0d331b..ea8b2c0f93 100644 --- a/app/contacts/app_languages.php +++ b/app/contacts/app_languages.php @@ -1060,10 +1060,40 @@ $text['message-google_signed_out']['pt-pt'] = "Conta do Google: Assinado Fora"; $text['message-google_signed_out']['fr-fr'] = "Compte Google: Déconnecté"; - $text['message-contacts_imported']['en-us'] = "Contacts Imported: "; - $text['message-contacts_imported']['es-cl'] = "Contactos Importados: "; - $text['message-contacts_imported']['pt-pt'] = "Contatos Importados: "; - $text['message-contacts_imported']['fr-fr'] = "Contacts Importés: "; + $text['message-contacts_imported']['en-us'] = "Contacts Imported:"; + $text['message-contacts_imported']['es-cl'] = "Contactos Importados:"; + $text['message-contacts_imported']['pt-pt'] = "Contatos Importados:"; + $text['message-contacts_imported']['fr-fr'] = "Contacts Importés:"; + + $text['label-import_duplicates']['en-us'] = "Duplicates"; + $text['label-import_duplicates']['es-cl'] = "Duplicados"; + $text['label-import_duplicates']['pt-pt'] = "Duplicatas"; + $text['label-import_duplicates']['fr-fr'] = "Doublons"; + + $text['option-import_duplicates_skip']['en-us'] = "Skip"; + $text['option-import_duplicates_skip']['es-cl'] = "Omitir"; + $text['option-import_duplicates_skip']['pt-pt'] = "Pular"; + $text['option-import_duplicates_skip']['fr-fr'] = "Sauter"; + + $text['option-import_duplicates_replace']['en-us'] = "Replace"; + $text['option-import_duplicates_replace']['es-cl'] = "Reemplazar"; + $text['option-import_duplicates_replace']['pt-pt'] = "Substituir"; + $text['option-import_duplicates_replace']['fr-fr'] = "Remplacer"; + + $text['description-import_duplicates']['en-us'] = "Select how to treat contacts previously imported."; + $text['description-import_duplicates']['es-cl'] = "Seleccione la forma de tratar a los contactos previamente importados."; + $text['description-import_duplicates']['pt-pt'] = "Escolha como tratar os contatos previamente importados."; + $text['description-import_duplicates']['fr-fr'] = "Sélectionnez la façon de traiter les contacts importés auparavant."; + + $text['message_contacts_imported_skipped']['en-us'] = "Skipped:"; + $text['message_contacts_imported_skipped']['es-cl'] = "Saltado:"; + $text['message_contacts_imported_skipped']['pt-pt'] = "Ignorados:"; + $text['message_contacts_imported_skipped']['fr-fr'] = "Arrêté:"; + + $text['message_contacts_imported_replaced']['en-us'] = "Replaced:"; + $text['message_contacts_imported_replaced']['es-cl'] = "Sustituido:"; + $text['message_contacts_imported_replaced']['pt-pt'] = "Substituído:"; + $text['message_contacts_imported_replaced']['fr-fr'] = "Remplacé:"; // general labels $text['label-primary']['en-us'] = "Primary"; diff --git a/app/contacts/contact_delete.php b/app/contacts/contact_delete.php index b013d2ec97..4f201132cf 100644 --- a/app/contacts/contact_delete.php +++ b/app/contacts/contact_delete.php @@ -34,17 +34,20 @@ else { exit; } -//add multi-lingual support - require_once "app_languages.php"; - foreach($text as $key => $value) { - $text[$key] = $value[$_SESSION['domain']['language']['code']]; - } +// check if included in another file +if (!$included) { + //add multi-lingual support + require_once "app_languages.php"; + foreach($text as $key => $value) { + $text[$key] = $value[$_SESSION['domain']['language']['code']]; + } -if (count($_GET)>0) { - $contact_uuid = check_str($_GET["id"]); + if (count($_GET)>0) { + $contact_uuid = check_str($_GET["id"]); + } } -if (strlen($contact_uuid)>0) { +if (strlen($contact_uuid) > 0) { //delete addresses $sql = "delete from v_contact_addresses "; $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; @@ -110,9 +113,10 @@ if (strlen($contact_uuid)>0) { unset($prep_statement, $sql); } - -$_SESSION["message"] = $text['message-delete']; -header("Location: contacts.php"); -return; +if (!$included) { + $_SESSION["message"] = $text['message-delete']; + header("Location: contacts.php"); + return; +} ?> diff --git a/app/contacts/contact_import_google.php b/app/contacts/contact_import_google.php index 21f2e94c29..994a9d53d4 100644 --- a/app/contacts/contact_import_google.php +++ b/app/contacts/contact_import_google.php @@ -66,11 +66,47 @@ if ($_POST['a'] == 'import') { //iterate selected contact ids, insert contact into database $contacts_imported = 0; + $contacts_skipped = 0; + $contacts_replaced = 0; + if (sizeof($import_ids) > 0) { $import_ids = array_unique($import_ids); foreach ($import_ids as $contact_id) { + //check for duplicate contact (already exists, previously imported, etc) + $sql = "select contact_uuid from v_contact_settings "; + $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "and contact_setting_category = 'google' "; + $sql .= "and contact_setting_subcategory = 'id' "; + $sql .= "and contact_setting_value = '".$contact_id."' "; + $sql .= "and contact_setting_enabled = 'true' "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $result = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($result['contact_uuid'] != '') { + $duplicate_exists = true; + $duplicate_contact_uuid = $result['contact_uuid']; + } + else { + $duplicate_exists = false; + } + unset($sql, $prep_statement, $result); + + //skip importing contact + if ($duplicate_exists && $_POST['import_duplicates'] == 'skip') { + $contacts_skipped++; + continue; + } + //replace contact (delete before inserts below) + else if ($duplicate_exists && $_POST['import_duplicates'] == 'replace') { + $contact_uuid = $duplicate_contact_uuid; + $included = true; + require_once "contact_delete.php"; + unset($contact_uuid, $duplicate_contact_uuid); + $contacts_replaced++; + } + //extract contact record from array using contact id $contact = $_SESSION['contact_auth']['google'][$contact_id]; @@ -288,7 +324,10 @@ if ($_POST['a'] == 'import') { } - $_SESSION["message"] = $text['message-contacts_imported']." ".$contacts_imported; + $message = $text['message-contacts_imported']." ".$contacts_imported; + if ($contacts_replaced > 0) { $message .= " (".$text['message_contacts_imported_replaced']." ".$contacts_replaced.")"; } + if ($contacts_skipped > 0) { $message .= ", ".$text['message_contacts_imported_skipped']." ".$contacts_skipped; } + $_SESSION["message"] = $message; header("Location: contacts.php"); exit; @@ -436,6 +475,20 @@ echo $text['description-shared_import']."\n"; echo "\n"; echo "\n"; +echo "