Пример #1
0
 private function renderFormFieldContent($renderApi, $unit)
 {
     $this->formSubmit = new \FormSubmit();
     $fieldId = 'field' . $unit->getId();
     $properties = $unit->getFormValues();
     $labelText = $properties["fieldLabel"];
     $listType = $properties["listType"];
     //select, checkbox, radio
     $postRequest = $this->getPostValue($unit);
     $choiceBox = new \ChoiceBox();
     if ($listType === \ListType::RADIO || $listType === \ListType::CHECKBOX) {
         $required = $renderApi->getFormValue($unit, 'enableRequired');
         $formField = $choiceBox->getRadioCheckbox($renderApi, $unit, $fieldId, $postRequest, $required);
     } elseif ($listType === \ListType::DROP_DOWN) {
         $formField = $choiceBox->getSelectField($renderApi, $unit, $fieldId, $postRequest);
     }
     $label = new \Label();
     $labelProperties = $label->getElementProperties();
     $labelProperties->addAttribute("for", $fieldId);
     $label->add(new \Span($labelText));
     if ($formField) {
         $elementProperties = $formField->getElementProperties();
         $wrapper = new \Container();
         $wrapper->add($label);
         $wrapper->add($formField);
         echo $wrapper->renderElement();
     }
     $renderApi->renderChildren($unit);
 }
Пример #2
0
 private function renderFormFieldContent($renderApi, $unit)
 {
     $this->formSubmit = new \FormSubmit();
     $fieldId = 'field' . $unit->getId();
     $properties = $unit->getFormValues();
     $labelText = $properties["fieldLabel"];
     $fieldType = $properties["textType"];
     //input,list,textarea
     $postRequest = $this->getPostValue($unit);
     if ($properties['type'] === \InputType::STRING && $fieldType !== FieldType::TEXTAREA || $properties['type'] === \InputType::EMAIL || $properties['type'] === \InputType::NUMERIC) {
         $formField = new \TextField();
         $elementProperties = $formField->getElementProperties();
         $elementProperties->setId($fieldId);
         $elementProperties->addAttribute("name", $fieldId);
         $elementProperties->addAttribute('value', $postRequest);
         if (isset($properties['type'])) {
             if ($properties['type'] === \InputType::EMAIL) {
                 $elementProperties->addAttribute("type", \InputType::EMAIL);
             }
             if ($properties['type'] === \InputType::NUMERIC) {
                 $elementProperties->addAttribute("type", \InputType::NUMERIC);
             }
         }
     } elseif ($fieldType === FieldType::TEXTAREA) {
         $formField = new \TextareaField();
         $elementProperties = $formField->getElementProperties();
         $elementProperties->setId($fieldId);
         $elementProperties->addAttribute("name", $fieldId);
         $formField->setContent($postRequest);
     }
     $label = new \Label();
     $labelProperties = $label->getElementProperties();
     $labelProperties->addAttribute("for", $fieldId);
     $label->add(new \Span($labelText));
     if ($formField) {
         $wrapper = new \Container();
         $wrapper->add($label);
         $wrapper->add($formField);
         $elementProperties = $formField->getElementProperties();
         if ($this->formSubmit->isValid($renderApi, $unit) && !$this->isValidValue($unit, $postRequest)) {
             $elementProperties->addClass('vf__error');
             $wrapper->add($this->getErrorMessage($unit, $postRequest));
         }
         $this->setRequiredField($renderApi, $unit, $elementProperties);
         $this->setPlaceholderText($renderApi, $unit, $elementProperties);
         echo $wrapper->renderElement();
     }
     $renderApi->renderChildren($unit);
 }
Пример #3
0
 public function getRadioCheckbox($renderApi, $unit, $fieldId, $postRequestValue = null, $required = false)
 {
     $formField = new \Fieldset();
     $listOptions = $this->listOptions->getListOptions($renderApi, $unit);
     $inputName = strlen($renderApi->getFormValue($unit, 'inputName')) > 0 ? $renderApi->getFormValue($unit, 'inputName') . "[]" : $fieldId . "[]";
     if ($listOptions->hasOptions()) {
         $optionCount = 0;
         $options = $listOptions->getOptions();
         $optionsLength = count($options);
         foreach ($options as $option) {
             /* @var $option \Option */
             $properties = $unit->getFormValues();
             if ($properties["listType"] === \ListType::RADIO) {
                 $choiceField = new \RadioButtonField();
             } elseif ($properties["listType"] === \ListType::CHECKBOX) {
                 $choiceField = new \CheckboxField();
             }
             $optionId = $fieldId . '_' . $optionCount;
             $elementProperties = $choiceField->getElementProperties();
             $elementProperties->addAttribute("value", $option->getValue());
             $elementProperties->addAttribute("name", $inputName);
             $elementProperties->addAttribute("id", $optionId);
             // set required attribute for radio options or when there is only one checkbox
             // don't set for multiple checkboxes to match server-side validation logic
             if ($required && ($properties["listType"] === \ListType::RADIO || $optionsLength === 1)) {
                 $elementProperties->addAttribute("required", null);
             }
             $request = new Request();
             $request->isPostRequest();
             if (!$request->isPostRequest() && $option->isChecked() || !is_null($postRequestValue) && in_array($option->getValue(), $postRequestValue)) {
                 $elementProperties->addAttribute("checked", null);
             }
             $label = new \Label();
             $label->add($choiceField);
             $label->add(new \Span($option->getName()));
             $labelProperties = $label->getElementProperties();
             $labelProperties->addAttribute("for", $optionId);
             $formField->add($label);
             $optionCount++;
         }
     }
     if ($this->formSubmit->isValid($renderApi, $unit) && !$this->isValidValue($unit, $postRequestValue)) {
         $formField->add($this->getErrorMessage($unit, $postRequestValue));
         $formField->getElementProperties()->addClass('vf__error');
     }
     return $formField;
 }