/** * @return array */ protected static function getOperatorsWhereValueIsRequired() { return OperatorRules::getOperatorsWhereValueIsRequired(); }
/** * @param bool $isTimeTrigger * @return string * @throws NotSupportedException if the valueElementType is null */ protected function getContentForTimeTriggerOrTrigger($isTimeTrigger = false) { $params = array('inputPrefix' => $this->inputPrefixData); $valueElementType = $this->model->getValueElementType(); if ($this->model->hasAvailableOperatorsType()) { $operatorElement = $this->resolveOperatorElementForMultiSelectDropDown($valueElementType, $params); $operatorElement->editableTemplate = '{content}{error}'; $operatorContent = $operatorElement->render(); } else { $operatorContent = null; } 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'); $valueElement->doNotHideSelectLinkWhenDisabled(); } if ($valueElement instanceof MixedNumberTypesElement) { $valueElement->editableTemplate = '<div class="value-data">{content}{error}</div>'; } elseif ($valueElement instanceof MixedDateTypesElement) { if ($isTimeTrigger) { $valueElement->editableTemplate = '<div class="dynamic-row-operator" style="display:none;">{valueType}</div>' . '<div class="value-data has-date-inputs">' . '<div class="first-value-area">{content}{error}</div></div>'; } else { $valueElement->editableTemplate = '<div class="dynamic-row-operator">{valueType}</div>' . '<div class="value-data has-date-inputs">' . '<div class="first-value-area">{content}{error}</div></div>'; } } else { $startingDivStyleFirstValue = null; if (!in_array($this->model->getOperator(), OperatorRules::getOperatorsWhereValueIsRequired()) && $this->model->getOperator() != null) { $startingDivStyleFirstValue = "display:none;"; $valueElement->params['disabled'] = 'disabled'; } $valueElement->editableTemplate = '<div class="value-data"><div class="first-value-area" style="' . $startingDivStyleFirstValue . '">{content}{error}</div></div>'; } $valueContent = $valueElement->render(); } else { throw new NotSupportedException(); } $content = $this->renderAttributeIndexOrDerivedType(); self::resolveDivWrapperForContent($this->model->getDisplayLabel(), $content, 'dynamic-row-label'); self::resolveDivWrapperForContent($operatorContent, $content, 'dynamic-row-operator'); $content .= $valueContent; return $content; }