X-Git-Url: https://git.llucax.com/mecon/ai.git/blobdiff_plain/7836b684fe87f2693757f1e16652dc16444a9682..14599c3512abed278fb33bd80e204cc4f1140500:/sistema/local_lib/AIForm.php diff --git a/sistema/local_lib/AIForm.php b/sistema/local_lib/AIForm.php index b84837f..4c6b423 100644 --- a/sistema/local_lib/AIForm.php +++ b/sistema/local_lib/AIForm.php @@ -31,12 +31,7 @@ require_once 'MECON/HTML/QuickForm.php'; // ~X2C -// Tipo de elementos a manipular. -define('GRUPO', 1); -define('SERVICIO', 2); -define('SISTEMA', 4); - -// Acciones. +// Definicion de acciones. define('ALTA', 1); define('BAJA', 2); define('MODIFICACION', 4); @@ -54,27 +49,20 @@ class AIForm extends MECON_HTML_QuickForm { /** * 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. + * @param int $accion Accion que realizar?el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION. * * @return void * @access public */ - function iniciar($tipo, $accion, &$obj) // ~X2C + function iniciar(&$obj, $accion = ALTA) // ~X2C { - switch ($tipo) { - case GRUPO: - $s_tipo = 'grupo'; - break; - case SERVICIO: - $s_tipo = 'servicio'; - break; - case SISTEMA: - $s_tipo = 'sistema'; - break; + $clase = get_class($obj); + $s_clase = ucfirst($clase); + if ($clase == 'gruposecciones') { + $s_clase = 'Grupo de Secciones'; } - $s_padre = $s_tipo.'_padre'; + $padre = $clase.'_padre'; switch ($accion) { case BAJA: $s_accion = 'Borrar'; @@ -88,28 +76,28 @@ class AIForm extends MECON_HTML_QuickForm { } // Construyo con el padre y seteos generales. $this->setRendererOpts(array('width' => '400')); - $this->addElement('header','cabecera', "$s_accion Servicio"); + $this->addElement('header','cabecera', $s_accion . ' ' . $s_clase); // Elementos. if ($accion & (BAJA | MODIFICACION)) { - $fId =& $this->addElement('text', $s_tipo, 'Identificador'); - $fId->setValue($obj->servicio); + $fId =& $this->addElement('text', $clase, 'Identificador'); + $fId->setValue($obj->$clase); $fId->freeze(); } - if ($tipo & (GRUPO | SERVICIO)) { - $fPadre =& $this->addElement('text', $s_padre, 'Servicio padre'); + if ($clase == 'gruposecciones' or $clase == 'servicio') { + $fPadre =& $this->addElement('text', $padre, '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.', + $this->addRule($padre, 'Debe ingresar un padre.', 'required'); + $this->addRule($padre, 'El padre debe ser un número natural.', 'regex', '/^\d*$/'); // Carga datos. if ($accion & (BAJA | MODIFICACION)) { - $fPadre->setValue($obj->$s_padre); + $fPadre->setValue($obj->$padre); $fNombre->setValue($obj->nombre); } } - if ($tipo & SERVICIO) { + if ($clase == 'servicio') { $fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción'); $fLogueo =& $this->addElement('checkbox','logueo', 'Necesita login'); // Validación @@ -120,7 +108,7 @@ class AIForm extends MECON_HTML_QuickForm { $fLogueo->setValue($obj->necesita_logueo); } } - if ($tipo & (SERVICIO | SISTEMA)) { + if ($clase == 'servicio' or $clase == 'sistema') { $fLink =& $this->addElement('text', 'link', 'Enlace'); $fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda'); $fIcono =& $this->addElement('text', 'icono', 'Ícono'); @@ -140,14 +128,11 @@ class AIForm extends MECON_HTML_QuickForm { // 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'); + $fBtnCancelar =& parent::createElement('submit', 'modificar' , 'Borrar'); + } elseif ($accion & ALTA) { + $fBtnCancelar =& parent::createElement('reset', 'agregar', 'Limpiar'); + } elseif ($accion & BAJA) { + $fBtnCancelar =& parent::createElement('submit', 'borrar', 'Cancelar'); } $grupo = array( &$fBtnAccion, @@ -157,6 +142,38 @@ class AIForm extends MECON_HTML_QuickForm { } // -X2C + // +X2C Operation 510 + /** + * Llena un objeto con los datos del formulario. + * + * @param mixed &$obj Objeto a llenar con los datos del formulario. Puede ser GrupoSecciones, Servicio o Sistema. + * + * @return void + * @access public + */ + function llenarObjeto(&$obj) // ~X2C + { + $clase = get_class($obj); + $padre = $clase.'_padre'; + // Elementos. + $obj->$clase = $this->getSubmitValue($clase); + $obj->habilitado = $this->getSubmitValue('habilitado'); + if ($clase == 'grupo' or $clase == 'servicio') { + $obj->$padre = $this->getSubmitValue($padre); + $obj->nombre = $this->getSubmitValue('nombre'); + } + if ($clase == 'servicio') { + $obj->descripcion = $this->getSubmitValue('descripcion'); + $obj->necesita_logueo = $this->getSubmitValue('logueo'); + } + if ($clase == 'servicio' or $clase == 'sistema') { + $obj->link = $this->getSubmitValue('link'); + $obj->link_ayuda = $this->getSubmitValue('link_ayuda'); + $obj->icono = $this->getSubmitValue('icono'); + } + } + // -X2C + } // -X2C Class :AIForm ?>