]> git.llucax.com Git - mecon/yatta.git/blobdiff - sistema/www/archivos.php
YATTA_Proceso cuando asigna un servidor a un nuevo proceso lo hace ponderando.
[mecon/yatta.git] / sistema / www / archivos.php
index 695cccb807cc7aeabd47a4444659bff5f4cdbfc6..1c74c20ade637d7dd1c65b2d1b2d08f16aa4554e 100644 (file)
@@ -26,130 +26,133 @@ $Id$
 
 //Require Once {{{
 require_once 'HTML/Table.php';
 
 //Require Once {{{
 require_once 'HTML/Table.php';
-require_once 'MECON/HTML/Tabla.php';
+require_once 'MECON/HTML/TablaDB.php';
 require_once 'MECON/HTML/Image.php';
 require_once 'MECON/HTML/Link.php';
 require_once 'MECON/HTML/Image.php';
 require_once 'MECON/HTML/Link.php';
+require_once 'YATTA/Archivo.php';
 //}}}
 
 //}}}
 
-//TODO Este path es el del tacho segun el usuario, etc.
-$path = '/var/www/sistemas/yatta/test/'. $_SESSION['usuario'];
-
 //TODO Definir la cuota en algun lado (Kb)
 $cuota = 2048;
 
 //TODO Definir la cuota en algun lado (Kb)
 $cuota = 2048;
 
-//TODO Agregar class para manejar los colores y fuentes
-
 //Actuar segun la accion, etc {{{
 $accion = @$_REQUEST['accion'];
 //Actuar segun la accion, etc {{{
 $accion = @$_REQUEST['accion'];
-$archivo = @$_REQUEST['archivo'];
-if (@$accion && @$archivo) {
-    $archivo2 = $path.'/'.$archivo;
+$id = @$_REQUEST['_id'];
+if (@$id && @$accion) {
+    $ARCHIVO =& new YATTA_Archivo;
+    $ARCHIVO->id = $id;
+    $ARCHIVO->usuario = $_SESSION['usuario'];
+    $res = $ARCHIVO->buscar($DB);
+    if (PEAR::isError($res)) {
+        die('Error: ' . $res->getMessage() . "\n");
+    }
+    $ARCHIVO->cargar($res);
     switch ($accion) {
         case 'download':
     switch ($accion) {
         case 'download':
-            header("Content-Disposition: attachment; filename=".$archivo);
+            header("Content-Disposition: attachment;
+                    filename=".$ARCHIVO->resultado);
             header("Pragma: no-cache");
             header("Expires: 0");
             header("Content-Type: application");
             header("Pragma: no-cache");
             header("Expires: 0");
             header("Content-Type: application");
-            header("Content-Length: ".filesize($archivo2));
-            readfile ($archivo2);
+            header("Content-Length: ".filesize($ARCHIVO->path.$ARCHIVO->archivo));
+            readfile ($ARCHIVO->path.$ARCHIVO->archivo);
             exit;
             break;
     case 'borrar':
             exit;
             break;
     case 'borrar':
-            system ('rm '.$archivo2);
+            $ARCHIVO->borrar($DB);
+            //TODO Capturar el posible error
             header ('Location:archivos');
             break;
     }
 }
 //}}}
 
             header ('Location:archivos');
             break;
     }
 }
 //}}}
 
-//Obtengo la Lista de Archivos del Directorio en Cuestion {{{
-if ($dh = @opendir($path)) {
-    $ocupado =0;
-    while (($file = readdir($dh)) !== false) {
-        //FIXME Sacar el .svn cuando se pase a produccion
-        if ($file != '.' && $file != '..' && $file != '.svn') {
-            $archivos[$file]['ext']    = strtoupper(substr($file, strrpos($file, '.') + 1));
-            $archivos[$file]['nombre'] = $file; 
-            $archivos[$file]['tam']    = round((filesize($path.'/'.$file) / 1024),2);
-            $archivos[$file]['porc']   = round((filesize($path.'/'.$file) / 1024) * 100 /
-                $cuota, 2);
-
-            $ocupado += $archivos[$file]['porc'];
-        }
-    }
-    closedir($dh);
+//Obtengo la lista de archivos y lo agrego a la tabla {{{
+$ARCHIVO =& new YATTA_Archivo;
+$ARCHIVO->usuario = $_SESSION['usuario'];
+
+$res = $ARCHIVO->buscar($DB);
+if (PEAR::isError($res)) {
+    die('Error: ' . $res->getMessage() . "\n");
 }
 }
-//}}}
 
 
-//Tabla de Archivos {{{
-$TABLA_2 =& new MECON_HTML_Tabla ();
-$TABLA_2->addRow(array(
+
+$TABLADB = new MECON_HTML_TablaDB ('Archivos');
+$TABLADB->addRow(array(
             'Lista de Archivos Disponibles'
             'Lista de Archivos Disponibles'
-            ), 'cabecera colspan="6" align="left"');
-$TABLA_2->addRow(array(
-            'Ext', 'Nombre', 'Tam. Kb', 'Tam. %', 'Bajar', 'Borrar'
+            ), 'cabecera colspan="5" align="left"');
+$TABLADB->addRow(array(
+            'Ext', 'Sistema', 'Descripcion', 'Bajar', 'Borrar'
             ), 'Titulo');
             ), 'Titulo');
-if (@$archivos) {
-    asort($archivos);
-    foreach ($archivos as $arch) {
-        $TABLA_2->addRow(array( 
-            new MECON_HTML_Image ('/MECON/images/EXTENSION_'.$arch['ext'].'.gif', $arch['ext']),
-            $arch['nombre'],
-            $arch['tam'].' Kb',
-            $arch['porc'].' %',
-            new MECON_HTML_Link ('archivos', new
-                MECON_HTML_Image('/MECON/images/general_download.gif', 'Bajar'),
-                array (
-                    'accion'=>'download',
-                    'archivo'=>$arch['nombre'],
-                    )),
-            new MECON_HTML_Link ('archivos', new MECON_HTML_Image
-                ('/MECON/images/general_eliminar.gif', 'Eliminar'), 
-                array (
-                    'accion'=>'borrar', 
-                    'archivo'=>$arch['nombre'])            
-                , 'OnClick="return confirm(\'Esta Seguro Bestia?\')"'))
-            );
-    }
-    $TABLA_2->addRow(array(
-                '*Recuerde que los archivos se borran a los 7 dias
-                de antiguedad'
-                ), 'colspan="6" align="center" class="msg_rojo"'); 
-}
-else {
-    $TABLA_2->addRow(array('No se encontraron archivos'), 'colspan="6"
-            class="msg_rojo"');
+
+
+$TABLADB->addRowsData(
+            '<img src="/MECON/images/EXTENSION_%s" alt="Ext">',
+            array (array ('resultado', 'extension_callback')),
+            'prepend'
+        );
+
+//Funcion de callback para el addRowsData de la linea anterior {{{
+function extension_callback($resultado) {
+    return strtoupper(substr($resultado, strrpos($resultado, '.') + 1));
 }
 }
-$TABLA_2->updateColAttributes(0,'width="5%"');
-$TABLA_2->updateColAttributes(2,'width="10%"');
-$TABLA_2->updateColAttributes(3,'width="10%"');
-$TABLA_2->updateColAttributes(4,'width="8%"');
-$TABLA_2->updateColAttributes(5,'width="8%"');
 //}}}
 
 //}}}
 
-//Tabla de Espacio Disponible {{{
-$TABLA_1 =& new HTML_Table ('width="100%"');
-$TABLA_1->addRow(array(
-            '<b>Espacio Utilizado: </b>',
-            (@$ocupado) ? $ocupado.' %' : '0'.' %'
-            ));
-$TABLA_1->updateColAttributes(0,'width="95%" align="right"');
-$TABLA_1->updateColAttributes(1,'align="center"');
-if (@$ocupado > 80) {
-    $TABLA_1->updateCellAttributes(0,1,'class="msg_rojo"');
-}
-else {
-    $TABLA_1->updateCellAttributes(0,1,'class="msg_negro"');
+//@TODO Hacer un addRowsData que agregue el tamanio del archivo (posiblemente
+//con una funcion callback)
+
+$TABLADB->addRowsData(
+            new MECON_HTML_Link('archivos',
+                new MECON_HTML_Image('/MECON/images/general_download.gif',
+                    'Bajar'),
+                array ($TABLADB->getGetVarPrefix().'id' => "%s", 
+                    'accion' => 'download')
+            )
+        );
+
+$TABLADB->addRowsData('%s',
+            array (array (array ('owner', 'id'), 'owner_callback'))
+        );
+
+//Funcion de callback para el addRowsData de la linea anterior {{{
+function owner_callback($owner) {
+    if ($owner['owner'] == $_SESSION['usuario']) {
+        $txt = '<a href="archivos?accion=borrar&_id='.$owner['id'].'">'.
+            '<img src="/MECON/images/general_eliminar.gif">'.
+            '</a>';
+    }
+    else {
+        $txt = '<img src="/MECON/images/general_eliminar_des.gif">';
+    }
+    return $txt;
 }
 }
-$TABLA_1->updateCellAttributes(0,0,'class="msg_negro"');
+//}}}
+
+
+//$TABLADB->addRowsIcon('borrar', array ('id'), new MECON_HTML_Link ('archivos', '', array
+//            ('accion' => 'borrar')));
+
+$pager = $TABLADB->addPager($res, null, 
+            new MECON_HTML_Link
+                ('archivos', null 
+                )
+        );
+
+$TABLADB->addRows($pager, array ('nombre_sistema', 'descripcion'));
+$TABLADB->addRow(array('*Recuerde que los archivos se borran a los 7 dias
+            de antiguedad'), 
+            'colspan="5" align="center" class="msg_rojo"'); 
+
+$TABLADB->updateColAttributes(0,'width="4%"');
+$TABLADB->updateColAttributes(1,'width="30%"');
+$TABLADB->updateColAttributes(2,'width="50%"');
+$TABLADB->updateColAttributes(3,'width="8%"');
+$TABLADB->updateColAttributes(4,'width="8%"');
 //}}}
 
 //Agrego la info al marco y la muestro {{{
 //}}}
 
 //Agrego la info al marco y la muestro {{{
-$MARCO->addBody($TABLA_1);
-$MARCO->addBody('<BR>');
-$MARCO->addBody($TABLA_2);
 $MARCO->addStyleSheet('css/yatta.css');
 $MARCO->addStyleSheet('css/yatta.css');
+$MARCO->addBody($TABLADB);
 $MARCO->display();
 //}}}
 $MARCO->display();
 //}}}
-
 ?>
 ?>