+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// +--------------------------------------------------------------------+
+// | Ministerio de Economía |
+// | AI (Administrador de Intranet) |
+// +--------------------------------------------------------------------+
+// | This file is part of AI. |
+// | |
+// | AI is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published |
+// | by the Free Software Foundation; either version 2 of the License, |
+// | or (at your option) any later version. |
+// | |
+// | AI is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with Hooks; if not, write to the Free Software Foundation, |
+// | Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
+// +--------------------------------------------------------------------+
+// | Creado: Thu Jul 3 17:39:15 2003 |
+// | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+// +X2C includes
+require_once 'MECON/HTML/QuickForm.php';
+// ~X2C
+
+// Tipo de elementos a manipular.
+define('GRUPO', 1);
+define('SERVICIO', 2);
+define('SISTEMA', 4);
+
+// Acciones.
+define('ALTA', 1);
+define('BAJA', 2);
+define('MODIFICACION', 4);
+
+// +X2C Class 507 :AIForm
+/**
+ * Formularios para el Administrador de Intranet.
+ *
+ * @access public
+ */
+class AIForm extends MECON_HTML_QuickForm {
+ // ~X2C
+
+ // +X2C Operation 509
+ /**
+ * Construye un formulario para el objecto especificado.
+ *
+ * @param int $tipo Tipo de formulario a crear. Puede ser GRUPO, SERVICIO o SISTEMA.
+ * @param int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION.
+ * @param object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema.
+ *
+ * @return void
+ * @access public
+ */
+ function iniciar($tipo, $accion, &$obj) // ~X2C
+ {
+ switch ($tipo) {
+ case GRUPO:
+ $s_tipo = 'grupo';
+ break;
+ case SERVICIO:
+ $s_tipo = 'servicio';
+ break;
+ case SISTEMA:
+ $s_tipo = 'sistema';
+ break;
+ }
+ $s_padre = $s_tipo.'_padre';
+ switch ($accion) {
+ case BAJA:
+ $s_accion = 'Borrar';
+ break;
+ case MODIFICACION:
+ $s_accion = 'Modificar';
+ break;
+ default:
+ $accion = ALTA;
+ $s_accion = 'Agregar';
+ }
+ // Construyo con el padre y seteos generales.
+ $this->setRendererOpts(array('width' => '400'));
+ $this->addElement('header','cabecera', "$s_accion Servicio");
+ // Elementos.
+ if ($accion & (BAJA | MODIFICACION)) {
+ $fId =& $this->addElement('text', $s_tipo, 'Identificador');
+ $fId->setValue($obj->servicio);
+ $fId->freeze();
+ }
+ if ($tipo & (GRUPO | SERVICIO)) {
+ $fPadre =& $this->addElement('text', $s_padre, 'Servicio padre');
+ $fNombre =& $this->addElement('text', 'nombre', 'Nombre');
+ // Validación.
+ $this->addRule('nombre','Debe ingresar un nombre.', 'required');
+ $this->addRule($s_padre, 'Debe ingresar un servicio padre.', 'required');
+ $this->addRule($s_padre, 'El servicio padre debe ser un número natural.',
+ 'regex', '/^\d*$/');
+ // Carga datos.
+ if ($accion & (BAJA | MODIFICACION)) {
+ $fPadre->setValue($obj->$s_padre);
+ $fNombre->setValue($obj->nombre);
+ }
+ }
+ if ($tipo & SERVICIO) {
+ $fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción');
+ $fLogueo =& $this->addElement('checkbox','logueo', 'Necesita login');
+ // Validación
+ $this->addRule('descripcion', 'Debe ingresar una descripción.', 'required');
+ // Carga datos.
+ if ($accion & (BAJA | MODIFICACION)) {
+ $fDescripcion->setValue($obj->descripcion);
+ $fLogueo->setValue($obj->necesita_logueo);
+ }
+ }
+ if ($tipo & (SERVICIO | SISTEMA)) {
+ $fLink =& $this->addElement('text', 'link', 'Enlace');
+ $fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda');
+ $fIcono =& $this->addElement('text', 'icono', 'Ícono');
+ // Carga datos.
+ if ($accion & (BAJA | MODIFICACION)) {
+ $fLink->setValue($obj->link);
+ $fLinkAyuda->setValue($obj->link_ayuda);
+ $fIcono->setValue($obj->icono);
+ }
+ }
+ $fHabilitado =& $this->addElement('checkbox','habilitado', 'Está habilitado',
+ '', array('checked' => 'checked'));
+ // Carga datos.
+ if ($accion & (BAJA | MODIFICACION)) {
+ $fHabilitado->setValue($obj->habilitado);
+ }
+ // Botones.
+ $fBtnAccion =& parent::createElement('submit', 'aceptar' , $s_accion);
+ if ($accion & MODIFICACION) {
+ $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
+ $fBtnCancelar =& parent::createElement('submit', 'cancelar' , 'Borrar');
+ }
+ if ($accion & ALTA) {
+ $fBtnCancelar =& parent::createElement('reset', 'cancelar', 'Limpiar');
+ }
+ if ($accion & BAJA) {
+ $fBtnCancelar =& parent::createElement('submit', 'cancelar', 'Cancelar');
+ }
+ $grupo = array(
+ &$fBtnAccion,
+ &$fBtnCancelar,
+ );
+ $this->addGroup($grupo, 'botones');
+ }
+ // -X2C
+
+} // -X2C Class :AIForm
+
+?>