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