/** * Override to handle the form layout for this view. * @param $form If the layout is editable, then pass a $form otherwise it can * be null. * @return A string containing the element's content. */ protected function renderFormLayout($form = null) { assert('$form instanceof ZurmoActiveForm'); $fileUploadElement = new ImportFileUploadElement($this->model, null, $form); $fileUploadElement->editableTemplate = '{label}{content}'; $firstRowIsHeaderElement = new CheckBoxElement($this->model, 'firstRowIsHeaderRow', $form); $firstRowIsHeaderElement->editableTemplate = '{content}{label}'; $content = $form->errorSummary($this->model); $content .= '<table class="form-fields">'; $content .= '<tbody>'; $content .= $fileUploadElement->render(); $content .= '<tr><td>'; $content .= $firstRowIsHeaderElement->render(); $content .= '</td></tr>'; $content .= '</tbody>'; $content .= '</table>'; return $content; }
/** * @return string */ protected function renderFormContent() { $leftSideContent = null; $element = new TextElement($this->model, 'name', $this->form); $element->editableTemplate = '<th>{label}<span class="required">*</span></th><td colspan="{colspan}">{content}{error}</td>'; $leftSideContent = '<table class="form-fields"><colgroup><col class="col-0"><col class="col-1">' . '</colgroup><tr>' . $element->render() . '</tr>'; $element = new TextAreaElement($this->model, 'description', $this->form, array('rows' => 5)); $leftSideContent .= '<tr>' . $element->render() . '</tr>'; $element = new TriggerOnStaticDropDownElement($this->model, 'triggerOn', $this->form); $leftSideContent .= '<tr>' . $element->render() . '</tr>'; $element = new CheckBoxElement($this->model, 'isActive', $this->form); $leftSideContent .= '<tr>' . $element->render() . '</tr>'; $leftSideContent .= '</table>'; $leftSideContent = ZurmoHtml::tag('div', array('class' => 'panel'), $leftSideContent); $content = '<div class="attributesContainer">'; $content .= $leftSideContent; $content .= '</div>'; return $content; }
/** * @return string * @throws NotSupportedException if the valueElementType is null */ protected function getContentForFilter() { $params = array('inputPrefix' => $this->inputPrefixData); if ($this->model->hasAvailableOperatorsType() && count($this->model->getOperatorValuesAndLabels()) > 1) { $operatorElement = new OperatorStaticDropDownElement($this->model, 'operator', $this->form, $params); $operatorElement->editableTemplate = '{content}{error}'; $operatorContent = $operatorElement->render(); } else { $operatorContent = null; } $valueElementType = $this->model->getValueElementType(); if ($valueElementType != null) { $valueElementClassName = $valueElementType . 'Element'; $valueElement = new $valueElementClassName($this->model, 'value', $this->form, $params); if ($valueElement instanceof NameIdElement) { $valueElement->setIdAttributeId('value'); $valueElement->setNameAttributeName('stringifiedModelForValue'); } if ($valueElement instanceof MixedNumberTypesElement) { $valueElement->editableTemplate = '<div class="value-data two-value-areas">{content}{error}</div>'; } elseif ($valueElement instanceof MixedDateTypesElement) { $valueElement->editableTemplate = '<div class="dynamic-row-operator">{valueType}</div>' . '<div class="value-data one-value-area has-date-inputs">' . '<div class="first-value-area one-value-area">{content}{error}</div></div>'; } else { $startingDivStyleFirstValue = null; if (in_array($this->model->getOperator(), array(OperatorRules::TYPE_IS_NULL, OperatorRules::TYPE_IS_NOT_NULL, OperatorRules::TYPE_IS_EMPTY, OperatorRules::TYPE_IS_NOT_EMPTY))) { $startingDivStyleFirstValue = "display:none;"; $valueElement->params['disabled'] = 'disabled'; } $valueElement->editableTemplate = '<div class="value-data one-value-area"><div class="first-value-area" style="' . $startingDivStyleFirstValue . '">{content}{error}</div></div>'; } $valueContent = $valueElement->render(); } else { throw new NotSupportedException(); } $content = $this->renderAttributeIndexOrDerivedType(); $content .= $this->renderHiddenOperator(); self::resolveDivWrapperForContent($this->model->getDisplayLabel(), $content, 'dynamic-row-label'); self::resolveDivWrapperForContent($operatorContent, $content, 'dynamic-row-operator'); $content .= $valueContent; if ($this->showAvailableRuntimeFilter) { $runTimeElement = new CheckBoxElement($this->model, 'availableAtRunTime', $this->form, $params); $runTimeElement->editableTemplate = '{label}{content}{error}'; $runTimeContent = $runTimeElement->render(); self::resolveDivWrapperForContent($runTimeContent, $content, 'report-runtime-availability'); } return $content; }
/** * @param $webFormAttributeForm * @param $model * @param $attributeName * @param $attributeData * @return array */ public static function resolvePlacedAttributeByName($webFormAttributeForm, $model, $attributeName, $attributeData) { $webFormAttributeForm->attribute = $attributeName; $params = array('inputPrefix' => array(get_class($webFormAttributeForm), $attributeName)); if ($attributeData['isRequired']) { $webFormAttributeForm->required = true; $isRequiredChecked = 'checked'; $isRequiredDisabled = 'disabled'; $removePlacedAttributeLink = null; } else { if (isset($webFormAttributeForm->required) && $webFormAttributeForm->required == true) { $isRequiredChecked = 'checked'; $isRequiredDisabled = null; } else { $isRequiredChecked = 'checked'; $isRequiredDisabled = null; } $removePlacedAttributeLink = '<a class="remove-dynamic-row-link" id="ContactWebForm_serializedData_' . $attributeName . '" data-value="' . $attributeName . '"' . ' data-label="' . $attributeData['attributeLabel'] . '" href="#">—</a>'; } if (isset($webFormAttributeForm->hidden) && $webFormAttributeForm->hidden == true) { $isHiddenChecked = 'checked'; $hideHiddenAttributeElementStyle = 'display:block;'; } else { $isHiddenChecked = ''; $hideHiddenAttributeElementStyle = 'display:none;'; } $attributeLabelElement = new TextElement($webFormAttributeForm, 'label', $model, $params); $isRequiredElement = new CheckBoxElement($webFormAttributeForm, 'required', $model, array_merge($params, array('checked' => $isRequiredChecked, 'disabled' => $isRequiredDisabled))); if (!in_array($attributeData['elementType'], static::$restrictHiddenControlAttributes)) { $isHiddenElement = new DerivedCheckBoxElement($webFormAttributeForm, 'hidden', $model, array_merge($params, array('checked' => $isHiddenChecked), array('htmlOptions' => array('class' => 'hiddenAttribute', 'data-value' => $attributeName)))); $isHiddenElement->editableTemplate = '{content}{label}{error}'; $renderHiddenAttributeElement = static::renderHiddenAttributeElement($webFormAttributeForm, 'hiddenValue', $model, $attributeData['elementType'], $params); $isHiddenElementContent = $isHiddenElement->render(); } else { $isHiddenElementContent = null; $renderHiddenAttributeElement = null; } $attributeLabelElement->editableTemplate = '{content}{error}'; $isRequiredElement->editableTemplate = '{content}{label}{error}'; return array('{attributeName}' => $attributeName, '{attributeLabelElement}' => $attributeLabelElement->render(), '{isRequiredElement}' => $isRequiredElement->render(), '{isHiddenElement}' => $isHiddenElementContent, '{renderHiddenAttributeElement}' => $renderHiddenAttributeElement, '{removePlacedAttributeLink}' => $removePlacedAttributeLink, '{hideHiddenAttributeElementStyle}' => $hideHiddenAttributeElementStyle); }