diff --git a/application/forms/AssignListSubForm.php b/application/forms/AssignListSubForm.php new file mode 100644 index 00000000..602f08c0 --- /dev/null +++ b/application/forms/AssignListSubForm.php @@ -0,0 +1,66 @@ +object = $object; + return $this; + } + + public function setValue($value) + { + var_dump($value); + } + + public function setup() + { + $idx = -1; + + if ($this->object && $this->object->isApplyRule()) { +// $this->setElementValue('assignlist', $object->assignments()->getFormValues()); + foreach ($this->object->assignments()->getFormValues() as $values) { + $idx++; + $sub = new AssignmentSubForm(); + $sub->setup(); + $sub->populate($values); + $this->addSubForm($sub, $idx); + } + } + + $idx++; + $sub = new AssignmentSubForm(); + $sub->setup(); + $this->addSubForm($sub, $idx); + $this->addElement('submit', 'addmore', array( + 'label' => $this->translate('Add more'), + 'class' => 'link-button icon-plus', + 'ignore' => true, + )); + $this->getElement('addmore')->setDecorators(array('ViewHelper')); + } + + public function loadDefaultDecorators() + { + $this->setDecorators(array( + 'FormElements', + array('HtmlTag', array( + 'tag' => 'ul', + 'class' => 'assign-rule' + )), + array('Fieldset', array( + 'legend' => 'Assignment rules', + )), + )); + + return $this; + } +} diff --git a/application/forms/AssignmentSubForm.php b/application/forms/AssignmentSubForm.php new file mode 100644 index 00000000..59c5570e --- /dev/null +++ b/application/forms/AssignmentSubForm.php @@ -0,0 +1,75 @@ +addElement('select', 'assign_type', array( + 'multiOptions' => array( + 'assign' => 'assign where', + 'ignore' => 'ignore where', + ), + 'class' => 'assign-type', + 'value' => 'assign' + )); + $this->addElement('select', 'property', array( + 'label' => $this->translate('Property'), + 'class' => 'assign-property autosubmit', + 'multiOptions' => $this->optionalEnum(IcingaHost::enumProperties($this->db)) + )); + $this->addElement('select', 'operator', array( + 'label' => $this->translate('Operator'), + 'multiOptions' => array( + '=' => '=', + '!=' => '!=', + '>' => '>', + '>=' => '>=', + '<=' => '<=', + '<' => '<', + ), + 'required' => $this->valueIsEmpty($this->getValue('property')), + 'value' => '=', + 'class' => 'assign-operator', + )); + + $this->addElement('text', 'expression', array( + 'label' => $this->translate('Expression'), + 'placeholder' => $this->translate('Expression'), + 'class' => 'assign-expression', + 'required' => !$this->valueIsEmpty($this->getValue('property')) + )); +/* + $this->addElement('submit', 'remove', array( + 'label' => '-', + 'ignore' => true + )); + $this->addElement('submit', 'add', array( + 'label' => '+', + 'ignore' => true + )); +*/ + foreach ($this->getElements() as $el) { + $el->setDecorators(array('ViewHelper')); + } + } + + public function loadDefaultDecorators() + { + $this->setDecorators(array( + 'FormElements', + array('HtmlTag', array( + 'tag' => 'li', + )), + array('FormErrors'), + )); + + return $this; + } +}