public function dtgCustomField_CustomFieldQtypeId_Render(CustomField $objCustomField) { if (!is_null($objCustomField->CustomFieldQtypeId)) { return CustomFieldQtype::ToString($objCustomField->CustomFieldQtypeId); } else { return null; } }
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)); } }
/** * 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; }