}
// -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
+?>
//
// $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
?>