aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2012-01-19 19:47:09 +0100
committerThomas Tanghus <thomas@tanghus.net>2012-01-19 19:47:09 +0100
commitca03a26f150f957222aacc99bf5f60b0019b3625 (patch)
tree2f96ac2b2a0979f0939c61dbee1ce3d710fd0abd
parent137c63037704f85ebcba4ce4725750fd68a23c22 (diff)
downloadnextcloud-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.php14
-rw-r--r--apps/contacts/templates/part.contacts.php14
-rw-r--r--apps/contacts/thumbnail.php4
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(){