]> git.llucax.com Git - mecon/yatta.git/commitdiff
Agrego el abm de servidores
authorMartín Marrese <marrese@gmail.com>
Tue, 27 Jan 2004 18:49:44 +0000 (18:49 +0000)
committerMartín Marrese <marrese@gmail.com>
Tue, 27 Jan 2004 18:49:44 +0000 (18:49 +0000)
lib/YATTA/Controlador.php
lib/YATTA/ProcesoDB.php
lib/YATTA/ServidorDB.php [new file with mode: 0644]
script/servidores/YATTA_Tacho.php [new file with mode: 0755]
sistema/conf/Marco.php
sistema/local_lib/constantes.php
sistema/www/admin_servidores-abm.php [new file with mode: 0644]
sistema/www/admin_servidores.php [new file with mode: 0644]

index e28d71eea3f938d78ca608cac6514833040af036..b693229a63e78f3822fe8aa8ef0c296ae14a50b8 100644 (file)
@@ -28,6 +28,8 @@ require_once 'YATTA/Proceso.php';
 require_once 'YATTA/ProcesoDB.php';
 require_once 'YATTA/Servidor.php';
 
+define ('PATH_TACHO', '/var/www/yatta_tacho/');
+
 /**
  * Clase para el manejo centralizado de toda la informacion de YATTA.
  *
@@ -44,10 +46,6 @@ class YATTA_Controlador {
      * @access private
      */
     function _obtenerServidor($db) {
-        
-        //@FIXME La ponderacion esta mal. No tengo que buscar el que tenga mas
-        //alta o mas baja OJO!!! Volver a pensar el calculo.
-        
         $res = $db->query('SELECT s.id, s.escala * s.procesos AS ponderacion
             FROM yatta.servidores AS s 
             ORDER BY ponderacion ASC, s.escala DESC');
@@ -204,7 +202,7 @@ class YATTA_Controlador {
         //COPIO EL ARCHIVO
         if (@$archivo) {
             $arch = basename ($archivo);
-            rename ($archivo, '/var/www/yatta_tacho/'.$arch);
+            rename ($archivo, PATH_TACHO.$arch);
         }
         
         //Actualizo los servidores
index 5e0138b3cadb409adfd21ee4ab7c1627db942324..aeb9d329a7020feaeadc92b357678ab999b66219 100644 (file)
@@ -108,6 +108,7 @@ class YATTA_ProcesoDB extends MECON_DBO {
      * 2 = Finalizado
      * 3 = Error
      * 4 = Abortado
+     * 5 = Abortar
      *
      * @var    int $status
      * @access public
@@ -384,78 +385,6 @@ class YATTA_ProcesoDB extends MECON_DBO {
      */
     function guardar($db = null, $nuevo = true)
     {
-/*
-        //@TODO PASAR ESTO A UNA CLASE SERVIDOR
-        //Busco el servidor
-        $res = $db->query('SELECT id, escala * procesos AS ponderacion
-                FROM yatta.servidores 
-                ORDER BY ponderacion, escala');
-        $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
-        // Si hay error lo devuelve.
-        if (DB::isError($res)) {
-            return $res;
-        }
-        $this->server = $res['id'];
-        //Asigno la fecha
-        if (@is_null($this->fecha)) {
-            $this->fecha = date ('Y-m-d');
-        }
-        
-        if ($nuevo) {
-            $datos = array (
-                        'fecha'         => $this->fecha,
-                        'script'        => $this->script,
-                        'id_sistema'    => $this->id_sistema,
-                        'descripcion'   => $this->descripcion,
-                        'pid'           => $this->pid,
-                        'server'        => $this->server,
-                        'status'        => $this->status,
-                        'owner'         => $this->owner,
-                        'destinos'      => $this->destinos,
-                        'prioridad'     => $this->prioridad,
-                        'scheduling'    => $this->scheduling,
-                        'notificar'     => $this->notificar,
-                        'resultado'     => $this->resultado,
-                        'archivo'       => $this->archivo,
-                        'nota'          => $this->nota
-                    );
-
-            $res = $db->autoExecute('yatta.procesos', $datos,
-                    DB_AUTOQUERY_INSERT);
-        }
-        else {
-            $datos = array (
-                        'fecha'         => $this->fecha,
-                        'script'        => $this->script,
-                        'id_sistema'    => $this->id_sistema,
-                        'descripcion'   => $this->descripcion,
-                        'pid'           => $this->pid,
-                        'server'        => $this->server,
-                        'status'        => $this->status,
-                        'owner'         => $this->owner,
-                        'destinos'      => $this->destinos,
-                        'prioridad'     => $this->prioridad,
-                        'scheduling'    => $this->scheduling,
-                        'notificar'     => $this->notificar,
-                        'resultado'     => $this->resultado,
-                        'archivo'       => $this->archivo,
-                        'nota'          => $this->nota
-                    );
-
-            $res = $db->autoExecute('yatta.procesos', $datos,
-                    DB_AUTOQUERY_UPDATE, 'id = '.$this->id);
-            
-        }
-
-        if (DB::isError($res)) {
-            return $res;
-        }
-
-        return  $db->query('
-                UPDATE yatta.servidores
-                SET procesos = procesos + 1
-                WHERE id = '. $this->server);
-*/
     }
 
     /**
diff --git a/lib/YATTA/ServidorDB.php b/lib/YATTA/ServidorDB.php
new file mode 100644 (file)
index 0000000..a5e427c
--- /dev/null
@@ -0,0 +1,212 @@
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! 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.
+
+YATTA! 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; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 13:15:52 ART 2004
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+
+require_once 'MECON/DBO.php';
+require_once 'PEAR.php';
+
+/**
+ * Clase para el manejo de los servidores.
+ *
+ * @access public
+ */
+class YATTA_ServidorDB extends MECON_DBO {
+
+    /**
+     * Identificador del servidor.
+     *
+     * @var    int $id
+     * @access public
+     */
+    var $id = null;
+     
+    /**
+     * Nombre del servidor.
+     *
+     * @var    string $nombre
+     * @access public
+     */
+    var $nombre = null;
+     
+    /**
+     * Escala del servidor.
+     *
+     * @var    int $escala
+     * @access public
+     */
+    var $escala = null;
+
+    /**
+     * Procesos que tiene asignado el servidor (incluye el proceso en
+     * ejecución).
+     *
+     * @var    int $procesos
+     * @access public
+     */
+    var $procesos = null;
+     
+    /**
+     * Carga el objeto con los datos que se pasan por parametro.
+     * 
+     * @param  DB $db DB o DB_Result a usar para la carga.
+     *
+     * @return mixed
+     * @access public
+     */
+    function cargar($db = null)
+    {
+        // Si es un resultado, obtengo los elemento.
+        if (is_a($db, 'db_result')) {
+            $this->predefinirAtributos();
+            $res = $db->fetchRow(DB_FETCHMODE_ASSOC);
+            // Si hay error lo devuelve.
+            if (DB::isError($res)) {
+                return $res;
+            }
+            elseif (!$res) {
+                return false;
+            }
+            $this->id       = $res['id'];
+            $this->nombre   = $res['nombre'];
+            $this->escala   = $res['escala'];
+            $this->procesos = $res['procesos'];
+            return true;
+        }
+        return false; 
+    }
+
+    /**
+     * Borra el objeto de una base de datos.
+     *
+     * @param  DB $db Base de datos de donde borrar el objeto.
+     *
+     * @return mixed
+     * @access public
+     */
+    function borrar($db = null)
+    {
+        return $db->query ("DELETE FROM yatta.servidores 
+                WHERE id = ". $this->id);
+    }
+
+    /**
+     * Busca los datos en la base.
+     *
+     * @param  DB $db Conexion a la base de datos.
+     * @param  string $operador Indica como deben concatenarse las condiciones de busqueda
+     * @param  string $orden Indica de que manera deben ordenarse los resultados de la busqueda
+     *
+     * @return mixed
+     * @access public
+     */
+    function buscar($db = null, $operador = MECON_DBO_OR, $orden = null) 
+    {
+        // Armo el WHERE.
+        $where = array();
+        if (!is_null($this->id)) {
+            $where[] = 's.id = '.$this->id;
+        }
+        if (!is_null($this->nombre)) {
+            $where[] = 's.nombre LIKE '. $db->quote("%$this->nombre%");
+        }
+        if ($where) {
+            $where = 'WHERE '. join ("$operador", $where);
+        }
+        else {
+            $where = '';
+        }
+        // Armo el ORDER BY.
+        if (is_string($orden))
+        {
+            $orden = array($orden);
+        }
+        if ($orden) 
+        {
+            $orden = 'ORDER BY '.join(',',$orden);
+        }
+        else {
+            $orden = '';
+        }
+        
+        return $db->query(
+                "SELECT s.id AS id, s.nombre AS nombre, s.escala AS escala,
+                s.procesos AS procesos 
+                FROM yatta.servidores AS s
+                $where
+                $orden");
+    }
+
+    /**
+     * Guarda los datos en la base.
+     *
+     * @param  DB $db Conexion a la base de datos.
+     * @param  bool $nuevo Indica si se trata de un nuevo registro en la base.
+     *
+     * @return mixed
+     * @access public
+     */
+    function guardar($db = null, $nuevo = true)
+    {
+        //Reasigno las escalas a los servidores que ya estan.
+        $res = $db->query("UPDATE yatta.servidores SET escala = escala + 1 WHERE
+                escala >= ".$this->escala);
+        if (PEAR::isError($res)) {
+            die('Error: ' . $res->getMessage() . "\n");
+        }
+        
+        if ($nuevo) {
+            $datos = array (
+                    'nombre'   => $this->nombre,
+                    'escala'   => $this->escala,
+                    'procesos' => 0
+                    );
+            return $db->autoExecute('yatta.servidores', $datos, 
+                    DB_AUTOQUERY_INSERT);
+        }
+        else {
+            $datos = array (
+                    'nombre'   => $this->nombre,
+                    'escala'   => $this->escala,
+                    'procesos' => $this->procesos
+                    );
+            return $db->autoExecute('yatta.servidores', $datos,
+                    DB_AUTOQUERY_UPDATE, 'id = '. $this->id);
+        }
+    }
+
+    /**
+     * Hace un reset de los atributos.
+     * 
+     * @return void
+     * @access public
+     */
+    function predefinirAtributos() {
+        $this->id       = null;
+        $this->nombre   = null;
+        $this->escala   = null;
+        $this->procesos = null;
+    }
+}
+?>
\ No newline at end of file
diff --git a/script/servidores/YATTA_Tacho.php b/script/servidores/YATTA_Tacho.php
new file mode 100755 (executable)
index 0000000..1ed5f5c
--- /dev/null
@@ -0,0 +1,102 @@
+#!/usr/bin/php4 -qC
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! 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.
+
+YATTA! 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; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: jue ene  8 16:53:47 ART 2004
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+
+//YATTA LOG {{{
+function yatta_log ($texto) {
+    GLOBAL $YATTA_SERVER;
+    GLOBAL $FH;
+    $linea = strftime("%b %e %H:%M:%S").' '.$YATTA_SERVER['name'].' '.
+        $YATTA_SERVER['script'].'['.$YATTA_SERVER['pid'].']: '. $texto ."\n";
+    fwrite($FH, $linea);
+}
+//}}}
+
+//ABRO EL ARCHIVO DE LOG {{{
+//Como root:
+//# touch /var/log/apache/YATTA_Tacho.log
+//# chown root.www-data /var/log/apache/YATTA_Tacho.log
+//# chmod 660 /var/log/apache/YATTA_Tacho.log
+if (!($FH = fopen ("/var/log/apache/YATTA_Tacho.log", "a"))) {
+    die ("No se pudo abrir el archivo de log. Se detiene el script.");
+}
+//}}}
+
+//REQUIRE ONCE {{{
+require_once 'DB.php';
+require_once 'PEAR.php';
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/Servidor.php';
+//}}}
+
+//CREO UNA CONEXION MYSQL{{{
+$db =& DB::connect('mysql://intranet:intranet@bal747f/yatta', true);
+if (DB::isError($db)) {
+    die ($db->getMessage());
+}
+//}}}
+
+//CREO LOS OBJETOS NECESARIOS {{{
+$CONTROLADOR =& new YATTA_Controlador;
+$SERVIDOR =& new YATTA_Servidor;
+//}}}
+
+//OBTENGO LOS DATOS DEL SERVER {{{
+$YATTA_SERVER['tacho'] = '/var/www/yatta_tacho/';
+$YATTA_SERVER['script'] = $argv[0];
+$YATTA_SERVER['pid'] = getmypid();
+$YATTA_SERVER['name'] = substr(file_get_contents('/etc/hostname'), 0, strpos
+        (file_get_contents('/etc/hostname'), "\n"));
+$YATTA_SERVER['id'] = $SERVIDOR->obtenerId($db, $YATTA_SERVER['name']);
+if (PEAR::isError($YATTA_SERVER['id'])) {
+    die('Error: ' . $YATTA_SERVER['id']->getMessage() . "\n");
+}
+yatta_log ('*************** Comienzo Ejecución ***************');
+//}}}
+
+//BORRO LOS ARCHIVOS CON MAS DE 7 DIAS {{{
+
+//}}}
+
+//VERIFICO LAS CUOTAS DE LOS USUARIOS{{{
+    //WHILEO POR USUARIO {{{
+        //HAY MAS DE LA CUOTA {{{
+        //BORRAR LOS ARCHIVOS MAS VIEJOS HASTA LLEGAR AL VALOR DE LA CUOTA.
+        //ENVIAR UN EMAIL AVISANDO DE ESTO.
+        //}}}
+        //HAY MENOS DE LA CUOTA PERO SUPERA EL 80%{{{
+        //ENVIAR EMAIL SOBRE LA SITUACION Y AVISANDO QUE SI SE SUPERA LA CUOTA
+        //LOS ARCHIVOS MAS VIEJOS SERAN BORRADOS HASTA CUMPLIR EL REQUERIMIENTO
+        //DE TAMAÑO
+        //}}}
+    //}}}
+//}}}
+
+//CIERRO EL ARCHIVO DE LOG {{{
+yatta_log ('*************** Finaliza Ejecución ***************');
+fclose ($FH);
+//}}}
+?>
\ No newline at end of file
index 2705186954ffbd261d7a786523fd57ac4377ec59..26d30d8bd626cd97624652938b8ffad2c3bfcb38 100644 (file)
         array (
             'nombre'        => 'Consultas de Procesos',    
             'imagenComun'   => 'general_procesos.gif',    
-            'imagenMouseOn' => '',              // --> Opcional
-            'imagenSelect'  => '',              // --> Opcional
             'link'          => 'procesos',    
             'permisos'      => array (YATTA_PERM_ACCESO),
-//            'tipoMenu'      => '<Tipo Menu (Vertical, Horizontal, Oculto)>',   
-//            'hijos'         => array (       
-//                                    array ( 'nombre'        => '<Nombre Subseccion',       
-//                                            'imagenComun'   => '<IMAGEN>',    
-//                                            'imagenMouseOn' => '',              // --> Opcional
-//                                            'imagenSelect'  => '',              // --> Opcional
-//                                            'link'          => '<Link>',    
-//                                            'permisos'      => array ( <PERMISOS> ),
-//                                            'subhijos'      => array ( <Links Subhijos> ),
-//                                    ),
-//                                ),
             ), //}}}
         //SECCION 2 {{{ 
         array (
             'nombre'        => 'Administracion de Archivos',    
             'imagenComun'   => 'archivos.gif',    
-            'imagenMouseOn' => '',              // --> Opcional
-            'imagenSelect'  => '',              // --> Opcional
             'link'          => 'archivos',    
             'permisos'      => array (YATTA_PERM_ACCESO),
-//            'tipoMenu'      => '<Tipo Menu (Vertical, Horizontal, Oculto)>',   
+            ),//}}}
+        //SECCION 3 {{{ 
+        array (
+            'nombre'        => 'Administración Servidores',    
+            'imagenComun'   => 'general_admin.gif',    
+            'link'          => 'admin_servidores',    
+            'permisos'      => array (YATTA_PERM_ADMINISTRADOR),
+//            'tipoMenu'      => 'vertical',   
+            'subhijos'      => array ('admin_servidores-abm'),
 //            'hijos'         => array (       
-//                                    array ( 'nombre'        => '<Nombre Subseccion',       
-//                                            'imagenComun'   => '<IMAGEN>',    
+//                                    array ( 'nombre'        => 'Servidores',       
+//                                            'imagenComun'   => 'general_admin.gif',    
 //                                            'imagenMouseOn' => '',              // --> Opcional
 //                                            'imagenSelect'  => '',              // --> Opcional
-//                                            'link'          => '<Link>',    
-//                                            'permisos'      => array ( <PERMISOS> ),
+//                                            'link'          => 'admin_servidores',    
+//                                            'permisos'      => array (YATTA_PERM_ADMINISTRADOR),
 //                                            'subhijos'      => array ( <Links Subhijos> ),
 //                                    ),
 //                                ),
index c752ee5fed272576bec9451a02145c5f6414d4e3..f8593614d9bcb6d89b81b1f3904b6e6b12a673e6 100644 (file)
@@ -9,17 +9,22 @@
 // $Id$
 
 /** @file
  * Definicion de Constantes del sistema  YATTA
   */
+ * Definicion de Constantes del sistema  YATTA
+ */
 
 /**
  * Identificador del Sistema
   */
+ * Identificador del Sistema
+ */
 define('YATTA_PERM', 74);
 
 /**
  * Identificacion del permiso acceso
   */
+ * Identificacion del permiso acceso
+ */
 define('YATTA_PERM_ACCESO', 105);
 
+/**
+ * Identificacion del permiso administrador
+ */
+define('YATTA_PERM_ADMINISTRADOR', 48);
+
 ?>
diff --git a/sistema/www/admin_servidores-abm.php b/sistema/www/admin_servidores-abm.php
new file mode 100644 (file)
index 0000000..34af421
--- /dev/null
@@ -0,0 +1,147 @@
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! 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.
+
+YATTA! 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; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 14:48:57 ART 2004
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+//Require Once {{{
+//HTML {{{
+require_once 'MECON/HTML/QuickForm.php';
+require_once 'MECON/HTML/Tabla.php';
+require_once 'MECON/HTML/Error.php';
+require_once 'MECON/HTML/Link.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
+//}}}
+//YATTA {{{
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/ServidorDB.php';
+//}}}
+//}}}
+
+//Obtengo los datos del get y del post {{{
+$accion = (@$_REQUEST['accion']) ? $_REQUEST['accion'] : 'nuevo';
+
+if (@$_REQUEST['_id']) {
+    $id = $_REQUEST['_id'];
+}
+elseif (@$_REQUEST['id']) {
+    $id = $_REQUEST['id'];
+}
+else {
+    $id = null;
+}
+//}}}
+
+//Obtengo los datos del servidor {{{
+$SERVIDOR =& new YATTA_ServidorDB();
+if ($id) {
+    $SERVIDOR->id = $id;
+    $res = $SERVIDOR->buscar($DB, MECON_DBO_OR, 'nombre');
+    if (PEAR::isError($res)) {
+        die('Error: ' . $res->getMessage() . "\n");
+    }
+    $SERVIDOR->cargar($res);
+}
+//}}}
+
+//Creo los objetos necesarios {{{
+$FORM =& new MECON_HTML_QuickForm('admin_servidores_abm', 'post', 
+        'admin_servidores-abm');
+$FORM->renderer->updateAttributes('width="400"');
+//}}}
+
+//Armo el formulario {{{
+if (@$id) {
+    $FORM->addElement('hidden', 'id', $id);
+}
+$FORM->addElement('hidden', 'accion', $accion.'2');
+$FORM->addElement('header', 'cabecera', 'Datos del Servidor');
+$nombre =& $FORM->addElement('text', 'nombre', 'Nombre', array('size'=>'30'));
+$escala =& $FORM->addElement('text', 'escala', 'Escala', array('size'=>'3'));
+$group[] =& HTML_QuickForm::createElement('submit', 'aceptar' , 'Aceptar');
+$group[] =& HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar');
+$FORM->addGroup($group,'botones');
+
+if (@$accion == 'modificar') {
+    $nombre->setValue($SERVIDOR->nombre);
+    $escala->setValue($SERVIDOR->escala);
+    $group[0]->setValue('Modificar');
+    $group[0]->setName('modificar');
+    $FORM->addRule ('nombre', 'El nombre del servidor es obligatorio.', 'required');
+    $FORM->addRule ('escala', 'La escala del servidor es obligatoria', 'required');
+}
+elseif (@$accion == 'eliminar') {
+    $nombre->setValue($SERVIDOR->nombre);
+    $escala->setValue($SERVIDOR->escala);
+    $group[0]->setValue('Eliminar');
+    $group[0]->setName('eliminar');
+    $FORM->freeze();
+}
+else {
+    $FORM->addRule ('nombre', 'El nombre del servidor es obligatorio.', 'required');
+    $FORM->addRule ('escala', 'La escala del servidor es obligatoria', 'required');
+}
+//}}}
+
+//Valido el formulario {{{
+if ($FORM->validate()) {
+    $f_botones = $FORM->getSubmitValue('botones');
+    //Cancelar {{{
+    if (@$f_botones['cancelar']) {
+        header ('location: admin_servidores');
+        exit;
+    }
+    //}}}
+    //Aceptar {{{
+    elseif (@$f_botones['aceptar']) {
+        $SERVIDOR->nombre = $nombre->getValue();
+        $SERVIDOR->escala = $escala->getValue();
+        $res = $SERVIDOR->guardar($DB, true);
+    }
+    //}}}
+    //Modificar {{{
+    elseif (@$f_botones['modificar']) {
+        $SERVIDOR->nombre = $nombre->getValue();
+        $SERVIDOR->escala = $escala->getValue();
+        $res = $SERVIDOR->guardar($DB, false);
+    }
+    //}}}
+    //Eliminar {{{
+    elseif (@$f_botones['eliminar']) {
+        $res = $SERVIDOR->borrar($DB);
+    }
+    //}}}
+    if (PEAR::isError($res)) {
+        die('Error: ' . $res->getMessage() . "\n");
+    }
+    header ('location: admin_servidores');
+    exit;
+}
+//}}}
+
+//Agrego la info al marco y la muestro {{{
+$MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($FORM);
+$MARCO->display();
+//}}}
+?>
diff --git a/sistema/www/admin_servidores.php b/sistema/www/admin_servidores.php
new file mode 100644 (file)
index 0000000..ee2d104
--- /dev/null
@@ -0,0 +1,79 @@
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80 foldmethod=marker:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    YATTA!
+-------------------------------------------------------------------------------
+This file is part of YATTA!.
+
+YATTA! 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.
+
+YATTA! 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; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: mar ene 27 13:10:26 ART 2004
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
+//Require Once {{{
+//HTML {{{
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
+//}}}
+//YATTA {{{
+require_once 'YATTA/Controlador.php';
+require_once 'YATTA/ServidorDB.php';
+//}}}
+//}}}
+
+//Obtengo los datos de los servidores {{{
+$SERVIDOR =& new YATTA_ServidorDB();
+$res = $SERVIDOR->buscar ($DB, MECON_DBO_OR, 'nombre');
+//}}}
+
+//Agrego la informacion a la tabla {{{ 
+$TABLADB = new MECON_HTML_TablaDB ('Servidores', 'width="400"');
+
+$TABLADB->addLink('nuevo', new MECON_HTML_Link('admin_servidores-abm', 
+            'Nuevo Servidor'));
+
+$TABLADB->addRow(array('Listado de Servidores'), 
+        'cabecera colspan="6" align="left"');
+
+$TABLADB->addRow(array('Id', 'Nombre', 'Escala', 'Procesos', 'Modif.', 'Elim.'
+            ),'titulo');
+
+$pager = $TABLADB->addPager($res, null, new MECON_HTML_Link ('admin_servidores'
+            , null));
+
+$TABLADB->addRowsIcon('modificar', array ('id'), new MECON_HTML_Link
+        ('admin_servidores-abm', null, array('accion' => 'modificar')));
+
+$TABLADB->addRowsIcon('borrar', array ('id'), new MECON_HTML_Link
+        ('admin_servidores-abm', null, array('accion' => 'eliminar')));
+
+$TABLADB->addRows($pager, array ('id', 'nombre', 'escala', 'procesos'));
+
+$TABLADB->updateColAttributes(0, 'width="8%"');
+$TABLADB->updateColAttributes(1, 'width="52%"');
+$TABLADB->updateColAttributes(2, 'width="15%"');
+$TABLADB->updateColAttributes(3, 'width="15%"');
+$TABLADB->updateColAttributes(4, 'width="5%"');
+$TABLADB->updateColAttributes(5, 'width="5%"');
+//}}}
+
+//Agrego la info al marco y la muestro {{{
+$MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($TABLADB);
+$MARCO->display();
+//}}}
+?>