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. |
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. |
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. |
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 // +--------------------------------------------------------------------+
31 require_once 'MECON/HTML/QuickForm.php';
34 // Definicion de acciones.
37 define('MODIFICACION', 4);
39 // +X2C Class 507 :AIForm
41 * Formularios para el Administrador de Intranet.
45 class AIForm extends MECON_HTML_QuickForm {
50 * Construye un formulario para el objecto especificado.
52 * @param object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema.
53 * @param int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION.
58 function iniciar(&$obj, $accion = ALTA) // ~X2C
60 $clase = get_class($obj);
62 $s_clase = ucfirst($clase);
63 if ($clase == 'gruposecciones') {
65 $s_clase = 'Grupo de Secciones';
67 $padre = $tipo.'_padre';
73 $s_accion = 'Modificar';
77 $s_accion = 'Agregar';
79 // Construyo con el padre y seteos generales.
80 $this->setRendererOpts(array('width' => '400'));
81 $this->addElement('header','cabecera', $s_accion . ' ' . $s_clase);
83 if ($accion & (BAJA | MODIFICACION)) {
84 $fId =& $this->addElement('text', $tipo, 'Identificador');
85 $fId->setValue($obj->$tipo);
88 if ($clase == 'gruposecciones' or $clase == 'servicio') {
89 $fPadre =& $this->addElement('text', $padre, 'Padre');
90 $fNombre =& $this->addElement('text', 'nombre', 'Nombre');
92 $this->addRule('nombre', 'Debe ingresar un nombre.', 'required');
93 $this->addRule($padre, 'Debe ingresar un padre.', 'required');
94 $this->addRule($padre, 'El padre debe ser un número natural.',
97 if ($accion & (BAJA | MODIFICACION)) {
98 $fPadre->setValue($obj->$padre);
99 $fNombre->setValue($obj->nombre);
102 if ($clase == 'gruposecciones') {
103 $fAntiguedad =& $this->addElement('text', 'antiguedad', 'Antigüedad');
104 $fSecciones =& $this->addElement('select', 'secciones', 'Secciones',
105 array(1=>'test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8'),
106 array('multiple' => 'multiple', 'size' => 5));
107 $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos');
109 $this->addRule('antiguedad', 'La antigüedad debe ser un número natural.',
112 if ($accion & (BAJA | MODIFICACION)) {
113 $fAntiguedad->setValue($obj->antiguedad);
114 $fSecciones->setSelected($obj->secciones);
115 $fMostrarHijos->setChecked($obj->mostrar_hijos);
118 if ($clase == 'servicio') {
119 $fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción');
120 $fLogueo =& $this->addElement('checkbox','logueo', 'Necesita login');
122 $this->addRule('descripcion', 'Debe ingresar una descripción.', 'required');
124 if ($accion & (BAJA | MODIFICACION)) {
125 $fDescripcion->setValue($obj->descripcion);
126 $fLogueo->setChecked($obj->necesita_logueo);
129 if ($clase == 'servicio' or $clase == 'sistema') {
130 $fLink =& $this->addElement('text', 'link', 'Enlace');
131 $fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda');
132 $fIcono =& $this->addElement('text', 'icono', 'Ícono');
134 if ($accion & (BAJA | MODIFICACION)) {
135 $fLink->setValue($obj->link);
136 $fLinkAyuda->setValue($obj->link_ayuda);
137 $fIcono->setValue($obj->icono);
140 if ($clase == 'sistema') {
141 $this->addRule('link', 'Debe ingresar un nombre.', 'required');
142 $this->addRule('icono', 'Debe ingresar un padre.', 'required');
145 $fHabilitado =& $this->addElement('checkbox','habilitado', 'Está habilitado',
146 '', array('checked' => 'checked'));
148 if ($accion & (BAJA | MODIFICACION)) {
149 $fHabilitado->setChecked($obj->habilitado);
152 $fBtnAccion =& parent::createElement('submit', 'aceptar' , $s_accion);
153 if ($accion & MODIFICACION) {
154 $fBtnCancelar =& parent::createElement('submit', 'modificar' , 'Borrar');
155 } elseif ($accion & ALTA) {
156 $fBtnCancelar =& parent::createElement('reset', 'agregar', 'Limpiar');
157 } elseif ($accion & BAJA) {
158 $fBtnCancelar =& parent::createElement('submit', 'borrar', 'Cancelar');
164 $this->addGroup($grupo, 'botones');
168 // +X2C Operation 510
170 * Llena un objeto con los datos del formulario.
172 * @param mixed &$obj Objeto a llenar con los datos del formulario. Puede ser GrupoSecciones, Servicio o Sistema.
177 function llenarObjeto(&$obj) // ~X2C
179 $clase = get_class($obj);
181 if ($clase == 'gruposecciones') {
184 $padre = $tipo.'_padre';
186 $obj->$tipo = $this->getSubmitValue($tipo);
187 $obj->habilitado = $this->getSubmitValue('habilitado');
188 if ($clase == 'gruposecciones' or $clase == 'servicio') {
189 $obj->$padre = $this->getSubmitValue($padre);
190 $obj->nombre = $this->getSubmitValue('nombre');
192 if ($clase == 'gruposecciones') {
193 $obj->antiguedad = $this->getSubmitValue('antiguedad');
194 $obj->secciones = $this->getSubmitValue('secciones');
195 var_dump($obj->secciones);
196 $obj->mostrar_hijos = $this->getSubmitValue('mostrar_hijos');
198 if ($clase == 'servicio') {
199 $obj->descripcion = $this->getSubmitValue('descripcion');
200 $obj->necesita_logueo = $this->getSubmitValue('logueo');
202 if ($clase == 'servicio' or $clase == 'sistema') {
203 $obj->link = $this->getSubmitValue('link');
204 $obj->link_ayuda = $this->getSubmitValue('link_ayuda');
205 $obj->icono = $this->getSubmitValue('icono');
210 } // -X2C Class :AIForm