From 57053f41cd6cc755ecccef8d32080f6a34addbe9 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 19 Mar 2011 20:16:16 +0100 Subject: Filterentry Formular geändert, selectboxen für Client, Membership etc fehlen noch --- .../modules/user/controllers/FilterController.php | 54 +++---- application/modules/user/forms/FilterEntry.php | 166 +++++++++++++++++++-- 2 files changed, 181 insertions(+), 39 deletions(-) (limited to 'application') diff --git a/application/modules/user/controllers/FilterController.php b/application/modules/user/controllers/FilterController.php index fd1b1a3..a94d5b3 100644 --- a/application/modules/user/controllers/FilterController.php +++ b/application/modules/user/controllers/FilterController.php @@ -198,16 +198,20 @@ class User_FilterController extends Zend_Controller_Action $this->_redirect('/user/filter/index/addresult/error'); } } else{ - $addform = new user_Form_FilterEntry(array('buttontext' => 'Add Filterentry'),$_POST); - - if ($addform->isValid($_POST)) { + $addform = new user_Form_FilterEntry(array('buttontext' => 'Add Filterentry', 'data'=>$_POST)); + if ($addform->isValid($_POST)) { + print_a('valid'); $newfilterenty = new Application_Model_FilterEntries(); $newfilterenty->setFilterID($filterID); $newfilterenty->setFiltertypeID($_POST['filtertypeID']); if($_POST['filtertypeID'] == 1){ - $newfilterenty->setFiltervalue($this->fillIP($_POST['filtervalue'])); - $newfilterenty->setFiltervalue2($this->fillIP($_POST['filtervalue2'])); + $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],3,'.')); + $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],3,'.')); + } + elseif($_POST['filtertypeID'] == 2){ + $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],2,':')); + $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],2,':')); } else{ $newfilterenty->setFiltervalue($_POST['filtervalue']); @@ -216,7 +220,7 @@ class User_FilterController extends Zend_Controller_Action $newfilter2 = new Application_Model_FilterEntriesMapper(); $newfilter2->save($newfilterenty); - $this->_redirect('/user/filter/index/addresult/ok'); + #$this->_redirect('/user/filter/index/addresult/ok'); } $this->view->addform = $addform; } @@ -278,9 +282,13 @@ class User_FilterController extends Zend_Controller_Action $newfilterenty = new Application_Model_FilterEntries($_POST); $newfilterenty->setID($filterentriesID); - if($_POST['filtertypeID'] == 1){ - $newfilterenty->setFiltervalue($this->fillIP($_POST['filtervalue'])); - $newfilterenty->setFiltervalue2($this->fillIP($_POST['filtervalue2'])); + if($_POST['filtertypeID'] == 1){ + $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],3,'.')); + $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],3,'.')); + } + elseif($_POST['filtertypeID'] == 2){ + $newfilterenty->setFiltervalue($this->fillup($_POST['filtervalue'],2,';')); + $newfilterenty->setFiltervalue2($this->fillup($_POST['filtervalue2'],2,':')); } else{ $newfilterenty->setFiltervalue($_POST['filtervalue']); @@ -376,28 +384,14 @@ class User_FilterController extends Zend_Controller_Action $this->_redirect('/user/filter/index/deleteresult/error'); } } - - private function fillIP($ip) - { - $ar = explode(".",$ip); - $representation = array(); - foreach($ar as $part){ - $representation[] = sprintf("%03s",$part); - } - return implode(".",$representation); - } - - private function fillMac($ip) - { - $ar = explode(":",$ip); - $representation = array(); - foreach($ar as $part){ - $representation[] = sprintf("%02s",$part); - } - return implode(":",$representation); + private function fillup($string, $length, $seperator=':',$sign='0'){ + $ar = explode($seperator,$string); + $representation = array(); + foreach($ar as $part){ + $representation[] = sprintf("%".$sign.$length."s",$part); + } + return implode($seperator,$representation); } - - } diff --git a/application/modules/user/forms/FilterEntry.php b/application/modules/user/forms/FilterEntry.php index 21ceb93..24f1861 100644 --- a/application/modules/user/forms/FilterEntry.php +++ b/application/modules/user/forms/FilterEntry.php @@ -33,70 +33,218 @@ class user_Form_FilterEntry extends Zend_Form $desc = "Select the filtertype"; $label1 = 'Value 1:'; $label2 = 'Value 2:'; + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'id' => 'val2' + )); break; case "1": $desc = "You can set one IP or an IP-Range"; $label1 = 'Start:'; $label2 = 'End:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'validators' => array( + array( + 'regex', + false, + array( + '/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i', + 'messages' => array( + Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid IP-Adress", + Zend_Validate_Regex::INVALID => 'IP-Adress contains invalid characters.' + ) + ) + ) + ), + 'required' => true, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'validators' => array( + array( + 'regex', + false, + array( + '/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i', + 'messages' => array( + Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid IP-Adress", + Zend_Validate_Regex::INVALID => 'IP-Adress contains invalid characters.' + ) + ) + ) + ), + 'required' => true, + 'id' => 'val2' + )); break; case "2": $desc = "You can set one Mac-Adress or an Mac-Range"; $label1 = 'Start:'; $label2 = 'End:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'validators' => array( + array( + 'regex', + false, + array( + '/^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$/i', + 'messages' => array( + Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Mac-Adress", + Zend_Validate_Regex::INVALID => 'Mac-Adress contains invalid characters.' + ) + ) + ) + ), + 'required' => true, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'validators' => array( + array( + 'regex', + false, + array( + '/^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$/i', + 'messages' => array( + Zend_Validate_Regex::NOT_MATCH => "'%value%' is not a valid Mac-Adress", + Zend_Validate_Regex::INVALID => 'Mac-Adress contains invalid characters.' + ) + ) + ) + ), + 'required' => true, + 'id' => 'val2' + )); break; case "3": $desc = "Select your Pool"; $label1 = 'PoolID:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); break; case "4": $desc = "Select your BootIso"; $label1 = 'BootIsoID:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); break; case "5": $desc = "Select a Membership"; $label1 = 'Membership:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); break; case "6": $desc = "Select a Group"; $label1 = 'Group:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); break; case "7": $desc = "Specify a time-range"; $label1 = 'Start:'; $label2 = 'End:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'required' => true, + 'id' => 'val2' + )); break; case "8": $desc = "Select a Client"; $label1 = 'Client:'; + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); break; case "9": $desc = "Define a Hardwarehash"; $label1 = 'Hardwarehash:'; + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(32, 32)), + ), + 'required' => true, + 'id' => 'val1' + )); break; case "10": $desc = "Specify the Weekday (Monday:1, Tuesday:2 ... Sunday:7) or a range"; $label1 = 'Start Day:'; $label2 = 'End Day:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'required' => true, + 'id' => 'val2' + )); break; case "11": $desc = "Specify the date or a day range of the filter"; $label1 = 'Start Date:'; $label2 = 'End Date:'; + + $filtervalue1 = $this->createElement('text', 'filtervalue', array( + 'label' => $label1, + 'required' => true, + 'id' => 'val1' + )); + $filtervalue2 = $this->createElement('text', 'filtervalue2', array( + 'label' => $label2, + 'required' => true, + 'id' => 'val2' + )); break; } $filtertypes->setDescription($desc); $this->addElement($filtertypes); - $this->addElement('text', 'filtervalue', array( - 'label' => $label1, - 'id' => 'val1' - )); - if(!in_array($filterentryID,array(3,4,5,6,8,9))){ - $this->addElement('text', 'filtervalue2', array( - 'label' => $label2, - 'id' => 'val2' - )); + + $this->addElement($filtervalue1); + if(isset($filtervalue2 )){ + $this->addElement($filtervalue2); } $this->addElement('submit', 'add', array( -- cgit v1.2.3-55-g7522