]> git.llucax.com Git - mecon/samurai.git/commitdiff
Modifico la sección usuarios de samurai para que utilice MECON_HTML_TablaDB.
authorMartín Marrese <marrese@gmail.com>
Mon, 8 Mar 2004 21:20:46 +0000 (21:20 +0000)
committerMartín Marrese <marrese@gmail.com>
Mon, 8 Mar 2004 21:20:46 +0000 (21:20 +0000)
lib/SAMURAI/Usuario.php
sistema/www/usuarios/usuarios-abm.php
sistema/www/usuarios/usuarios.php

index a8a3a5a896730d09492a6c0aac4267b559154a35..de0e79cfff8993305fe3eeefac71995348b2b57a 100644 (file)
@@ -539,5 +539,38 @@ class SAMURAI_Usuario {
     }
     // -X2C
 
+    /**
+     * Metodo que devuelve los datos necesarios para listar usuarios.
+     *
+     * @param  SAMURAI_DB &$db Base de Datos
+     * @param  int $id_sistema Identificador del sistema
+     *
+     * @return mixed
+     * @access public
+     * @static
+     */
+    function getUsuariosPager(&$db, $id_sistema = null) {
+
+        //@TODO REEMPLAZA A getUsuarios
+        if ($id_sistema) {
+            $sql = '
+                SELECT DISTINCT u.login, u.nombre 
+                FROM samurai.usuario AS u, perfil_sist_usuario AS psu 
+                WHERE u.login = psu.login 
+                AND psu.id_sistema = '. $id_sistema .' 
+                ORDER BY login;
+                ';
+        }
+        else {
+            $sql = '
+                SELECT login, nombre
+                FROM samurai.usuario
+                ORDER BY login
+                ';
+        }
+        return $db->query ($sql);
+    }
+
 } // -X2C Class :SAMURAI_Usuario
 ?>
index 4cb553b3b451246adda05b71aa2faa8133ed06d0..bbf6d80d90ecae05d6e54511a2a27d468fccd479 100644 (file)
@@ -28,7 +28,7 @@ if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) {
 $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM);
 //}}}
 
-//XXX OBTENGO LA ACCION {{{
+//OBTENGO LA ACCION {{{
 switch ($_REQUEST['accion']) {
     case 'm':
         $b_accion = 'Modificar';
@@ -44,163 +44,172 @@ switch ($_REQUEST['accion']) {
         break;
 }
 //}}}
+
 //REQUIRE ONCE {{{
-    //MECON {{{
-    require_once 'MECON/HTML/QuickForm.php';
-    require_once 'MECON/HTML/Tabla.php';
-    require_once 'MECON/HTML/Error.php';
-    //}}}
-    //SAMURAI {{{
-    require_once 'SAMURAI/Perfil.php';
-    require_once 'SAMURAI/Usuario.php';
-    require_once 'SAMURAI/Sistema.php';
-    //}}}
-    require_once 'MECON/HTML/Image.php';
+//MECON {{{
+require_once 'MECON/HTML/QuickForm.php';
+require_once 'MECON/HTML/Tabla.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Error.php';
+//}}}
+//SAMURAI {{{
+require_once 'SAMURAI/Perfil.php';
+require_once 'SAMURAI/Usuario.php';
+require_once 'SAMURAI/Sistema.php';
+//}}}
 // }}}
+
 //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{
 if (!@$_SESSION['samurai']['id_sistema']) {
     header('Location: ./../sel-sistema?redirect=usuarios/usuarios');    
 }
 // }}}   
-//CREO LOS OBJETOS NECESARIOS {{{
-    if (@$_GET['login']) {
-        $login = $_GET['login'];
-        $validar = 0;
-    }
-    else {
-        $validar = 1;
-        $login = null;
-    }
 
+//CREO LOS OBJETOS NECESARIOS {{{
+if (@$accion) {
+    $login = $_GET['_login'];
+    $validar = 0;
+}
+else {
+    $validar = 1;
+    $login = null;
+}
 
-    $TABLA   = new MECON_HTML_Tabla ('cellspacing=0');
-    $FORM    = new MECON_HTML_QuickForm ('usuarios_abm','post','usuarios-abm');
-    $FORM->renderer->updateAttributes('width="400"');
-    $SISTEMA = new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']);
-    $USUARIO = new SAMURAI_Usuario($DB, $login, $_SESSION['samurai']['id_sistema']);
+$TABLA   = new MECON_HTML_Tabla ('cellspacing=0');
+$FORM    = new MECON_HTML_QuickForm ('usuarios_abm','post','usuarios-abm');
+$FORM->renderer->updateAttributes('width="400"');
+$USUARIO = new SAMURAI_Usuario($DB, $login, $_SESSION['samurai']['id_sistema']);
 // }}}
-//OBTENGO LOS DATOS DE LA BASE {{{
-    $tmps = SAMURAI_Perfil::getPerfiles($DB, null, $_SESSION['samurai']['id_sistema']);
-    foreach ($tmps as $tmp) {
-        $PERFILES[$tmp->getId()] = $tmp->getDescripcion();
-    }
+
+//VIÑETA CON EL SISTEMA EN EL CUAL SE ESTA TRABAJANDO {{{
+$SISTEMA =& new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']);
+$tmp =& new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif', '>>');
+$VINETA = '<div align="left">'. $tmp->toHTML() .'&nbsp;<b>SISTEMA: '. 
+    $SISTEMA->getNombre().'</b></div>';
 //}}}
-//AGREGO LOS DATOS A LAS TABLAS {{{
-    $imagen = new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif');
-    $row    = array ($imagen->toHtml().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
-    $TABLA->addRow($row,'align=left');    
+
+//OBTENGO LOS DATOS DE LA BASE {{{
+$tmps = SAMURAI_Perfil::getPerfiles($DB, null, $_SESSION['samurai']['id_sistema']);
+foreach ($tmps as $tmp) {
+    $PERFILES[$tmp->getId()] = $tmp->getDescripcion();
+}
 //}}}
+
 //AGREGO LOS ELEMENTOS DEL FORM {{{
-    if (@$PERFILES) {
-        $FORM->addElement ('header', 'cabecera'   , 'ABM Usuarios');
-        if ($login) { //Si esta el login solo permito modificar los perfiles asociados
-            $FORM->addElement ('static', 'login2', 'Login@Organismo' , $login );
-            $FORM->addElement ('hidden', 'login' , $login );
-            $FORM->addElement ('static', 'nombre', 'Nombre', $USUARIO->getNombre());
-        }
-        else {
-            $FORM->addElement ('text'  , 'login' , 'Login@Organismo' , array( 'value' => $login , 'size' => '20'));
-        }
-        $FORM->addElement ('select', 'perfiles'   , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true'));
-        $FORM->addElement ('hidden', 'responsable', $_SESSION['usuario']);
-        $FORM->addElement ('hidden', 'accion', $accion);
-        $group[] = HTML_QuickForm::createElement('submit', 'aceptar', $b_accion);
-        $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'usuarios\';return false;'));
-        $FORM->addGroup($group,'botones');
+if (@$PERFILES) {
+    $FORM->addElement ('header', 'cabecera'   , 'ABM Usuarios');
+    if ($login) { //Si esta el login solo permito modificar los perfiles asociados
+        $FORM->addElement ('static', 'login2', 'Login@Organismo' , $login );
+        $FORM->addElement ('hidden', 'login' , $login );
+        $FORM->addElement ('static', 'nombre', 'Nombre', $USUARIO->getNombre());
     }
     else {
-        $ERROR = new MECON_HTML_Error('El sistema no posee perfiles.');
+        $FORM->addElement ('text'  , 'login' , 'Login@Organismo' , array( 'value' => $login , 'size' => '20'));
     }
-// }}}
+    $FORM->addElement ('select', 'perfiles'   , 'Perfiles', $PERFILES, array('size' => '5', 'multiple' => 'true'));
+    $FORM->addElement ('hidden', 'responsable', $_SESSION['usuario']);
+    $FORM->addElement ('hidden', 'accion', $accion);
+    $group[] = HTML_QuickForm::createElement('submit', 'aceptar', $b_accion);
+    $group[] = HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'usuarios\';return false;'));
+    $FORM->addGroup($group,'botones');
+}
+else {
+    $ERROR = new MECON_HTML_Error('El sistema no posee perfiles.');
+}
+//}}}
+
 //AGREO LAS REGLAS DE VALIDACION {{{
-    if (@$PERFILES) {
-        if (@$validar) {
-            $FORM->addRule ('login', 'Se debe ingresar el login del usuario', 'required');
-        }
-        $FORM->addRule ('perfiles', 'Se debe seleccionar al menos un perfil', 'required');
+if (@$PERFILES) {
+    if (@$validar) {
+        $FORM->addRule ('login', 'Se debe ingresar el login del usuario', 'required');
     }
-// }}}
+    $FORM->addRule ('perfiles', 'Se debe seleccionar al menos un perfil', 'required');
+}
+//}}}
+
 //SETEO LOS PERFILES SELECCIONADOS {{{
-    if (isset($_GET['accion']) && $_GET['accion'] != '') {
+if (isset($_GET['accion']) && $accion != '') {
+    $perfiles =& $FORM->getElement  ('perfiles');
+    $group    =& $FORM->getElement  ('botones' );
+    $group    =& $group->getElements('aceptar' );
+    $aceptar  =& $group[0];
+
+    $perfiles->setSelected($USUARIO->getPerfiles());
+
+    //Modifico el valor del boton
+    $aceptar->setValue('Modificar');
+
+    //ELIMINACION -> modifico el valor del boton
+    if ($_GET['accion'] == 'e') {
+        $aceptar->updateAttributes(array ('onClick' => 'javascript:if (confirm(\'¿Esta Seguro?\')) return true;return false;'));
+        $aceptar->setValue('Eliminar');
+        $FORM->freeze();
+    }
+}
+//}}}
+
+//VALIDO EL FORMULARIO {{{
+if ($FORM->validate()) {
+    // VEO SI SE CANCELO {{{
+    $botones = $FORM->getSubmitValue('botones');
+    if (@$botones['cancelar']) {
+        header('Location: usuarios');
+    }
+    // }}}
+    else {
+        $login2   =& $FORM->getElement  ('login'   ); 
+        $nombre   =& $FORM->getElement  ('nombre'  );
         $perfiles =& $FORM->getElement  ('perfiles');
         $group    =& $FORM->getElement  ('botones' );
         $group    =& $group->getElements('aceptar' );
         $aceptar  =& $group[0];
-        
-        $perfiles->setSelected($USUARIO->getPerfiles());
-        
-        //Modifico el valor del boton
-        $aceptar->setValue('Modificar');
-            
-        //ELIMINACION -> modifico el valor del boton
-        if ($_GET['accion'] == 'e') {
-            $aceptar->updateAttributes(array ('onClick' => 'javascript:if (confirm(\'¿Esta Seguro?\')) return true;return false;'));
-            $aceptar->setValue('Eliminar');
-            $FORM->freeze();
+        $res = '';
+
+        if ($login) {
+            $login3 = $login2->_text;
         }
-    }
-// }}}
-//VALIDO EL FORMULARIO {{{
-    if ($FORM->validate()) {
-        // VEO SI SE CANCELO {{{
-        $botones = $FORM->getSubmitValue('botones');
-        if (@$botones['cancelar']) {
-            header('Location: usuarios');
+        else {
+            $login3 = $login2->getValue();
+        }
+        $USUARIO->setLogin($login3);
+
+        $res  = $USUARIO->verificarLogin();
+        if ($aceptar->getValue() == 'Grabar') {
+            $res2 = $USUARIO->verificarAsociacionExistente();
+        }
+        if (@PEAR::isError($res)) {
+            $ERROR = new MECON_HTML_Error($res->getMessage());
+        }
+        elseif (@PEAR::isError($res2)) {
+            $ERROR =new MECON_HTML_Error($res2->getMessage());
         }
-        // }}}
         else {
-            $login2   =& $FORM->getElement  ('login'   ); 
-            $nombre   =& $FORM->getElement  ('nombre'  );
-            $perfiles =& $FORM->getElement  ('perfiles');
-            $group    =& $FORM->getElement  ('botones' );
-            $group    =& $group->getElements('aceptar' );
-            $aceptar  =& $group[0];
-            $res = '';
-
-            if ($login) {
-                $login3 = $login2->_text;
-            }
-            else {
-                $login3 = $login2->getValue();
-            }
-            $USUARIO->setLogin($login3);
-            
-            $res  = $USUARIO->verificarLogin();
-            if ($aceptar->getValue() == 'Grabar') {
-                $res2 = $USUARIO->verificarAsociacionExistente();
-            }
-            if (@PEAR::isError($res)) {
+            $USUARIO->setPerfiles($perfiles->getSelected());
+
+            $res = $USUARIO->guardarDatos($aceptar->getValue());
+
+            if (PEAR::isError($res)) {
                 $ERROR = new MECON_HTML_Error($res->getMessage());
-            }
-            elseif (@PEAR::isError($res2)) {
-                $ERROR =new MECON_HTML_Error($res2->getMessage());
-            }
-            else {
-                $USUARIO->setPerfiles($perfiles->getSelected());
-                
-                $res = $USUARIO->guardarDatos($aceptar->getValue());
-
-                if (PEAR::isError($res)) {
-                    $ERROR = new MECON_HTML_Error($res->getMessage());
-                    if ($aceptar->getValue() == 'Eliminar') {
-                        $FORM->freeze();
-                    }
-                }
-                else {
+                if ($aceptar->getValue() == 'Eliminar') {
                     $FORM->freeze();
-                    header('Location: usuarios');
                 }
             }
+            else {
+                $FORM->freeze();
+                header('Location: usuarios');
+            }
         }
     }
-// }}}
+}
+//}}}
+
 //DIBUJO LA PAGINA {{{
-    $MARCO->addBody($TABLA);
-    if (isset($ERROR)) {
-        $MARCO->addBody($ERROR);
-    }
-    $MARCO->addBody($FORM);
-    $MARCO->display();
+$MARCO->addBody($VINETA);
+$MARCO->addBody($TABLA);
+if (isset($ERROR)) {
+    $MARCO->addBody($ERROR);
+}
+$MARCO->addBody($FORM);
+$MARCO->display();
 // }}}
-//FIN
 ?>
index 285042e1bf61ae66fb5c20ffcd2d7e3b5cd89e07..947b432ddca127cf9d7d9be03c58b0b5ee0dfac4 100644 (file)
@@ -27,79 +27,71 @@ if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) {
 }
 $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM);
 //}}}
+
 //REQUIRE ONCE {{{
-    require_once 'MECON/HTML/Tabla.php';
-    require_once 'SAMURAI/Usuario.php';
-    require_once 'SAMURAI/Sistema.php';
-    require_once 'MECON/HTML/Image.php';
-// }}}
-//LINKS {{{
-    $aHrefPopup = '<a href="" onClick="window.open(\'usuarios-datos?login=##LOGIN##\',\'usuariosdatos\',\'height=300,width=400,scrollbars=yes\');return false;">';
-    $aHref      = '<a href="usuarios-abm?accion=##ACCION##&login=##NUEVO##">';
-    $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar Usuario"></a>';
-    $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar Usuario" ></a>';
-// }}}
+require_once 'SAMURAI/Sistema.php';
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'SAMURAI/Usuario.php';
+//}}}
+
 //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{
 if (!@$_SESSION['samurai']['id_sistema']) {
     header('Location: ./../sel-sistema?redirect=usuarios/usuarios');    
 }
-// }}}   
-//CREO LOS OBJETOS NECESARIOS {{{
-    $TABLA2 = new MECON_HTML_Tabla ('cellspacing=0');
-    $TABLA  = new MECON_HTML_Tabla ('cellpadding=2');
-    $TABLA3 = new MECON_HTML_Tabla ('cellspacing=0');
-    $SISTEMA = new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']);
-// }}}
-//OBTENGO LA INFORMACION DE LA BASE {{{
-    $usuarios = SAMURAI_Usuario::getUsuarios($DB, $_SESSION['samurai']['id_sistema']);
-// }}}
-//AGREGO LOS DATOS A LAS TABLAS {{{
-    $imagen = new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif');
-    $row    = array ($imagen->toHtml().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
-    $TABLA3->addRow($row,'align=left');    
+//}}}   
+
+//VIÑETA CON EL SISTEMA EN EL CUAL SE ESTA TRABAJANDO {{{
+$SISTEMA =& new SAMURAI_Sistema($DB, $_SESSION['samurai']['id_sistema']);
+$tmp =& new MECON_HTML_Image('/MECON/images/vinetas_flecha_doble.gif', '>>');
+$VINETA = '<div align="left">'. $tmp->toHTML() .'&nbsp;<b>SISTEMA: '. 
+    $SISTEMA->getNombre().'</b></div>';
+//}}}
+
+//OBTENGO LA INFORMACION DE LOS USUARIOS {{{
+$res = SAMURAI_Usuario::getUsuariosPager($DB, $_SESSION['samurai']['id_sistema']);
+//}}}
 
+//CREO LA TABLA DE USUARIOS {{{
+$TABLA =& new MECON_HTML_TablaDB ('Usuarios');
+$TABLA->addLink(
+        'nuevo', 
+        new MECON_HTML_Link(
+            'usuarios-abm', 'Nuevo Usuario', 
+            array (
+                'accion' => '##ACCION##',
+                '_login' => '##NUEVO##'
+                )
+            )
+        );
+$TABLA->addLink(
+        'volver', 
+        new MECON_HTML_Link(
+            './../sel-sistema?redirect=usuarios/usuarios', 
+            'Seleccionar otro sistema para trabajar'
+            )
+        );
 
-    //Agrego la posibilidad de seleccionar otro sistema para trabajar.
-    $row = array ();
-    $row[] = '<a href="/sistemas/samurai/sel-sistema?redirect=usuarios/usuarios"><img src="/MECON/images/general_volver.gif" border="0">Seleccionar otro sistema para trabajar.</a>';
-    //Agrego el link a nuevo
-    if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_ALTA)) {
-        $row[] = $aHref.'<img src="/MECON/images/general_nuevo.gif" border="0">Agregar Nuevo Usuario</a>';
-    }
-    $TABLA2->addRow($row,'align=right');    
-    $TABLA2->updateColAttributes(0,'align=left');
-    //Genero la cabecera de la tabla
-    $row  = array ('Login','Nombre');
-    if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) {
-        $row[] = 'Modif.';
-    }
-    if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) {
-        $row[] = 'Elim.';
-    }
-    $TABLA->addRow($row,'cabecera');
-    foreach ($usuarios as $usuario) {
-        $Popup = ereg_replace('##LOGIN##' , $usuario->getLogin(), $aHrefPopup);
-        $Modif = ereg_replace('##NUEVO##' , $usuario->getLogin(), $aHrefModif);
-        $Elim  = ereg_replace('##NUEVO##' , $usuario->getLogin(), $aHrefElim );
-        $Popup = $Popup.$usuario->getLogin().'</a>';
-        $Modif = ereg_replace('##ACCION##', 'm'                 , $Modif     );
-        $Elim  = ereg_replace('##ACCION##', 'e'                 , $Elim      );
-        $row = array (  $Popup, $usuario->getNombre());
-        if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) {
-            $row[] = $Modif;
-        }
-        if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) {
-            $row[] = $Elim;
-        }
 
-        $TABLA->addRow($row);
-    }
-// }}}
+//Agrego las columnas de modificacion y eliminacion {{{
+$link = new MECON_HTML_Link ('usuarios-abm', null, array('accion' => 'm'));
+if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_MODIF)) {
+    $TABLA->addRowsIcon('modificar', 'login', $link);
+}
+if ($SAMURAI_PERM->tiene(SAMURAI_PERM_USUARIO_BAJA)) {
+    $link->setGetVar('accion', 'e');
+    $TABLA->addRowsIcon('eliminar', 'login', $link);
+}
+//}}}
+
+$TABLA->addRow(array('Login', 'Nombre', 'Modif.', 'Elimn.'), 'cabecera');
+$pager = $TABLA->addPager($res, null, new MECON_HTML_Link ('usuarios', null), 25);
+$TABLA->addRows($pager, array ('login', 'nombre'));
+//}}}
+
 //DIBUJO LA PAGINA {{{
-    $MARCO->addBody($TABLA3);
-    $MARCO->addBody($TABLA2->toHtml(1));
-    $MARCO->addBody($TABLA);
-    $MARCO->display();
-// }}}
-//FIN
+$MARCO->addBody($VINETA);
+$MARCO->addBody($TABLA);
+$MARCO->display();
+//}}}
 ?>