]> git.llucax.com Git - mecon/ai.git/commitdiff
Se completa la primera alfa. Ahora se hace todo desde el index.php.
authorLeandro Lucarella <llucax@gmail.com>
Fri, 4 Jul 2003 21:34:42 +0000 (21:34 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 4 Jul 2003 21:34:42 +0000 (21:34 +0000)
sistema/local_lib/AIForm.php
sistema/www/index.php
sistema/www/sistemas.php

index 6eff1b019b88fe0a3f364dbf6c207e37805d4a58..4c6b42370b248ff884f61386315f81af143ecfee 100644 (file)
@@ -58,6 +58,10 @@ class AIForm extends MECON_HTML_QuickForm {
     function iniciar(&$obj, $accion = ALTA) // ~X2C
     {
         $clase = get_class($obj);
+        $s_clase = ucfirst($clase);
+        if ($clase == 'gruposecciones') {
+            $s_clase = 'Grupo de Secciones';
+        }
         $padre = $clase.'_padre';
         switch ($accion) {
             case BAJA:
@@ -72,20 +76,20 @@ 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', $clase, 'Identificador');
             $fId->setValue($obj->$clase);
             $fId->freeze();
         }
-        if ($clase == 'grupo' or $clase == 'servicio') {
-            $fPadre  =& $this->addElement('text', $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($padre, 'Debe ingresar un servicio padre.', 'required');
-            $this->addRule($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)) {
index b49b766165a8799c5e77eed5c7d968d713902218..fd28d80ea2b6b455cfab4b4763d7a00158742755 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
 // +--------------------------------------------------------------------+
 // |                      Ministerio de Economía                        |
 // |                  AI (Administrador de Intranet)                    |
 // $Id$
 //
 
-require_once 'HTML/Image.php';
+// Requires generales. {{{
+require_once 'MECON/HTML/Arbol/ArbolDB.php';
+require_once 'AIForm.php';
+// }}}
 
-$MARCO->setEspacios(false);
-$MARCO->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet'));
+// Averiguo si estoy administrando algún tipo de objeto. {{{
+$tipo = null;
+if (@$_SERVER['PATH_INFO']) {
+    $tmp = ltrim($_SERVER['PATH_INFO'], '/');
+    if ($tmp == 'grupo') {
+        $tipo  = $tmp;
+        $clase = 'GrupoSecciones';
+        $tabla = 'grupo_secciones';
+    } elseif ($tmp == 'servicio') {
+        $tipo  = $tmp;
+        $clase = 'Servicio';
+        $tabla = $tipo;
+    } elseif ($tmp == 'sistema') {
+        $tipo  = $tmp;
+        $clase = 'Sistema';
+        $tabla = $tipo;
+    } else { // No hay un objeto válido para administrar.
+        header('Location: '.$_SERVER['SCRIPT_NAME']);
+    }
+}
+// }}}
+
+// Si tiene una clase, estamos editando algo. {{{
+if ($tipo) {
+    // Creo el árbol con los servicios. {{{
+    $dbdata = array(
+        'db'            => &$DB,
+        'tabla'         => $tabla,
+        'id'            => $tipo,
+        'nombre'        => $tipo,
+        'prepend_link'  => $tipo . '?accion='.MODIFICACION.'&id='
+    );
+    if ($tipo == 'grupo' or $tipo == 'servicio') {
+        $dbdata['nombre']   = 'nombre';
+        $dbdata['id_padre'] = $tipo . '_padre';
+    }
+    $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
+    // }}}
+
+    // Creo un objeto y seteo su id. {{{
+    require_once "$clase.php";
+    $obj = new $clase;
+    $obj->$tipo = @$_REQUEST['id'];
+    // }}}
+
+    // Creo formulario. {{{
+    $form =& new AIForm;
+    // }}}
+
+    // Verifico que la acción sea válida. {{{
+    switch(@$_REQUEST['accion']) {
+        case BAJA:
+        case MODIFICACION:
+            $accion = $_REQUEST['accion'];
+            break;
+        default:
+            $accion = ALTA;
+    }
+    // }}}
+
+    // Verifico si ya se envio el formulario. {{{
+    $botones = $form->getSubmitValue('botones');
+    if ($boton = @join('', array_keys($botones))) {
+        $boton = $boton . '_' . strtolower($botones[$boton]);
+    }
+    switch ($boton) {
+        case 'aceptar_agregar':
+            $accion = ALTA;
+            break;
+        case 'modificar_borrar':
+            // Viene de modificar,  hay que confirmar primero.
+            $a_confirmar = true;
+        case 'aceptar_borrar':
+            $accion = BAJA;
+            $obj->$tipo = $form->getSubmitValue($tipo);
+            break;
+        case 'borrar_cancelar':
+            // Indico que viene de un formulario cancelado.
+            $cancelado = true;
+        case 'aceptar_modificar':
+            $accion = MODIFICACION;
+            $obj->$tipo = $form->getSubmitValue($tipo);
+            break;
+    }
+    // }}}
+
+    // Inicio el formulario, cargando datos de ser necesario. {{{
+    if ($accion & (BAJA | MODIFICACION)) {
+        $err =& $obj->cargar($DB);
+        if (PEAR::isError($err)) {
+            die($err->getMessage());
+        }
+        $form->iniciar($obj, $accion);
+    } else {
+        $accion = ALTA;
+        $form->iniciar($obj);
+    }
+    // }}}
+
+    // Freezo de ser necesario. {{{
+    if (@$a_confirmar) {
+        $form->freeze();
+    }
+    // }}}
+
+    // Me fijo si se cargo un formulalrio y si es válido. {{{
+    if ($form->validate()) {
+        switch ($accion) {
+            case ALTA: // {{{
+                $form->llenarObjeto($obj);
+                $err =& $obj->guardar($DB);
+                if (PEAR::isError($err)) {
+                    die($err->getMessage());
+                }
+                header(sprintf('Location: %s?accion=%d&id=%d',
+                    $tipo, MODIFICACION, $obj->$tipo));
+                exit;
+                break;
+                // }}}
+            case BAJA: // {{{
+                if (!@$a_confirmar) {
+                    $form->llenarObjeto($obj);
+                    $err =& $obj->borrar($DB);
+                    if (PEAR::isError($err)) {
+                        die($err->getMessage());
+                    }
+                    header("Location: $tipo");
+                    exit;
+                }
+                break;
+                // }}}
+            case MODIFICACION: // {{{
+                if (!@$cancelado) {
+                    $form->llenarObjeto($obj);
+                    $err =& $obj->guardar($DB);
+                    if (PEAR::isError($err)) {
+                        die($err->getMessage());
+                    }
+                    header(sprintf('Location: %s?accion=%d&id=%d',
+                        $tipo, MODIFICACION, $obj->$tipo));
+                    exit;
+                }
+                break;
+                // }}}
+        }
+    }
+    // }}}
+
+    // Agrego al cuerpo de la página las cosas que voy a dibujar. {{{
+    $LAYOUT->setCellContents(0, 0, $arbol);
+    $LAYOUT->setCellContents(0, 2, $form);
+    $MARCO->addBody($LAYOUT);
+    // }}}
+// }}}
+
+// No se está editando nada, agrego al cuerpo de la página la pantalla de entrada {{{
+} else {
+    require_once 'HTML/Image.php';
+    $MARCO->setEspacios(false);
+    $MARCO->addBody(new HTML_Image('images/home', 'Adminitrador de Intranet'));
+}
+// }}}
+
+// Dibujo. {{{
 $MARCO->display();
+// }}}
 
 ?>
index 8309c380e356ef65c9244757f42748a7a264d495..60a463017f47f5e0e67200c3e13dc964b2a2e3a5 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
 // +--------------------------------------------------------------------+
 // |                      Ministerio de Economía                        |
 // |                  AI (Administrador de Intranet)                    |
 // $Id$
 //
 
-$MARCO->addBody("SISTEMAS");
+// Requires. {{{
+require_once 'MECON/HTML/Arbol/ArbolDB.php';
+require_once 'AIForm.php';
+require_once 'Sistema.php';
+// }}}
+
+// Creo el árbol con los servicios. {{{
+$dbdata = array(
+    'db'            => &$DB,
+    'tabla'         => 'sistema',
+    'id'            => 'sistema',
+    'nombre'        => 'sistema',
+    'prepend_link'  => 'sistema?accion='.MODIFICACION.'&id='
+);
+$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
+// }}}
+
+// Creo un servicio y seteo su id. {{{
+$sistema = new Sistema;
+$sistema->sistema = @$_REQUEST['id'];
+// }}}
+
+// Creo formulario. {{{
+$form =& new AIForm;
+// }}}
+
+// Verifico que la accion sea válida. {{{
+switch(@$_REQUEST['accion']) {
+    case BAJA:
+    case MODIFICACION:
+        $accion = $_REQUEST['accion'];
+        break;
+    default:
+        $accion = ALTA;
+}
+// }}}
+
+// Verifico si ya se envio el formulario. {{{
+$botones = $form->getSubmitValue('botones');
+if ($boton = @join('', array_keys($botones))) {
+    $boton = $boton . '_' . strtolower($botones[$boton]);
+}
+switch ($boton) {
+    case 'aceptar_agregar':
+        $accion = ALTA;
+        break;
+    case 'modificar_borrar':
+        // Viene de modificar,  hay que confirmar primero.
+        $a_confirmar = true;
+    case 'aceptar_borrar':
+        $accion = BAJA;
+        $sistema->sistema = $form->getSubmitValue('sistema');
+        break;
+    case 'borrar_cancelar':
+        // Indico que viene de un formulario cancelado.
+        $cancelado = true;
+    case 'aceptar_modificar':
+        $accion = MODIFICACION;
+        $sistema->sistema = $form->getSubmitValue('sistema');
+        break;
+}
+// }}}
+
+// Inicio el formulario, cargando datos de ser necesario. {{{
+if ($accion & (BAJA | MODIFICACION)) {
+    $err =& $sistema->cargar($DB);
+    if (PEAR::isError($err)) {
+        die($err->getMessage());
+    }
+    $form->iniciar($sistema, $accion);
+} else {
+    $accion = ALTA;
+    $form->iniciar($sistema);
+}
+// }}}
+
+// Freezo de ser necesario. {{{
+if (@$a_confirmar) {
+    $form->freeze();
+}
+// }}}
+
+// Me fijo si se cargo un formulalrio y si es válido. {{{
+if ($form->validate()) {
+    switch ($accion) {
+        case ALTA:
+            $form->llenarObjeto($sistema);
+            $err =& $sistema->guardar($DB);
+            if (PEAR::isError($err)) {
+                die($err->getMessage());
+            }
+            header(sprintf('Location: sistema?accion=%d&id=%d',
+                MODIFICACION, $sistema->sistema));
+            exit;
+            break;
+        case BAJA:
+            if (!@$a_confirmar) {
+                $form->llenarObjeto($sistema);
+                $err =& $sistema->borrar($DB);
+                if (PEAR::isError($err)) {
+                    die($err->getMessage());
+                }
+                header('Location: sistema');
+                exit;
+            }
+            break;
+        case MODIFICACION:
+            if (!@$cancelado) {
+                $form->llenarObjeto($sistema);
+                $err =& $sistema->guardar($DB);
+                if (PEAR::isError($err)) {
+                    die($err->getMessage());
+                }
+                header(sprintf('Location: sistema?accion=%d&id=%d',
+                    MODIFICACION, $sistema->sistema));
+                exit;
+            }
+            break;
+    }
+}
+$body =& $form;
+// }}}
+
+// Dibujo. {{{
+$LAYOUT->setCellContents(0, 0, $arbol);
+$LAYOUT->setCellContents(0, 2, $body);
+$MARCO->addBody($LAYOUT);
 $MARCO->display();
+// }}}
 
 ?>