summaryrefslogblamecommitdiffstats
path: root/application/modules/user/forms/FilterEntry.php
blob: 24f18614b08e6e4f9e6f4be466993972545d531f (plain) (tree)


































                                                                                          







                                                                                                   




                                                                            




































                                                                                                                                                                               




                                                                                     




































                                                                                                                                                  



                                                           





                                                                                                  



                                                              





                                                                                                  



                                                              





                                                                                                  



                                                         





                                                                                                  




                                                               










                                                                                                   



                                                          




                                                                                                  



                                                                








                                                                                                  




                                                                                                            










                                                                                                   




                                                                                        










                                                                                                   




                                                    
                



                                                             














































                                                                                          
<?php

class user_Form_FilterEntry extends Zend_Form
{

   private $filterID = 0;

    public function init()
    {
		$this->setName("Add Filterentry");
		$this->setMethod('post');
		$this->setAttrib('id','filterentryform');
		#print_a($this->data);

		try{		
			$filtertypemapper = new Application_Model_FilterTypeMapper();
	       	$filtertype = $filtertypemapper->fetchAll();
		
		$filtertypes = $this->createElement('select','filtertypeID');
        $filtertypes ->setLabel('Type:');
        $filtertypes ->setAttrib('id','filtertype');
        $filtertypes->addMultiOption('','');
		foreach($filtertype as $f){
			$filtertypes->addMultiOption($f->getID(),$f->getFiltertypename());
		}
		$filterentry = $filtertypes->getMultiOption($this->data['filtertypeID']);
		$filterentryID = $this->data['filtertypeID'];
		}catch (Zend_Exception $e) {  
			echo "Error message 1: " . $e->getMessage() . "\n";
		}
		switch($filterentryID){
			default:
				$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($filtervalue1);  
		if(isset($filtervalue2 )){
			$this->addElement($filtervalue2);    
		}

        $this->addElement('submit', 'add', array(
            'required' => false,
            'ignore'   => true,
            'label'    => $this->buttontext,
        ));  	 
        
        $this->addElement('button', 'Cancel', array(
            'onclick' => 'self.location="/user/filter"'
        ));  
        
         $this->addElement('hidden', 'filterID', array(
            'value' => $this->filterID
        ));  
		
	
    }

	private $buttontext = 'Save';
	function setButtontext($v){
		$this->buttontext = $v;
	}
	private $data ;
	function setData($v){
		$this->data = $v;
	}
	function setFilterID($v){
		$this->filterID = $v;
	}
}

?>
<script>
	$('#filtertype').change(function(){
		//alert($("#filtertype option:selected").val());
		$('#filterentryform').submit();
	});
	$('#val1').focusout(function(){
		if($("#filtertype option:selected").val() == 1 && $('#val2').val() == ""){
			$('#val2').val($('#val1').val());
		}
		if($("#filtertype option:selected").val() == 2 && $('#val2').val() == ""){
			$('#val2').val($('#val1').val());
		}
	});
</script>