3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
17 class CRM_Admin_Form_ParticipantStatusType
extends CRM_Admin_Form
{
20 * Explicitly declare the entity api name.
22 public function getDefaultEntity() {
23 return 'ParticipantStatusType';
29 public function buildQuickForm() {
30 parent
::buildQuickForm();
32 if ($this->_action
& CRM_Core_Action
::DELETE
) {
38 $this->applyFilter('__ALL__', 'trim');
40 $attributes = CRM_Core_DAO
::getAttribute('CRM_Event_DAO_ParticipantStatusType');
42 $this->add('text', 'name', ts('Name'), NULL, TRUE);
44 $this->add('text', 'label', ts('Label'), $attributes['label'], TRUE);
46 $this->addSelect('class', ['required' => TRUE]);
48 $this->add('checkbox', 'is_active', ts('Active?'));
49 $this->add('checkbox', 'is_counted', ts('Counted?'));
51 $this->add('number', 'weight', ts('Order'), $attributes['weight'], TRUE);
53 $this->addSelect('visibility_id', ['label' => ts('Visibility'), 'required' => TRUE]);
55 $this->assign('id', $this->_id
);
63 public function setDefaultValues() {
64 $defaults = parent
::setDefaultValues();
65 if (empty($defaults['weight'])) {
66 $defaults['weight'] = CRM_Utils_Weight
::getDefaultWeight('CRM_Event_DAO_ParticipantStatusType');
68 $this->_isReserved
= CRM_Utils_Array
::value('is_reserved', $defaults);
69 if ($this->_isReserved
) {
70 $this->freeze(['name', 'class', 'is_active']);
75 public function postProcess() {
76 if ($this->_action
& CRM_Core_Action
::DELETE
) {
77 if (CRM_Event_BAO_ParticipantStatusType
::deleteParticipantStatusType($this->_id
)) {
78 CRM_Core_Session
::setStatus(ts('Selected participant status has been deleted.'), ts('Record Deleted'), 'success');
81 CRM_Core_Session
::setStatus(ts('Selected participant status has <strong>NOT</strong> been deleted; there are still participants with this status.'), ts('Sorry'), 'error');
86 $formValues = $this->controller
->exportValues($this->_name
);
89 'name' => CRM_Utils_Array
::value('name', $formValues),
90 'label' => CRM_Utils_Array
::value('label', $formValues),
91 'class' => CRM_Utils_Array
::value('class', $formValues),
92 'is_active' => CRM_Utils_Array
::value('is_active', $formValues, FALSE),
93 'is_counted' => CRM_Utils_Array
::value('is_counted', $formValues, FALSE),
94 'weight' => CRM_Utils_Array
::value('weight', $formValues),
95 'visibility_id' => CRM_Utils_Array
::value('visibility_id', $formValues),
98 // make sure a malicious POST does not change these on reserved statuses
99 if ($this->_isReserved
) {
100 unset($params['name'], $params['class'], $params['is_active']);
103 if ($this->_action
& CRM_Core_Action
::UPDATE
) {
105 $params['id'] = $this->_id
;
110 $oldWeight = CRM_Core_DAO
::getFieldValue('CRM_Event_DAO_ParticipantStatusType', $this->_id
, 'weight', 'id');
115 $params['weight'] = CRM_Utils_Weight
::updateOtherWeights('CRM_Event_DAO_ParticipantStatusType', $oldWeight, $params['weight']);
117 $participantStatus = CRM_Event_BAO_ParticipantStatusType
::create($params);
119 if ($participantStatus->id
) {
120 if ($this->_action
& CRM_Core_Action
::UPDATE
) {
121 CRM_Core_Session
::setStatus(ts('The Participant Status has been updated.'), ts('Saved'), 'success');
124 CRM_Core_Session
::setStatus(ts('The new Participant Status has been saved.'), ts('Saved'), 'success');
128 CRM_Core_Session
::setStatus(ts('The changes have not been saved.'), ts('Saved'), 'success');