From a3b9e4e65d7b5cd36cfed154d4ec06a3177c642f Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 27 Feb 2011 08:51:46 -0500
Subject: [PATCH] Better display of vcard import results (#1485457)
---
CHANGELOG | 2 ++
program/steps/addressbook/import.inc | 28 ++++++++++++++++++++++------
program/localization/de_CH/messages.inc | 3 ++-
program/localization/en_US/messages.inc | 3 ++-
4 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index e2d27b9..a108991 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
CHANGELOG Roundcube Webmail
===========================
+- Better display of vcard import results (#1485457)
+- Improved vcard import
- Interactive update script with improved DB schema check
- jQuery 1.5.1
- Fix problem with contactgroupmembers table creation on MySQL 4.x, add index on contact_id column
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index fe61a79..3b4f75c 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -107,7 +107,8 @@
$messages['contactremovedfromgroup'] = 'Kontakte wurden aus dieser Gruppe entfernt';
$messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist nicht im vCard-Format.';
-$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert und $skipped bestehende Einträge übersprungen</b>:<p><em>$names</em></p>';
+$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert</b>';
+$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen</b>';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index df347d1..d787f83 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -107,7 +107,8 @@
$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group';
$messages['importwait'] = 'Importing, please wait...';
$messages['importerror'] = 'Import failed! The uploaded file is not a valid vCard file.';
-$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc
index 7300e33..e20fbe0 100644
--- a/program/steps/addressbook/import.inc
+++ b/program/steps/addressbook/import.inc
@@ -62,13 +62,27 @@
global $IMPORT_STATS;
$vars = get_object_vars($IMPORT_STATS);
- $vars['names'] = join(', ', array_map('Q', $IMPORT_STATS->names));
+ $vars['names'] = $vars['skipped_names'] = '';
- return html::p($attrib, Q(rcube_label(array(
- 'name' => 'importconfirm',
- 'nr' => $IMORT_STATS->inserted,
- 'vars' => $vars,
- )), 'show'));
+ $content = html::p(null, rcube_label(array(
+ 'name' => 'importconfirm',
+ 'nr' => $IMORT_STATS->inserted,
+ 'vars' => $vars,
+ )) . ($IMPORT_STATS->names ? ':' : '.'));
+
+ if ($IMPORT_STATS->names)
+ $content .= html::p('em', join(', ', array_map('Q', $IMPORT_STATS->names)));
+
+ if ($IMPORT_STATS->skipped) {
+ $content .= html::p(null, rcube_label(array(
+ 'name' => 'importconfirmskipped',
+ 'nr' => $IMORT_STATS->skipped,
+ 'vars' => $vars,
+ )) . ':');
+ $content .= html::p('em', join(', ', array_map('Q', $IMPORT_STATS->skipped_names)));
+ }
+
+ return html::div($attrib, $content);
}
@@ -120,6 +134,7 @@
else {
$IMPORT_STATS = new stdClass;
$IMPORT_STATS->names = array();
+ $IMPORT_STATS->skipped_names = array();
$IMPORT_STATS->count = count($vcards);
$IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->nomail = $IMPORT_STATS->errors = 0;
@@ -146,6 +161,7 @@
}
if ($existing->count) {
$IMPORT_STATS->skipped++;
+ $IMPORT_STATS->skipped_names[] = $vcard->displayname;
continue;
}
}
--
Gitblit v1.9.1