action = $action; } public function setPage($p) { $this->page = $p; } public function setPreboottype($pt) { $this->preboottype = $pt; } public function init() { $this->setName($this->action); $this->setMethod('post'); $this->setEnctype("multipart/form-data"); if (!Pbs_Acl::checkRight('pre') && $this->action == 'editpreboot') { $meta = true; } else { $meta = null; } if($this->action == 'editpreboot') { $filereq = false; } else { $filereq = true; } $this->addElement('text', 'title', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 50)), ), 'required' => true, 'label' => 'Title:', )); $this->addElement('textarea', 'description', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 140)), ), 'required' => false, 'rows' => 5, 'cols' => 50, 'label' => 'Description:', )); $preboottypefield = $this->createElement('select', 'preboottypeID'); $preboottypefield->setLabel('Type:'); $preboottypefield->setAttrib('readOnly', $meta); foreach($this->preboottype as $k => $pt) { $preboottypefield->addMultiOption($pt->getID(), $pt->getName()); } $this->addElement($preboottypefield); $serial = time(); for($i = 2; $i < 14; $i += 3) { $serial = substr($serial, 0, $i) .'-'. substr($serial, $i, strlen($serial)); } $this->addElement('text', 'serialnumber', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 50)), ), 'required' => true, 'size' => 50, 'label' => 'Serialnumber:', 'readOnly' => $meta, 'value' => $serial )); $this->addElement('file', 'preboot', array( 'validators' => array(array('Extension', false, array('zip'))), 'required' => $filereq, 'readOnly' => $meta, 'label' => 'Preboot:', )); if($this->action == "createpreboot") { $label = "Create Preboot"; } else { $label = "Edit Preboot"; } $this->addElement('submit', $this->action, array( 'required' => false, 'ignore' => true, 'label' => $label, )); $this->addElement('button', 'Cancel', array( 'onclick' => 'self.location="/user/preboot/index/page/'.$this->page.'"' )); } }