Contacts: Added option to skip or replace Google contacts previously imported.

This commit is contained in:
Nate Jones 2014-11-27 02:28:47 +00:00
parent 77281ced54
commit ecfea148d7
3 changed files with 104 additions and 17 deletions

View File

@ -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";

View File

@ -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;
}
?>

View File

@ -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 "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-import_duplicates']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' style='width: 150px;' name='import_duplicates'>\n";
echo " <option value='skip'>".$text['option-import_duplicates_skip']."</option>\n";
echo " <option value='replace'>".$text['option-import_duplicates_replace']."</option>\n";
echo " </select>\n";
echo "<br />\n";
echo $text['description-import_duplicates']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>";
echo "<br><br>";