]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/local_lib/AIForm.php
Se arregla un bug.
[mecon/ai.git] / sistema / local_lib / AIForm.php
index b84837f7ab3b5f00ebe90354528078816072d133..4c6b42370b248ff884f61386315f81af143ecfee 100644 (file)
 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
 
 ?>