public function dtgCustomField_CustomFieldQtypeId_Render(CustomField $objCustomField)
 {
     if (!is_null($objCustomField->CustomFieldQtypeId)) {
         return CustomFieldQtype::ToString($objCustomField->CustomFieldQtypeId);
     } else {
         return null;
     }
 }
Example #2
0
 protected function lblCustomFieldQtype_Create()
 {
     $this->lblCustomFieldQtype = new QLabel($this);
     $this->lblCustomFieldQtype->Name = 'Field Type';
     if (!$this->blnEditMode) {
         $this->lblCustomFieldQtype->Visible = false;
     } else {
         $this->lblCustomFieldQtype->Text = ucfirst(CustomFieldQtype::ToString($this->objCustomField->CustomFieldQtypeId));
     }
 }
Example #3
0
 /**
  * Creates the custom field controls while looping through an array of CustomField objects
  *
  * @param array $objCustomFieldArray of CustomField objects
  * @param bool $blnEditMode if creating a new entity or editing an existing one
  * @param QForm $objForm e.g., AssetEditForm
  * @return array $arrCustomFields of labels and inputs for all custom field controls
  */
 public static function CustomFieldControlsCreate($objCustomFieldArray, $blnEditMode, $objForm, $blnLabels = true, $blnInputs = true, $blnSearch = false)
 {
     $arrCustomFields = array();
     for ($i = 0; $i < count($objCustomFieldArray); $i++) {
         if ($blnLabels) {
             // Create Label for each custom field
             if (CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) == 'text area') {
                 $arrCustomFields[$i]['lbl'] = new QPanel($objForm);
                 if ($blnEditMode) {
                     $arrCustomFields[$i]['lbl']->CssClass = 'scrollBox';
                 }
             } else {
                 $arrCustomFields[$i]['lbl'] = new QLabel($objForm);
             }
             $arrCustomFields[$i]['lbl']->Name = $objCustomFieldArray[$i]->ShortDescription;
             if ($blnEditMode && $objCustomFieldArray[$i]->CustomFieldSelection && $objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValue && $objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValue->ShortDescription != null) {
                 $arrCustomFields[$i]['lbl']->Text = nl2br($objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValue->ShortDescription);
             } elseif ($blnEditMode && (!$objCustomFieldArray[$i]->CustomFieldSelection || empty($objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValue->ShortDescription) && $objCustomFieldArray[$i]->CustomFieldQtypeId == 2)) {
                 $arrCustomFields[$i]['lbl']->Text = 'None';
             }
         }
         if ($blnInputs) {
             // Create input for each custom field (either text or list)
             // Create text inputs
             if (CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) == 'text' || CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) == 'text area') {
                 $arrCustomFields[$i]['input'] = new QTextBox($objForm, $blnSearch ? null : "cf" . $objCustomFieldArray[$i]->CustomFieldId);
                 $arrCustomFields[$i]['input']->Name = $objCustomFieldArray[$i]->ShortDescription;
                 $arrCustomFields[$i]['input']->Required = false;
                 $arrCustomFields[$i]['input']->CausesValidation = true;
                 if (CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) == 'text area' && !$blnSearch) {
                     $arrCustomFields[$i]['input']->TextMode = QTextMode::MultiLine;
                 }
                 // This is so that the browser doesn't form.submit() when the user presses the enter key on a text input
                 if (!$blnSearch && CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) != 'text area') {
                     if ($objForm instanceof QControl) {
                         $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QAjaxControlAction($objForm, 'btnSave_Click'));
                     } else {
                         $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QAjaxAction('btnSave_Click'));
                     }
                     $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QTerminateAction());
                 } elseif ($blnSearch) {
                     if ($objForm instanceof QControl) {
                         $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QServerControlAction($objForm, 'btnSearch_Click'));
                     } else {
                         $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QServerAction('btnSearch_Click'));
                     }
                     $arrCustomFields[$i]['input']->AddAction(new QEnterKeyEvent(), new QTerminateAction());
                 }
                 if ($blnEditMode && $objCustomFieldArray[$i]->CustomFieldSelection) {
                     $arrCustomFields[$i]['input']->Text = $objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValue->ShortDescription;
                 } elseif (!$blnEditMode && !$blnSearch && $objCustomFieldArray[$i]->RequiredFlag && $objCustomFieldArray[$i]->DefaultCustomFieldValueId) {
                     $arrCustomFields[$i]['input']->Text = $objCustomFieldArray[$i]->DefaultCustomFieldValue->ShortDescription;
                 }
             } elseif (CustomFieldQtype::ToString($objCustomFieldArray[$i]->CustomFieldQtypeId) == 'select') {
                 $arrCustomFields[$i]['input'] = new QListBox($objForm, $blnSearch ? null : "cf" . $objCustomFieldArray[$i]->CustomFieldId);
                 $arrCustomFields[$i]['input']->Name = $objCustomFieldArray[$i]->ShortDescription;
                 $arrCustomFields[$i]['input']->Required = false;
                 $objCustomFieldValueArray = CustomFieldValue::LoadArrayByCustomFieldId($objCustomFieldArray[$i]->CustomFieldId, QQ::Clause(QQ::OrderBy(QQN::CustomFieldValue()->ShortDescription)));
                 if ($objCustomFieldValueArray) {
                     // The - Select One - item cannot be removed without also updating CustomField::UpdateControls()
                     $arrCustomFields[$i]['input']->AddItem('- Select One -', null);
                     foreach ($objCustomFieldValueArray as $objCustomFieldValue) {
                         $objListItem = new QListItem($objCustomFieldValue->__toString(), $objCustomFieldValue->CustomFieldValueId);
                         if ($blnEditMode && $objCustomFieldArray[$i]->CustomFieldSelection && $objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldValueId == $objCustomFieldValue->CustomFieldValueId) {
                             $objListItem->Selected = true;
                         } elseif (!$blnEditMode && !$blnSearch && $objCustomFieldArray[$i]->RequiredFlag && $objCustomFieldArray[$i]->DefaultCustomFieldValueId && $objCustomFieldArray[$i]->DefaultCustomFieldValueId == $objCustomFieldValue->CustomFieldValueId) {
                             $objListItem->Selected = true;
                         }
                         $arrCustomFields[$i]['input']->AddItem($objListItem);
                     }
                 }
             }
             if ($objCustomFieldArray[$i]->RequiredFlag && !$blnSearch) {
                 $arrCustomFields[$i]['input']->Required = true;
             }
         }
         // Set reference IDs for btnSave_Click() for each custom field
         $arrCustomFields[$i]['CustomFieldId'] = $objCustomFieldArray[$i]->CustomFieldId;
         if ($blnEditMode && $objCustomFieldArray[$i]->CustomFieldSelection) {
             $arrCustomFields[$i]['CustomFieldSelectionId'] = $objCustomFieldArray[$i]->CustomFieldSelection->CustomFieldSelectionId;
         }
         //Set an RoleEntityQtypeCustomFieldAuthorization object of View Authorization and for Edit Authorization for each custom field
         $arrCustomFields[$i]['ViewAuth'] = $objCustomFieldArray[$i]->objRoleAuthView;
         $arrCustomFields[$i]['EditAuth'] = $objCustomFieldArray[$i]->objRoleAuthEdit;
         // Set all reference booleans for display logic
         //set if the custom field must show or not
         if ($objCustomFieldArray[$i]->objRoleAuthView && $objCustomFieldArray[$i]->objRoleAuthView->AuthorizedFlag || !$objCustomFieldArray[$i]->objRoleAuthView) {
             $arrCustomFields[$i]['blnView'] = true;
         } else {
             $arrCustomFields[$i]['blnView'] = false;
         }
         // set if the custom field is editable or not
         if ($objCustomFieldArray[$i]->objRoleAuthEdit && $objCustomFieldArray[$i]->objRoleAuthEdit->AuthorizedFlag || !$objCustomFieldArray[$i]->objRoleAuthEdit) {
             $arrCustomFields[$i]['blnEdit'] = true;
         } else {
             $arrCustomFields[$i]['blnEdit'] = false;
         }
         //set if the custom field is requiered or not
         if ($objCustomFieldArray[$i]->objRoleAuthEdit && $objCustomFieldArray[$i]->objRoleAuthEdit->EntityQtypeCustomField->CustomField->RequiredFlag) {
             $arrCustomFields[$i]['blnRequired'] = true;
         } else {
             $arrCustomFields[$i]['blnRequired'] = false;
         }
     }
     return $arrCustomFields;
 }