From: Martín Marrese Date: Fri, 5 Mar 2004 18:49:47 +0000 (+0000) Subject: Agrego paginacion a la lista de permisos X-Git-Tag: svn_import~28 X-Git-Url: https://git.llucax.com/mecon/samurai.git/commitdiff_plain/04fa3d055ad6d878257eda34c3347efccc5c9caa Agrego paginacion a la lista de permisos --- diff --git a/lib/SAMURAI/Permiso.php b/lib/SAMURAI/Permiso.php index a6004e0..f76449b 100644 --- a/lib/SAMURAI/Permiso.php +++ b/lib/SAMURAI/Permiso.php @@ -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 +?> diff --git a/sistema/www/permisos/permisos.php b/sistema/www/permisos/permisos.php index d850c7b..bafa5f6 100644 --- a/sistema/www/permisos/permisos.php +++ b/sistema/www/permisos/permisos.php @@ -19,70 +19,140 @@ // // $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 = ''; - $aHModif = $aH.'Modificar Permiso'; - $aHElim = $aH.'Eliminar Permiso'; - $aHModifdes = 'No se puede modificar Permiso'; - $aHElimdes = '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.'Ingresar Nuevo Permiso'); - $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 ?>