summaryrefslogtreecommitdiffstats
path: root/application/modules/user/forms/Preboot.php
blob: cff3e26b51982ec0485bbea0fa086cd2d529c5c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?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_Preboot extends Zend_Form {

  private $action;
  private $page;
  private $preboottype;

  public function setAction($action) {
    $this->action = $action;
  }
  public function setPage($p) {
    $this->page = $p;
  }

  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);
    $preboottypefield->setAttrib('onChange', "document.getElementById('".$this->action."').submit();");
    $preboottypefield->setValue($_POST['preboottypeID']);
    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.'"'
                      ));

  }


}