]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/local_lib/AI/Form.php
Grupo de noticias:
[mecon/ai.git] / sistema / local_lib / AI / Form.php
index 804ed27148d8c401d2e9993a98f060c2c83a9896..27e9bb24c49b7e4e978b745a49cbba8f33e470c9 100644 (file)
@@ -53,14 +53,13 @@ class AI_Form extends MECON_HTML_QuickForm {
      * 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  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) // ~X2C
     {
         $tipo   = substr(get_class($obj), 3);
         $s_tipo = ucfirst($tipo);
@@ -81,18 +80,18 @@ 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.
         if ($tipo == 'sistema') {
             require_once 'SAMURAI/Sistema.php';
             $sistemas = array('' => '--');
-            $cargados = AI_Sistema::getSistemasArray($db);
-            foreach (SAMURAI_Sistema::getArraySistemas($db) as $id => $nom) {
-                if (!in_array($id, $cargados)
-                        or ($accion & (AI_BAJA | AI_MODIF) and $id == $obj->$tipo)) {
-                    $sistemas[$id] = $nom;
-                }
+            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');
@@ -107,6 +106,8 @@ class AI_Form extends MECON_HTML_QuickForm {
             $fId->freeze();
         }
         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).
@@ -130,7 +131,7 @@ class AI_Form extends MECON_HTML_QuickForm {
             $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.