]> git.llucax.com Git - mecon/samurai.git/commitdiff
Agrego paginacion a la lista de permisos
authorMartín Marrese <marrese@gmail.com>
Fri, 5 Mar 2004 18:49:47 +0000 (18:49 +0000)
committerMartín Marrese <marrese@gmail.com>
Fri, 5 Mar 2004 18:49:47 +0000 (18:49 +0000)
lib/SAMURAI/Permiso.php
sistema/www/permisos/permisos.php

index a6004e06f9286b84c4f6f26368158aab956d90b0..f76449b7975882a1cb0a220ce8b98498f30d3bae 100644 (file)
@@ -389,6 +389,42 @@ class SAMURAI_Permiso {
     }
     // -X2C
 
+    /**
+     * Metodo que devuelve los datos necesarios para listar permisos.
+     *
+     * @param SAMURAI_DB &$db Base de Datos
+     * @param int $id_sistema Identificador de un sistema en particular.
+     * 
+     * @return mixed
+     * @access public
+     * @static
+     */
+    function getPermisosPager(&$db, $id_sistema = null) {
+
+        //@TODO REEMPLAZA A getPermisos
+        
+        if ($id_sistema) {
+            $sql = '
+                SELECT p.id_permiso, p.desc_permiso, p.responsable
+                FROM samurai.permiso AS p, samurai.perm_sist AS ps
+                WHERE ps.id_sistema = '. $id_sistema .' 
+                AND ps.id_permiso = p.id_permiso
+                ORDER BY p.desc_permiso
+                ';
+        }
+        else {
+            $sql = '
+                SELECT p.id_permiso, p.desc_permiso, count(ps.id_sistema) AS cuenta
+                FROM samurai.permiso AS p 
+                    LEFT JOIN samurai.perm_sist AS ps 
+                        ON (p.id_permiso = ps.id_permiso) 
+                GROUP BY p.id_permiso, p.desc_permiso
+                ORDER BY p.desc_permiso
+                ';
+        }
+        return $db->query ($sql);
+    }
+    
 } // -X2C Class :SAMURAI_Permiso
 
-?>
\ No newline at end of file
+?>
index d850c7b4aac27a77a539db5467b41c70f55b63fb..bafa5f60d7ba02b48209b3802b6571d5a09d94f6 100644 (file)
 //
 // $Id$
 // 
-//VERIFICO SI SE TIENE ACCESO A LA PAGINA{{{
+//VERIFICO SI SE TIENE ACCESO A LA PAGINA {{{
 $SAMURAI_PERM->setSistema(SAMURAI_PERM);
 if (!$SAMURAI_PERM->tiene(SAMURAI_PERM_DEVELOPER)) {
     $SAMURAI_PERM->chequear(SAMURAI_PERM_DEVELOPER);
 }
 $MARCO =& new MECON_Marco ('/var/www/sistemas/samurai/sistema/conf/confSecciones.php', $SAMURAI_PERM);
 //}}}
-    
-    require_once 'MECON/HTML/Tabla.php';
-    require_once 'SAMURAI/Permiso.php';
 
-//LINKS A PERMISOS-ABM {{{
-    $aH         = '<a href="permisos-abm?accion=##ACCION##&idPermiso=##NUEVO##">';
-    $aHModif    = $aH.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar Permiso"></a>';
-    $aHElim     = $aH.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar Permiso" ></a>';
-    $aHModifdes = '<img src="/MECON/images/general_modificar_des.gif" border="0" alt="No se puede modificar Permiso">';
-    $aHElimdes  = '<img src="/MECON/images/general_eliminar_des.gif"  border="0" alt="No se puede eliminar Permiso">';
-// }}}
+//REQUIRE ONCE {{{
+require_once 'MECON/HTML/Image.php';
+require_once 'MECON/HTML/Link.php';
+require_once 'MECON/HTML/TablaDB.php';
+require_once 'SAMURAI/Permiso.php';
+//}}}
+
 //VEO SI HAY QUE ELEGIR EN QUE SISTEMA TRABAJAR {{{
 if (!@$_SESSION['samurai']['id_sistema']) {
     header('Location: ./../sel-sistema?redirect=permisos/permisos');    
 }
-// }}}   
-//CREO LOS OBJETOS NECESARIOS {{{
-    $TABLA2 = new MECON_HTML_Tabla ('cellspacing=0');
-    $TABLA  = new MECON_HTML_Tabla ('cellpadding=2');
-// }}}
+//}}}   
+
 //OBTENGO LA INFORMACION DE LA BASE {{{
-    $permisos = SAMURAI_Permiso::getPermisos($DB);
+$res = SAMURAI_Permiso::getPermisosPager($DB);
+if (PEAR::isError($res)) {
+    trigger_error('Error: ' . $res->getMessage() . "\n", E_USER_ERROR);
+}
+
 // }}}
-//AGREGO LOS DATOS A LAS TABLAS {{{
-    $row   = array ($aH.'<img src="/MECON/images/general_nuevo.gif" border="0">Ingresar Nuevo Permiso</a>');
-    $TABLA2->addRow($row,'align=right');    
-    $row   = array ('Id','Descripción','Modif.','Elim.');
-    $TABLA->addRow($row,'cabecera');
-    
-    foreach ($permisos as $permiso) {
-        if ($permiso->asociadoASistema()) {
-            $Modif = $aHModifdes;
-            $Elim  = $aHElimdes;
-        }
-        else {
-            $Modif = ereg_replace('##NUEVO##'  , $permiso->getId(), $aHModif);
-            $Elim  = ereg_replace('##NUEVO##'  , $permiso->getId(), $aHElim );
-            $Modif = ereg_replace('##ACCION##' , 'm'              , $Modif     );
-            $Elim  = ereg_replace('##ACCION##' , 'e'              , $Elim      );
-        }
-        $row = array (  $permiso->getId(),
-                        $permiso->getDescripcion(),
-                        $Modif,
-                        $Elim,
-                    );
-        $TABLA->addRow($row);
-        $TABLA->updateColAttributes(0,'width="10%" ');
-        $TABLA->updateColAttributes(1,'width="70%"');
-        $TABLA->updateColAttributes(2,'width="10%"');
-        $TABLA->updateColAttributes(3,'width="10%"');
-        $TABLA->updateRowAttributes(0,'cabecera');
+
+//CREO LA TABLA DE PERMISOS {{{
+$TABLA =& new MECON_HTML_TablaDB ('Permisos');
+$TABLA->addLink(
+        'nuevo', 
+        new MECON_HTML_Link(
+            'permisos-abm', 'Nuevo Permiso', 
+            array (
+                'accion' => '##ACCION##',
+                'idPermiso' => '##NUEVO##'
+                )
+            )
+        );
+$TABLA->addRow(array('Id', 'Descripción', 'Modif.', 'Elimn.'), 'cabecera');
+$pager = $TABLA->addPager($res, null, new MECON_HTML_Link ('permisos', null), 25);
+
+//Agrego las columnas de modificacion y eliminacion {{{
+//Modificar {{{
+$TABLA->addRowsData('%s',
+            array (
+                array (
+                    array (
+                        'id_permiso',
+                        'cuenta'
+                        ),
+                    'modificar_callback'
+                    )
+                )
+        );
+
+function modificar_callback($param) {
+    if ($param['cuenta']) {
+        //DesHabilitado
+        $tmp =& new MECON_HTML_Image (
+                '/MECON/images/general_modificar_des.gif',
+                '(m)'
+                );
+        return $tmp->toHtml();
     }
-// }}}
+    else {
+        //Habilitado
+        $tmp =& new MECON_HTML_Link (
+                'permisos-abm',
+                new MECON_HTML_Image (
+                    '/MECON/images/general_modificar.gif',
+                    '(M)'
+                    ),
+                array (
+                    'accion' => 'm',
+                    'idPermiso' => $param['id_permiso'] 
+                    )
+                );
+        return $tmp->toHtml();
+    }
+}
+//}}}
+//Eliminar {{{
+$TABLA->addRowsData('%s',
+            array (
+                array (
+                    array (
+                        'id_permiso',
+                        'cuenta'
+                        ),
+                    'eliminar_callback'
+                    )
+                )
+        );
+
+function eliminar_callback($param) {
+    if ($param['cuenta']) {
+        //DesHabilitado
+        $tmp =& new MECON_HTML_Image (
+                '/MECON/images/general_eliminar_des.gif',
+                '(e)'
+                );
+        return $tmp->toHtml();
+    }
+    else {
+        //Habilitado
+        $tmp =& new MECON_HTML_Link (
+                'permisos-abm',
+                new MECON_HTML_Image (
+                    '/MECON/images/general_eliminar.gif',
+                    '(E)'
+                    ),
+                array (
+                    'accion' => 'e',
+                    'idPermiso' => $param['id_permiso'] 
+                    )
+                );
+        return $tmp->toHtml();
+    }
+}
+//}}}
+//}}}
+
+$TABLA->addRows($pager, array ('id_permiso', 'desc_permiso'));
+$TABLA->updateColAttributes(0,'width="10%" ');
+$TABLA->updateColAttributes(1,'width="70%"');
+$TABLA->updateColAttributes(2,'width="10%"');
+$TABLA->updateColAttributes(3,'width="10%"');
+//}}}
+
 //DIBUJO LA PAGINA {{{
-    $MARCO->addBody($TABLA2->toHtml(1));
     $MARCO->addBody($TABLA);
     $MARCO->display();
 // }}}
-//FIN
 ?>