diff options
author | Thomas Tanghus <thomas@tanghus.net> | 2012-01-19 19:47:09 +0100 |
---|---|---|
committer | Thomas Tanghus <thomas@tanghus.net> | 2012-01-19 19:47:09 +0100 |
commit | ca03a26f150f957222aacc99bf5f60b0019b3625 (patch) | |
tree | 2f96ac2b2a0979f0939c61dbee1ce3d710fd0abd | |
parent | 137c63037704f85ebcba4ce4725750fd68a23c22 (diff) | |
download | nextcloud-server-ca03a26f150f957222aacc99bf5f60b0019b3625.tar.gz nextcloud-server-ca03a26f150f957222aacc99bf5f60b0019b3625.zip |
- Added fix for empty 'FN' field on import via CardDAV clients.
- Make sure that the contact in the list has a display name.
- More tweaks on thumbnail caching.
-rw-r--r-- | apps/contacts/lib/vcard.php | 14 | ||||
-rw-r--r-- | apps/contacts/templates/part.contacts.php | 14 | ||||
-rw-r--r-- | apps/contacts/thumbnail.php | 4 |
3 files changed, 27 insertions, 5 deletions
diff --git a/apps/contacts/lib/vcard.php b/apps/contacts/lib/vcard.php index 04b59a040fb..c99d53c9716 100644 --- a/apps/contacts/lib/vcard.php +++ b/apps/contacts/lib/vcard.php @@ -159,15 +159,27 @@ class OC_Contacts_VCard{ */ public static function addFromDAVData($id,$uri,$data){ $fn = null; + $email = null; $card = OC_VObject::parse($data); if(!is_null($card)){ foreach($card->children as $property){ if($property->name == 'FN'){ $fn = $property->value; - break; + } + if($property->name == 'EMAIL' && is_null($email)){ + $email = $property->value; } } } + if(!$fn) { + if($email) { + $fn = $email; + } else { + $fn = 'Unknown'; + } + $card->addProperty('EMAIL', $email); + $data = $card->serialize(); + } $stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' ); $result = $stmt->execute(array($id,$fn,$data,$uri,time())); diff --git a/apps/contacts/templates/part.contacts.php b/apps/contacts/templates/part.contacts.php index 8d89e9c7ad1..7587670f974 100644 --- a/apps/contacts/templates/part.contacts.php +++ b/apps/contacts/templates/part.contacts.php @@ -1,3 +1,13 @@ -<?php foreach( $_['contacts'] as $contact ): ?> - <li book-id="<?php echo $contact['addressbookid']; ?>" data-id="<?php echo $contact['id']; ?>"><a href="index.php?id=<?php echo $contact['id']; ?>"><?php echo $contact['fullname']; ?></a> </li> +<?php foreach( $_['contacts'] as $contact ): + $display = trim($contact['fullname']); + if(!$display) { + $vcard = OC_Contacts_App::getContactVCard($contact['id']); + if(!is_null($vcard)) { + $struct = OC_Contacts_VCard::structureContact($vcard); + $display = isset($struct['EMAIL'][0])?$struct['EMAIL'][0]['value']:'[UNKNOWN]'; + } + } + echo '<!-- '.$display.' -->'; +?> + <li book-id="<?php echo $contact['addressbookid']; ?>" data-id="<?php echo $contact['id']; ?>"><a href="index.php?id=<?php echo $contact['id']; ?>"><?php echo $display; ?></a></li> <?php endforeach; ?> diff --git a/apps/contacts/thumbnail.php b/apps/contacts/thumbnail.php index f2b57014785..36d395171a9 100644 --- a/apps/contacts/thumbnail.php +++ b/apps/contacts/thumbnail.php @@ -22,8 +22,8 @@ // Init owncloud require_once('../../lib/base.php'); -//OC_JSON::checkLoggedIn(); -OC_Util::checkLoggedIn(); +OC_JSON::checkLoggedIn(); +//OC_Util::checkLoggedIn(); OC_Util::checkAppEnabled('contacts'); function getStandardImage(){ |