]> git.llucax.com Git - mecon/ai.git/commitdiff
- Se crea una subclase de MECON_HTML_QuickForm que maneja todos los
authorLeandro Lucarella <llucax@gmail.com>
Thu, 3 Jul 2003 23:10:02 +0000 (23:10 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 3 Jul 2003 23:10:02 +0000 (23:10 +0000)
  formularios necesarios para AI.
- Se cambian las propiedades de los objetos del modelo para que sean igual
  que en la DB.
- Casi se termina el formulario de servicios.

doc/uml.xmi
sistema/local_lib/AIForm.php [new file with mode: 0644]
sistema/local_lib/GrupoSecciones.php
sistema/local_lib/Servicio.php
sistema/local_lib/Sistema.php
sistema/local_lib/prepend.php
sistema/www/servicios.php

index 2cd6aff4a96460e7ab8733d80010fd6bebe14b79..d93cc463dcda476a5d19cca155b4b5d8fa9784b0 100644 (file)
@@ -9,9 +9,9 @@
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="412" documentation="" uniqueid="506" />
+  <docsettings viewid="412" documentation="" uniqueid="509" />
   <umlobjects>
-   <UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
+   <UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="Servicio." name="Servicio" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="465" type="void" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
     </UML:Operation>
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="501" type="Servicio" abstract="0" documentation="" name="__clone" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="428" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="452" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="452" value="0" type="int" abstract="0" documentation="" name="servicio_padre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="467" value="array()" type="array" abstract="0" documentation="Servicios hijos.
 x2c:get" name="hijos" static="0" scope="202" />
     <UML:Attribute stereotype="" package="" xmi.id="429" value="''" type="string" abstract="0" documentation="Nombre del servicio." name="nombre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="433" value="''" type="string" abstract="0" documentation="Descripción del servicio." name="descripcion" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="430" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del servicio." name="icono" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="431" value="''" type="string" abstract="0" documentation="Enlace a donde el este servicio." name="link" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="432" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra la ayuda del servicio." name="linkAyuda" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="434" value="false" type="bool" abstract="0" documentation="True si es necesario que el usuario se loguee para usar el servicio." name="necesitaLogueo" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="432" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra la ayuda del servicio." name="link_ayuda" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="434" value="false" type="bool" abstract="0" documentation="True si es necesario que el usuario se loguee para usar el servicio." name="necesita_logueo" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="444" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
-   <UML:Class stereotype="" package="" xmi.id="416" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
+   <UML:Class stereotype="" package="" xmi.id="416" abstract="0" documentation="Sistema." name="Sistema" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="466" type="void" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del sistema." name="sistema" static="0" scope="200" />
     </UML:Operation>
@@ -57,7 +57,7 @@ x2c:get" name="hijos" static="0" scope="202" />
     <UML:Attribute stereotype="" package="" xmi.id="437" value="0" type="int" abstract="0" documentation="ID del sistema (ID en SAMURAI)." name="sistema" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="438" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del sistema." name="icono" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="439" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra el sistema." name="link" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="440" value="''" type="string" abstract="0" documentation="Enlace a la ayuda del sistema." name="linkAyuda" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="440" value="''" type="string" abstract="0" documentation="Enlace a la ayuda del sistema." name="link_ayuda" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="445" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="469" abstract="0" documentation="" name="AIError" static="0" scope="200" >
@@ -87,18 +87,26 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" />
     <UML:Operation stereotype="" package="" xmi.id="500" type="GrupoSecciones" abstract="0" documentation="" name="__clone" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="487" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="grupo" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="488" value="''" type="string" abstract="0" documentation="Nombre." name="nombre" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="489" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="489" value="0" type="int" abstract="0" documentation="" name="grupo_padre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="490" value="array()" type="array" abstract="0" documentation="Grupos de secciones que tiene este grupo.
 x2c:get" name="hijos" static="0" scope="202" />
     <UML:Attribute stereotype="" package="" xmi.id="491" value="array()" type="array" abstract="0" documentation="Secciones que pertenecen a este grupo." name="secciones" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="492" value="0" type="int" abstract="0" documentation="Antigüedad (en días) de las noticias a mostrar." name="antiguedad" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="493" value="false" type="bool" abstract="0" documentation="True si hay que mostrar los grupos hijos (?? FIXME)." name="mostrarHijos" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="493" value="false" type="bool" abstract="0" documentation="True si hay que mostrar los grupos hijos (?? FIXME)." name="mostrar_hijos" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="494" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="503" abstract="0" documentation="Base de datos del Administrador de Intranet." name="AIDB" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="506" type="&amp;mixed" abstract="0" documentation="" name="connect" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="504" abstract="0" documentation="x2c:extern" name="DB" static="0" scope="200" />
+   <UML:Class stereotype="" package="" xmi.id="507" abstract="0" documentation="Formularios para el Administrador de Intranet." name="AIForm" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="509" type="void" abstract="0" documentation="Construye un formulario para el objecto especificado." name="iniciar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="int" abstract="0" documentation="Tipo de formulario a crear. Puede ser GRUPO, SERVICIO o SISTEMA." name="tipo" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="3" value="" type="int" abstract="0" documentation="Accion que realizará el formulario a crear. Puede ser ALTA, BAJA o MODIFICACION." name="accion" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="4" value="" type="&amp;object" abstract="0" documentation="Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema." name="obj" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="MECON/HTML" xmi.id="508" abstract="0" documentation="x2c:extern" name="QuickForm" static="0" scope="200" />
   </umlobjects>
   <diagrams>
    <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="412" documentation="" type="402" showops="1" showpackage="0" name="Clases" localid="30000" showstereotype="0" showscope="1" font="Helvetica,8,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
@@ -108,8 +116,10 @@ x2c:get" name="hijos" static="0" scope="202" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="256" showattsigs="601" usesdiagramusefillcolour="0" x="233" linecolour="#ff0000" y="369" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="469" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="73" showattsigs="601" usesdiagramusefillcolour="0" x="325" linecolour="#ff0000" y="270" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="471" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="211" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="20" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" usefillcolor="1" showattributes="1" xmi.id="486" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="117" showattsigs="601" usesdiagramusefillcolour="0" x="379" linecolour="#ff0000" y="322" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="503" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="46" showattsigs="601" usesdiagramusefillcolour="0" x="414" linecolour="#ff0000" y="270" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="504" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="117" showattsigs="601" usesdiagramusefillcolour="0" x="347" linecolour="#ff0000" y="490" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="503" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="46" showattsigs="601" usesdiagramusefillcolour="0" x="382" linecolour="#ff0000" y="420" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="504" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="261" showattsigs="601" usesdiagramusefillcolour="0" x="48" linecolour="#ff0000" y="490" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="507" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="66" showattsigs="601" usesdiagramusefillcolour="0" x="145" linecolour="#ff0000" y="420" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="508" showoperations="0" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
     </widgets>
     <messages/>
     <associations>
@@ -121,8 +131,14 @@ x2c:get" name="hijos" static="0" scope="202" />
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="504" widgetaid="503" documentation="" type="500" >
       <linepath>
-       <startpoint startx="437" starty="322" />
-       <endpoint endx="437" endy="294" />
+       <startpoint startx="405" starty="490" />
+       <endpoint endx="405" endy="444" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="508" widgetaid="507" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="178" starty="490" />
+       <endpoint endx="178" endy="444" />
       </linepath>
      </UML:AssocWidget>
     </associations>
@@ -132,9 +148,15 @@ x2c:get" name="hijos" static="0" scope="202" />
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
      <listitem open="1" type="803" id="-1" label="AI" >
+      <listitem open="0" type="813" id="503" label="AIDB" >
+       <listitem open="0" type="815" id="506" label="connect" />
+      </listitem>
       <listitem open="0" type="813" id="469" label="AIError" >
        <listitem open="0" type="815" id="470" label="AIError" />
       </listitem>
+      <listitem open="0" type="813" id="507" label="AIForm" >
+       <listitem open="0" type="815" id="509" label="iniciar" />
+      </listitem>
       <listitem open="0" type="813" id="486" label="GrupoSecciones" >
        <listitem open="0" type="814" id="492" label="antiguedad" />
        <listitem open="0" type="815" id="498" label="borrar" />
@@ -142,13 +164,13 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="815" id="499" label="cargarHijos" />
        <listitem open="0" type="815" id="500" label="__clone" />
        <listitem open="0" type="814" id="487" label="grupo" />
+       <listitem open="0" type="814" id="489" label="grupo_padre" />
        <listitem open="0" type="815" id="495" label="GrupoSecciones" />
        <listitem open="0" type="815" id="497" label="guardar" />
        <listitem open="0" type="814" id="494" label="habilitado" />
        <listitem open="0" type="814" id="490" label="hijos" />
-       <listitem open="0" type="814" id="493" label="mostrarHijos" />
+       <listitem open="0" type="814" id="493" label="mostrar_hijos" />
        <listitem open="0" type="814" id="488" label="nombre" />
-       <listitem open="0" type="814" id="489" label="padre" />
        <listitem open="0" type="814" id="491" label="secciones" />
       </listitem>
       <listitem open="0" type="813" id="413" label="Servicio" >
@@ -162,12 +184,12 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="814" id="467" label="hijos" />
        <listitem open="0" type="814" id="430" label="icono" />
        <listitem open="0" type="814" id="431" label="link" />
-       <listitem open="0" type="814" id="432" label="linkAyuda" />
-       <listitem open="0" type="814" id="434" label="necesitaLogueo" />
+       <listitem open="0" type="814" id="432" label="link_ayuda" />
+       <listitem open="0" type="814" id="434" label="necesita_logueo" />
        <listitem open="0" type="814" id="429" label="nombre" />
-       <listitem open="0" type="814" id="452" label="padre" />
        <listitem open="0" type="814" id="428" label="servicio" />
        <listitem open="0" type="815" id="465" label="Servicio" />
+       <listitem open="0" type="814" id="452" label="servicio_padre" />
       </listitem>
       <listitem open="0" type="813" id="416" label="Sistema" >
        <listitem open="0" type="815" id="461" label="borrar" />
@@ -177,18 +199,16 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="814" id="445" label="habilitado" />
        <listitem open="0" type="814" id="438" label="icono" />
        <listitem open="0" type="814" id="439" label="link" />
-       <listitem open="0" type="814" id="440" label="linkAyuda" />
+       <listitem open="0" type="814" id="440" label="link_ayuda" />
        <listitem open="0" type="814" id="437" label="sistema" />
        <listitem open="0" type="815" id="466" label="Sistema" />
       </listitem>
      </listitem>
-     <listitem open="1" type="813" id="503" label="AIDB" >
-      <listitem open="0" type="815" id="506" label="connect" />
-     </listitem>
      <listitem open="0" type="807" id="412" label="Clases" />
-     <listitem open="1" type="803" id="-1" label="Externo" >
+     <listitem open="0" type="803" id="-1" label="Externo" >
       <listitem open="1" type="813" id="504" label="DB" />
       <listitem open="0" type="813" id="471" label="PEAR_Error" />
+      <listitem open="1" type="813" id="508" label="QuickForm" />
      </listitem>
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
diff --git a/sistema/local_lib/AIForm.php b/sistema/local_lib/AIForm.php
new file mode 100644 (file)
index 0000000..b84837f
--- /dev/null
@@ -0,0 +1,162 @@
+<?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
+
+?>
index 9f6bfe1e46419458a3777a55ccf578601805867b..136ebfd800bea94c706164aed52e1714a49a55ce 100644 (file)
@@ -53,10 +53,10 @@ class GrupoSecciones {
     var $nombre = '';
 
     /**
-     * @var    int $padre
+     * @var    int $grupo_padre
      * @access public
      */
-    var $padre = 0;
+    var $grupo_padre = 0;
 
     /**
      * Grupos de secciones que tiene este grupo.
@@ -85,10 +85,10 @@ class GrupoSecciones {
     /**
      * True si hay que mostrar los grupos hijos (?? FIXME).
      *
-     * @var    bool $mostrarHijos
+     * @var    bool $mostrar_hijos
      * @access public
      */
-    var $mostrarHijos = false;
+    var $mostrar_hijos = false;
 
     /**
      * Indica si esta habilitado.
@@ -158,9 +158,9 @@ class GrupoSecciones {
         extract($row);
         $this->grupo        = $grupo;
         $this->nombre       = $nombre;
-        $this->padre        = $grupo_padre;
+        $this->grupo_padre  = $grupo_padre;
         $this->antiguedad   = $antiguedad;
-        $this->mostrarHijos = $mostrar_hijos;
+        $this->mostrar_hijos= $mostrar_hijos;
         // Obtengo secciones.
         $secciones = $db->getCol(
             "SELECT seccion
@@ -191,7 +191,7 @@ class GrupoSecciones {
         $grupo = intval($this->grupo);
         $where = '';
         $datos = array(
-            'grupo_padre'   => intval($this->padre),
+            'grupo_padre'   => intval($this->grupo_padre),
             'nombre'        => $this->nombre,
             'habilitado'    => $this->habilitado ? 1 : 0,
             'antiguedad'    => intval($this->antiguedad),
index 229ab237fb0c759f8ecec9e74c25e6fa727f7261..6792359fb51cc168a409943d0d8698c67c2c5342 100644 (file)
@@ -31,6 +31,8 @@ require_once 'AIError.php';
 
 // +X2C Class 413 :Servicio
 /**
+ * Servicio.
+ *
  * @access public
  */
 class Servicio {
@@ -43,10 +45,10 @@ class Servicio {
     var $servicio = 0;
 
     /**
-     * @var    int $padre
+     * @var    int $servicio_padre
      * @access public
      */
-    var $padre = 0;
+    var $servicio_padre = 0;
 
     /**
      * Servicios hijos.
@@ -91,18 +93,18 @@ class Servicio {
     /**
      * Enlace a donde se encuentra la ayuda del servicio.
      *
-     * @var    string $linkAyuda
+     * @var    string $link_ayuda
      * @access public
      */
-    var $linkAyuda = '';
+    var $link_ayuda = '';
 
     /**
      * True si es necesario que el usuario se loguee para usar el servicio.
      *
-     * @var    bool $necesitaLogueo
+     * @var    bool $necesita_logueo
      * @access public
      */
-    var $necesitaLogueo = false;
+    var $necesita_logueo = false;
 
     /**
      * Indica si esta habilitado.
@@ -170,13 +172,13 @@ class Servicio {
         // Asigno valores al objeto.
         extract($row);
         $this->servicio         = $servicio;
-        $this->padre            = $servicio_padre;
+        $this->servicio_padre   = $servicio_padre;
         $this->nombre           = $nombre;
         $this->descripcion      = $descripcion;
         $this->icono            = $icono; # FIXME - new HTML_Icono (o no?)
         $this->link             = $link;
-        $this->linkAyuda        = $link_ayuda;
-        $this->necesitaLogueo   = $necesita_logueo;
+        $this->link_ayuda       = $link_ayuda;
+        $this->necesita_logueo  = $necesita_logueo;
         $this->habilitado       = $habilitado;
         return true;
     }
@@ -194,13 +196,13 @@ class Servicio {
         $servicio = intval($this->servicio);
         $where    = '';
         $datos    = array(
-            'servicio_padre'    => intval($this->padre),
+            'servicio_padre'    => intval($this->servicio_padre),
             'nombre'            => $this->nombre,
             'descripcion'       => $this->descripcion,
             'icono'             => $this->icono,
             'link'              => $this->link,
-            'link_ayuda'        => $this->linkAyuda,
-            'necesita_logueo'   => $this->necesitaLogueo ? 1 : 0,
+            'link_ayuda'        => $this->link_ayuda,
+            'necesita_logueo'   => $this->necesita_logueo ? 1 : 0,
             'habilitado'        => $this->habilitado ? 1 : 0,
         );
         if ($servicio) {
index 5a6f62ec6ae050d76ae838b9bb48cda2217652b4..2d2f63a826b2f15a7e49e5fd19d954fb56ff998f 100644 (file)
@@ -31,6 +31,8 @@ require_once 'AIError.php';
 
 // +X2C Class 416 :Sistema
 /**
+ * Sistema.
+ *
  * @access public
  */
 class Sistema {
@@ -61,10 +63,10 @@ class Sistema {
     /**
      * Enlace a la ayuda del sistema.
      *
-     * @var    string $linkAyuda
+     * @var    string $link_ayuda
      * @access public
      */
-    var $linkAyuda = '';
+    var $link_ayuda = '';
 
     /**
      * Indica si esta habilitado.
@@ -123,7 +125,7 @@ class Sistema {
         $this->sistema    = $sistema;
         $this->icono      = $icono; # FIXME - new HTML_Icono (o no?)
         $this->link       = $link;
-        $this->linkAyuda  = $link_ayuda;
+        $this->link_ayuda = $link_ayuda;
         $this->habilitado = $habilitado;
         return true;
     }
@@ -143,7 +145,7 @@ class Sistema {
         $datos    = array(
             'icono'      => $this->icono,
             'link'       => $this->link,
-            'link_ayuda' => $this->linkAyuda,
+            'link_ayuda' => $this->link_ayuda,
             'habilitado' => $this->habilitado ? 1 : 0,
         );
         if ($sistema) {
index 5afcf704f658231b5d7f7b31694fa1357b8947c9..2f859d55b8c18da13b54ce0a7690a8d4481df1ab 100644 (file)
 // $Id$
 //
 
+// Debug.
+require_once 'PEAR.php';
+PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
+
 // Directorio raíz real del sistema.
 $ROOTDIR = '/var/www/sistemas/ai';
 
@@ -37,7 +41,6 @@ prepend_include_path("$ROOTDIR/local_lib");
 // Uso siempre a Marco.
 require_once 'MECON/Marco.php';
 $MARCO = new Marco("$ROOTDIR/conf/Marco.php");
-#$MARCO->setEspacios(false);
 
 // Siempre le agrego una barra al costado.
 require_once 'HTML/Table.php';
@@ -58,6 +61,6 @@ $LAYOUT->setCellContents(0, 1, '&nbsp;');
 
 // Siempre uso mi base de datos.
 require_once 'AIDB.php';
-$db =& AIDB::connect();
+$DB =& AIDB::connect();
 
 ?>
index 7ff6a8ef843cbbe5ebd5787fec189cf774321e6a..d4087ebd653d4fc3738ba2f6ea3fcbe102ca174a 100644 (file)
 //
 
 require_once 'MECON/HTML/Arbol/ArbolDB.php';
-require_once 'MECON/HTML/QuickForm.php';
+require_once 'AIForm.php';
 require_once 'Servicio.php';
 
 // Dibujo el menu de arbol.
 $dbdata = array(
-    'db'            => &$db,
+    'db'            => &$DB,
     'tabla'         => 'servicio',
     'id'            => 'servicio',
     'nombre'        => 'nombre',
     'id_padre'      => 'servicio_padre',
-    'prepend_link'  => 'servicios?id='
+    'prepend_link'  => 'servicios?accion='.MODIFICACION.'&id='
 );
 $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
 
-// Creo el formulario.
-$form =& new MECON_HTML_QuickForm();
-$form->setRendererOpts(array('width' => '400'));
-$form->addElement('header','cabecera', 'Agregar Servicio');
-$fServicio      =& $form->addElement('static'   ,'servicio'     , 'Identificador'       );
-$fPadre         =& $form->addElement('text'     ,'padre'        , 'Servicio padre'      );
-$fNombre        =& $form->addElement('text'     ,'nombre'       , 'Nombre'              );
-$fDescripcion   =& $form->addElement('text'     ,'descripcion'  , 'Descripción'         );
-$fLink          =& $form->addElement('text'     ,'link'         , 'Enlace'              );
-$fLinkAyuda     =& $form->addElement('text'     ,'linkayuda'    , 'Enlace de la ayuda'  );
-$fIcono         =& $form->addElement('text'     ,'icono'        , 'Ícono'               );
-$fLogueo        =& $form->addElement('checkbox' ,'logueo'       , 'Necesita login'      );
-$fHabilitado    =& $form->addElement('checkbox' ,'habilitado'   , 'Está habilitado', '', array('checked' => 'checked'));
-$fBtnAceptar    =& HTML_QuickForm::createElement('submit'   , 'aceptar' , 'Aceptar' );
-$fBtnDeshacer   =& HTML_QuickForm::createElement('reset'    , 'deshacer', 'Deshacer');
-$fBtnCancelar   =& HTML_QuickForm::createElement('submit'   , 'cancelar', 'Cancelar');
-$grupo = array(
-    &$fBtnAceptar,
-    &$fBtnDeshacer,
-    &$fBtnCancelar,
-);
-$form->addGroup($grupo, 'botones');
-// Agrego reglas de validación.
-$form->addRule('padre'      , 'Debe ingresar un servicio padre.'     , 'required');
-$form->addRule('nombre'     , 'Debe ingresar un nombre.'     , 'required');
-$form->addRule('descripcion', 'Debe ingresar una descripción.'     , 'required');
-#$form->addRule('link'       , 'Debe ingresar un enlace.'     , 'required');
-$form->addRule('padre'      , 'El servicio padre debe ser un número natural.' , 'regex'   , '/^\d*$/');
-
-// Creo un servicio.
+// Creo un servicio y seteo su id.
 $servicio = new Servicio;
+$servicio->servicio = @$_REQUEST['id'];
+
+// Verifico que la accion sea válida.
+switch(@$_REQUEST['accion']) {
+    case BAJA:
+    case MODIFICACION:
+        $accion = $_REQUEST['accion'];
+        break;
+    default:
+        $accion = ALTA;
+}
+
+// Creo formulario.
+$form =& new AIForm;
+
+// Verifico si ya se envio el formulario.
+$freeze = false;
+switch (@strtolower(join('', ($form->getSubmitValue('botones'))))) {
+    case 'agregar':
+        $accion = ALTA;
+        break;
+    case 'borrar':
+        $accion = BAJA;
+        $servicio->servicio = $form->getSubmitValue('servicio');
+        // Es la primera "llamada" a borrar asi que indico que hay que
+        // freezarlo primero para confirmar.
+        $freeze = true;
+        break;
+    case 'modificar':
+    case 'cancelar':
+        $accion = MODIFICACION;
+        $servicio->servicio = $form->getSubmitValue('servicio');
+        break;
+}
 
-// Si viene un servicio por REQUEST, lo cargo.
-if (@$_REQUEST['id']) {
-    $servicio->servicio = $_REQUEST['id'];
-    $err =& $servicio->cargar($db);
+// Cargo datos de ser necesario.
+if ($accion & (BAJA | MODIFICACION)) {
+    $err =& $servicio->cargar($DB);
     if (PEAR::isError($err)) {
         die($err->getMessage());
     }
-    $fServicio->setValue($servicio->servicio);
-    $fPadre->setValue($servicio->padre);
-    $fNombre->setValue($servicio->nombre);
-    $fDescripcion->setValue($servicio->descripcion);
-    $fLink->setValue($servicio->link);
-    $fLinkAyuda->setValue($servicio->linkAyuda);
-    $fIcono->setValue($servicio->icono);
-    $fLogueo->setValue($servicio->necesitaLogueo);
-    $fHabilitado->setValue($servicio->habilitado);
+    $form->iniciar(SERVICIO, $accion, $servicio);
+} else {
+    $accion = ALTA;
+    $form->iniciar(SERVICIO, ALTA, $servicio);
+}
+
+// Freezo de ser necesario.
+if ($freeze) {
+    $form->freeze();
+}
+
+// Me fijo si se cargo un formulalrio y si es válido.
+if ($form->validate()) {
+/*    $botones =& $form->getElement('botones');
+    $botones =& $botones->getElements();
+    $btnAceptar  =& $botones[0];
+    $btnCancelar =& $botones[1];
+    $body = $btnAceptar->getValue() . '<BR>' . $btnCancelar->getValue() . '<BR>';
+    switch (strtolower($btnAceptar->getValue())) {
+        case 'agregar':
+        $body .= 'Tengo que agregar!!!';
+            break;
+        case 'modificar':
+            if (strtolower($btnCancelar->getValue()) == 'borrar') {
+                $body .= 'Tengo que poner confirmación para borrar!!!';
+            } else {
+                $body .= 'Tengo que modificar!!!';
+            }
+            break;
+        case 'borrar':
+            if (strtolower($btnCancelar->getValue()) == 'cancelar') {
+                $body .= 'Tengo que poner para modificar de nuevo!!!';
+            } else {
+                $body .= 'Tengo que borrar!!!';
+            }
+            break;
+    }*/
+    switch ($accion) {
+        case ALTA:
+            $form->freeze();
+            $body = 'Tengo que agregar!!!' . $form->toHtml();
+            break;
+        case BAJA:
+            if ($form->isFrozen()) {
+                $form->freeze();
+                $body = 'Tengo que borrar!!!' . $form->toHtml();
+            } else {
+                $form->freeze();
+                $body =& $form;
+            }
+            break;
+        case MODIFICACION:
+            $form->freeze();
+            $body = 'Tengo que modificar!!!' . $form->toHtml();
+            break;
+    }
+} else {
+    $body =& $form;
 }
 
 // Dibujo.
 $LAYOUT->setCellContents(0, 0, $arbol);
-$LAYOUT->setCellContents(0, 2, $form->toHtml());
+$LAYOUT->setCellContents(0, 2, $body);
 $MARCO->addBody($LAYOUT);
 $MARCO->display();