From 426ed27be2dc5df34cc036cc87337837288156ec Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 20 Jun 2012 20:57:34 +0200 Subject: [PATCH] Make sure address books are shown even if empty. --- apps/contacts/ajax/contacts.php | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/apps/contacts/ajax/contacts.php b/apps/contacts/ajax/contacts.php index bf4d5deb2e..16730ec947 100644 --- a/apps/contacts/ajax/contacts.php +++ b/apps/contacts/ajax/contacts.php @@ -17,14 +17,25 @@ function cmp($a, $b) OCP\JSON::checkLoggedIn(); OCP\JSON::checkAppEnabled('contacts'); -$ids = OC_Contacts_Addressbook::activeIds(OCP\USER::getUser()); -$contacts_alphabet = OC_Contacts_VCard::all($ids); $active_addressbooks = OC_Contacts_Addressbook::active(OCP\USER::getUser()); +error_log('active_addressbooks: '.print_r($active_addressbooks, true)); + +$contacts_addressbook = array(); +$ids = array(); +foreach($active_addressbooks as $addressbook) { + $ids[] = $addressbook['id']; + if(!isset($contacts_addressbook[$addressbook['id']])) { + $contacts_addressbook[$addressbook['id']] = array('contacts' => array()); + $contacts_addressbook[$addressbook['id']]['displayname'] = $addressbook['displayname']; + } +} +error_log('ids: '.print_r($ids, true)); +$contacts_alphabet = OC_Contacts_VCard::all($ids); +error_log('contacts_alphabet: '.print_r($contacts_alphabet, true)); // Our new array for the contacts sorted by addressbook -$contacts_addressbook = array(); foreach($contacts_alphabet as $contact) { - if(!isset($contacts_addressbook[$contact['addressbookid']])) { + if(!isset($contacts_addressbook[$contact['addressbookid']])) { // It should never execute. $contacts_addressbook[$contact['addressbookid']] = array('contacts' => array()); } $display = trim($contact['fullname']); @@ -38,14 +49,6 @@ foreach($contacts_alphabet as $contact) { $contacts_addressbook[$contact['addressbookid']]['contacts'][] = array('id' => $contact['id'], 'addressbookid' => $contact['addressbookid'], 'displayname' => htmlspecialchars($display)); } -foreach($contacts_addressbook as $addressbook_id => $contacts) { - foreach($active_addressbooks as $addressbook) { - if($addressbook_id == $addressbook['id']) { - $contacts_addressbook[$addressbook_id]['displayname'] = $addressbook['displayname']; - } - } -} - uasort($contacts_addressbook, 'cmp'); $tmpl = new OCP\Template("contacts", "part.contacts");