]> git.llucax.com Git - mecon/ai.git/blob - sistema/local_lib/AIForm.php
b84837f7ab3b5f00ebe90354528078816072d133
[mecon/ai.git] / sistema / local_lib / AIForm.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                      Ministerio de Economía                        |
5 // |                  AI (Administrador de Intranet)                    |
6 // +--------------------------------------------------------------------+
7 // | This file is part of AI.                                           |
8 // |                                                                    |
9 // | AI is free software; you can redistribute it and/or modify         |
10 // | it under the terms of the GNU General Public License as published  |
11 // | by the Free Software Foundation; either version 2 of the License,  |
12 // | or (at your option) any later version.                             |
13 // |                                                                    |
14 // | AI is distributed in the hope that it will be useful, but          |
15 // | WITHOUT ANY WARRANTY; without even the implied warranty of         |
16 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
17 // | General Public License for more details.                           |
18 // |                                                                    |
19 // | You should have received a copy of the GNU General Public License  |
20 // | along with Hooks; if not, write to the Free Software Foundation,   |
21 // | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
22 // +--------------------------------------------------------------------+
23 // | Creado: Thu Jul 3 17:39:15 2003                                    |
24 // | Autor:  Leandro Lucarella <llucar@mecon.gov.ar>                    |
25 // +--------------------------------------------------------------------+
26 //
27 // $Id$
28 //
29
30 // +X2C includes
31 require_once 'MECON/HTML/QuickForm.php';
32 // ~X2C
33
34 // Tipo de elementos a manipular.
35 define('GRUPO',     1);
36 define('SERVICIO',  2);
37 define('SISTEMA',   4);
38
39 // Acciones.
40 define('ALTA',          1);
41 define('BAJA',          2);
42 define('MODIFICACION',  4);
43
44 // +X2C Class 507 :AIForm
45 /**
46  * Formularios para el Administrador de Intranet.
47  *
48  * @access public
49  */
50 class AIForm extends MECON_HTML_QuickForm {
51     // ~X2C
52
53     // +X2C Operation 509
54     /**
55      * Construye un formulario para el objecto especificado.
56      *
57      * @param  int $tipo Tipo de formulario a crear. Puede ser GRUPO, SERVICIO o SISTEMA.
58      * @param  int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION.
59      * @param  object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema.
60      *
61      * @return void
62      * @access public
63      */
64     function iniciar($tipo, $accion, &$obj) // ~X2C
65     {
66         switch ($tipo) {
67             case GRUPO:
68                 $s_tipo = 'grupo';
69                 break;
70             case SERVICIO:
71                 $s_tipo = 'servicio';
72                 break;
73             case SISTEMA:
74                 $s_tipo = 'sistema';
75                 break;
76         }
77         $s_padre = $s_tipo.'_padre';
78         switch ($accion) {
79             case BAJA:
80                 $s_accion = 'Borrar';
81                 break;
82             case MODIFICACION:
83                 $s_accion = 'Modificar';
84                 break;
85             default:
86                 $accion   = ALTA;
87                 $s_accion = 'Agregar';
88         }
89         // Construyo con el padre y seteos generales.
90         $this->setRendererOpts(array('width' => '400'));
91         $this->addElement('header','cabecera', "$s_accion Servicio");
92         // Elementos.
93         if ($accion & (BAJA | MODIFICACION)) {
94             $fId =& $this->addElement('text', $s_tipo, 'Identificador');
95             $fId->setValue($obj->servicio);
96             $fId->freeze();
97         }
98         if ($tipo & (GRUPO | SERVICIO)) {
99             $fPadre  =& $this->addElement('text', $s_padre, 'Servicio padre');
100             $fNombre =& $this->addElement('text', 'nombre', 'Nombre');
101             // Validación.
102             $this->addRule('nombre','Debe ingresar un nombre.',         'required');
103             $this->addRule($s_padre, 'Debe ingresar un servicio padre.', 'required');
104             $this->addRule($s_padre, 'El servicio padre debe ser un número natural.',
105                 'regex', '/^\d*$/');
106             // Carga datos.
107             if ($accion & (BAJA | MODIFICACION)) {
108                 $fPadre->setValue($obj->$s_padre);
109                 $fNombre->setValue($obj->nombre);
110             }
111         }
112         if ($tipo & SERVICIO) {
113             $fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción');
114             $fLogueo      =& $this->addElement('checkbox','logueo', 'Necesita login');
115             // Validación
116             $this->addRule('descripcion',   'Debe ingresar una descripción.',   'required');
117             // Carga datos.
118             if ($accion & (BAJA | MODIFICACION)) {
119                 $fDescripcion->setValue($obj->descripcion);
120                 $fLogueo->setValue($obj->necesita_logueo);
121             }
122         }
123         if ($tipo & (SERVICIO | SISTEMA)) {
124             $fLink      =& $this->addElement('text', 'link', 'Enlace');
125             $fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda');
126             $fIcono     =& $this->addElement('text', 'icono', 'Ícono');
127             // Carga datos.
128             if ($accion & (BAJA | MODIFICACION)) {
129                 $fLink->setValue($obj->link);
130                 $fLinkAyuda->setValue($obj->link_ayuda);
131                 $fIcono->setValue($obj->icono);
132             }
133         }
134         $fHabilitado =& $this->addElement('checkbox','habilitado', 'Está habilitado',
135             '', array('checked' => 'checked'));
136         // Carga datos.
137         if ($accion & (BAJA | MODIFICACION)) {
138             $fHabilitado->setValue($obj->habilitado);
139         }
140         // Botones.
141         $fBtnAccion =& parent::createElement('submit', 'aceptar' , $s_accion);
142         if ($accion & MODIFICACION) {
143             $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
144             $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
145         }
146         if ($accion & ALTA) {
147             $fBtnCancelar =& parent::createElement('reset', 'cancelar', 'Limpiar');
148         }
149         if ($accion & BAJA) {
150             $fBtnCancelar =& parent::createElement('submit', 'cancelar', 'Cancelar');
151         }
152         $grupo = array(
153             &$fBtnAccion,
154             &$fBtnCancelar,
155         );
156         $this->addGroup($grupo, 'botones');
157     }
158     // -X2C
159
160 } // -X2C Class :AIForm
161
162 ?>