<?php
/*
* Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg
* This program is free software distributed under the GPL version 2.
* See http://gpl.openslx.org/
*
* If you have any feedback please consult http://feedback.openslx.org/ and
* send your suggestions, praise, or complaints to feedback@openslx.org
*
* General information about OpenSLX can be found at http://openslx.org/
*/
class user_Form_Bootiso extends Zend_Form
{
private $prebootlist;
private $groupdepth;
private $action;
private $page;
public function setAction($action){
$this->action = $action;
}
public function setPrebootlist($prebootlist){
$this->prebootlist = $prebootlist;
}
public function setGroupdepth($groupdepth){
$this->groupdepth = $groupdepth;
}
public function setPage($p){
$this->page = $p;
}
public function init()
{
$this->setName($this->action);
$this->setMethod('post');
if (!Pbs_Acl::checkRight('be') && $this->action == 'editbootiso')
$meta = true;
else
$meta = null;
$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, 50)),
),
'required' => false,
'rows' => 5,
'cols' => 50,
'label' => 'Description:',
));
$prebootfield = $this->createElement('select','prebootID');
$prebootfield->setLabel('Preboot:');
$prebootfield->setAttrib('readOnly', $meta);
if(count($this->prebootlist)>0){
foreach($this->prebootlist as $preboot => $p){
$prebootfield->addMultiOption($p->getID(), $p->getTitle());
}
}
$prebootfield->setRegisterInArrayValidator(false);
$this->addElement($prebootfield);
$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
));
$date = new DateTime();
$date->add(new DateInterval('P1Y'));
$this->addElement('text', 'expires', array(
'filters' => array('StringTrim'),
'validators' => array(
array('StringLength', false, array(0, 50)),
),
'required' => false,
'label' => 'Expires:',
'readOnly' => $meta,
'value' => $date->format('Y-m-d'),
));
$publicfield = $this->createElement('select','public');
$publicfield->setLabel('Public:');
$publicfield->addMultiOption(-1, 'X. Not Visible');
$publicfield->addMultiOption(0, '0. Eigene Gruppe');
$publicfield->setAttrib('readOnly', $meta);
$publicfield->setAttrib('id', 'depth');
$publicfield->setAttrib('onchange', "$('#groups .v1').show();changeDepth();");
for($i=1; $i<$this->groupdepth; $i++){
$publicfield->addMultiOption($i, "$i. Untergruppe");
}
$publicfield->setRegisterInArrayValidator(false);
$this->addElement($publicfield);
if($this->action == "createbootiso")
$label = "Create BootMedium";
else
$label = "Edit BootMedium";
$this->addElement('submit', $this->action, array(
'required' => false,
'ignore' => true,
'label' => $label,
));
$this->addElement('button', 'Cancel', array(
'onclick' => 'self.location="/user/bootiso/index/page/'.$this->page.'"'
));
?>
<script type="text/javascript">
$(document).ready(function(){
changeDepth();
$('#groups .v1').show();
});
function changeDepth(){
i = $("#depth option:selected").val();
$('#depthimg').attr('src','/stats/graphgroup/level/' + i);
}
</script>
<div id='groups' style='text-align: center;'>
<div class='v1'>
<img alt='Please select a public level' id='depthimg' src='/stats/graphgroup/level/0' />
</div>
</div>
<?php
}
}
?>