diff options
Diffstat (limited to 'application/modules/user/forms')
| -rw-r--r-- | application/modules/user/forms/BootmenuEntries.php | 5 | ||||
| -rw-r--r-- | application/modules/user/forms/Bootos.php | 3 | ||||
| -rw-r--r-- | application/modules/user/forms/BootosUser.php | 161 | ||||
| -rw-r--r-- | application/modules/user/forms/Config.php | 24 |
4 files changed, 178 insertions, 15 deletions
diff --git a/application/modules/user/forms/BootmenuEntries.php b/application/modules/user/forms/BootmenuEntries.php index 1177d1c..93e3206 100644 --- a/application/modules/user/forms/BootmenuEntries.php +++ b/application/modules/user/forms/BootmenuEntries.php @@ -130,12 +130,11 @@ class user_Form_BootmenuEntries extends Zend_Form $configfield->setLabel('Config:'); $configfield->setAttrib('readOnly', $meta); - $options = array('Preset' => array('default' => 'default'), 'Custom' => array()); + $options = array('Preset' => array(), 'Custom' => array()); if(count($this->configlist)>0){ foreach($this->configlist as $k => $v){ - foreach($v as $c) - //if($c->getID() != $defaultconfigid) + foreach($v[$_POST['bootosID']] as $c) $options[$k][$c->getID()] = $c->getTitle(); } } diff --git a/application/modules/user/forms/Bootos.php b/application/modules/user/forms/Bootos.php index c4b1c70..5e20a8a 100644 --- a/application/modules/user/forms/Bootos.php +++ b/application/modules/user/forms/Bootos.php @@ -121,20 +121,17 @@ class user_Form_Bootos extends Zend_Form )); $this->addElement('file', 'kernel', array( - 'required' => $filereq, 'readOnly' => $meta, 'label' => 'Kernel:', )); $this->addElement('file', 'init', array( - 'required' => $filereq, 'readOnly' => $meta, 'label' => 'Initramfs:', )); $this->addElement('file', 'config', array( 'validators' => array(array('Extension', false, array('tgz'))), - 'required' => $filereq, 'readOnly' => $meta, 'label' => 'Config:', )); diff --git a/application/modules/user/forms/BootosUser.php b/application/modules/user/forms/BootosUser.php new file mode 100644 index 0000000..d5700d5 --- /dev/null +++ b/application/modules/user/forms/BootosUser.php @@ -0,0 +1,161 @@ + <?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_BootosUser extends Zend_Form +{ + + private $action; + private $type; + private $configID; + private $hometype; + + public function setAction($action){ + $this->action = $action; + } + public function setType($type){ + $this->type = $type; + } + public function setConfigID($configID){ + $this->configID = $configID; + } + public function setHometype($hometype){ + $this->hometype = $hometype; + } + + + public function init() + { + $this->setName($this->action); + $this->setMethod('post'); + + if (!Pbs_Acl::checkRight('ce') && $this->action == 'editbootosuser') + $meta = true; + else + $meta = null; + + if(!isset($_POST['hometypeID'])){ + $_POST['hometypeID'] = '0'; + } + + $this->addElement('text', 'login', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'required' => true, + 'label' => 'Login-Name:', + 'value' => $_POST['login'], + 'description' => 'Tip: Use %username% as a Wildcard' + )); + + $this->addElement('password', 'password', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(6)), + ), + 'required' => true, + 'label' => 'Password:', + 'errorMessages' => array('Please enter a password with more than 6 characters') + )); + + $this->addElement('password', 'repeat_password', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(6)), + ), + 'required' => true, + 'label' => 'Repeat Password:', + 'errorMessages' => array('Please repeat the password correctly'), + 'description' => 'Tip: Use %password% as a Wildcard' + )); + + + + $hometypefield = $this->createElement('select','hometypeID'); + $hometypefield->setLabel('Hometype:'); + $hometypefield->setAttrib('readOnly', $meta); + $hometypefield->setAttrib('onChange', "document.getElementById('".$this->action."').submit();"); + $hometypefield->setValue($_POST['hometypeID']); + foreach($this->hometype as $k => $ht){ + $hometypefield->addMultiOption($ht->getID(), $ht->getName()); + } + + $this->addElement($hometypefield); + + if($_POST['hometypeID'] == 0){ + $this->addElement('text', 'homepath', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'required' => true, + 'label' => 'Home-Path:', + 'size' => '30', + 'readOnly' => true, + 'value' => '/home/%login-name%' + )); + }elseif($_POST['hometypeID'] == 1){ + $this->addElement('text', 'homepath', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'required' => true, + 'label' => 'Home-Path:', + 'size' => '30', + 'readOnly' => true, + 'value' => 'usbstick://home/%login-name%' + )); + }else{ + $this->addElement('text', 'homepath', array( + 'filters' => array('StringTrim'), + 'validators' => array( + array('StringLength', false, array(0, 50)), + ), + 'size' => '30', + 'required' => true, + 'label' => 'Home-Path:', + 'readOnly' => $meta + )); + } + + if($this->action == "addbootosuser") + $label = "Add User"; + else + $label = "Edit User"; + + $this->addElement('submit', $this->action, array( + 'required' => false, + 'ignore' => true, + 'label' => $label + )); + + $this->addElement('button', 'Cancel', array( + 'onclick' => 'self.location="/user/config/showconfig/type/'.$this->type.'/configID/'.$this->configID.'"' + )); + + + $pbsNotifier = new Pbs_Notifier(); + echo $pbsNotifier->notify('Use <b>%username%</b> and <b>%password%</b> as Wildcards for Login and Password.','info'); + } + + public function isValid($data) + { + $this->getElement('repeat_password')-> + addValidator(new Zend_Validate_Identical($data['password'])); + + return parent::isValid($data); + } + +} +?> + diff --git a/application/modules/user/forms/Config.php b/application/modules/user/forms/Config.php index 53e260d..3b961b9 100644 --- a/application/modules/user/forms/Config.php +++ b/application/modules/user/forms/Config.php @@ -1,4 +1,4 @@ -<?php + <?php /* * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg * This program is free software distributed under the GPL version 2. @@ -26,6 +26,7 @@ class user_Form_Config extends Zend_Form public function setType($type){ $this->type = $type; } + public function init() { $this->setName($this->action); @@ -45,18 +46,23 @@ class user_Form_Config extends Zend_Form 'label' => 'Title:', )); - - $this->addElement('textarea', 'shellscript', array( + $this->addElement('textarea', 'description', array( 'filters' => array('StringTrim'), 'validators' => array( array('StringLength', false, array(0, 50)), ), - 'required' => true, - 'rows' => 10, - 'cols' => 70, - 'readOnly' => $meta, - 'label' => 'Shellscript:', - )); + 'required' => false, + 'rows' => 5, + 'cols' => 50, + 'label' => 'Description:', + )); + + if($this->type == 'group'){ + $visible = $this->createElement('checkbox','visible'); + $visible->setLabel('Visible:'); + $visible->setAttrib('readOnly', $meta); + $this->addElement($visible); + } if($this->action == "createconfig") $label = "Create Config"; |
