]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/local_lib/AI/Form.php
Se agrega el checkbox para abrir en ventana nueva.
[mecon/ai.git] / sistema / local_lib / AI / Form.php
index f17e12d2222d36547250b1e636c65d4f95226f1b..52c565ea1a17199b57d2bfb9e976ee9954d9af7a 100644 (file)
 // $Id$
 //
 
-// +X2C includes
 require_once 'MECON/HTML/QuickForm.php';
-// ~X2C
-
 require_once 'general.php';
 
 // Definicion de acciones.
@@ -38,7 +35,6 @@ define('AI_ALTA',   1);
 define('AI_BAJA',   2);
 define('AI_MODIF',  4);
 
-// +X2C Class 507 :AI_Form
 /**
  * Formularios para el Administrador de Intranet.
  *
@@ -46,21 +42,20 @@ define('AI_MODIF',  4);
  * @access public
  */
 class AI_Form extends MECON_HTML_QuickForm {
-    // ~X2C
 
-    // +X2C Operation 509
     /**
      * Construye un formulario para el objecto especificado.
      *
-     * @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 AI_ALTA, AI_BAJA o AI_MODIFICACION.
-     * @param  HTML_Arbol $arbol ?bol de donde sacar los padres.
-     * @param  DB $db Base de datos.
+     * @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 AI_ALTA, AI_BAJA o AI_MODIFICACION.
+     * @param  DB $db Base de datos a usar.
      *
      * @return void
      * @access public
      */
-    function iniciar(&$obj, $accion, $arbol, $db) // ~X2C
+    function iniciar(&$obj, $accion, $db)
     {
         $tipo   = substr(get_class($obj), 3);
         $s_tipo = ucfirst($tipo);
@@ -81,13 +76,20 @@ class AI_Form extends MECON_HTML_QuickForm {
                 $s_accion = 'Agregar';
         }
         // Construyo con el padre y seteos generales.
-        $this->setRendererOpts(array('width' => '400'));
+        $this->renderer->updateAttributes(array('width' => '400'));
         $this->addElement('header','cabecera', $s_accion . ' ' . $s_tipo);
-        // Elementos.
+        // Elementos:
+        // ID.
         if ($tipo == 'sistema') {
             require_once 'SAMURAI/Sistema.php';
             $sistemas = array('' => '--');
-            $sistemas += AI_Sistema::getSistemasArray($db, false);
+            if ($accion & AI_ALTA) {
+                // Si es un alta, tomo una lista de sistemas aún no agregados.
+                $sistemas += AI_Sistema::getSistemasArray($db);
+            } else {
+                // Si no, tomo una lista completa de sistemas.
+                $sistemas += SAMURAI_Sistema::getArraySistemas($db);
+            }
             $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
             $this->addRule($tipo, 'Debe ingresar un sistema.', 'required');
         }
@@ -100,7 +102,10 @@ class AI_Form extends MECON_HTML_QuickForm {
             }
             $fId->freeze();
         }
+        // Padre / Nombre.
         if ($tipo == 'grupo' or $tipo == 'servicio') {
+            require_once 'AI/Arbol.php';
+            $arbol = new AI_Arbol($obj, $db, true);
             $tipos = array('' => '--', '0' => 'Página Principal')
                 + $arbol->toArray();
             // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo).
@@ -120,11 +125,12 @@ class AI_Form extends MECON_HTML_QuickForm {
                 $fNombre->setValue($obj->nombre);
             }
         }
+        // Antigüedad / Secciones / Mostrar Hijos.
         if ($tipo == 'grupo') {
             $fAntiguedad   =& $this->addElement('select', 'antiguedad', 'Antigüedad',
                 array(3 => '3 días', 1 => '1 día', 7 => '1 semana'));
             $fSecciones    =& $this->addElement('select', 'secciones', 'Secciones',
-                AI_GrupoSecciones::getSeccionesArray($db),
+                AI_GrupoSecciones::getSeccionesArray($db, (int)$obj->$tipo),
                 array('multiple' => 'multiple', 'size' => 8));
             $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos');
             // Validación.
@@ -137,23 +143,27 @@ class AI_Form extends MECON_HTML_QuickForm {
                 $fMostrarHijos->setChecked($obj->mostrar_hijos);
             }
         }
+        // Descripción / Necesita Logueo.
         if ($tipo == 'servicio') {
             $fDescripcion =& $this->addElement('text', 'descripcion', 'Descripción');
             $fLogueo      =& $this->addElement('checkbox','logueo', 'Necesita login');
+            $fVentana     =& $this->addElement('checkbox','ventana', 'Abrir en ventana nueva');
             // Validación
             $this->addRule('descripcion',   'Debe ingresar una descripción.',   'required');
             // Carga datos.
             if ($accion & (AI_BAJA | AI_MODIF)) {
                 $fDescripcion->setValue($obj->descripcion);
                 $fLogueo->setChecked($obj->necesita_logueo);
+                $fVentana->setChecked($obj->ventana_nueva);
             }
         }
+        // Link / Link Ayuda.
         if ($tipo == 'servicio' or $tipo == 'sistema') {
             $fLink      =& $this->addElement('text', 'link', 'Enlace');
             $fLinkAyuda =& $this->addElement('text', 'link_ayuda', 'Enlace de la ayuda');
             //$fIcono     =& $this->addElement('text', 'icono', 'Ícono');
             $fIcono     =& $this->addElement('select', 'icono', 'Ícono',
-                listarArchivos('/var/www/sistemas/intranet/www/images', $tipo . '_', '\.gif'));
+                listarArchivos('/var/www/sistemas/intranet/sistema/www/images', $tipo . '_', '\.gif'));
             // Carga datos.
             if ($accion & (AI_BAJA | AI_MODIF)) {
                 $fLink->setValue($obj->link);
@@ -166,10 +176,18 @@ class AI_Form extends MECON_HTML_QuickForm {
                 $this->addRule('icono', 'Debe ingresar un ícono.',  'required');
             }
         }
+        // Tipo de sistema.
+        if ($tipo == 'sistema') {
+            $fTipo =& $this->addElement('checkbox', 'tipo', 'Usa EmbPerl');
+            // Carga datos.
+            if ($accion & (AI_BAJA | AI_MODIF)) {
+                $fTipo->setChecked($obj->tipo == 'embperl');
+            }
+        }
+        // Habilitado.
         $fHabilitado =& $this->addElement('checkbox','habilitado', 'Está habilitado',
             '', array('checked' => 'checked'));
-        // Carga datos.
-        if ($accion & (AI_BAJA | AI_MODIF)) {
+        if ($accion & (AI_BAJA | AI_MODIF)) { // Carga datos.
             $fHabilitado->setChecked($obj->habilitado);
         }
         // Botones.
@@ -187,18 +205,17 @@ class AI_Form extends MECON_HTML_QuickForm {
         );
         $this->addGroup($grupo, 'botones');
     }
-    // -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.
+     * @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
+    function llenarObjeto(&$obj)
     {
         $tipo  = substr(get_class($obj), 3);
         if ($tipo == 'gruposecciones') {
@@ -220,6 +237,10 @@ class AI_Form extends MECON_HTML_QuickForm {
         if ($tipo == 'servicio') {
             $obj->descripcion     = $this->getSubmitValue('descripcion');
             $obj->necesita_logueo = $this->getSubmitValue('logueo');
+            $obj->ventana_nueva   = $this->getSubmitValue('ventana');
+        }
+        if ($tipo == 'sistema') {
+            $obj->tipo = $this->getSubmitValue('tipo') ? 'embperl' : 'php';
         }
         if ($tipo == 'servicio' or $tipo == 'sistema') {
             $obj->link       = $this->getSubmitValue('link');
@@ -227,8 +248,7 @@ class AI_Form extends MECON_HTML_QuickForm {
             $obj->icono      = $this->getSubmitValue('icono');
         }
     }
-    // -X2C
 
-} // -X2C Class :AI_Form
+}
 
 ?>
\ No newline at end of file