/** * @param array $data * @param string $type */ protected static function resolveIsNullAndIsNotNullOperatorsToInclude(&$data, $type) { assert('is_array($data)'); assert('is_string($type)'); if ($type != self::AVAILABLE_OPERATORS_TYPE_DROPDOWN && $type != self::AVAILABLE_OPERATORS_TYPE_HAS_ONE) { $data[OperatorRules::TYPE_IS_NULL] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NULL); $data[OperatorRules::TYPE_IS_NOT_NULL] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NOT_NULL); } }
public static function resolveOperatorsToIncludeByType(&$data, $type) { if ($type == self::AVAILABLE_OPERATORS_TYPE_BOOLEAN) { $data[OperatorRules::TYPE_EQUALS] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_EQUALS); return; } if ($type == self::AVAILABLE_OPERATORS_TYPE_HAS_ONE) { $data[OperatorRules::TYPE_EQUALS] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_EQUALS); return; } parent::resolveOperatorsToIncludeByType($data, $type); }
/** * @return array * @throws NotSupportedException if the attributeIndexOrDerivedType has not been populated yet */ public function getOperatorValuesAndLabels() { if ($this->attributeIndexOrDerivedType == null) { throw new NotSupportedException(); } $type = $this->getAvailableOperatorsType(); $data = array(); ModelAttributeToWorkflowOperatorTypeUtil::resolveOperatorsToIncludeByType($data, $type); $data[OperatorRules::TYPE_DOES_NOT_CHANGE] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_DOES_NOT_CHANGE); if ($type != ModelAttributeToWorkflowOperatorTypeUtil::AVAILABLE_OPERATORS_TYPE_BOOLEAN && $type != ModelAttributeToWorkflowOperatorTypeUtil::AVAILABLE_OPERATORS_TYPE_HAS_ONE) { $data[OperatorRules::TYPE_IS_EMPTY] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_EMPTY); $data[OperatorRules::TYPE_IS_NOT_EMPTY] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NOT_EMPTY); } return $data; }
/** * @return array */ protected static function getOperatorsWhereSecondValueIsRequired() { return OperatorRules::getOperatorsWhereSecondValueIsRequired(); }
/** * @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; }
protected static function resolveIsNullAndIsNotNullOperatorsToInclude(&$data, $type) { $data[OperatorRules::TYPE_IS_NULL] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NULL); $data[OperatorRules::TYPE_IS_NOT_NULL] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NOT_NULL); }
/** * @return array * @throws NotSupportedException */ public function getDurationValuesAndLabels() { if ($this->attributeIndexOrDerivedType == null) { throw new NotSupportedException(); } $modelToWorkflowAdapter = $this->makeResolvedAttributeModelRelationsAndAttributesToWorkflowAdapter(); $type = $modelToWorkflowAdapter->getDisplayElementType($this->getResolvedAttribute()); $data = array(); if ($type == 'DateTime') { return $this->makeDurationValuesAndLabels(true, true, true, true); } elseif ($type == 'Date') { return $this->makeDurationValuesAndLabels(true, true, true, false); } else { return $this->makeDurationValuesAndLabels(true, false, false, true); } return $data; ModelAttributeToWorkflowOperatorTypeUtil::resolveOperatorsToIncludeByType($data, $type); $data[OperatorRules::TYPE_DOES_NOT_CHANGE] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_DOES_NOT_CHANGE); if ($type != ModelAttributeToWorkflowOperatorTypeUtil::AVAILABLE_OPERATORS_TYPE_BOOLEAN && $type != ModelAttributeToWorkflowOperatorTypeUtil::AVAILABLE_OPERATORS_TYPE_HAS_ONE) { $data[OperatorRules::TYPE_IS_EMPTY] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_EMPTY); $data[OperatorRules::TYPE_IS_NOT_EMPTY] = OperatorRules::getTranslatedTypeLabel(OperatorRules::TYPE_IS_NOT_EMPTY); } return $data; }