summaryrefslogblamecommitdiffstats
path: root/application/forms/EventEdit.php
blob: d3cd8305922897299c409881faccdddf5a3d550d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
     
 
                                                  
 


                                
                            

                                
                                   
                          
                        
 


























                                                           









                                                   


















                                                           
                                              
         
                                                
         
 
                                                                
         
                                                              
         
 








                                               
                                   
         
                                     
         
 
                                          
         
                                        
         
 
                              
         

                                            
                                                                             










                                                                                                 


                                                                                 
                                                                 
                                                                                                         
                                                       



                                                            
                                                           
                                                                               




                                                             
                                                                                                                 
 
                                                 




                                                                     
                                          





                                                                     
                                          


                           


                                                            
                                                           
                                                                            

                                              
                                                  
                                                                                               
                   
 

                                                               

                                                            
                                                                   
                                                                                    
                                                                                                                                                          
                                                                                                                                                                                                   
                          
                                               
                                                
                                                                                             
                           
                                                                                                                       
                                                                                                                                                              


                                                               
                                                                   
                                                                                    
                                                                                                                                                          
                                                                                                                                                            
                          

                                                 
                                                                                               
                           
                                                                                                                       
                 


                                                                      
                                                


                                                                               
                                                                           
                           
                        
                                                                      


                                                                            
                                                                           


                           
                                                  








                                                                                       
                         
 





                                                                                        
                 
 
                                                  

                                                                                     
 





                                                                                     
                         
 





                                                                                      

                 


                                                                                          

                                                         
                                                                           
                                                                                            
                                  
                                            
                                                         
                                                                                            
                                       


                                                                              

                                                         
                                                                           
                                                                                            
                                  
                                            
                                                         
                                                         
                                           

                                   
                 
 


                                                                                          

                                                         

                                                                           


                                                                
                                           


                                                                              

                                                         
                                                                          
                                  


                                                    
                                           

                                   



                                                                        

                                                           

                                                                  
                                              
                                                     
                                                                    










                                                                        
 

                                                                

                                                           

                                                                    


                                                            










                                                                    













                                                                                        









                                                                                          
                                                                                                      


                                                                       


                                                                                            














                                                                                                  









                                                                      
                                                                   
                             
         
 
<?php

class Application_Form_EventEdit extends Zend_Form
{
	private $membershiplist;
	private $bootoslist;
	private $poollist;
	private $configlist;
	private $repeattypelist;
	private $repeatendlist;
	private $eventcategorylist;
	private $oldtitle;
	private $params;

	public function setMembershiplist($membershiplist){
		$this->membershiplist = $membershiplist;
			
	}

	public function getMembershiplist(){
		return $this->membershiplist;
	}

	public function setBootoslist($bootoslist){
		$this->bootoslist = $bootoslist;
			
	}

	public function getBootoslist(){
		return $this->bootoslist;
	}

	public function setPoollist($poollist){
		$this->poollist = $poollist;
			
	}

	public function getPoollist(){
		return $this->poollist;
	}

	public function setConfiglist($configlist){
		$this->configlist = $configlist;
		return $this;
			
	}

	public function getConfiglist(){
		return $this->configlist;
	}

	public function setRepeattypelist($repeattypelist){
		$this->repeattypelist = $repeattypelist;
		return $this;
			
	}

	public function getRepeattypelist(){
		return $this->repeattypelist;
	}

	public function setRepeatendlist($repeatendlist){
		$this->repeatendlist = $repeatendlist;
		return $this;
	}

	public function getRepeatendlist(){
		return $this->repeatendlist;
	}

	public function getEventcategorylist()
	{
		return $this->eventcategorylist;
	}

	public function setEventcategorylist($eventcategorylist)
	{
		$this->eventcategorylist = $eventcategorylist;
	}

	public function setOldtitle($oldtitle){
		$this->oldtitle = $oldtitle;
			
	}

	public function getOldtitle(){
		return $this->oldtitle;
	}

	public function getParams()
	{
		return $this->params;
	}

	public function setParams($params)
	{
		$this->params = $params;
	}

	public function init()
	{
		$this->setName('EventEdit');
		$this->setMethod('post');
		$this->setAttrib('onsubmit', "return editEnableOnSubmit();");

		$eventcategoryfield = $this->createElement('select','category');
		$eventcategoryfield ->setLabel('Category:');

		if(count($this->eventcategorylist)>0){
			foreach($this->eventcategorylist as $category => $c){
				$eventcategoryfield->addMultiOption($c->getID(), $c->getTitle());
			}
		}

		$eventcategoryfield->setRegisterInArrayValidator(false);
		if(isset($this->params['category'])) {
			$eventcategoryfield->setValue($this->params['category']);
		}
		$eventcategoryfield->setAttrib("disabled", true);
		$eventcategoryfield->setAttrib('onchange', "editeventcategoryfieldChanged('category');");
		$this->addElement($eventcategoryfield);
			
		$this->addElement('text', 'title', array(
                           'filters' => array('StringTrim'),
                           'validators' => array(
		array('StringLength', false, array(0, 30)),
		array('TitleUnique', false, array('title' => $this->oldtitle)),
		),
                           'required' => true,
                           'label'    => 'Title:',
                           'value' => $this->params['title'],
		));
		$this->getElement('title')->addPrefixPath('Poolctrl_Validate', 'Poolctrl/Validate/', 'validate');

		if($this->params['force'] == 1) {
			$this->addElement('checkbox', 'force', array(
			'required'	=> false,
			'label'		=> 'Force event:',
			'value'		=> array(0,1),
			'checked'	=> 'checked',
			'disable' => true,
			));
		} else {
			$this->addElement('checkbox', 'force', array(
			'required'	=> false,
			'label'		=> 'Force event:',
			'value'		=> array(0,1),
			'disable' => true,
			));
		}

		$this->addElement('text', 'start', array(
                           'filters' => array('StringTrim'),
                           'validators' => array(
		array('StringLength', false, array(0, 19)),
		array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
		),
                           'required' => true,
                           'label'    => 'Start:',
                           'value' => date ('m/d/Y h:i a', strtotime( $this->params['start'])),
		));

		if(isset($this->params['end'])) {
			$this->addElement('text', 'end', array(
                           'filters' => array('StringTrim'),
                           'validators' => array(
			array('StringLength', false, array(0, 19)),
			array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
			array('DateGreaterThan', false, array('element' => 'End', 'compare' => 'Start', 'min' => $this->getElement('start')->getValue())),
			array('EventOverlapping', false, array('poolID' => $this->params['pbs_poolID'], 'start' => $this->getElement('start')->getValue(), 'eventID' => $this->params['eventID'])),
			),
                           'required' => false,
                           'label'    => 'End:',
                           'value' => date ('m/d/Y h:i a', strtotime( $this->params['end'])),
			));
			$this->getElement('end')->addPrefixPath('Poolctrl_Validate', 'Poolctrl/Validate/', 'validate');
		} else if(isset($this->params['categoryLabel']) && $this->params['categoryLabel'] != "Boot" && $this->params['categoryLabel'] != "Shutdown") {
			$this->addElement('text', 'end', array(
                           'filters' => array('StringTrim'),
                           'validators' => array(
			array('StringLength', false, array(0, 19)),
			array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
			array('DateGreaterThan', false, array('element' => 'End', 'compare' => 'Start', 'min' => $this->getElement('start')->getValue())),
			array('EventOverlapping', false, array('poolID' => $this->params['pbs_poolID'], 'start' => $this->getElement('start')->getValue())),
			),
                            'required' => false,
                            'label'    => 'End:',
							'value'    => 'mm/dd/yyyy h:min am/pm',
			));
			$this->getElement('end')->addPrefixPath('Poolctrl_Validate', 'Poolctrl/Validate/', 'validate');
		}

		if( $this->params['repeat'] == 1) {
			$this->addElement('checkbox', 'repeat', array(
                            'required' => false,
                            'label' => 'Repeat:',
							'value'=>array(0,1),
							'checked' => 'checked',
							'readOnly' => true,
			));
		} else {
			$this->addElement('checkbox', 'repeat', array(
							'required' => false,
                          	'label' => 'Repeat:',
                          	'value'=>array(0,1),
							'readOnly' => true,
			));
		}

		if($this->params['repeat'] == 1) {
			$repeattypefield = $this->createElement('select','repeattype');
			$repeattypefield ->setLabel('Repeat Type:');

			if(count($this->repeattypelist)>0){
				foreach($this->repeattypelist as $type => $t){
					$title = $t->getTitle();
					$id = $t->getID();
					$repeattypefield->addMultiOption($id, $title);
				}
			}

			$repeattypefield->setRegisterInArrayValidator(false);
			$repeattypefield->setAttrib("disabled", true);
			if(isset($this->params['repeattype'])) {
				$repeattypefield->setValue($this->params['repeattype']);
			}
			$this->addElement($repeattypefield);
		}

		if($this->params['repeat'] == 1) {
			$repeatendfield = $this->createElement('select','repeatend');
			$repeatendfield ->setLabel('Repeat End:');

			if(count($this->repeatendlist)>0){
				foreach($this->repeatendlist as $end => $e){
					$title = $e->getTitle();
					$id = $e->getID();
					$repeatendfield->addMultiOption($id, $title);
				}
			}

			$repeatendfield->setRegisterInArrayValidator(false);
			$repeatendfield->setAttrib("disabled", true);
			if(isset($this->params['repeatend'])) {
				$repeatendfield->setValue($this->params['repeatend']);
			}
			$this->addElement($repeatendfield);
		}

		if(isset($this->params['repeatend']) && $this->params['repeatend'] == 2) {
			if(isset($this->params['repeatdate'])) {
				$this->addElement('text', 'repeatdate', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(0, 16)),
				array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
				),
			'required' => false,
			'label'    => 'Repeat End Date:',
		    'value' =>  date('m/d/Y h:i a', strtotime($this->params['repeatdate'])),
		    'readOnly' => true,
				));
			} else {
				$this->addElement('text', 'repeatdate', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(0, 19)),
				array('Date', false, array('format' => 'mm/dd/yyyy h:i a')),
				),
			'required' => false,
			'label'    => 'Repeat End Date:',
		    'value' =>  'mm/dd/yyyy h:min am/pm',
			'readOnly' => true,
				));
			}
		}

		if(isset($this->params['repeatend']) && $this->params['repeatend'] == 1) {
			if(isset($this->params['repeatings'])) {
				$this->addElement('text', 'repeatings', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(0, 16)),
				),
			'required' => false,
			'label'    => 'Repeatings:',
		  	'value' =>  $this->params['repeatings'],
			'readOnly' => true,
				));
			} else {
				$this->addElement('text', 'repeatings', array(
			'filters' => array('StringTrim'),
			'validators' => array(
				array('StringLength', false, array(0, 5)),
				),
			'required' => false,
			'label'    => 'Repeatings:',
		  	'value' =>  '1',
			'readOnly' => true,
				));
			}
		}

		if(isset($this->params['participants'])) {
			$this->addElement('text', 'participants', array(
                          'filters' => array('StringTrim'),
                          'validators' => array(
			array('StringLength', false, array(0, 4)),
			),
                          'required' => false,
                          'label' => 'Participants:',
                          'value' =>  $this->params['participants'],
			));
		} else {
			$this->addElement('text', 'participants', array(
                          'filters' => array('StringTrim'),
                          'validators' => array(
			array('StringLength', false, array(0, 4)),
			),
                          'required' => false,
                          'label' => 'Participants:',
			));
		}

		if(isset($this->params['note'])) {
			$this->addElement('text', 'note', array(
                          'filters' => array('StringTrim'),
                          'validators' => array(
			array('StringLength', false, array(0, 140)),
			),
                          'required' => false,
                          'label' => 'Note:',
                          'value' =>  $this->params['note'],
			));
		} else {
			$this->addElement('text', 'note', array(
                          'filters' => array('StringTrim'),
                          'validators' => array(
			array('StringLength', false, array(0, 140)),
			),
                          'required' => false,
                          'label' => 'Note:',
			));
		}

		$poolfield = $this->createElement('select','pbs_poolID');
		$poolfield ->setLabel('Pool:');

		if(count($this->poollist)>0){
			foreach($this->poollist as $pool => $p){
				$poolfield->addMultiOption($p->getID(), $p->getTitle());
			}
		}

		$poolfield->setRegisterInArrayValidator(false);
		$poolfield->setValue( $this->params['pbs_poolID']);
		$this->addElement($poolfield);

		$bootosfield = $this->createElement('select','pbs_bootosID');
		$bootosfield ->setLabel('BootOS:');

		if(count($this->bootoslist)>0){
			foreach($this->bootoslist as $bootos => $b){
				$bootosfield->addMultiOption($b->getID(), $b->getTitle());
			}
		}

		$bootosfield->setRegisterInArrayValidator(false);
		$bootosfield->setAttrib('onchange', "bootosfieldChanged('pbs_bootosID', bootosIDs);");
		$bootosfield->setValue( $this->params['pbs_bootosID']);
		$this->addElement($bootosfield);

		foreach($this->configlist as $id => $bootosConfigs) {
			$configfield = $this->createElement('select','pbs_configID_' . $id);
			$configfield->setLabel('Config:');

			if(count($bootosConfigs)>0){
				foreach($bootosConfigs as $config => $c){
					$configfield->addMultiOption($c->getID(), $c->getTitle());
				}

				$configfield->setRegisterInArrayValidator(false);
				$configName = 'pbs_configID_' . $this->params['pbs_bootosID'];
				if(isset( $this->params[$configName])) {
					$configfield->setValue($this->params[$configName]);
				}
				$this->addElement($configfield);
			}
		}

		$this->addElement('submit', 'save', array(
                          'required' => false,
                          'ignore'   => true,
                          'label'    => 'Save Event'
                          ));

                          $this->addElement('button', 'cancel', array(
                          'required' => false,
                          'ignore'   => true,
                          'label'    => 'Cancel',
                          'onclick'   => 'location.href="/event/"',
                          ));
	}
}