X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FAdmin%2FForm%2FRelationshipType.php;h=fde8d4c3b3d4b0bba4910d9662ad130e6b80c9bd;hb=f1195cae6d39dfe0dfa53a424add819afa0dca52;hp=387905615ceef991482bc44fe458ccaafd5d32ad;hpb=3832b5e0e60c787c89e91cfdd471fe5bf1ca8b35;p=civicrm-core.git diff --git a/CRM/Admin/Form/RelationshipType.php b/CRM/Admin/Form/RelationshipType.php index 387905615c..fde8d4c3b3 100644 --- a/CRM/Admin/Form/RelationshipType.php +++ b/CRM/Admin/Form/RelationshipType.php @@ -50,6 +50,8 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form { * - help (option) add help to the field - e.g ['id' => 'id-source', 'file' => 'CRM/Contact/Form/Contact']] * - template - use a field specific template to render this field * - required + * - is_freeze (field should be frozen). + * * @var array */ protected $entityFields = []; @@ -102,6 +104,8 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form { * Build the form object. */ public function buildQuickForm() { + $isReserved = ($this->_id && CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', $this->_id, 'is_reserved')); + $this->entityFields['is_active']['is_freeze'] = $isReserved; self::buildQuickEntityForm(); if ($this->_action & CRM_Core_Action::DELETE) { @@ -116,25 +120,14 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form { ); $contactTypes = CRM_Contact_BAO_ContactType::getSelectElements(FALSE, TRUE, '__'); - - // add select for contact type - $this->add('select', 'contact_types_a', ts('Contact Type A') . ' ', - array( - '' => ts('All Contacts'), - ) + $contactTypes - ); - $this->add('select', 'contact_types_b', ts('Contact Type B') . ' ', - array( - '' => ts('All Contacts'), - ) + $contactTypes - ); - - //only selected field should be allow for edit, CRM-4888 - if ($this->_id && - CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', $this->_id, 'is_reserved') - ) { - foreach (array('contactTypeA', 'contactTypeB', 'isActive') as $field) { - $$field->freeze(); + foreach (['contact_types_a' => ts('Contact Type A'), 'contact_types_b' => ts('Contact Type B')] as $name => $label) { + $element = $this->add('select', $name, $label . ' ', + array( + '' => ts('All Contacts'), + ) + $contactTypes + ); + if ($isReserved) { + $element->freeze(); } }