/** * Updates a contact's details in the DB according to the * values passed via AJAX * @global object $USER Moodle user object (session persistent) * @param int $addressbookId ID of addressbook to update * @param int $contactId ID of contact to update * @param string $contactFirstName Contact's first name * @param string $contactLastName Contact's last name * @param string $contactCompany Contact's employer * @param string $contactPhoneNumber Contact's phone number * @return string JSON-encoded response to request * @throws MoodletxtAJAXException * @version 2012061801 * @since 2012090501 */ private function updateContact($addressbookId, $contactId, $contactFirstName, $contactLastName, $contactCompany, $contactPhoneNumber) { global $USER; // Check that user owns DB if (!$this->addressbookDAO->checkAddressbookOwnership($addressbookId, $USER->id)) { throw new MoodletxtAJAXException(get_string('errorbooknotowned', 'block_moodletxt'), MoodletxtAJAXException::$ERROR_NOT_ADDRESSBOOK_OWNER, null, false); } // Get record from DB and update it try { $contact = $this->addressbookDAO->getAddressbookContactById($addressbookId, $contactId); $contact->setFirstName($contactFirstName); $contact->setLastName($contactLastName); $contact->setCompanyName($contactCompany); $contact->setRecipientNumber(new MoodletxtPhoneNumber($contactPhoneNumber)); $this->addressbookDAO->saveContact($contact); } catch (InvalidArgumentException $ex) { throw new MoodletxtAJAXException(get_string('errorbadcontactid', 'block_moodletxt'), MoodletxtAJAXException::$ERROR_CODE_BAD_CONTACT_ID, null, false); } return $this->buildResponse($contact); }
foreach ($contactList as $contact) { $customFormData['potentialContacts'][$contact->getContactId()] = $contact->getFullNameForDisplay(); } } } // POST PROCESSING FOR EDIT FORM $editForm = new MoodletxtGroupEditForm(null, $customFormData); $editData = $editForm->get_data(); if ($editData != null) { $editData = $editForm->cleanupFormData($editData); $groupObject = $addressbookDAO->getAddressbookGroupById($addressbook->getId(), $editData->editExistingGroup); if ($groupObject != null) { // Make sure collection is initialised, but empty $groupObject->setContacts(array()); foreach ($editData->editGroupMembers as $contactId) { $groupObject->addContact($addressbookDAO->getAddressbookContactById($addressbook->getId(), $contactId)); } $addressbookDAO->saveGroup($groupObject); $editForm->clearSubmittedValues(); $notifications .= $output->notification(get_string('notifygroupupdated', 'block_moodletxt'), 'notifysuccess'); } } // Populate group-contact associations // after all updates are complete $groupAssociationList = $addressbookDAO->getAddressbookGroupsForUser($USER->id, $addressbook->getId(), true); foreach ($groupAssociationList as $group) { // Populate JS with contact IDs for each group if ($group->hasContacts()) { $contactIds = array(); foreach ($group->getContacts() as $contact) { array_push($contactIds, $contact->getContactId());