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


                                                 
 
                                


                                   
                       
                     
                                        
                        
 

                                                           
                             

                        
 


                                             


                                                   
                             








                                               
                             

                        
 











                                                                
                             






                                    





                                        




                                  




                                    
 
                                                   
         
                                                     

         
                                                                          
         
                                                                        











                                          
         
 
                              
         


                                           




                                                                                


                                                                                 



                                                                        
                                                                                                        


                                                                                     

                                                       


                                                         
                                                           
                  


                                               
 
                                                                 



                                                                      
                   
 


                                                         
                                                           
                                                                          
                  
                                           
                                               
                                                   
                   
 


                                                         
                                                           
                                                                          
                                                                                                                                                  
                  
                                            
                                             
                                                 
                   
                                                                                                                
 
                                                              
                                                                



                                             
 





                                                                
                  


                                                  
 



                                                                  
                  


                                                 
 





                                                             

                                                    
                     
 
                                                                  

                                                         

                                                             

                                                   
                     
 
                                                          

                                                         

                                                              

                                            
                     
 


                                                                                 
 



                                                                                                
                         
 

                                                                       
                   
 

                                                                               
 


                                                                                          
                         
                   
 


                                                                   
                                                           


                                                    


                                                                    


                                               
                                                                 

                           
                                                             
                                                                         
                                                              





                                                                         
         
 
<?php

class Application_Form_EventAdd extends Zend_Form
{
	private $membershiplist;
	private $bootoslist;
	private $poollist;
	private $eventcategorylist;
	private $start;
	private $end;
	private $defaultEventCategoryID;
	private $poolID;

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

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

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

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

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

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

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

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

	public function getStart()
	{
		return $this->start;
	}

	public function setStart($start)
	{
		$this->start = $start;
		return $this;
	}

	public function getEnd()
	{
		return $this->end;
	}

	public function setEnd($end)
	{
		$this->end = $end;
		return $this;
	}

	public function getDefaultEventCategoryID()
	{
		return $this->defaultEventCategoryID;
	}

	public function setDefaultEventCategoryID($defaultEventCategoryID)
	{
		$this->defaultEventCategoryID = $defaultEventCategoryID;
		return $this;
	}

	public function getPoolID()
	{
		return $this->poolID;
	}

	public function setPoolID($poolID)
	{
		$this->poolID = $poolID;
		return $this;
	}

	public function init()
	{
		$this->setName('EventAdd');
		$this->setMethod('post');

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

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

		$eventcategoryfield->setRegisterInArrayValidator(false);
		$eventcategoryfield->setAttrib('onchange', "addeventcategoryfieldChanged('category');");
		if(isset($this->defaultEventCategoryID)) {
			$eventcategoryfield->setValue($this->defaultEventCategoryID);
		}
		$this->addElement($eventcategoryfield);

		$this->addElement('text', 'title', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		array('StringLength', false, array(0, 30)),
		),
			'required' => true,
			'label'    => 'Title:',
		));

		$this->addElement('checkbox', 'immediate', array(
			'onchange' => 'immediateChanged("immediate")',
			'required'	=> false,
			'label'		=> 'Immediate Event:',
			'value'		=> array(0,1),
		));

		$this->addElement('text', 'start', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		array('StringLength', false, array(0, 16)),
		array('Date', false, array('format' => 'mm/dd/yyyy H:i')),
		),
			'required' => true,
			'label'    => 'Start:',
		 	'value'    => $this->start,
		));

		$this->addElement('text', 'end', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		array('StringLength', false, array(0, 16)),
		array('Date', false, array('format' => 'mm/dd/yyyy H:i')),
		array('DateGreaterThan', false, array('element' => 'End', 'compare' => 'Start', 'min' => $this->getElement('start')->getValue())),
		),
			'required' => false,
			'label'    => 'End:',
		 	'value'    => $this->end,
		));
		$this->getElement('end')->addPrefixPath('Poolctrl_Validate', 'Poolctrl/Validator/', 'validate');

		$this->addElement('checkbox', 'repeat', array(
			'onchange' => 'repeatChanged("repeat")',
			'required' => false,
			'label' => 'Repeat:',
			'value'=>array(0,1),
		));

		$this->addElement('select', 'repeatType', array(
			'multioptions' => array(
			'day' => 'Daily',
			'week' => 'Once a week',
			'week2' => 'Every couple of weeks',
			'month' => 'Every month',
		),
			'required' => false,
			'label' => 'Repeat Type:',
		));

		$this->addElement('select', 'repeatOption', array(
			'multioptions' => array(
			'after' => 'After',
			'date' => 'Date',
		),
			'required' => false,
			'label' => 'Repeat End:',
		));

		$this->addElement('text', 'repeatEnd', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		array('StringLength', false, array(0, 16)),
		),
			'required' => false,
			'label'    => 'Repeat end:',
		  'value' =>  'mm/dd/yyyy H:min'
		  ));

		  $this->addElement('text', 'participants', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		  array('StringLength', false, array(0, 40)),
		  ),
			'required' => false,
			'label' => 'Participants:',
		  ));

		  $this->addElement('text', 'note', array(
			'filters' => array('StringTrim'),
			'validators' => array(
		  array('StringLength', false, array(0, 140)),
		  ),
			'required' => false,
			'label' => 'Note:',
		  ));

		  if(!isset($this->poolID)) {
		  	$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);
		  	$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);
		  $this->addElement($bootosfield);

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

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

			echo '<script type="text/javascript">
				addeventcategoryfieldChanged("category");
				immediateChanged("immediate");
				$(function() {
					$("#start").datetimepicker();
					$("#end").datetimepicker();
					$("#repeatEnd").datetimepicker();
				});
			</script>';
	}
}