]> git.llucax.com Git - mecon/intranet.git/blobdiff - sistema/www/sistemas.php
Se renombra para evitar confusiones.
[mecon/intranet.git] / sistema / www / sistemas.php
index 0bebcda6a37aeb3d4b705ddb0678879aecda7ca1..4981c2486bdc598ca19e94b3d4ce66feade12125 100644 (file)
@@ -1,12 +1,16 @@
 <?php
-
+// vim: set binary expandtab ts=4 shiftwidth=4 textwidth=80:
 // $Id$
-
-require_once '../local_lib/HTML_DietMarco.php';
-require_once '../local_lib/intranetdb.php';
-require_once 'MECON/HTML/Arbol/ArbolDB.php';
+require_once 'HTML_DietMarco.php';
+if(!isset($_SESSION['usuario']))
+{
+    header('location: login?redirect=sistemas');
+    exit;
+}
+require_once 'intranetdb.php';
 require_once 'HTML/Table.php';
-#require_once 'AI/DB.php';
+require_once 'MECON/HTML/Link.php';
+require_once 'MECON/HTML/Image.php';
 require_once 'DB.php';
 require_once 'AI/Sistema.php';
 
@@ -14,49 +18,167 @@ define('COLUMNAS', 3);
 
 $t = new HTML_Table(
     array(
-        'width'         => '100%',
+        'width'         => '760',
         'cellspacing'   => '0',
         'cellpadding'   => '0',
         'border'        => '0',
-        'align'         => 'left',
-        'valign'        => 'middle',
     )
 );
 
-$db = IntranetDB::connect();
-$sistemas = AI_Sistema::getSistemas($db);
+// Agrego fila con espaciados.
+$img = new MECON_HTML_Image('/MECON/images/blanco', '', array('height' => 1));
+$img->updateAttributes(array('width' => 46));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 4));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 190));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 20));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 46));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 4));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 190));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 20));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 46));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 4));
+$fila[] = $img;
+$img->updateAttributes(array('width' => 190));
+$fila[] = $img;
+$t->addRow($fila);
+
+$sists = AI_Sistema::getSistemas($DB);
+
+// Me fijo que sistemas puede ver este usuario.
+require_once 'SAMURAI/Perm.php';
+require_once 'SAMURAI/constantes.php';
+$perm = new SAMURAI_Perm($_SESSION['usuario'], 0, $DB);
+$samurai = false;
+$sistemas = array();
+foreach ($sists as $id => $s) {
+    // Agrego los sistemas en los que tiene permiso.
+    $perm->setSistema($s->sistema);
+    if ($perm->tiene()) {
+        // Si es SAMURAI hay que ver si ya no lo agregamos antes.
+        if ($id == SAMURAI_PERM) {
+            if (!$samurai) {
+                $samurai = true;
+                $sistemas[] = $sists[$id];
+            }
+        } else { // Si no es SAMURAI lo agregamos incondicionalmente.
+            $sistemas[] = $sists[$id];
+        }
+    }
+    // Si tiene permisos de SAMURAI en un sistema, hay que mostrar un link a
+    // SAMURAI.
+    if (!$samurai and $perm->tiene(SAMURAI_PERM_PERFIL_ALTA,
+            SAMURAI_PERM_PERFIL_BAJA, SAMURAI_PERM_PERFIL_MODIF,
+            SAMURAI_PERM_USUARIO_ALTA, SAMURAI_PERM_USUARIO_BAJA,
+            SAMURAI_PERM_USUARIO_MODIF)) {
+        $samurai = true;
+        if (@$sists[SAMURAI_PERM]) {
+            $sistemas[] = $sists[SAMURAI_PERM];
+        }
+    }
+}
+unset($sists);
+unset($samurai);
 
-$pct = intval(100/COLUMNAS) . '%';
 $sistema = @array_shift($sistemas);
 while ($sistema) {
     $row = array();
-    for ($j = 0; $j < COLUMNAS; $j++) {
+    for ($j = 1; $j <= COLUMNAS; $j++) {
         if ($sistema) {
-            $img = new HTML_Image(
+            $url = $sistema->link;
+            if ($sistema->tipo == 'embperl') {
+                $url = '/Php2Embperl_Session?redirect=' . urlencode($url);
+            }
+            $img = new MECON_HTML_Image(
                     "/sistemas/intranet/images/$sistema->icono",
                     $sistema->nombre,
                     array(
-                        'title'  => $sistema->descripcion,
                         'border' => 0,
-                        'align'  => 'absmiddle',
+                        'width'  => '46',
+                        'height' => '46',
                     )
             );
-            $row[] = $img->toHtml().' <A href="'.$sistema->link.'" title="'
-                . $sistema->descripcion.'" target="_blank">'.$sistema->nombre
-                . '</A><BR>' . $sistema->descripcion
-               . ($sistema->link_ayuda
-                   ? (' <A href="'.$sistema->link_ayuda.'" target="_blank" alt="Ayuda">(?)</A>')
-                   : '');
+                       $row[] = new MECON_HTML_Link(
+                               $url,
+                $img,
+                               array(),
+                       array(
+                    'OnClick' =>
+                        "javascript:window.open('$url','s{$sistema->sistema}',"
+                        . "'width=790,height=550,scrollbars=yes,resizable=yes');return false;",
+                                   'target' => '_blank',
+                               )
+                   );
+            $row[] = '&nbsp;';
+                       $link = new MECON_HTML_Link(
+                               $url,
+                $sistema->nombre,
+                               array(),
+                       array(
+                    'OnClick' =>
+                        "javascript:window.open('$url','s{$sistema->sistema}',"
+                        . "'width=790,height=550,scrollbars=yes,resizable=yes');return false;",
+                                   'target' => '_blank',
+                    'class' => 'intranet_sistemas_txt',
+                               )
+                   );
+            $html = $link->toHtml() . ': ' . $sistema->descripcion;
+               if ($sistema->link_ayuda) {
+                $html .= '&nbsp;';
+                $img = new MECON_HTML_Image(
+                        '/sistemas/intranet/images/sistemas_ayuda',
+                        '(?)'
+                );
+                       $link = new MECON_HTML_Link(
+                                       $sistema->link_ayuda,
+                                       $img,
+                                       array(),
+                                       array(
+                        'OnClick' =>
+                            "javascript:window.open('{$sistema->link_ayuda}',"
+                            . "'sa{$sistema->sistema}',"
+                            . "'width=790,height=550,scrollbars=yes,resizable=yes');return false;",
+                        'target' => '_blank',
+                    )
+                               );
+                $html .= $link->toHtml();
+                       }
+            $row[] = $html;
             $sistema = @array_shift($sistemas);
         } else {
             $row[] = '&nbsp;';
+            $row[] = '&nbsp;';
+            $row[] = '&nbsp;';
+        }
+        if ($j % (COLUMNAS)) {
+            $row[] = '&nbsp;';
         }
     }
-    $t->addRow($row, array('width' => $pct));
+    $t->addRow(array('&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;', '&nbsp;'));
+    $t->addRow($row, array('class' => 'intranet_sistemas_txt'));
 }
 
-$m = new HTML_DietMarco('sistemas');
-$m->addTitle('Sistemas');
+$m = new HTML_DietMarco('sistemas', 'Sistemas');
+//$m->addTitle('Sistemas');
+$m->addStyleDeclaration('
+    .intranet_sistemas_txt {
+        color: #003366;
+        font-family: Arial, Helvetica, sans-serif;
+        font-size: 10pt;
+    }
+    A.intranet_sistemas_txt {
+        font-weight: bold;
+        text-decoration: none;
+    }'
+);
 $m->addBodyContent($t);
 $m->display();