Esempio n. 1
0
 /**
  * @param $filter
  *
  * @return $this|self
  */
 public function addFilter(AbstractField $filter) : self
 {
     if (!$this->filtersForm) {
         $this->filtersForm = new Form();
         $this->filtersForm->setMethod('GET')->setName($this->stateId ? $this->stateId : 'grid')->setAction(self::request()->getUri()->get());
         $this->navbar->add($this->filtersForm);
     }
     if ($this->stateId) {
         $filter->setName($this->stateId . '_' . $filter->getName());
     }
     $this->filtersForm->add($filter);
     $this->filtersForm->setAction(Uri::parse($this->filtersForm->getAction())->removeQuery($filter->getName())->get());
     if ($filter->getLabel()) {
         $filter->getLabel()->addClass('sr-only');
     }
     return $this;
 }
Esempio n. 2
0
 /**
  * @param AbstractField|Group|Fieldset $element
  *
  * @return bool
  */
 private function getFieldValue($element) : bool
 {
     if (!($name = $element->getName())) {
         return false;
     }
     if (substr($name, -2) == '[]' && !$element instanceof MultipleValueInterface) {
         $currentName = substr($name, 0, -2);
         if (!isset($this->arrayNameIndex[$currentName])) {
             $this->arrayNameIndex[$currentName] = 0;
         } else {
             $this->arrayNameIndex[$currentName]++;
         }
         $name = $currentName . '[' . $this->arrayNameIndex[$currentName] . ']';
     }
     if ($element instanceof File) {
         $userInput = self::request()->getUploadedFile($name);
     } else {
         $userInput = self::request()->getArg($name);
     }
     $userInput = $userInput != '' ? $userInput : null;
     list($valid, $value, $typedValue) = $this->validateValue($element, $userInput);
     // We set values with type cast value if valid, else type cast, else user input
     $elementValue = $value ?? (isset($typedValue) ? $typedValue : $userInput);
     if (is_array($elementValue) && !$element instanceof MultipleValueInterface) {
         $elementValue = null;
     }
     $element->setValue($elementValue);
     $this->storeValue($name, $valid, $userInput, $elementValue);
     return true;
 }