CRM-16780 fix - Fatal Error on Relationship Edit page
authormonishdeb <monish.deb@webaccessglobal.com>
Wed, 1 Jul 2015 07:07:21 +0000 (12:37 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Wed, 1 Jul 2015 07:07:21 +0000 (12:37 +0530)
https://issues.civicrm.org/jira/browse/CRM-16780

CRM/Contact/Form/DedupeRules.php
CRM/Core/Form.php

index 6d487960f98eb25db3496dab46400bdf72a16079..4361c3ab475b62c84d6976697da7e45c8187c936 100644 (file)
@@ -115,8 +115,7 @@ class CRM_Contact_Form_DedupeRules extends CRM_Admin_Form {
     $disabled = array();
     $reserved = $this->addField('is_reserved', array('label' => ts('Reserved?')));
     if (!empty($this->_defaults['is_reserved'])) {
-      //$reserved->freeze();
-      $disabled = array('disabled' => TRUE);
+      $reserved->freeze();
     }
 
     $attributes = array('class' => 'two');
index c8aae927f7d21ca4545c237850beb7d2fcb131cc..b48697b57ea0ae9e92ed8e41c0469d5106e55722 100644 (file)
@@ -1259,6 +1259,7 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
    * @param bool $required
    * @throws \CiviCRM_API3_Exception
    * @throws \Exception
+   * @return HTML_QuickForm_Element
    */
   public function addField($name, $props = array(), $required = FALSE) {
     // TODO: Handle custom field
@@ -1361,25 +1362,25 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
       case 'Link':
         //TODO: Autodetect ranges
         $props['size'] = isset($props['size']) ? $props['size'] : 60;
-        $this->add('text', $name, $label, $props, $required);
+        return $this->add('text', $name, $label, $props, $required);
         break;
 
       case 'hidden':
-        $this->add('hidden', $name, NULL, $props, $required);
+        return $this->add('hidden', $name, NULL, $props, $required);
         break;
 
       case 'TextArea':
         //Set default columns and rows for textarea.
         $props['rows'] = isset($props['rows']) ? $props['rows'] : 4;
         $props['cols'] = isset($props['cols']) ? $props['cols'] : 60;
-        $this->addElement('textarea', $name, $label, $props, $required);
+        return $this->addElement('textarea', $name, $label, $props, $required);
         break;
 
       case 'Select Date':
         //TODO: add range support
         //TODO: Add date formats
         //TODO: Add javascript template for dates.
-        $this->addDate($name, $label, $required, $props);
+        return $this->addDate($name, $label, $required, $props);
         break;
 
       case 'Radio':
@@ -1388,30 +1389,30 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
         if (!isset($props['allowClear'])) {
           $props['allowClear'] = !$required;
         }
-        $this->addRadio($name, $label, $options, $props, $separator, $required);
+        return $this->addRadio($name, $label, $options, $props, $separator, $required);
         break;
 
       case 'Select':
         if (empty($props['multiple'])) {
           $options = array('' => $props['placeholder']) + $options;
         }
-        $this->add('select', $name, $label, $options, $required, $props);
+        return $this->add('select', $name, $label, $options, $required, $props);
         // TODO: Add and/or option for fields that store multiple values
         break;
 
       case 'CheckBoxGroup':
-        $this->addCheckBox($name, $label, array_flip($options), $required, $props);
+        return $this->addCheckBox($name, $label, array_flip($options), $required, $props);
         break;
 
       case 'RadioGroup':
-        $this->addRadio($name, $label, $options, $props, NULL, $required);
+        return $this->addRadio($name, $label, $options, $props, NULL, $required);
         break;
 
       //case 'AdvMulti-Select':
       case 'CheckBox':
         $text = isset($props['text']) ? $props['text'] : NULL;
         unset($props['text']);
-        $this->addElement('checkbox', $name, $label, $text, $props);
+        return $this->addElement('checkbox', $name, $label, $text, $props);
         break;
 
       case 'File':
@@ -1419,15 +1420,16 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
         if (isset($props['context']) && $props['context'] == 'search') {
           return;
         }
-        $this->add('file', $name, $label, $props, $required);
+        $file = $this->add('file', $name, $label, $props, $required);
         $this->addUploadElement($name);
+        return $file;
         break;
 
       //case 'RichTextEditor':
       //TODO: Add javascript template for wysiwyg.
       case 'Autocomplete-Select':
       case 'EntityRef':
-        $this->addEntityRef($name, $label, $props, $required);
+        return $this->addEntityRef($name, $label, $props, $required);
         break;
 
       // Check datatypes of fields