function browse() { CRM_Core_Resources::singleton()->addScriptFile('civicrm', 'js/crm.livePage.js'); $statusTypes = array(); $dao = new CRM_Event_DAO_ParticipantStatusType(); $dao->orderBy('weight'); $dao->find(); $visibilities = CRM_Core_PseudoConstant::visibility(); // these statuses are reserved, but disabled by default - so should be disablable after being enabled $disablable = array('On waitlist', 'Awaiting approval', 'Pending from waitlist', 'Pending from approval', 'Rejected'); while ($dao->fetch()) { CRM_Core_DAO::storeValues($dao, $statusTypes[$dao->id]); $action = array_sum(array_keys($this->links())); if ($dao->is_reserved) { $action -= CRM_Core_Action::DELETE; if (!in_array($dao->name, $disablable)) { $action -= CRM_Core_Action::DISABLE; } } $action -= $dao->is_active ? CRM_Core_Action::ENABLE : CRM_Core_Action::DISABLE; $statusTypes[$dao->id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $dao->id), ts('more'), FALSE, 'participantStatusType.manage.action', 'ParticipantStatusType', $dao->id); $statusTypes[$dao->id]['visibility'] = $visibilities[$dao->visibility_id]; } $this->assign('rows', $statusTypes); }
static function retrieve(&$params, &$defaults) { $result = null; $dao = new CRM_Event_DAO_ParticipantStatusType(); $dao->copyValues($params); if ($dao->find(true)) { CRM_Core_DAO::storeValues($dao, $defaults); $result = $dao; } return $result; }