summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/Database/ogAdmBD-1.0.4a-1.0.5pre.sql39
-rw-r--r--admin/Database/ogAdmBD.sql31
-rwxr-xr-xadmin/Interface/CrearImagenBasica107
-rwxr-xr-xadmin/Interface/CrearSoftIncremental127
-rwxr-xr-xadmin/Interface/ImagenesSincronizadas.lib205
-rwxr-xr-xadmin/Interface/RestaurarImagenBasica135
-rwxr-xr-xadmin/Interface/RestaurarSoftIncremental172
-rw-r--r--admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c488
-rw-r--r--admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h21
-rw-r--r--admin/Sources/Includes/ogAdmLib.c26
-rw-r--r--admin/Sources/Includes/ogAdmLib.h5
-rw-r--r--admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp47
-rw-r--r--admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h4
-rw-r--r--admin/WebConsole/comandos/Arrancar.php23
-rw-r--r--admin/WebConsole/comandos/CrearImagenBasica.php248
-rw-r--r--admin/WebConsole/comandos/CrearSoftIncremental.php251
-rw-r--r--admin/WebConsole/comandos/RestaurarImagenBasica.php278
-rw-r--r--admin/WebConsole/comandos/RestaurarSoftIncremental.php279
-rw-r--r--admin/WebConsole/comandos/jscripts/Arrancar.js10
-rw-r--r--admin/WebConsole/comandos/jscripts/CrearImagenBasica.js89
-rw-r--r--admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js91
-rw-r--r--admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js98
-rw-r--r--admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js100
-rw-r--r--admin/WebConsole/controlacceso.php3
-rw-r--r--admin/WebConsole/gestores/gestor_grupos.php19
-rw-r--r--admin/WebConsole/gestores/gestor_imagenes.php39
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagenbasica_esp.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js6
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagenbasica_esp.js13
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarsoftincremental_esp.js13
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js5
-rw-r--r--admin/WebConsole/idiomas/php/esp/aulas_esp.php1
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php4
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php25
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php51
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php51
-rw-r--r--admin/WebConsole/idiomas/php/esp/imagenes_esp.php3
-rw-r--r--admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php3
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php13
-rw-r--r--admin/WebConsole/includes/HTMLSELECT.php5
-rw-r--r--admin/WebConsole/includes/comunes.php65
-rw-r--r--admin/WebConsole/includes/constantes.php28
-rw-r--r--admin/WebConsole/jscripts/constantes.js6
-rw-r--r--admin/WebConsole/jscripts/imagenes.js36
-rw-r--r--admin/WebConsole/jscripts/propiedades_imagenes.js26
-rw-r--r--admin/WebConsole/principal/aula.php81
-rw-r--r--admin/WebConsole/principal/aulas.php91
-rw-r--r--admin/WebConsole/principal/imagenes.php276
-rw-r--r--admin/WebConsole/propiedades/propiedades_grupos.php24
-rw-r--r--admin/WebConsole/propiedades/propiedades_imagenes.php168
-rw-r--r--admin/WebConsole/varios/informacion_acciones.php15
-rw-r--r--doc/CHANGELOG.es.txt3
-rw-r--r--repoman/etc/rsyncd.conf14
-rw-r--r--repoman/etc/rsyncd.secrets1
56 files changed, 3663 insertions, 337 deletions
diff --git a/admin/Database/ogAdmBD-1.0.4a-1.0.5pre.sql b/admin/Database/ogAdmBD-1.0.4a-1.0.5pre.sql
index 005dfac3..d77f6046 100644
--- a/admin/Database/ogAdmBD-1.0.4a-1.0.5pre.sql
+++ b/admin/Database/ogAdmBD-1.0.4a-1.0.5pre.sql
@@ -1,8 +1,33 @@
-# Actualización SQL para crear el comando Eliminar Imagen Cache.
-INSERT INTO ogAdmBD.comandos
- SET idcomando=11, descripcion='Eliminar Imagen Cache',
- pagina='../comandos/EliminarImagenCache.php',
- gestor='../comandos/gestores/gestor_Comandos.php',
- funcion='EliminarImagenCache', aplicambito=31,
- visuparametros='iph;tis;dcr;scp', parametros='nfn;iph;tis;dcr;scp', activo=1;
+# Nuevos comandos "Eliminar Imagen Cache" y "Generar Software Incremental".
+ALTER TABLE ogAdmBD.parametros
+ ADD submenu VARCHAR(50) NULL;
+INSERT INTO ogAdmBD.comandos (idcomando, descripcion, pagina, gestor, funcion, urlimg, aplicambito, visuparametros, parametros, comentarios, activo, submenu) VALUES
+ (11, 'Eliminar Imagen Cache', '../comandos/EliminarImagenCache.php', '../comandos/gestores/gestor_Comandos.php', 'EliminarImagenCache', '', 31, 'iph;tis;dcr;scp', 'nfn;iph;tis;dcr;scp', '', 1, ''),
+ (12, 'Crear Imagen Basica', '../comandos/CrearImagenBasica.php', '../comandos/gestores/gestor_Comandos.php', 'CrearImagenBasica', '', 16, 'dsk;par;cpt;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba', 'nfn;dsk;par;cpt;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba', '', 1, 'Sincronizacion'),
+ (13, 'Restaurar Imagen Basica', '../comandos/RestaurarImagenBasica.php', '../comandos/gestores/gestor_Comandos.php', 'RestaurarImagenBasica', '', 28, 'dsk;par;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba,met', 'nfn;dsk;par;idi;nci;ipr;iph;bpi;cpc;bpc;rti;nba;met', '', 1, 'Sincronizacion'),
+ (14, 'Crear Software Incremental', '../comandos/CrearSoftIncremental.php', '../comandos/gestores/gestor_Comandos.php', 'CrearSoftIncremental', '', 16, 'dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;nba', 'nfn;dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;nba', '', 1, 'Sincronizacion'),
+ (15, 'Restaurar Software Incremental', '../comandos/RestaurarSoftIncremental.php', '../comandos/gestores/gestor_Comandos.php', 'RestaurarSoftIncremental', '', 28, 'dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;met;nba', 'nfn;dsk;par;idi;nci;ipr;idf;ncf;bpi;cpc;bpc;iph;rti;met;nba', '', 1, 'Sincronizacion');
+
+# Parámetros para el comando "Generar Software Incremental".
+ALTER TABLE ogAdmBD.parametros
+ ADD KEY (nemonico);
+INSERT INTO ogAdmBD.parametros (idparametro, nemonico, descripcion, nomidentificador, nomtabla, nomliteral, tipopa, visual) VALUES
+ (31, 'idf', 'Imagen Incremental', 'idimagen', 'imagenes', 'descripcion', 1, 1),
+ (32, 'ncf', 'Nombre canónico de la Imagen Incremental', '', '', '', 0, 1),
+ (33, 'bpi', 'Borrar imagen o partición previamente', '', '', '', 5, 1),
+ (34, 'cpc', 'Copiar también en cache', '', '', '', 5, 1),
+ (35, 'bpc', 'Borrado previo de la imagen en cache', '', '', '', 5, 1),
+ (36, 'rti', 'Ruta de origen', '', '', '', 0, 1),
+ (37, 'met', 'Método clonación', '', '', '', 0, 1),
+ (38, 'nba', 'No borrar archivos en destino', '', '', '', 0, 1);
+
+# Imágenes incrementales.
+ALTER TABLE ogAdmBD.imagenes
+ ADD tipo TINYINT NULL,
+ ADD imagenid INT NOT NULL DEFAULT '0',
+ ADD ruta VARCHAR(250) NULL;
+UPDATE ogAdmBd.imagenes SET tipo=1;
+
+# Cambio de tipo de grupo.
+UPDATE ogAdmBD.grupos SET tipo=70 WHERE tipo=50;
diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql
index 0942a0d7..2d894c21 100644
--- a/admin/Database/ogAdmBD.sql
+++ b/admin/Database/ogAdmBD.sql
@@ -182,13 +182,13 @@ CREATE TABLE IF NOT EXISTS `centros` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
- --
- -- Volcar la base de datos para la tabla `centros`
- --
- INSERT INTO `centros` (`idcentro`,`nombrecentro`,`identidad`,`comentarios`) VALUES
- (1,'Unidad Organizativa (Default)',1,'Esta Unidad Organizativa se crea automáticamente en el proceso de instalación de OpenGnSys');
-
-
+--
+-- Volcar la base de datos para la tabla `centros`
+--
+INSERT INTO `centros` (`idcentro`,`nombrecentro`,`identidad`,`comentarios`) VALUES
+ (1,'Unidad Organizativa (Default)',1,'Esta Unidad Organizativa se crea automáticamente en el proceso de instalación de OpenGnSys');
+
+
-- --------------------------------------------------------
--
@@ -208,7 +208,7 @@ CREATE TABLE IF NOT EXISTS `comandos` (
`comentarios` text,
`activo` tinyint(1) NOT NULL,
PRIMARY KEY (`idcomando`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
--
-- Volcar la base de datos para la tabla `comandos`
@@ -225,7 +225,8 @@ INSERT INTO `comandos` (`idcomando`, `descripcion`, `pagina`, `gestor`, `funcion
(8, 'Ejecutar Script', '../comandos/EjecutarScripts.php', '../comandos/gestores/gestor_Comandos.php', 'EjecutarScript', '', 31, 'iph;tis;dcr;scp', 'nfn;iph;tis;dcr;scp', '', 1),
(9, 'Iniciar Sesion', '../comandos/IniciarSesion.php', '../comandos/gestores/gestor_Comandos.php', 'IniciarSesion', '', 31, 'par', 'nfn;iph;par', '', 1),
(10, 'Particionar y Formatear', '../comandos/Configurar.php', '../comandos/gestores/gestor_Comandos.php', 'Configurar', '', 28, 'dsk;cfg;', 'nfn;iph;mac;dsk;cfg;par;cpt;sfi;tam;ope', '', 0),
-(11, 'Eliminar Imagen Cache', '../comandos/EliminarImagenCache.php', '../comandos/gestores/gestor_Comandos.php', 'EliminarImagenCache', '', 31, 'iph;tis;dcr;scp', 'nfn;iph;tis;dcr;scp', '', 1);
+(11, 'Eliminar Imagen Cache', '../comandos/EliminarImagenCache.php', '../comandos/gestores/gestor_Comandos.php', 'EliminarImagenCache', '', 31, 'iph;tis;dcr;scp', 'nfn;iph;tis;dcr;scp', '', 1),
+(12, 'Generar Incremental', '../comandos/CrearSoftIncremental.php', '../comandos/gestores/gestor_Comandos.php', 'CrearSoftIncremental', '', 16, 'nfn;dsk;iph;par;idf;ncf;idi;nci;ipr', 'nfn;dsk;iph;par;idf;ncf;idi;nci;ipr', '', 1);
@@ -416,6 +417,9 @@ CREATE TABLE IF NOT EXISTS `imagenes` (
`idrepositorio` int(11) NOT NULL,
`numpar` smallint(6) NOT NULL,
`codpar` int(8) NOT NULL,
+ `tipo` tinyint NULL,
+ `imagenid` int NOT NULL DEFAULT '0',
+ `ruta` varchar(250) NULL,
PRIMARY KEY (`idimagen`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
@@ -523,7 +527,7 @@ CREATE TABLE IF NOT EXISTS `parametros` (
`tipopa` tinyint(1) DEFAULT '0',
`visual` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`idparametro`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=31 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=33 ;
--
-- Volcar la base de datos para la tabla `parametros`
@@ -542,7 +546,7 @@ INSERT INTO `parametros` (`idparametro`, `nemonico`, `descripcion`, `nomidentifi
(9, 'ifh', 'Perfil Hardware', 'idperfilhard', 'perfileshard', 'descripcion', 1, 1),
(10, 'ifs', 'Perfil Software', 'idperfilsoft', 'perfilessoft', 'descripcion', 1, 1),
(11, 'idi', 'Imagen', 'idimagen', 'imagenes', 'descripcion', 1, 1),
-(12, 'nci', 'Nombre canonico', '', '', '', 0, 1),
+(12, 'nci', 'Nombre canónico', '', '', '', 0, 1),
(13, 'scp', 'Código a ejecutar en formato script', '', '', '', 0, 0),
(14, 'npc', 'Nombre del cliente', '', '', '', NULL, 0),
(15, 'che', 'Tamaño de la cache del cliente', '', '', '', NULL, 0),
@@ -558,12 +562,15 @@ INSERT INTO `parametros` (`idparametro`, `nemonico`, `descripcion`, `nomidentifi
(26, 'sft', 'Nombre del archivo de inventario software enviado por la red', '', '', '', 0, 0),
(27, 'tpc', 'Tipo de cliente', '', '', '', 0, 0),
(28, 'scp', 'Código script', '', '', '', 4, 1),
-(30, 'ptc', 'Protocolo de clonación', ';', '', ';Unicast;Multicast;Torrent', 1, 1);
+(30, 'ptc', 'Protocolo de clonación', ';', '', ';Unicast;Multicast;Torrent', 1, 1),
+(31, 'idf', 'Imagen diferencial', 'idsoftincremental', 'softincrementales', 'descripcion', 1, 1),
+(32, 'ncf', 'Nombre de la imagen diferencial', '', '', '', 0, 1);
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `perfileshard`
+
--
CREATE TABLE IF NOT EXISTS `perfileshard` (
diff --git a/admin/Interface/CrearImagenBasica b/admin/Interface/CrearImagenBasica
new file mode 100755
index 00000000..a439788e
--- /dev/null
+++ b/admin/Interface/CrearImagenBasica
@@ -0,0 +1,107 @@
+#!/bin/bash
+#___________________________________________________________________
+#
+# CREAR IMAGEN BÁSICA
+#___________________________________________________________________
+#
+# Parámetros recibidos desde el cliente:
+#
+# $1 Número de disco
+# $2 Número de particion
+# $3 Nombre canónico de la imagen básica (sin extensión)
+# $4 Dirección del repositorio (Si es 0.0.0.0 es caché)
+# $5 Es una cadena "nnnn" tipo flags que codifica varios parametros.
+# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
+# 1XXX: Borrar la imagen del repositorio antes de crearla
+# X1XX: Copiar Imagen básica también a la cache
+# XX1X: Borrar previamente la imagen de la cache antes de copiarla
+# XXX1: No borrar archivos en destino
+# El valor X indica que no importa el valor que tenga el dato
+# $6 Ruta de origen de la Imagen (Carpeta)
+
+#___________________________________________________________________
+#
+# Control parámetros
+#___________________________________________________________________
+
+ PROG="$(basename $0)"
+ if [ $# -lt 5 ]; then
+ usage=" ndisco nparticion nombre_imagen_basica ip_repositorio"
+ usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
+ ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
+ exit $?
+ fi
+
+ DISCO=$1
+ PARTICION=$2
+ NOMBREIMG=$3
+ IPREPOSITORIO=$4
+
+ flag=$5
+ echo "flah:$flag">/tmp/log
+ BORRARIMG=${flag:0:1}
+ COPIACACHE=${flag:1:1}
+ BORRACACHE=${flag:2:1}
+ NOBORRACHIVOS=${flag:3:1}
+
+ RUTAORIGEN=$6
+#___________________________________________________________________
+#
+# Variables y configuración logs
+#___________________________________________________________________
+
+ source /opt/opengnsys/interfaceAdm/ImagenesSincronizadas.lib
+#___________________________________________________________________
+#
+# Proceso
+#___________________________________________________________________
+
+ echo "Creacion de imagen basica..." | tee -a $OGLOGSESSION $OGLOGFILE
+
+ ORIGEN=$PARTICION$RUTAORIGEN/
+ DESTINO="$REPOSITORIO/$NOMBREIMG/"
+
+ # Borrado previo de imagen en repositorio
+ if [ $BORRARIMG -eq 1 ]; then
+ echo "Borrando previamente imagen del repositorio" | tee -a $OGLOGSESSION $OGLOGFILE
+ fi
+
+ # Creación de la imagen básica
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Copia opcional a la caché
+ if [ $COPIACACHE -eq 1 ]; then
+ echo "Copiando imagen a cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ CACHE=$(montaCache)
+ if [ -z $CACHE ]; then
+ echo "No se ha podido copiar la imagen a la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ exit 0
+ fi
+
+ # Borrar imagen de la caché
+ if [ $BORRACACHE -eq 1 ]; then
+ echo "Borrando imagen $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $CACHE$OGIMG/$NOMBREIMG
+ fi
+
+ # Redefinir destino
+ DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
+
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+ fi
+#___________________________________________________________________
+#
+# Retorno
+#___________________________________________________________________
+
+ exit 0
diff --git a/admin/Interface/CrearSoftIncremental b/admin/Interface/CrearSoftIncremental
new file mode 100755
index 00000000..f788635e
--- /dev/null
+++ b/admin/Interface/CrearSoftIncremental
@@ -0,0 +1,127 @@
+#!/bin/bash
+#___________________________________________________________________
+#
+# CREAR IMAGEN INCREMENTAL
+#___________________________________________________________________
+#
+# Parámetros recibidos desde el cliente:
+#
+# $1 Número de disco
+# $2 Número de particion
+# $3 Nombre canónico de la imagen básica (sin extensión)
+# $4 Dirección del repositorio (Si es 0.0.0.0 es caché)
+# $5 Nombre canónico de la imagen incremental (sin extensión)
+# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros.
+# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
+# 1XXX: Borrar la imagen incremental del repositorio antes de crearla
+# X1XX: Copiar imagen incremental también a la cache
+# XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla
+# XXX1: No borrar archivos en destino
+# El valor X indica que no importa el valor que tenga el dato
+# $7 Ruta de origen de la Imagen (Carpeta)
+
+#___________________________________________________________________
+#
+# Control parámetros
+#___________________________________________________________________
+
+ PROG="$(basename $0)"
+ if [ $# -lt 6 ]; then
+ usage=" ndisco nparticion nombre_imagen_basica ip_repositorio nombre_imagen_incremental"
+ usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
+ ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
+ exit $?
+ fi
+
+ DISCO=$1
+ PARTICION=$2
+ NOMBREIMG=$3
+ IPREPOSITORIO=$4
+ NOMBREIMGINC=$5
+
+ flag=$6
+ echo "flah:$flag">/tmp/log
+ BORRARIMG=${flag:0:1}
+ COPIACACHE=${flag:1:1}
+ BORRACACHE=${flag:2:1}
+ NOBORRACHIVOS=${flag:3:1}
+
+ RUTAORIGEN=$7
+#___________________________________________________________________
+#
+# Variables y configuración logs
+#___________________________________________________________________
+
+ source /opt/opengnsys/interfaceAdm/ImagenesSincronizadas.lib
+
+#___________________________________________________________________
+#
+# Lista de archivos a sincronizar
+#___________________________________________________________________
+
+ TMPFILELIST="/tmp/_listatmp_"
+ FILELIST="/tmp/_lista_"
+#___________________________________________________________________
+#
+# Proceso
+#___________________________________________________________________
+
+ echo "Creacion de imagen incremental..." | tee -a $OGLOGSESSION $OGLOGFILE
+
+ ORIGEN=$PARTICION$RUTAORIGEN/
+ DESTINO="$REPOSITORIO/$NOMBREIMG/"
+
+ # Borrado previo de imagen en repositorio
+ if [ $BORRARIMG -eq 1 ]; then
+ echo "Borrando previamente imagen del repositorio" | tee -a $OGLOGSESSION $OGLOGFILE
+ fi
+
+ # Creación de la lista de archivos entre partición e imagen básica del repositorio
+ echo "Creación de la lista de archivos a transferir entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1 $TMPFILELIST
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Editar la lista y depurarla
+ editarLista $TMPFILELIST $FILELIST
+
+ # Creación de la imagen incremental en el repositorio
+ echo "Sincronizacion para crear imagen incremental entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2 $FILELIST
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Copia opcional a la caché
+ if [ $COPIACACHE -eq 1 ]; then
+ echo "Copiando imagen a cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ CACHE=$(montaCache)
+ if [ -z $CACHE ]; then
+ echo "No se ha podido copiar la imagen a la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ exit 0
+ fi
+
+ # Borrar imagen de la caché
+ if [ $BORRACACHE -eq 1 ]; then
+ echo "Borrando imagen $NOMBREIMGINC de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $CACHE$OGIMG/$NOMBREIMGINC
+ fi
+
+ DESTINO="$CACHE$OGIMG/$NOMBREIMGINC/"
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2 $FILELIST
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+ fi
+#___________________________________________________________________
+#
+# Retorno
+#___________________________________________________________________
+
+ exit 0
+ \ No newline at end of file
diff --git a/admin/Interface/ImagenesSincronizadas.lib b/admin/Interface/ImagenesSincronizadas.lib
new file mode 100755
index 00000000..2b0d3ace
--- /dev/null
+++ b/admin/Interface/ImagenesSincronizadas.lib
@@ -0,0 +1,205 @@
+#!/bin/bash
+#___________________________________________________________________
+#
+#@file ImagenesSincronizadas.lib
+#@brief Librería o clase ImagenesSincronizadas
+#@class ImagenesSincronizadas
+#@brief Funciones para la creación y restauración de imagenes por sincronización.
+#@version 1.0.4
+#@warning License: GNU GPLv3+
+#___________________________________________________________________
+
+ #Load engine configurator from engine.cfg file.
+ #Carga el configurador del engine desde el fichero engine.cfg
+ [ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
+
+ # Clear temporary file used as log track by httpdlog
+ # Limpia los ficheros temporales usados como log de seguimieincludento para httpdlog
+ echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp
+
+ # Registro de inicio de ejecución
+ #echo "[START Interface ] Run this command: $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
+ echo "$MSG_INTERFACE_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
+
+ # Solo ejecutable por OpenGnSys Client.
+ PATH=$PATH:$(dirname $0)
+ PROG=$(basename $0)
+ CALLER=$(ogGetCaller)
+ if [ "$CALLER" != "ogAdmClient" ]; then
+ ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG"
+ exit $?
+ fi
+
+ #___________________________________________________________________
+ #
+ # Variables globales
+ #___________________________________________________________________
+
+ TIPOPARTICION="$(ogGetPartitionId $DISCO $PARTICION)"; # Tipo de particion
+ SISTEMAFICHERO="$(ogGetOsType $DISCO $PARTICION)" # Sistema de ficheros
+ PARTICION=$(ogMount $DISCO $PARTICION); # Monta partición
+ REPOSITORIO="root@$IPREPOSITORIO::imagenes" # Ruta de las imagenes en el repositorio
+
+ # Borrar archivos en destino
+ OP_DELETE="--delete"
+ if [ $NOBORRACHIVOS -eq 1 ]; then
+ OP_DELETE=""
+ fi
+
+ #___________________________________________________________________
+ #
+ # Crea un fichero con la clave remota del rsync y actualiza el
+ # parámetro "--password-file" para que no se pida ésta en el proceso.
+ #___________________________________________________________________
+ #
+ f="/tmp/passrsync" # Creación del archivo de claves
+ echo "passusuog">$f # Escribe dentro la clave remota
+ chmod 400 $f # Es obligatorio que el archivo de claves tenga estos permisos
+ FILE_PASSWD="--password-file=$f"
+
+
+ #___________________________________________________________________
+ #
+ # Función: montaCache
+ #
+ # Descripción:
+ #
+ # Monta la cache y devuelve la ruta hacía ella
+ #
+ # Parámetros:
+ #
+ # Ninguno
+ #___________________________________________________________________
+ #
+ function montaCache()
+ {
+ # Error si no existe caché
+ if ! $(ogFindCache >/dev/null); then
+ echo ""
+ return
+ fi
+ cache=$(ogMountCache)
+ echo $cache
+ }
+ #___________________________________________________________________
+ #
+ # Función: editarLista
+ #
+ # Descripción:
+ #
+ # Edita lista de archivos a transferir para depurar lineas
+ #
+ # Parámetros:
+ #
+ # $1 Lista de entrada
+ # $2 Lista de salida
+ #___________________________________________________________________
+ #
+ function editarLista()
+ {
+ # Edición:
+ # a) Quitarle lineas que contengan './'
+ # b) La primera linea (reporter del rsync)
+ # c) Las dos últimas lineas del final (reporter del rsync)
+
+ echo "Editando lista de archivos Entrada:$1 Salida:$2" | tee -a $OGLOGSESSION $OGLOGFILE
+ cat $1 | sed '/\.\//d' | sed '1d' | sed -n -e :a -e '1,2!{P;N;D;};N;ba'>$2
+ }
+
+ #___________________________________________________________________
+ #
+ # Función: crearImagen
+ #
+ # Descripción:
+ #
+ # Sincroniza archivos entre origen y destino. Al final del
+ # proceso el contenido de destino será igual al de origen.
+ # La creación de imagen siempre tiene lugar entre una partición
+ # y un repositorio como origen y destino respectivamente.
+ #
+ # Parámetros:
+ #
+ # $1: Origen
+ # $2: Destino
+ # $3: Sistema de ficheros de la partición
+ # $4: Vale 1=Para crear la lista de archivos a transferir
+ # 2= Cuando se quiere sincronizar usando la lista
+ # $5: Path a la lista de archivos
+ #___________________________________________________________________
+ #
+ function crearImagen()
+ {
+ case "$3" in
+ Windows)
+ OP_ARCHIVO="-aH"
+ OP_EXCLUDE="--exclude '$PARTICION/pagefile.sys'"
+ ;;
+ Linux)
+ OP_ARCHIVO="-alH"
+ OP_EXCLUDE="--exclude '/tmp ..exclude '/proc' --exclude='/sys'"
+ ;;
+ esac
+
+ FREG=$OGLOGCOMMAND # Por defecto se redirecciona al archivo de log de comandos
+
+ case "$4" in
+ 1)
+ OP_ARCHIVO=$OP_ARCHIVO"nv" # Simulación para crear lista
+ FREG=$5
+ ;;
+ 2)
+ OP_FILELIST="--files-from=$5"
+ OP_ARCHIVO="$OP_ARCHIVO $OP_FILELIST"
+ ;;
+ esac
+
+ OP_PASSWD=$FILE_PASSWD
+ echo "rsync $OP_ARCHIVO $OP_DELETE $OP_EXCLUDE $OP_PASSWD $1 $2 " | tee -a $OGLOGSESSION $OGLOGFILE
+ rsync $OP_ARCHIVO $OP_DELETE $OP_EXCLUDE $OP_PASSWD $1 $2>$FREG;
+ }
+
+ #___________________________________________________________________
+ #
+ # Función: restaurarImagen
+ #
+ # Descripción:
+ #
+ # Sincroniza archivos entre origen y destino. Al final del
+ # proceso el contenido de destino será igual al de origen.
+ # La restauración de imagen siempre tiene lugar entre la caché
+ # o un repositorio y una partición o carpeta como origen y destino
+ # respectivamente.
+ #
+ # Parámetros:
+ #
+ # $1: Origen
+ # $2: Destino
+ # $3: Sistema de ficheros de la partición
+ # $4: Indica si la sincronización es local o remota
+ # 1: El origen o el destino es remoto
+ # 2: Tanto el origen como el destino son locales
+ #___________________________________________________________________
+ #
+ function restaurarImagen()
+ {
+ case "$3" in
+ Windows)
+ OP_ARCHIVO="-aH"
+ ;;
+ Linux)
+ OP_ARCHIVO="-alH"
+ ;;
+ esac
+
+ case "$4" in
+ 1)
+ OP_PASSWD=$FILE_PASSWD
+ ;;
+ 2)
+ OP_PASSWD=""
+ ;;
+ esac
+ echo "rsync $OP_ARCHIVO $OP_DELETE $OP_PASSWD $1 $2" | tee -a $OGLOGSESSION $OGLOGFILE
+ rsync $OP_ARCHIVO $OP_DELETE $OP_PASSWD $1 $2>$OGLOGCOMMAND;
+ }
+ \ No newline at end of file
diff --git a/admin/Interface/RestaurarImagenBasica b/admin/Interface/RestaurarImagenBasica
new file mode 100755
index 00000000..133d2e5a
--- /dev/null
+++ b/admin/Interface/RestaurarImagenBasica
@@ -0,0 +1,135 @@
+#!/bin/bash
+#___________________________________________________________________
+#
+# RESTAURAR IMAGEN BÁSICA
+#___________________________________________________________________
+#
+# Parámetros recibidos desde el cliente:
+#
+# $1 Número de disco
+# $2 Número de particion
+# $3 Nombre canónico de la imagen básica (sin extensión)
+# $4 Dirección del repositorio (Si es 0.0.0.0 es caché)
+# $5 Es una cadena "nnnn" tipo flags que codifica varios parametros.
+# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
+# 1XXX: Borrar la particion de destino antes de restaurar la imagen basica
+# X1XX: Copiar Imagen básica también a la cache
+# XX1X: Borrar previamente la imagen basica de la cache antes de copiarla
+# XXX1: No borrar archivos en destino
+# El valor X indica que no importa el valor que tenga el dato
+# $6 Método de clonación 0=Desde caché 1=Desde repositorio
+# $7 Ruta de origen de la Imagen (Carpeta)
+#___________________________________________________________________
+#
+# Control parámetros
+#___________________________________________________________________
+
+ PROG="$(basename $0)"
+ if [ $# -lt 6 ]; then
+ usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
+ usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
+ ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
+ exit $?
+ fi
+
+ DISCO=$1
+ PARTICION=$2
+ NOMBREIMG=$3
+ IPREPOSITORIO=$4
+
+ flag=$5
+ echo "flah:$flag">/tmp/log
+ BORRARIMG=${flag:0:1}
+ COPIACACHE=${flag:1:1}
+ BORRACACHE=${flag:2:1}
+ NOBORRACHIVOS=${flag:3:1}
+
+ METCLONA=$6
+ RUTAORIGEN=$7
+#___________________________________________________________________
+#
+# Variables y configuración logs
+#___________________________________________________________________
+
+ source /opt/opengnsys/interfaceAdm/ImagenesSincronizadas.lib
+#___________________________________________________________________
+#
+# Proceso
+#___________________________________________________________________
+
+ echo "Restauracion de imagen basica..." | tee -a $OGLOGSESSION $OGLOGFILE
+
+ # Borrado previo de la partición
+ if [ $BORRARIMG -eq 1 ]; then
+ if [ -n $RUTAORIGEN ]; then
+ echo "Borrando carpeta $PARTICION$RUTAORIGEN" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $PARTICION$RUTAORIGEN
+ else
+ echo "Formateando la particion" | tee -a $OGLOGSESSION $OGLOGFILE
+ ogFormat $DISCO $PARTICION $TIPOPARTICION
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_PARTITION
+ fi
+ fi
+ fi
+
+ # Sincronización desde repositorio
+ if [ $METCLONA = 1 ]; then
+ if [ $COPIACACHE = 0 ]; then
+ echo "Restaurando imagen basica desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$REPOSITORIO/$NOMBREIMG/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ # Restauración de la imagen básica
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ exit $RETVAL
+ fi
+ fi
+
+ # Restauración desde la caché
+ echo "Restaurando desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+
+ # Comprobar si existe caché
+ CACHE=$(montaCache)
+ if [ -z $CACHE ]; then
+ echo "No se ha podido restaurar la imagen desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ ogRaiseError $OG_ERR_NOTCACHE "CACHE"
+ exit $?
+ fi
+
+ # Borrar imagen de la caché
+ if [ $BORRACACHE -eq 1 ]; then
+ echo "Borrando imagen $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $CACHE$OGIMG/$NOMBREIMG
+ fi
+
+ # Actualización de la caché
+ echo "Actualizando cache local desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$REPOSITORIO/$NOMBREIMG/"
+ DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Restauración desde caché a la partición
+ echo "Copiando imagen a la partición desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
+
+ ORIGEN="$CACHE$OGIMG/$NOMBREIMG/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+#___________________________________________________________________
+#
+# Retorno
+#___________________________________________________________________
+
+ exit 0
diff --git a/admin/Interface/RestaurarSoftIncremental b/admin/Interface/RestaurarSoftIncremental
new file mode 100755
index 00000000..f1afc5be
--- /dev/null
+++ b/admin/Interface/RestaurarSoftIncremental
@@ -0,0 +1,172 @@
+#!/bin/bash
+#___________________________________________________________________
+#
+# RESTAURAR IMAGEN INCREMENTAL
+#___________________________________________________________________
+#
+# Parámetros recibidos desde el cliente:
+#
+# $1 Número de disco
+# $2 Número de particion
+# $3 Nombre canónico de la imagen básica (sin extensión)
+# $4 Dirección del repositorio (Si es 0.0.0.0 es caché)
+# $5 Nombre canónico del software incremental (sin extensión)
+# $5 Es una cadena "nnnn" tipo flags que codifica varios parametros.
+# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
+# 1XXX: Borrar la particion de destino antes de restaurar la imagen incremental
+# X1XX: Copiar Imagen incremental también a la cache
+# XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla
+# XXX1: No borrar archivos en destino
+# El valor X indica que no importa el valor que tenga el dato
+# $7 Método de clonación 0=Desde caché 1=Desde repositorio
+# $8 Ruta de origen de la Imagen (Carpeta)
+#___________________________________________________________________
+#
+# Control parámetros
+#___________________________________________________________________
+
+ PROG="$(basename $0)"
+ if [ $# -lt 6 ]; then
+ usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
+ usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
+ ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
+ exit $?
+ fi
+
+ DISCO=$1
+ PARTICION=$2
+ NOMBREIMG=$3
+ IPREPOSITORIO=$4
+ NOMBREIMGINC=$5
+
+ flag=$6
+ echo "flah:$flag">/tmp/log
+ BORRARIMG=${flag:0:1}
+ COPIACACHE=${flag:1:1}
+ BORRACACHE=${flag:2:1}
+ NOBORRACHIVOS=${flag:3:1}
+
+ METCLONA=$7
+ RUTAORIGEN=$8
+#___________________________________________________________________
+#
+# Variables y configuración logs
+#___________________________________________________________________
+
+ source /opt/opengnsys/interfaceAdm/ImagenesSincronizadas.lib
+#___________________________________________________________________
+#
+# Proceso
+#___________________________________________________________________
+
+ echo "Restauracion de imagen incremental..." | tee -a $OGLOGSESSION $OGLOGFILE
+
+ # Borrado previo de la partición
+ if [ $BORRARIMG -eq 1 ]; then
+ if [ -n $RUTAORIGEN ]; then
+ echo "Borrando carpeta $PARTICION$RUTAORIGEN" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $PARTICION$RUTAORIGEN
+ else
+ echo "Formateando la particion" | tee -a $OGLOGSESSION $OGLOGFILE
+ ogFormat $DISCO $PARTICION $TIPOPARTICION
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_PARTITION
+ fi
+ fi
+ fi
+
+ # Sincronización desde repositorio
+ if [ $METCLONA = 1 ]; then
+ if [ $COPIACACHE = 0 ]; then
+ echo "Restaurando imagen basica desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$REPOSITORIO/$NOMBREIMG/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ # Restauración de la imagen básica
+ echo "Sincronizando imagen basica entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Restauración de la imagen incremental
+ echo "Restaurando imagen incremental desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$REPOSITORIO/$NOMBREIMGINC/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ OP_DELETE=""
+ # Restauración de la imagen incremental
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ exit $RETVAL
+ fi
+ fi
+
+ # Restauración desde la caché
+ echo "Restaurando desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+
+ # Comprobar si existe caché
+ CACHE=$(montaCache)
+ if [ -z $CACHE ]; then
+ echo "No se ha podido restaurar la imagen desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ ogRaiseError $OG_ERR_NOTCACHE "CACHE"
+ exit $?
+ fi
+
+ # Borrar imagen de la caché
+ if [ $BORRACACHE -eq 1 ]; then
+ echo "Borrando imagen basica $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $CACHE$OGIMG/$NOMBREIMG
+ echo "Borrando imagen incremental $NOMBREIMGINC de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
+ rm -R $CACHE$OGIMG/$NOMBREIMGINC
+ fi
+
+ # Actualización de la caché
+ echo "Actualizando cache local desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
+
+ ORIGEN="$REPOSITORIO/$NOMBREIMG/"
+ DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
+ echo "Sincronizando imagen basica entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+ ORIGEN="$REPOSITORIO/$NOMBREIMGINC/"
+ DESTINO="$CACHE$OGIMG/$NOMBREIMGINC/"
+ echo "Sincronizando imagen incremental entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ # Restauración desde caché a la partición
+
+ echo "Copiando imagen basica a la partición desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$CACHE$OGIMG/$NOMBREIMG/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+
+ echo "Copiando imagen incremental a la partición desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
+ ORIGEN="$CACHE$OGIMG/$NOMBREIMGINC/"
+ DESTINO=$PARTICION$RUTAORIGEN/
+ OP_DELETE=""
+ echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
+ restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2
+ RETVAL=$?
+ if [ $RETVAL -ne 0 ]; then
+ exit $OG_ERR_IMAGE
+ fi
+#___________________________________________________________________
+#
+# Retorno
+#___________________________________________________________________
+
+ exit 0 \ No newline at end of file
diff --git a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c
index d766eb34..087130c9 100644
--- a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c
+++ b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c
@@ -83,28 +83,33 @@ BOOLEAN tomaConfiguracion(char* filecfg)
}
if (servidoradm[0] == CHARNULL) {
+ liberaMemoria(buffer);
errorLog(modulo,4, FALSE); // Falta parámetro SERVIDORADM
return (FALSE);
}
if (puerto[0] == CHARNULL) {
+ liberaMemoria(buffer);
errorLog(modulo,5, FALSE); // Falta parámetro PUERTO
return (FALSE);
}
if (pathinterface[0] == CHARNULL) {
+ liberaMemoria(buffer);
errorLog(modulo,56, FALSE); // Falta parámetro PATHINTERFACE
return (FALSE);
}
if (urlmenu[0] == CHARNULL) {
+ liberaMemoria(buffer);
errorLog(modulo,89, FALSE); // Falta parámetro URLMENU
return (FALSE);
}
if (urlmsg[0] == CHARNULL) {
+ liberaMemoria(buffer);
errorLog(modulo,90, FALSE); // Falta parámetro URLMSG
return (FALSE);
}
-
+ liberaMemoria(buffer);
return (TRUE);
}
//______________________________________________________________________________________________________
@@ -368,6 +373,10 @@ BOOLEAN tomaIPlocal()
{
char modulo[] = "tomaIPlocal()";
+ // Para debug
+ //strcpy(IPlocal,"10.1.15.203");
+ //return(TRUE);
+
sprintf(interface,"%s/getIpAddress",pathinterface);
herror=interfaceAdmin(interface,NULL,IPlocal);
if(herror){
@@ -389,6 +398,8 @@ BOOLEAN tomaIPlocal()
//______________________________________________________________________________________________________
BOOLEAN cuestionCache(char* tam)
{
+ return(TRUE);
+ //>>>>>>>>>>>>>>>>>>>>>>>>>>
char msglog[LONSTD];
char modulo[] = "cuestionCache()";
@@ -473,9 +484,13 @@ void muestraMenu()
// ________________________________________________________________________________________________________
void muestraMensaje(int idx,char*msg)
{
- char url[250];
- if(msg)
- sprintf(url,"%s?msg=%s",urlmsg,URLEncode(msg)); // Url de la página de mensajes
+ char *msgpan,url[250];
+
+ if(msg){
+ msgpan=URLEncode(msg);
+ sprintf(url,"%s?msg=%s",urlmsg,msgpan); // Url de la página de mensajes
+ liberaMemoria(msgpan);
+ }
else
sprintf(url,"%s?idx=%d",urlmsg,idx); // Url de la página de mensajes
cargaPaginaWeb(url);
@@ -513,7 +528,8 @@ BOOLEAN inclusionCliente(TRAMA* ptrTrama)
initParametros(ptrTrama,0);
lon=sprintf(ptrTrama->parametros,"nfn=InclusionCliente\r"); // Nombre de la función a ejecutar en el servidor
lon+=sprintf(ptrTrama->parametros+lon,"cfg=%s\r",cfg); // Configuración de los Sistemas Operativos del cliente
-
+ liberaMemoria(cfg);
+
if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
errorLog(modulo,37,FALSE);
return(FALSE);
@@ -551,15 +567,18 @@ BOOLEAN RESPUESTA_InclusionCliente(TRAMA* ptrTrama)
res=copiaParametro("res",ptrTrama); // Resultado del proceso de inclusión
if(atoi(res)==0){ // Error en el proceso de inclusión
+ liberaMemoria(res);
errorLog(modulo,41,FALSE);
return (FALSE);
}
- strcpy(idordenador,copiaParametro("ido",ptrTrama)); // Identificador del ordenador
- strcpy(nombreordenador,copiaParametro("npc",ptrTrama)); // Nombre del ordenador
- strcpy(cache,copiaParametro("che",ptrTrama)); // Tamaño de la caché reservada al cliente
- strcpy(idproautoexec,copiaParametro("exe",ptrTrama)); // Procedimento de inicio (Autoexec)
- strcpy(idcentro,copiaParametro("idc",ptrTrama)); // Identificador de la Unidad Organizativa
- strcpy(idaula,copiaParametro("ida",ptrTrama)); // Identificador de la Unidad Organizativa
+ liberaMemoria(res);
+
+ idordenador=copiaParametro("ido",ptrTrama); // Identificador del ordenador
+ nombreordenador=copiaParametro("npc",ptrTrama); // Nombre del ordenador
+ cache=copiaParametro("che",ptrTrama); // Tamaño de la caché reservada al cliente
+ idproautoexec=copiaParametro("exe",ptrTrama); // Procedimento de inicio (Autoexec)
+ idcentro=copiaParametro("idc",ptrTrama); // Identificador de la Unidad Organizativa
+ idaula=copiaParametro("ida",ptrTrama); // Identificador del aula
if(idordenador==NULL || nombreordenador==NULL){
errorLog(modulo,40,FALSE);
@@ -589,10 +608,16 @@ char* LeeConfiguracion(char* dsk)
errorLog(modulo,3,FALSE);
return(NULL);
}
+
+ // Para debug
+ //sprintf(parametroscfg,"disk=1\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\n","1","7","NTFS","Microsoft Windows XP","50000000");
+ //return(parametroscfg);
+
sprintf(interface,"%s/%s",pathinterface,"getConfiguration");
herror=interfaceAdmin(interface,NULL,parametroscfg);
if(herror){ // No se puede recuperar la configuración del cliente
+ liberaMemoria(parametroscfg);
errorLog(modulo,36,FALSE);
return(NULL);
}
@@ -656,11 +681,16 @@ BOOLEAN RESPUESTA_AutoexecCliente(TRAMA* ptrTrama)
res=copiaParametro("res",ptrTrama);
if(atoi(res)==0){ // Error en el proceso de autoexec
+ liberaMemoria(res);
return (FALSE);
}
+ liberaMemoria(res);
+
nfl=copiaParametro("nfl",ptrTrama);
initParametros(ptrTrama,0);
sprintf(ptrTrama->parametros,"nfn=enviaArchivo\rnfl=%s\r",nfl);
+ liberaMemoria(nfl);
+
/* Envía petición */
if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
errorLog(modulo,42,FALSE);
@@ -879,19 +909,20 @@ BOOLEAN Sondeo(TRAMA* ptrTrama)
BOOLEAN ConsolaRemota(TRAMA* ptrTrama)
{
SOCKET socket_c;
- char *nfn,*ids,*scp,ecosrc[LONPRM],ecodst[LONPRM],msglog[LONSTD];;
+ char *nfn,*scp,*aux,ecosrc[LONPRM],ecodst[LONPRM],msglog[LONSTD];;
char modulo[] = "ConsolaRemota()";
- scp=URLDecode(copiaParametro("scp",ptrTrama));
-
- nfn=copiaParametro("nfn",ptrTrama);
- ids=copiaParametro("ids",ptrTrama);
-
/* Nombre del archivo de script */
char filescript[LONPRM];
sprintf(filescript,"/tmp/_script_%s",IPlocal);
+
+ aux=copiaParametro("scp",ptrTrama);
+ scp=URLDecode(aux);
escribeArchivo(filescript,scp);
-
+ liberaMemoria(aux);
+ liberaMemoria(scp);
+
+ nfn=copiaParametro("nfn",ptrTrama);
sprintf(interface,"%s/%s",pathinterface,nfn);
sprintf(ecosrc,"/tmp/_econsola_%s",IPlocal);
sprintf(parametros,"%s %s %s",nfn,filescript,ecosrc);
@@ -910,6 +941,7 @@ BOOLEAN ConsolaRemota(TRAMA* ptrTrama)
return(FALSE);
}
/* Espera señal para comenzar el envío */
+ liberaMemoria(ptrTrama);
recibeFlag(&socket_c,ptrTrama);
/* Envía archivo */
if(!sendArchivo(&socket_c,ecosrc)){
@@ -918,6 +950,7 @@ BOOLEAN ConsolaRemota(TRAMA* ptrTrama)
}
close(socket_c);
}
+ liberaMemoria(nfn);
return(TRUE);
}
//_____________________________________________________________________________________________________
@@ -954,6 +987,8 @@ BOOLEAN Comando(TRAMA* ptrTrama)
initParametros(ptrTrama,0);
lon=sprintf(ptrTrama->parametros,"nfn=RESPUESTA_%s\r",nfn);
respuestaEjecucionComando(ptrTrama,herror,ids);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
return(TRUE);
}
//_____________________________________________________________________________________________________
@@ -985,6 +1020,7 @@ BOOLEAN Arrancar(TRAMA* ptrTrama)
lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_Arrancar");
lon+=sprintf(ptrTrama->parametros+lon,"tpc=%s\r",CLIENTE_OPENGNSYS);
respuestaEjecucionComando(ptrTrama,0,ids);
+ liberaMemoria(ids);
return(TRUE);
}
//_____________________________________________________________________________________________________
@@ -1019,9 +1055,13 @@ BOOLEAN Apagar(TRAMA* ptrTrama)
herror=interfaceAdmin(interface,NULL,NULL);
if(herror){
sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
errorInfo(modulo,msglog);
return(FALSE);
}
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
return(TRUE);
}
//_____________________________________________________________________________________________________
@@ -1056,9 +1096,13 @@ BOOLEAN Reiniciar(TRAMA* ptrTrama)
herror=interfaceAdmin(interface,NULL,NULL);
if(herror){
sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
errorInfo(modulo,msglog);
return(FALSE);
}
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
return(TRUE);
}
//_____________________________________________________________________________________________________
@@ -1089,16 +1133,21 @@ BOOLEAN IniciarSesion(TRAMA* ptrTrama)
initParametros(ptrTrama,0);
lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_IniciarSesion");
respuestaEjecucionComando(ptrTrama,0,ids);
+ liberaMemoria(ids);
sprintf(interface,"%s/%s",pathinterface,nfn);
sprintf(parametros,"%s %s",nfn,par);
+ liberaMemoria(par);
+
herror=interfaceAdmin(interface,parametros,NULL);
if(herror){
sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ liberaMemoria(nfn);
errorInfo(modulo,msglog);
return(FALSE);
}
+ liberaMemoria(nfn);
return(TRUE);
}
//______________________________________________________________________________________________________
@@ -1133,6 +1182,7 @@ BOOLEAN CrearImagen(TRAMA* ptrTrama)
nfn=copiaParametro("nfn",ptrTrama);
ids=copiaParametro("ids",ptrTrama);
muestraMensaje(7,NULL);
+
if(InventariandoSoftware(ptrTrama,FALSE,"InventarioSoftware")){ // Crea inventario Software previamente
muestraMensaje(2,NULL);
sprintf(interface,"%s/%s",pathinterface,nfn);
@@ -1161,6 +1211,181 @@ BOOLEAN CrearImagen(TRAMA* ptrTrama)
lon+=sprintf(ptrTrama->parametros+lon,"cpt=%s\r",cpt); // Tipo o código de partición
lon+=sprintf(ptrTrama->parametros+lon,"ipr=%s\r",ipr); // Ip del repositorio donde se alojó
respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(cpt);
+ liberaMemoria(idi);
+ liberaMemoria(nci);
+ liberaMemoria(ipr);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: CrearImagenBasica
+//
+// Descripción:
+// Crea una imagen básica a traverś dela sincronización
+// Parámetros:
+// ptrTrama: contenido del mensaje
+//
+// FDevuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN CrearImagenBasica(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*cpt,*idi,*nci,*rti,*ipr,*bpi,*cpc,*bpc,*nba,*ids,msglog[LONSTD];
+ char modulo[] = "CrearImagenBasica()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ dsk=copiaParametro("dsk",ptrTrama); // Disco
+ par=copiaParametro("par",ptrTrama); // Número de partición
+ cpt=copiaParametro("cpt",ptrTrama); // Tipo de partición
+ idi=copiaParametro("idi",ptrTrama); // Identificador de la imagen
+ nci=copiaParametro("nci",ptrTrama); // Nombre canónico de la imagen
+ rti=copiaParametro("rti",ptrTrama); // Ruta de origen de la imagen
+ ipr=copiaParametro("ipr",ptrTrama); // Ip del repositorio
+ bpi=copiaParametro("bpi",ptrTrama); // Borrar la imagen antes de crearla
+ cpc=copiaParametro("cpc",ptrTrama); // Copiar también imagen a la cache
+ bpc=copiaParametro("bpc",ptrTrama); // Borrarla de la cache antes de copiarla en ella
+ nba=copiaParametro("nba",ptrTrama); // No borrar archivos en destino
+
+ //muestraMensaje(7,NULL); // Creando Inventario Software
+ //if(InventariandoSoftware(ptrTrama,FALSE,"InventarioSoftware")){ // Crea inventario Software previamente
+ muestraMensaje(30,NULL);// Creando Imagen Básica, por favor espere...
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s %s%s%s%s %s",nfn,dsk,par,nci,ipr,bpi,cpc,bpc,nba,rti);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(29,NULL);// Ha habido algún error en el proceso de creación de imagen básica
+ }
+ else
+ muestraMensaje(28,NULL);// El proceso de creación de imagen básica ha terminado correctamente
+ //}
+ //else{
+ // sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ // errorInfo(modulo,msglog);
+ //}
+
+ muestraMenu();
+ ids=copiaParametro("ids",ptrTrama); // Identificador de la sesión
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_CrearImagenBasica");
+ lon+=sprintf(ptrTrama->parametros+lon,"idi=%s\r",idi); // Identificador de la imagen
+ lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par); // Número de partición de donde se creó
+ lon+=sprintf(ptrTrama->parametros+lon,"cpt=%s\r",cpt); // Tipo o código de partición
+ lon+=sprintf(ptrTrama->parametros+lon,"ipr=%s\r",ipr); // Ip del repositorio donde se alojó
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(cpt);
+ liberaMemoria(idi);
+ liberaMemoria(nci);
+ liberaMemoria(rti);
+ liberaMemoria(ipr);
+ liberaMemoria(bpi);
+ liberaMemoria(cpc);
+ liberaMemoria(bpc);
+ liberaMemoria(nba);
+ liberaMemoria(ids);
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: CrearSoftIncremental
+//
+// Descripción:
+// Crea una software incremental comparando una partición con una imagen básica
+// Parámetros:
+// ptrTrama: contenido del mensaje
+//
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN CrearSoftIncremental(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*idi,*idf,*ipr,*nci,*rti,*ncf,*bpi,*cpc,*bpc,*nba,*ids,msglog[LONSTD];
+ char modulo[] = "CrearSoftIncremental()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+
+ dsk=copiaParametro("dsk",ptrTrama); // Disco
+ par=copiaParametro("par",ptrTrama); // Número de partición
+ idi=copiaParametro("idi",ptrTrama); // Identificador de la imagen
+ nci=copiaParametro("nci",ptrTrama); // Nombre canónico de la imagen
+ rti=copiaParametro("rti",ptrTrama); // Ruta de origen de la imagen
+ ipr=copiaParametro("ipr",ptrTrama); // Ip del repositorio
+ idf=copiaParametro("idf",ptrTrama); // Identificador de la imagen diferencial
+ ncf=copiaParametro("ncf",ptrTrama); // Nombre canónico de la imagen diferencial
+ bpi=copiaParametro("bpi",ptrTrama); // Borrar la imagen antes de crearla
+ cpc=copiaParametro("cpc",ptrTrama); // Copiar también imagen a la cache
+ bpc=copiaParametro("bpc",ptrTrama); // Borrarla de la cache antes de copiarla en ella
+ nba=copiaParametro("nba",ptrTrama); // No borrar archivos en destino
+
+// muestraMensaje(7,NULL); // Creando Inventario Software
+// if(InventariandoSoftware(ptrTrama,FALSE,"InventarioSoftware")){ // Crea inventario Software previamente
+ muestraMensaje(25,NULL);// Creando Imagen Incremental, por favor espere...
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s %s %s%s%s%s %s",nfn,dsk,par,nci,ipr,ncf,bpi,cpc,bpc,nba,rti);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(27,NULL);// Ha habido algún error en el proceso de creación de imagen básica
+ }
+ else
+ muestraMensaje(26,NULL);// El proceso de creación de imagen básica ha terminado correctamente
+// }
+// else{
+// sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+// errorInfo(modulo,msglog);
+// }
+
+ muestraMenu();
+ ids=copiaParametro("ids",ptrTrama); // Identificador de la sesión
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_CrearSoftIncremental");
+ lon+=sprintf(ptrTrama->parametros+lon,"idf=%s\r",idf); // Identificador de la imagen incremental
+ lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par); // Número de partición
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(idi);
+ liberaMemoria(nci);
+ liberaMemoria(rti);
+ liberaMemoria(ipr);
+ liberaMemoria(idf);
+ liberaMemoria(ncf);
+ liberaMemoria(bpi);
+ liberaMemoria(cpc);
+ liberaMemoria(bpc);
+ liberaMemoria(nba);
+ liberaMemoria(ids);
+
return(TRUE);
}
//______________________________________________________________________________________________________
@@ -1172,7 +1397,7 @@ BOOLEAN CrearImagen(TRAMA* ptrTrama)
// ptrTrama: contenido del mensaje
// Devuelve:
// TRUE: Si el proceso es correcto
-// FALSE: En caso de ocurrir algún error
+// FALSE: En bpccaso de ocurrir algún error
//______________________________________________________________________________________________________
BOOLEAN RestaurarImagen(TRAMA* ptrTrama)
{
@@ -1216,6 +1441,172 @@ BOOLEAN RestaurarImagen(TRAMA* ptrTrama)
lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par); // Número de partición
lon+=sprintf(ptrTrama->parametros+lon,"ifs=%s\r",ifs); // Identificador del perfil software
respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(idi);
+ liberaMemoria(nci);
+ liberaMemoria(ipr);
+ liberaMemoria(ifs);
+ liberaMemoria(ptc);
+ liberaMemoria(ids);
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: RestaurarImagenBasica
+//
+// Descripción:
+// Restaura una imagen básica en una partición
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN RestaurarImagenBasica(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*idi,*ipr,*met,*nci,*rti,*ifs,*bpi,*cpc,*bpc,*nba,*ids,msglog[LONSTD];
+ char modulo[] = "RestaurarImagenBasica()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ dsk=copiaParametro("dsk",ptrTrama);
+ par=copiaParametro("par",ptrTrama);
+ idi=copiaParametro("idi",ptrTrama);
+ ipr=copiaParametro("ipr",ptrTrama);
+ met=copiaParametro("met",ptrTrama); // Método de clonación 0= desde caché 1= desde repositorio
+ nci=copiaParametro("nci",ptrTrama);
+ rti=copiaParametro("rti",ptrTrama); // Ruta de origen de la imagen
+ ifs=copiaParametro("ifs",ptrTrama);
+ bpi=copiaParametro("bpi",ptrTrama); // Borrar la imagen antes de crearla
+ cpc=copiaParametro("cpc",ptrTrama); // Copiar también imagen a la cache
+ bpc=copiaParametro("bpc",ptrTrama); // Borrarla de la cache antes de copiarla en ella
+ nba=copiaParametro("nba",ptrTrama); // No borrar archivos en destino
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(31,NULL);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s %s%s%s%s %s %s",nfn,dsk,par,nci,ipr,bpi,cpc,bpc,nba,met,rti);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(33,NULL);
+ }
+ else
+ muestraMensaje(32,NULL);
+
+ muestraMenu();
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_RestaurarImagenBasica");
+ lon+=sprintf(ptrTrama->parametros+lon,"idi=%s\r",idi); // Identificador de la imagen
+ lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par); // Número de partición
+ lon+=sprintf(ptrTrama->parametros+lon,"ifs=%s\r",ifs); // Identificador del perfil software
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(idi);
+ liberaMemoria(nci);
+ liberaMemoria(rti);
+ liberaMemoria(ifs);
+ liberaMemoria(ipr);
+ liberaMemoria(met);
+ liberaMemoria(bpi);
+ liberaMemoria(cpc);
+ liberaMemoria(bpc);
+ liberaMemoria(nba);
+ liberaMemoria(ids);
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: RestaurarSoftIncremental
+//
+// Descripción:
+// Restaura software incremental en una partición
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN RestaurarSoftIncremental(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*idi,*ipr,*met,*ifs,*nci,*rti,*idf,*ncf,*bpi,*cpc,*bpc,*nba,*ids,msglog[LONSTD];
+ char modulo[] = "RestaurarSoftIncremental()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ dsk=copiaParametro("dsk",ptrTrama);
+ par=copiaParametro("par",ptrTrama);
+ idi=copiaParametro("idi",ptrTrama);
+ idf=copiaParametro("idf",ptrTrama);
+ ipr=copiaParametro("ipr",ptrTrama);
+ met=copiaParametro("met",ptrTrama); // Método de clonación 0= desde caché 1= desde repositorio
+ ifs=copiaParametro("ifs",ptrTrama);
+ nci=copiaParametro("nci",ptrTrama);
+ rti=copiaParametro("rti",ptrTrama); // Ruta de origen de la imagen
+ ncf=copiaParametro("ncf",ptrTrama);
+ bpi=copiaParametro("bpi",ptrTrama); // Borrar la imagen antes de crearla
+ cpc=copiaParametro("cpc",ptrTrama); // Copiar también imagen a la cache
+ bpc=copiaParametro("bpc",ptrTrama); // Borrarla de la cache antes de copiarla en ella
+ nba=copiaParametro("nba",ptrTrama); // No borrar archivos en destino
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(31,NULL);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s %s %s%s%s%s %s %s",nfn,dsk,par,nci,ipr,ncf,bpi,cpc,bpc,nba,met,rti);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(35,NULL);
+ }
+ else
+ muestraMensaje(34,NULL);
+
+ muestraMenu();
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_RestaurarSoftIncremental");
+ lon+=sprintf(ptrTrama->parametros+lon,"idi=%s\r",idf); // Identificador de la imagen incremental (Forzada a idi)
+ lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par); // Número de partición
+ lon+=sprintf(ptrTrama->parametros+lon,"ifs=%s\r",ifs); // Identificador del perfil software
+
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
+ liberaMemoria(idi);
+ liberaMemoria(idf);
+ liberaMemoria(nci);
+ liberaMemoria(rti);
+ liberaMemoria(ncf);
+ liberaMemoria(ifs);
+ liberaMemoria(ipr);
+ liberaMemoria(met);
+ liberaMemoria(bpi);
+ liberaMemoria(cpc);
+ liberaMemoria(bpc);
+ liberaMemoria(nba);
+ liberaMemoria(ids);
+
return(TRUE);
}
//______________________________________________________________________________________________________
@@ -1274,6 +1665,12 @@ BOOLEAN Configurar(TRAMA* ptrTrama)
lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_Configurar");
lon+=sprintf(ptrTrama->parametros+lon,"cfg=%s\r",cfg); // Identificador de la imagen
respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(dsk);
+ liberaMemoria(cfg);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
+
return(TRUE);
}
// ________________________________________________________________________________________________________
@@ -1319,10 +1716,13 @@ BOOLEAN InventarioHardware(TRAMA* ptrTrama)
initParametros(ptrTrama,0);
sprintf(ptrTrama->parametros,"nfn=recibeArchivo\rnfl=%s\r",hrddst);
if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_COMANDO)){
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
errorLog(modulo,42,FALSE);
return(FALSE);
}
/* Espera señal para comenzar el envío */
+ liberaMemoria(ptrTrama);
recibeFlag(&socket_c,ptrTrama);
/* Envía archivo */
if(!sendArchivo(&socket_c,hrdsrc)){
@@ -1339,6 +1739,8 @@ BOOLEAN InventarioHardware(TRAMA* ptrTrama)
lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_InventarioHardware");
lon+=sprintf(ptrTrama->parametros+lon,"hrd=%s\r",hrddst);
respuestaEjecucionComando(ptrTrama,herror,ids);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
return(TRUE);
}
// ________________________________________________________________________________________________________
@@ -1366,6 +1768,8 @@ BOOLEAN InventarioSoftware(TRAMA* ptrTrama)
muestraMensaje(7,NULL);
InventariandoSoftware(ptrTrama,TRUE,nfn);
respuestaEjecucionComando(ptrTrama,herror,ids);
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
muestraMenu();
return(TRUE);
}
@@ -1413,9 +1817,12 @@ BOOLEAN InventariandoSoftware(TRAMA* ptrTrama,BOOLEAN sw,char *nfn)
sprintf(ptrTrama->parametros,"nfn=recibeArchivo\rnfl=%s\r",sftdst);
if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_COMANDO)){
errorLog(modulo,42,FALSE);
+ liberaMemoria(dsk);
+ liberaMemoria(par);
return(FALSE);
}
/* Espera señal para comenzar el envío */
+ liberaMemoria(ptrTrama);
if(!recibeFlag(&socket_c,ptrTrama)){
errorLog(modulo,17,FALSE);
}
@@ -1434,6 +1841,8 @@ BOOLEAN InventariandoSoftware(TRAMA* ptrTrama,BOOLEAN sw,char *nfn)
if(!sw)
respuestaEjecucionComando(ptrTrama,herror,"0");
+ liberaMemoria(dsk);
+ liberaMemoria(par);
return(TRUE);
}
// ________________________________________________________________________________________________________
@@ -1450,23 +1859,21 @@ BOOLEAN InventariandoSoftware(TRAMA* ptrTrama,BOOLEAN sw,char *nfn)
BOOLEAN EjecutarScript(TRAMA* ptrTrama)
{
int lon;
- char *nfn,*ids,*scp,msglog[LONSTD];
+ char *nfn,*aux,*ids,*scp,msglog[LONSTD];
char modulo[] = "EjecutarScript()";
if (ndebug>=DEBUG_MAXIMO) {
sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
infoDebug(msglog);
}
- scp=URLDecode(copiaParametro("scp",ptrTrama));
- ids=copiaParametro("ids",ptrTrama);
-
- nfn=copiaParametro("nfn",ptrTrama);
- ids=copiaParametro("ids",ptrTrama);
+ aux=copiaParametro("scp",ptrTrama);
+ scp=URLDecode(aux);
muestraMensaje(8,NULL);
/* Nombre del archivo de script */
char filescript[LONPRM];
sprintf(filescript,"/tmp/_script_%s",IPlocal);
escribeArchivo(filescript,scp);
+ nfn=copiaParametro("nfn",ptrTrama);
sprintf(interface,"%s/%s",pathinterface,nfn);
sprintf(parametros,"%s %s",nfn,filescript);
herror=interfaceAdmin(interface,parametros,NULL);
@@ -1481,7 +1888,14 @@ BOOLEAN EjecutarScript(TRAMA* ptrTrama)
//herror=ejecutarCodigoBash(scp);
initParametros(ptrTrama,0);
lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_EjecutarScript");
+ ids=copiaParametro("ids",ptrTrama);
respuestaEjecucionComando(ptrTrama,herror,ids);
+
+ liberaMemoria(nfn);
+ liberaMemoria(ids);
+ liberaMemoria(aux);
+ liberaMemoria(scp);
+
return(TRUE);
}
//______________________________________________________________________________________________________
@@ -1514,7 +1928,7 @@ BOOLEAN respuestaEjecucionComando(TRAMA* ptrTrama,int res,char *ids)
else{ // Algún error
lon+=sprintf(ptrTrama->parametros+lon,"res=%s\r","2");
if(res>MAXERRORSCRIPT)
- lon+=sprintf(ptrTrama->parametros+lon,"der=%s (Error de script:%d)\r",tbErroresScripts[MAXERRORSCRIPT],res);// Descripción del error
+ lon+=sprintf(ptrTrama->parametros+lon,"der=%s (Error de script:%d)\r",tbErroresScripts[0],res);// Descripción del error
else
lon+=sprintf(ptrTrama->parametros+lon,"der=%s\r",tbErroresScripts[res]);// Descripción del error
}
@@ -1547,13 +1961,17 @@ BOOLEAN gestionaTrama(TRAMA *ptrTrama)
for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas
res = strcmp(tbfuncionesClient[i].nf, nfn);
if (res == 0) { // Encontrada la función que procesa el mensaje
+ liberaMemoria(nfn);
return(tbfuncionesClient[i].fptr(ptrTrama)); // Invoca la función
}
}
- /* Sólo puede ser un comando personalizado */
+
+ liberaMemoria(nfn);
+
+ /* Sólo puede ser un comando personalizado
if (ptrTrama->tipo==MSG_COMANDO)
return(Comando(ptrTrama));
-
+ */
errorLog(modulo, 18, FALSE);
return (FALSE);
}
@@ -1591,6 +2009,7 @@ BOOLEAN ejecutaArchivo(char* filecmd,TRAMA *ptrTrama)
}
}
}
+ liberaMemoria(buffer);
return(TRUE);
}
//______________________________________________________________________________________________________
@@ -1695,9 +2114,22 @@ int main(int argc, char *argv[])
strcpy(tbfuncionesClient[cf].nf, "CrearImagen");
tbfuncionesClient[cf++].fptr = &CrearImagen;
+ strcpy(tbfuncionesClient[cf].nf, "CrearImagenBasica");
+ tbfuncionesClient[cf++].fptr = &CrearImagenBasica;
+
+ strcpy(tbfuncionesClient[cf].nf, "CrearSoftIncremental");
+ tbfuncionesClient[cf++].fptr = &CrearSoftIncremental;
+
strcpy(tbfuncionesClient[cf].nf, "RestaurarImagen");
tbfuncionesClient[cf++].fptr = &RestaurarImagen;
+ strcpy(tbfuncionesClient[cf].nf, "RestaurarImagenBasica");
+ tbfuncionesClient[cf++].fptr = &RestaurarImagenBasica;
+
+ strcpy(tbfuncionesClient[cf].nf, "RestaurarSoftIncremental");
+ tbfuncionesClient[cf++].fptr = &RestaurarSoftIncremental;
+
+
strcpy(tbfuncionesClient[cf].nf, "Configurar");
tbfuncionesClient[cf++].fptr = &Configurar;
diff --git a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
index f39df68c..2f2e609c 100644
--- a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
+++ b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
@@ -23,12 +23,12 @@
// ________________________________________________________________________________________________________
// Variables globales
// ________________________________________________________________________________________________________
-char idordenador[LONPRM]; // Identificador del ordenador
-char nombreordenador[LONPRM]; // Nombre del ordenador
-char cache[LONPRM]; // Tamaño de la caché
-char idproautoexec[LONPRM]; // Identificador del procedimiento de autoexec
-char idcentro[LONPRM]; // Identificador de la Unidad Organizativa
-char idaula[LONPRM]; // Identificador del aula
+char *idordenador; // Identificador del ordenador
+char *nombreordenador; // Nombre del ordenador
+char *cache; // Tamaño de la caché
+char *idproautoexec; // Identificador del procedimiento de autoexec
+char *idcentro; // Identificador de la Unidad Organizativa
+char *idaula; // Identificador del aula
char IPlocal[LONIP]; // Ip local
char servidoradm[LONPRM]; // Dirección IP del servidor de administración
@@ -56,14 +56,14 @@ MSGFUN tbfuncionesClient[MAXIMAS_FUNCIONES];
// ________________________________________________________________________________________________________
// Tabla de errores de la ejecución de los scripts
// ________________________________________________________________________________________________________
-char* tbErroresScripts[]={"Se han generado errores. No se puede continuar la ejecución de este módulo",\
+char* tbErroresScripts[]={"Se han generado errores desconocidos. No se puede continuar la ejecución de este módulo",\
"001-Formato de ejecución incorrecto.",\
"002-Fichero o dispositivo no encontrado",\
"003-Error en partición de disco",\
"004-Partición o fichero bloqueado",\
"005-Error al crear o restaurar una imagen",\
"006-Sin sistema operativo",\
- "007-Programa o función BOOLEANno ejecutable",\
+ "007-Programa o función BOOLEAN no ejecutable",\
"008-Error en la creación del archivo de eco para consola remota",\
"009-Error en la lectura del archivo temporal de intercambio",\
"010-Error al ejecutar la llamada a la interface de administración",\
@@ -119,7 +119,7 @@ char* tbErroresScripts[]={"Se han generado errores. No se puede continuar la eje
"060-Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER",\
"Error desconocido "
};
- #define MAXERRORSCRIPT 999 // Error máximo cometido
+ #define MAXERRORSCRIPT 60 // Error máximo cometido
// ________________________________________________________________________________________________________
// Prototipo de funciones
// ________________________________________________________________________________________________________
@@ -151,6 +151,9 @@ BOOLEAN Apagar(TRAMA *);
BOOLEAN Reiniciar(TRAMA *);
BOOLEAN IniciarSesion(TRAMA *);
BOOLEAN CrearImagen(TRAMA *);
+BOOLEAN CrearImagenBasica(TRAMA *);
+BOOLEAN CrearSoftIncremental(TRAMA*);
+
BOOLEAN InventarioHardware(TRAMA *);
BOOLEAN InventariandoSoftware(TRAMA *,BOOLEAN,char*);
BOOLEAN EjecutarScript(TRAMA *);
diff --git a/admin/Sources/Includes/ogAdmLib.c b/admin/Sources/Includes/ogAdmLib.c
index dbb41762..cfb80462 100644
--- a/admin/Sources/Includes/ogAdmLib.c
+++ b/admin/Sources/Includes/ogAdmLib.c
@@ -289,8 +289,9 @@ char* ampliaMemoria(char* ptr,int lon)
//______________________________________________________________________________________________________
void liberaMemoria(void* ptr)
{
- if(ptr)
+ if(ptr){
free (ptr);
+ }
}
// ________________________________________________________________________________________________________
// Función: splitCadena
@@ -598,6 +599,7 @@ BOOLEAN mandaTrama(SOCKET *sock, TRAMA* ptrTrama)
{
int lonprm;
char *buffer,hlonprm[LONHEXPRM+1];
+ BOOLEAN res;
lonprm=strlen(ptrTrama->parametros);
ptrTrama->parametros=encriptar(ptrTrama->parametros,&lonprm); // Encripta los parámetros
@@ -608,10 +610,10 @@ BOOLEAN mandaTrama(SOCKET *sock, TRAMA* ptrTrama)
return(FALSE);
memcpy(buffer,ptrTrama,LONGITUD_CABECERATRAMA); // Copia cabecera de trama
memcpy(&buffer[LONGITUD_CABECERATRAMA],hlonprm,LONHEXPRM); // Copia longitud de la trama
- memcpy(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],ptrTrama->parametros,lonprm); // Copia parametros encriptados
- if(!sendData(sock,buffer,LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm))
- return (FALSE);
- return(TRUE);
+ memcpy(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],ptrTrama->parametros,lonprm);
+ res=sendData(sock,buffer,LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm);
+ liberaMemoria(buffer);
+ return (res);
}
// ________________________________________________________________________________________________________
// Función: sendData
@@ -659,7 +661,7 @@ BOOLEAN sendData(SOCKET *sock, char* datos,int lon)
TRAMA* recibeTrama(SOCKET *sock)
{
int ret,lon,lSize;
- char *buffer,bloque[LONBLK],*hlonprm;
+ char *buffer,*bufferd,bloque[LONBLK],*hlonprm;
TRAMA * ptrTrama;
lon=lSize=0;
@@ -671,10 +673,10 @@ TRAMA* recibeTrama(SOCKET *sock)
if (strncmp(bloque, "@JMMLCAMDJ_MCDJ",15)!=0)
return(NULL); // No se reconoce la trama
hlonprm=reservaMemoria(LONHEXPRM+1);
- if(!hlonprm)
- return(NULL);
+ if(!hlonprm) return(NULL);
memcpy(hlonprm,&bloque[LONGITUD_CABECERATRAMA],LONHEXPRM);
lSize=strtol(hlonprm,NULL,16); // Longitud total de la trama con los parametros encriptados
+ liberaMemoria(hlonprm);
buffer=(char*)reservaMemoria(lSize); // Toma memoria para la trama completa
if(!buffer)
return(NULL);
@@ -687,13 +689,13 @@ TRAMA* recibeTrama(SOCKET *sock)
}while(lon<lSize);
ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA));
- if (!ptrTrama)
- return(NULL);
+ if (!ptrTrama) return(NULL);
memcpy(ptrTrama,buffer,LONGITUD_CABECERATRAMA); // Copia cabecera de trama
lon=lSize-(LONGITUD_CABECERATRAMA+LONHEXPRM); // Longitud de los parametros aún encriptados
- buffer=desencriptar(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],&lon);
+ bufferd=desencriptar(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],&lon);
initParametros(ptrTrama,lon); // Desencripta la trama
- memcpy(ptrTrama->parametros,buffer,lon);
+ memcpy(ptrTrama->parametros,bufferd,lon);
+ liberaMemoria((char*)buffer);
ptrTrama->lonprm=lon; // Almacena longitud de los parámetros ya desencriptados
return(ptrTrama);
}
diff --git a/admin/Sources/Includes/ogAdmLib.h b/admin/Sources/Includes/ogAdmLib.h
index 748fe59b..c613e87e 100644
--- a/admin/Sources/Includes/ogAdmLib.h
+++ b/admin/Sources/Includes/ogAdmLib.h
@@ -228,7 +228,10 @@ const char* tbErrores[]={"Se han generado errores. No se puede continuar la ejec
"090-Error en el fichero de configuración del programa. No se ha definido el parámetro URLMSG",\
"091-Ha habido algún problema al enviar un mensaje de tipo petición al Servidor",\
"092-Error en el fichero de configuración del programa. No se ha definido el parámetro IPLOCAL",\
- "093-No se puede caragar la libraria Windows para trabajar con sockets",\
+ "093-No se puede cargar la librería Windows para trabajar con sockets",\
+ "094-Ha habido algún problerma al procesar la actualización después de crear una imagen",\
+ "095-Ha habido algún problerma al procesar la actualización después de restaurar una imagen",\
+ "096-Ha habido algún problerma al procesar la actualización después de crear un software incremental",\
};
// ________________________________________________________________________________________________________
diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp
index 59f42142..cf40ed14 100644
--- a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp
+++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp
@@ -148,7 +148,7 @@ BOOLEAN gestionaTrama(SOCKET *socket_c)
if (res == 0) { // Encontrada la función que procesa el mensaje
liberaMemoria(nfn);
res=tbfuncionesServer[i].fptr(socket_c, ptrTrama); // Invoca la función
- liberaMemoria(ptrTrama);
+ liberaMemoria((char*)ptrTrama);
return(res);
}
}
@@ -1364,20 +1364,27 @@ BOOLEAN respuestaConsola(SOCKET *socket_c, TRAMA *ptrTrama, int res) {
// FALSE: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) {
- char *mac, msglog[LONSTD];
+ char *iph,*mac,*mar, msglog[LONSTD];
+ BOOLEAN res;
char modulo[] = "Arrancar()";
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP
mac = copiaParametro("mac",ptrTrama); // Toma dirección/es MAC
- if (!Levanta(mac)) {
- liberaMemoria(mac);
+ mar = copiaParametro("mar",ptrTrama); // Método de arranque (Broadcast o Unicast)
+
+ res=Levanta(iph,mac,mar);
+
+ liberaMemoria(iph);
+ liberaMemoria(mac);
+ liberaMemoria(mar);
+
+ if(!res){
sprintf(msglog, "%s:%s", tbErrores[32], modulo);
errorInfo(modulo, msglog);
respuestaConsola(socket_c, ptrTrama, FALSE);
return (FALSE);
}
- liberaMemoria(mac);
-
if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
sprintf(msglog, "%s:%s", tbErrores[32], modulo);
errorInfo(modulo, msglog);
@@ -1393,13 +1400,16 @@ BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) {
// Descripción:
// Enciende ordenadores a través de la red cuyas macs se pasan como parámetro
// Parámetros:
+// - iph: Cadena de direcciones ip separadas por ";"
// - mac: Cadena de direcciones mac separadas por ";"
+// - mar: Método de arranque (1=Broadcast, 2=Unicast)
// Devuelve:
// TRUE: Si el proceso es correcto
// FALSE: En caso de ocurrir algún error
// ________________________________________________________________________________________________________
-BOOLEAN Levanta(char *mac) {
- char *ptrMacs[MAXIMOS_CLIENTES];
+BOOLEAN Levanta(char* iph,char *mac, char* mar)
+{
+ char *ptrIP[MAXIMOS_CLIENTES],*ptrMacs[MAXIMOS_CLIENTES];
int i, lon, res;
SOCKET s;
BOOLEAN bOpt;
@@ -1426,9 +1436,10 @@ BOOLEAN Levanta(char *mac) {
exit(EXIT_FAILURE);
}
/* fin creación de socket */
+ lon = splitCadena(ptrIP, iph, ';');
lon = splitCadena(ptrMacs, mac, ';');
for (i = 0; i < lon; i++) {
- if (!WakeUp(&s, ptrMacs[i])) {
+ if (!WakeUp(&s,ptrIP[i],ptrMacs[i],mar)) {
errorLog(modulo, 49, TRUE);
close(s);
return (FALSE);
@@ -1444,12 +1455,16 @@ BOOLEAN Levanta(char *mac) {
// Enciende el ordenador cuya MAC se pasa como parámetro
// Parámetros:
// - s : Socket para enviar trama magic packet
+// - iph : Cadena con la dirección ip
// - mac : Cadena con la dirección mac en formato XXXXXXXXXXXX
+// - mar: Método de arranque (1=Broadcast, 2=Unicast)
// Devuelve:
// TRUE: Si el proceso es correcto
// FALSE: En caso de ocurrir algún error
//_____________________________________________________________________________________________________________
-BOOLEAN WakeUp(SOCKET *s, char *mac) {
+//
+BOOLEAN WakeUp(SOCKET *s, char* iph,char *mac,char* mar)
+{
int i, res;
char HDaddress_bin[6];
struct {
@@ -1470,7 +1485,10 @@ BOOLEAN WakeUp(SOCKET *s, char *mac) {
/* Creación de socket del cliente que recibe la trama magic packet */
WakeUpCliente.sin_family = AF_INET;
WakeUpCliente.sin_port = htons((short) PUERTO_WAKEUP);
- WakeUpCliente.sin_addr.s_addr = htonl(INADDR_BROADCAST); // Para hacerlo con broadcast
+ if(atoi(mar)==2)
+ WakeUpCliente.sin_addr.s_addr = inet_addr(iph); // Para hacerlo con IP
+ else
+ WakeUpCliente.sin_addr.s_addr = htonl(INADDR_BROADCAST); // Para hacerlo con broadcast
res = sendto(*s, (char *) &Trama_WakeUp, sizeof(Trama_WakeUp), 0,
(sockaddr *) &WakeUpCliente, sizeof(WakeUpCliente));
@@ -3345,7 +3363,7 @@ BOOLEAN recibeArchivo(SOCKET *socket_c, TRAMA *ptrTrama) {
BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama)
{
char sqlstr[LONSQL], msglog[LONSTD];
- char *idp,iph[LONIP],mac[LONMAC];
+ char *idp,*mar,iph[LONIP],mac[LONMAC];
Database db;
Table tbl;
int idx,idcomando;
@@ -3398,11 +3416,14 @@ BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama)
errorInfo(modulo, msglog);
return (FALSE);
}
- if (!Levanta(mac)) {
+ mar = copiaParametro("mar",ptrTrama); // Toma modo de arranque si el comando es Arrancar
+ if (!Levanta(iph,mac,mar)) {
sprintf(msglog, "%s:%s", tbErrores[32], modulo);
errorInfo(modulo, msglog);
+ liberaMemoria(mar);
return (FALSE);
}
+ liberaMemoria(mar);
}
if (clienteDisponible(iph, &idx)) { // Si el cliente puede recibir comandos
strcpy(tbsockets[idx].estado, CLIENTE_OCUPADO); // Actualiza el estado del cliente
diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h
index 4569ad74..bc887d08 100644
--- a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h
+++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h
@@ -84,8 +84,8 @@ BOOLEAN Comando(SOCKET *,TRAMA *);
BOOLEAN RESPUESTA_Comando(SOCKET *,TRAMA *);
BOOLEAN Arrancar(SOCKET *,TRAMA *);
-BOOLEAN Levanta(char*);
-BOOLEAN WakeUp(SOCKET *,char *);
+BOOLEAN Levanta(char*,char*,char*);
+BOOLEAN WakeUp(SOCKET *,char*,char*,char*);
void PasaHexBin(char *,char *);
BOOLEAN RESPUESTA_Arrancar(SOCKET *,TRAMA*);
BOOLEAN Apagar(SOCKET *,TRAMA *);
diff --git a/admin/WebConsole/comandos/Arrancar.php b/admin/WebConsole/comandos/Arrancar.php
index ecb066e0..a903840a 100644
--- a/admin/WebConsole/comandos/Arrancar.php
+++ b/admin/WebConsole/comandos/Arrancar.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -37,11 +37,30 @@ if (!$cmd)
<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
</HEAD>
<BODY>
-<?
+<?php
echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
//________________________________________________________________________________________________________
//
include_once("./includes/FiltradoAmbito.php");
+?>
+ <P align=center><SPAN align=center class=subcabeceras>Datos suministrar<? echo $TbMsg[7] ?></SPAN></p>
+ </BR>
+ <TABLE id="tabla_conf" align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;&nbsp;</Th>
+ <TH align=center>&nbsp;<?php echo $TbMsg[10] ?>&nbsp;</TH>
+ </TR>
+ <TR>
+ <TD align=center><input type="radio" checked id="broadcast" name="metodo" value="1"></TD>
+ <TD align=center>&nbsp;<?php echo $TbMsg[8] ?>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD align=center><input type="radio" id="unicast" name="metodo" value="2"></TD>
+ <TD align=center>&nbsp;<?php echo $TbMsg[9] ?>&nbsp;</TD>
+
+ </TR>
+ </TABLE>
+<?php
//________________________________________________________________________________________________________
//
include_once("./includes/formularioacciones.php");
diff --git a/admin/WebConsole/comandos/CrearImagenBasica.php b/admin/WebConsole/comandos/CrearImagenBasica.php
new file mode 100644
index 00000000..7e1ad858
--- /dev/null
+++ b/admin/WebConsole/comandos/CrearImagenBasica.php
@@ -0,0 +1,248 @@
+<?php
+// *************************************************************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2012
+// Fecha ltima modificacin: Noviembre-2012
+// Nombre del fichero: CrearImagenBas.php
+// Descripcin :
+// Implementacin del comando "CrearImagenBas.php"
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../idiomas/php/".$idioma."/comandos/crearimagenbasica_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+//
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//________________________________________________________________________________________________________
+//
+$resul=tomaPropiedades($cmd,$idambito);
+if (!$resul){
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperacin de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administracin web de aulas</TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+<SCRIPT language="javascript" src="./jscripts/CrearImagenBasica.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/crearimagenbasica_'.$idioma.'.js"></SCRIPT>'?>
+<?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+</HEAD>
+<BODY>
+<!------------------------------------------------------------------------------------------
+ Cabecera
+------------------------------------------------------------------------------------------->
+ <P align=center class=cabeceras><? echo $TbMsg[0] ?><P>
+ <P align=center>
+ <SPAN align=center class=subcabeceras><? echo $TbMsg[1] ?></SPAN>
+ </BR>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[2] ?>&nbsp;</TD>
+ <? echo '<TD>'.$nombreordenador.'</TD>';?>
+ <TD colspan=2 valign=top align=left rowspan=3><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[3] ?>&nbsp;</TD>
+ <? echo '<TD>'.$ip.'</TD>';?>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[4] ?>&nbsp;</TD>
+ <? echo '<TD>'.$mac.'</TD>';?>
+ </TR>
+ </TABLE>
+ </P>
+<!------------------------------------------------------------------------------------------
+ Subcabecera
+------------------------------------------------------------------------------------------->
+ <P align=center><SPAN align=center class=subcabeceras><? echo $TbMsg[6] ?></SPAN></p>
+ <FORM align=center name="fdatos">
+ <TABLE width=90% align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[8] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[10]?>&nbsp;</TH>
+ </TR>
+<!------------------------------------------------------------------------------------------
+ Detalle
+------------------------------------------------------------------------------------------->
+ <?
+ $tbPar=tablaConfiguraciones($idambito);
+ ?>
+ </TABLE>
+ <input type=hidden id="cadPar" value="<? echo $tbPar ?>">
+ <br>
+ <?
+ opcionesAdicionales();
+ ?>
+</FORM>
+<?
+//---------------------------------------------------------------------------------------------
+// Pie
+//----------------------------------------------------------------------------------------------
+ include_once("./includes/formularioacciones.php");
+ include_once("./includes/opcionesacciones.php");
+?>
+</BODY>
+</HTML>
+<?
+//*********************************************************************************************
+// FUNCIONES
+//*********************************************************************************************
+
+/*----------------------------------------------------------------------------------------------
+ Recupera los datos de un ordenador
+ Parametros:
+ - ido: El identificador del ordenador
+----------------------------------------------------------------------------------------------*/
+function tomaPropiedades($cmd,$ido)
+{
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $cmd;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard,idrepositorio
+ FROM ordenadores
+ WHERE idordenador='".$ido."'";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreordenador=$rs->campos["nombreordenador"];
+ $ip=$rs->campos["ip"];
+ $mac=$rs->campos["mac"];global $idcentro;
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con los datos de particiones y parametros a elegir
+
+ Parametros:
+ - idordenador: El identificador del ordenador
+----------------------------------------------------------------------------------------------*/
+function tablaConfiguraciones($idordenador)
+{
+ global $idcentro;
+ global $TbMsg;
+ global $cmd;
+
+ $tablaHtml="";
+ $cmd->texto="SELECT DISTINCT ordenadores_particiones.numpar, ordenadores_particiones.idnombreso, nombresos.nombreso,
+ ordenadores_particiones.idimagen, ordenadores_particiones.codpar,
+ tipospar.clonable, perfilessoft.idperfilsoft,
+ nombresos.idnombreso, nombresos.nombreso
+ FROM ordenadores_particiones
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ WHERE ordenadores_particiones.idordenador=$idordenador
+ ORDER BY ordenadores_particiones.numpar";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ $tbPAR="";
+ while (!$rs->EOF){
+ //$swcc=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]) && !empty($rs->campos["idperfilsoft"]);
+ $sw=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]);
+ if($sw){// Una particin es clonable si es cierta esta variable
+ $tbPAR.=$rs->campos["numpar"].";"; // Cadena con las particiones a procesar
+ $tablaHtml.='<TR id="trPar-'.$rs->campos["numpar"].'"';
+ $tablaHtml.='<td align=center><input type=radio name="particion" value="'.$rs->campos["codpar"].'"></td>';
+ $tablaHtml.='<td align="center">&nbsp;'.$rs->campos["numpar"].'&nbsp;</td>'; // Nmero de particin
+ $tablaHtml.='<td align=center>&nbsp;'.$rs->campos["nombreso"].'&nbsp;</td>'; // Nombre sistema operativo
+ $tablaHtml.='<td align=center>'.HTMLSELECT_imagenes($rs->campos["idimagen"]).'</td>';
+ $tablaHtml.='</tr>';
+ }
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ echo $tablaHtml;
+ return($tbPAR);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con las opciones generales
+----------------------------------------------------------------------------------------------*/
+function opcionesAdicionales()
+{
+ global $TbMsg;
+
+ $tablaHtml.='<table width="90%" align=center border=0 cellPadding=0 cellSpacing=0 class="tabla_accesos">';
+ $tablaHtml.='<tr><th colspan=8 align=center><b>&nbsp;'.$TbMsg[12].'&nbsp;</b></th></tr>';
+ $tablaHtml.='<tr id="trOpc">
+ <td align=right>'.$TbMsg[13].'</td>
+ <td><input type=checkbox name="bpi"></td>'; // Borrar imagen previamente del servidor
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[14].'</td>
+ <td><input type=checkbox name="cpc"></td>'; // Copiar adems la imagen a la cach
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[15].'</td>
+ <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach previamente antes de copiarla
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[16].'</td>
+ <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino
+ $tablaHtml.='</tr>';
+ $tablaHtml.=' </table>';
+ echo $tablaHtml;
+}
+/*----------------------------------------------------------------------------------------------
+ Crea desplegable de imagenes
+----------------------------------------------------------------------------------------------*/
+function HTMLSELECT_imagenes($idimagen)
+{
+ global $cmd;
+ global $IMAGENES_BASICAS;
+ global $idcentro;
+
+ $SelectHtml="";
+ $cmd->texto="SELECT imagenes.idimagen,imagenes.descripcion,imagenes.nombreca,imagenes.ruta,
+ repositorios.ip,repositorios.nombrerepositorio
+ FROM imagenes
+ INNER JOIN repositorios on imagenes.idrepositorio = repositorios.idrepositorio
+ WHERE tipo=".$IMAGENES_BASICAS."
+ AND imagenes.idcentro=".$idcentro;
+
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return("");
+ $rs->Primero();
+ $SelectHtml.= '<SELECT class="estilodesple" style="width:95%">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos["idimagen"].";".$rs->campos["nombreca"].";".$rs->campos["ip"].";".$rs->campos["ruta"].'"';
+ if($idimagen==$rs->campos["idimagen"]) $SelectHtml.=" selected ";
+
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcion"].' - '. $rs->campos['nombrerepositorio'].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+?>
+
diff --git a/admin/WebConsole/comandos/CrearSoftIncremental.php b/admin/WebConsole/comandos/CrearSoftIncremental.php
new file mode 100644
index 00000000..92729bdc
--- /dev/null
+++ b/admin/WebConsole/comandos/CrearSoftIncremental.php
@@ -0,0 +1,251 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2012
+// Fecha ltima modificacin: Noviembre-2012
+// Nombre del fichero: CrearImagenBas.php
+// Descripcin :
+// Implementacin del comando "CrearImagenBas.php"
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../idiomas/php/".$idioma."/comandos/crearsoftincremental_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+//
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//________________________________________________________________________________________________________
+//
+$resul=tomaPropiedades($cmd,$idambito);
+if (!$resul){
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperacin de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administracin web de aulas</TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+<SCRIPT language="javascript" src="./jscripts/CrearSoftIncremental.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/crearsoftincremental_'.$idioma.'.js"></SCRIPT>'?>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+</HEAD>
+<BODY>
+<!------------------------------------------------------------------------------------------
+ Cabecera
+------------------------------------------------------------------------------------------->
+ <P align=center class=cabeceras><? echo $TbMsg[0] ?><P>
+ <P align=center>
+ <SPAN align=center class=subcabeceras><? echo $TbMsg[1] ?></SPAN>
+ </BR>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[2] ?>&nbsp;</TD>
+ <? echo '<TD>'.$nombreordenador.'</TD>';?>
+ <TD colspan=2 valign=top align=left rowspan=3><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[3] ?>&nbsp;</TD>
+ <? echo '<TD>'.$ip.'</TD>';?>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<? echo $TbMsg[4] ?>&nbsp;</TD>
+ <? echo '<TD>'.$mac.'</TD>';?>
+ </TR>
+ </TABLE>
+ </P>
+<!------------------------------------------------------------------------------------------
+ Subcabecera
+------------------------------------------------------------------------------------------->
+ <P align=center><SPAN align=center class=subcabeceras><? echo $TbMsg[6] ?></SPAN></p>
+ <FORM align=center name="fdatos">
+ <TABLE width=90% align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[8] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[10]?>&nbsp;</TD>
+ </TR>
+<!------------------------------------------------------------------------------------------
+ Detalle
+------------------------------------------------------------------------------------------->
+ <?
+ $tbPar=tablaConfiguraciones($idambito);
+ ?>
+ </TABLE>
+ <input type=hidden id="cadPar" value="<? echo $tbPar ?>">
+ <br>
+ <?
+ opcionesAdicionales();
+ ?>
+</FORM>
+<?
+//---------------------------------------------------------------------------------------------
+// Pie
+//----------------------------------------------------------------------------------------------
+ include_once("./includes/formularioacciones.php");
+ include_once("./includes/opcionesacciones.php");
+?>
+</BODY>
+</HTML>
+<?
+//*********************************************************************************************
+// FUNCIONES
+//*********************************************************************************************
+
+/*----------------------------------------------------------------------------------------------
+ Recupera los datos de un ordenador
+ Parametros:
+ - ido: El identificador del ordenador
+----------------------------------------------------------------------------------------------*/
+function tomaPropiedades($cmd,$ido)
+{
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $cmd;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT nombreordenador, ip, mac, idperfilhard, idrepositorio
+ FROM ordenadores
+ WHERE idordenador='".$ido."'";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreordenador=$rs->campos["nombreordenador"];
+ $ip=$rs->campos["ip"];
+ $mac=$rs->campos["mac"];global $idcentro;
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con los datos de particiones y parametros a elegir
+
+ Parametros:
+ - idordenador: El identificador del ordenador
+----------------------------------------------------------------------------------------------*/
+function tablaConfiguraciones($idordenador)
+{
+ global $idcentro;
+ global $TbMsg;
+ global $cmd;
+
+ $tablaHtml="";
+
+ $cmd->texto="SELECT DISTINCT ordenadores_particiones.numpar, ordenadores_particiones.idnombreso,
+ nombresos.nombreso, ordenadores_particiones.idimagen,
+ tipospar.clonable, perfilessoft.idperfilsoft,
+ nombresos.idnombreso, nombresos.nombreso
+ FROM ordenadores_particiones
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ WHERE ordenadores_particiones.idordenador=$idordenador
+ ORDER BY ordenadores_particiones.numpar";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ $tbPAR="";
+ while (!$rs->EOF){
+ //$swcc=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]) && !empty($rs->campos["idperfilsoft"]);
+ $sw=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]);
+ if($sw){// Una particin es clonable si es cierta esta variable
+ $tbPAR.=$rs->campos["numpar"].";"; // Cadena con las particiones a procesar
+ $tablaHtml.='<TR id="trPar-'.$rs->campos["numpar"].'"';
+ $tablaHtml.='<td align=center ><input type=radio name="particion" value="'.$rs->campos["numpar"].'"></td>';
+ $tablaHtml.='<td align="center">&nbsp;'.$rs->campos["numpar"].'&nbsp;</td>'; // Nmero de particin
+ $tablaHtml.='<td align=center>&nbsp;'.$rs->campos["nombreso"].'&nbsp;</td>'; // Nombre sistema operativo
+ $tablaHtml.='<td align=center>'.HTMLSELECT_imagenes($rs->campos["idimagen"]).'</td>';
+ $tablaHtml.='</TR>';
+ }
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ echo $tablaHtml;
+ return($tbPAR);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con las opciones generales
+----------------------------------------------------------------------------------------------*/
+function opcionesAdicionales()
+{
+ global $TbMsg;
+
+ $tablaHtml.='<table width="90%" align=center border=0 cellPadding=0 cellSpacing=0 class="tabla_accesos">';
+ $tablaHtml.='<tr><th colspan=8 align=center><b>&nbsp;'.$TbMsg[11].'&nbsp;</b></th></tr>';
+ $tablaHtml.='<tr id="trOpc">
+ <td align=right>'.$TbMsg[13].'</td>
+ <td ><input type=checkbox name="bpi"></td>'; // Borrar imagen del servidor o borrar particin previamente
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[14].'</td>
+ <td><input type=checkbox name="cpc"></td>'; // Copiar adems la imagen a la cach
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[15].'</td>
+ <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach previamente antes de copiarla
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[16].'</td>
+ <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino
+ $tablaHtml.='</tr>';
+ $tablaHtml.=' </table>';
+ echo $tablaHtml;
+}
+/*----------------------------------------------------------------------------------------------
+ Crea desplegable de imagenes
+----------------------------------------------------------------------------------------------*/
+function HTMLSELECT_imagenes($idimagen)
+{
+ global $cmd;
+ global $idcentro;
+ global $IMAGENES_INCREMENTALES;
+
+ $SelectHtml="";
+ $cmd->texto="SELECT imagenes.idimagen as idimageninc,imagenes.descripcion,imagenes.nombreca as nombreincca,
+ imagesbas.nombreca,imagesbas.idimagen,imagesbas.ruta,
+ repositorios.ip,repositorios.nombrerepositorio
+ FROM imagenes
+ INNER JOIN imagenes as imagesbas on imagesbas.idimagen = imagenes.imagenid
+ INNER JOIN repositorios on imagesbas.idrepositorio = repositorios.idrepositorio
+ WHERE imagenes.tipo=".$IMAGENES_INCREMENTALES."
+ AND imagesbas.idcentro=".$idcentro;
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return("");
+ $rs->Primero();
+ $SelectHtml.= '<SELECT class="estilodesple" style="width:95%">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION
+ value="'.$rs->campos["idimagen"].";".$rs->campos["nombreca"].";".$rs->campos["ip"].";".$rs->campos["idimageninc"].";".$rs->campos["nombreincca"].";".$rs->campos["ruta"].'"';
+ if($idimagen==$rs->campos["idimagen"]) $SelectHtml.=" selected ";
+
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcion"].' - '. $rs->campos['nombrerepositorio'].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+?>
+
diff --git a/admin/WebConsole/comandos/RestaurarImagenBasica.php b/admin/WebConsole/comandos/RestaurarImagenBasica.php
new file mode 100644
index 00000000..ab7ef65f
--- /dev/null
+++ b/admin/WebConsole/comandos/RestaurarImagenBasica.php
@@ -0,0 +1,278 @@
+<?
+// ********************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2012
+// Fecha ltima modificacin: Noviembre-2012
+// Nombre del fichero: RestaurarImagenBasica.php
+// Descripcin :
+// Implementacin del comando "RestaurarImagenBsica"
+// ********************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/ConfiguracionesParticiones.php");
+include_once("../includes/RecopilaIpesMacs.php");
+include_once("../idiomas/php/".$idioma."/comandos/restaurarimagenbasica_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php");
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//________________________________________________________________________________________________________
+//
+//
+// Captura parmetros
+//________________________________________________________________________________________________________
+//
+
+$ambito=0;
+$idambito=0;
+
+// Agrupamiento por defecto
+
+$fk_sysFi=0;
+$fk_tamano=0;
+$fk_nombreSO=0;
+
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+
+if (isset($_POST["fk_sysFi"])) $fk_sysFi=$_POST["fk_sysFi"];
+if (isset($_POST["fk_tamano"])) $fk_tamano=$_POST["fk_tamano"];
+if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"];
+
+//________________________________________________________________________________________________________
+//
+?>
+<HTML>
+<TITLE>Administracin web de aulas</TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+<STYLE TYPE="text/css"></STYLE>
+<SCRIPT language="javascript" src="./jscripts/RestaurarImagenBasica.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/restaurarimagenbasica_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+//________________________________________________________________________________________________________
+//
+//
+// Cabecera
+//________________________________________________________________________________________________________
+//
+//
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>'; // Ttulo
+ include_once("./includes/FiltradoAmbito.php");
+//________________________________________________________________________________________________________
+//
+ echo '<P align=center><SPAN align=center class=subcabeceras>'.$TbMsg[19].'</SPAN></P>';
+ if($ambito!=$AMBITO_ORDENADORES){
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito);
+ ?>
+ <FORM action="RestaurarImagenBasica.php" name="fdatos" method="POST">
+ <INPUT type="hidden" name="idambito" value="<? echo $idambito?>">
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+ <INPUT type="hidden" name="cadenaid" value="<? echo $cadenaid?>">
+ <TABLE class="tabla_busquedas" align=center border=0 cellPadding=0 cellSpacing=0>
+ <TR>
+ <TH height=15 align="center" colspan=14><? echo $TbMsg[18]?></TH>
+ </TR>
+ <TR>
+ <TD align=right><? echo $TbMsg[30]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_sysFi?>" name="fk_sysFi" <? if($fk_sysFi==$msk_sysFi) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+
+ <TD align=right><? echo $TbMsg[32]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_tamano?>" name="fk_tamano" <? if($fk_tamano==$msk_tamano) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+
+ <TD align=right><? echo $TbMsg[31]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_nombreSO?>" name="fk_nombreSO" <? if($fk_nombreSO==$msk_nombreSO) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD height=2 style="BORDER-TOP:#999999 1px solid;" align="center" colspan=14>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </FORM>
+<?
+ }
+ $sws=$fk_sysFi | $fk_tamano | $fk_nombreSO;
+ pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false);
+ echo "<br>";
+ opcionesAdicionales();
+//________________________________________________________________________________________________________
+//
+ include_once("./includes/formularioacciones.php");
+ include_once("./includes/opcionesacciones.php");
+//________________________________________________________________________________________________________
+//
+?>
+<SCRIPT language="javascript">
+ Sondeo();
+</SCRIPT>
+</BODY>
+</HTML>
+<?
+//*********************************************************************************************
+// FUNCIONES
+//*********************************************************************************************
+//
+// Descripcin:
+// (Esta funcin es llamada por pintaConfiguraciones que est incluida en ConfiguracionesParticiones.php)
+// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
+// grupo de ordenadores o aula
+// Parametros:
+// $configuraciones: Cadena con las configuraciones de particioners del mbito. El formato
+// sera una secuencia de cadenas del tipo "clave de configuracin" separados por "@"
+// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
+// Devuelve:
+// El cdigo html de la tabla
+//________________________________________________________________________________________________________
+//
+//
+function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuracin
+ global $conKeys; // Contador de claves de configuracin
+ global $TbMsg;
+ global $_SESSION;
+ $colums=8;
+ echo '<TR>';
+ echo '<TH align=center>&nbsp;&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[8].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[24].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[31].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[27].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[22].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[10].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[16].'&nbsp;</TH>';
+ echo '</TR>';
+
+ $auxCfg=split("@",$configuraciones); // Crea lista de particiones
+ for($i=0;$i<sizeof($auxCfg);$i++){
+ $auxKey=split(";",$auxCfg[$i]); // Toma clave de configuracion
+ for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa particin
+ if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
+ $swcc=$tbKeys[$k]["clonable"];
+ if($swcc){
+ echo '<TR>'.chr(13);
+ $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuracin-particin
+ echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>';
+ $metodos="CACHE=".$TbMsg[13].chr(13);
+ $metodos.="REPO=".$TbMsg[9];
+ echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>';
+ }
+ }
+ }
+ }
+ echo '<TR height=5><TD colspan='.$colums.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+}
+/*________________________________________________________________________________________________________
+
+ Crea la etiqueta html <SELECT> de las imgenes
+________________________________________________________________________________________________________*/
+function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw,$idordenadores,$ambito)
+{
+ global $IMAGENES_BASICAS;
+ global $AMBITO_ORDENADORES;
+
+ $SelectHtml="";
+ $cmd->texto="SELECT imagenes.*,repositorios.ip as iprepositorio,repositorios.nombrerepositorio
+ FROM imagenes
+ INNER JOIN repositorios ON repositorios.idrepositorio=imagenes.idrepositorio";
+
+ if($sw) // Imgenes con el mismo tipo de particin
+ $cmd->texto.= " WHERE imagenes.codpar=".$codpar;
+ else
+ $cmd->texto.= " WHERE imagenes.codpar<>".$codpar;
+
+ $cmd->texto.=" AND imagenes.tipo=".$IMAGENES_BASICAS."
+ AND imagenes.numpar>0
+ AND imagenes.codpar>0
+ AND imagenes.idrepositorio>0
+ AND imagenes.idperfilsoft>0"; // La imagene debe existir y estar creada
+
+ $idordenador1 = explode(",",$idordenadores);
+ $idordenador=$idordenador1[0];
+ if ($ambito == $AMBITO_ORDENADORES)
+ $cmd->texto.=" AND (repositorios.idrepositorio=(select idrepositorio from ordenadores where ordenadores.idordenador=" .$idordenador .")
+ OR repositorios.ip=(select ip from ordenadores where ordenadores.idordenador=". $idordenador ."))";
+ else
+ $cmd->texto.=" AND repositorios.idrepositorio=(select idrepositorio from ordenadores where ordenadores.idordenador=" .$idordenador .")";
+
+ //echo $cmd->texto;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if($sw) $des=1; else $des=0;
+ $SelectHtml.= '<SELECT class="formulariodatos" id="despleimagen_'.$icp.'_'.$des.'" style="width:95%">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION
+ value="'.$rs->campos["idimagen"]."_".$rs->campos["nombreca"]."_".$rs->campos["iprepositorio"]."_".$rs->campos["idperfilsoft"]."_".$rs->campos["ruta"].'"';
+ if($idimagen==$rs->campos["idimagen"]) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcion"].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ }
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con las opciones generales
+----------------------------------------------------------------------------------------------*/
+function opcionesAdicionales()
+{
+ global $TbMsg;
+
+ $tablaHtml.='<table width="95%" align=center border=0 cellPadding=0 cellSpacing=0 class="tabla_accesos">';
+ $tablaHtml.='<tr><th colspan=8 align=center><b>&nbsp;'.$TbMsg[11].'&nbsp;</b></th></tr>';
+ $tablaHtml.='<tr id="trOpc">
+ <td align=right>'.$TbMsg[35].'</td>
+ <td><input type=checkbox name="bpi"></td>'; // Borrar imagen previamente del servidor
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[36].'</td>
+ <td><input type=checkbox name="cpc"></td>'; // Copiar adems la imagen a la cach
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[37].'</td>
+ <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach previamente antes de copiarla
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[38].'</td>
+ <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino
+ $tablaHtml.='</tr>';
+ $tablaHtml.=' </table>';
+ echo $tablaHtml;
+}
+?>
+
diff --git a/admin/WebConsole/comandos/RestaurarSoftIncremental.php b/admin/WebConsole/comandos/RestaurarSoftIncremental.php
new file mode 100644
index 00000000..9640168e
--- /dev/null
+++ b/admin/WebConsole/comandos/RestaurarSoftIncremental.php
@@ -0,0 +1,279 @@
+<?
+// ********************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2012
+// Fecha ltima modificacin: Noviembre-2012
+// Nombre del fichero: RestaurarSoftIncremental.php
+// Descripcin :
+// Implementacin del comando "RestaurarSoftIncremental"
+// ********************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/ConfiguracionesParticiones.php");
+include_once("../includes/RecopilaIpesMacs.php");
+include_once("../idiomas/php/".$idioma."/comandos/restaurarsoftincremental_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/comandos/opcionesacciones_".$idioma.".php");
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//________________________________________________________________________________________________________
+//
+//
+// Captura parmetros
+//________________________________________________________________________________________________________
+//
+
+$ambito=0;
+$idambito=0;
+
+// Agrupamiento por defecto
+
+$fk_sysFi=0;
+$fk_tamano=0;
+$fk_nombreSO=0;
+
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+
+if (isset($_POST["fk_sysFi"])) $fk_sysFi=$_POST["fk_sysFi"];
+if (isset($_POST["fk_tamano"])) $fk_tamano=$_POST["fk_tamano"];
+if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"];
+
+//________________________________________________________________________________________________________
+//
+?>
+<HTML>
+<TITLE>Administracin web de aulas</TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+<STYLE TYPE="text/css"></STYLE>
+<SCRIPT language="javascript" src="./jscripts/RestaurarSoftIncremental.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/restaurarsoftincremental_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+//________________________________________________________________________________________________________
+//
+//
+// Cabecera
+//________________________________________________________________________________________________________
+//
+//
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>'; // Ttulo
+ include_once("./includes/FiltradoAmbito.php");
+//________________________________________________________________________________________________________
+//
+ echo '<P align=center><SPAN align=center class=subcabeceras>'.$TbMsg[19].'</SPAN></P>';
+ if($ambito!=$AMBITO_ORDENADORES){
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito);
+ ?>
+ <FORM action="RestaurarSoftIncremental.php" name="fdatos" method="POST">
+ <INPUT type="hidden" name="idambito" value="<? echo $idambito?>">
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+ <INPUT type="hidden" name="cadenaid" value="<? echo $cadenaid?>">
+ <TABLE class="tabla_busquedas" align=center border=0 cellPadding=0 cellSpacing=0>
+ <TR>
+ <TH height=15 align="center" colspan=14><? echo $TbMsg[18]?></TH>
+ </TR>
+ <TR>
+ <TD align=right><? echo $TbMsg[30]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_sysFi?>" name="fk_sysFi" <? if($fk_sysFi==$msk_sysFi) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+
+ <TD align=right><? echo $TbMsg[32]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_tamano?>" name="fk_tamano" <? if($fk_tamano==$msk_tamano) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+
+ <TD align=right><? echo $TbMsg[31]?></TD>
+ <TD align=center><INPUT onclick="document.fdatos.submit()" type="checkbox" value="<? echo $msk_nombreSO?>" name="fk_nombreSO" <? if($fk_nombreSO==$msk_nombreSO) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD height=2 style="BORDER-TOP:#999999 1px solid;" align="center" colspan=14>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </FORM>
+<?
+ }
+ $sws=$fk_sysFi | $fk_tamano | $fk_nombreSO;
+ pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false);
+ echo "<br>";
+ opcionesAdicionales();
+//________________________________________________________________________________________________________
+//
+ include_once("./includes/formularioacciones.php");
+ include_once("./includes/opcionesacciones.php");
+//________________________________________________________________________________________________________
+//
+?>
+<SCRIPT language="javascript">
+ Sondeo();
+</SCRIPT>
+</BODY>
+</HTML>
+<?
+//*********************************************************************************************
+// FUNCIONES
+//*********************************************************************************************
+//
+// Descripcin:
+// (Esta funcin es llamada por pintaConfiguraciones que est incluida en ConfiguracionesParticiones.php)
+// Crea una taba html con las especificaciones de particiones de un ambito ya sea ordenador,
+// grupo de ordenadores o aula
+// Parametros:
+// $configuraciones: Cadena con las configuraciones de particioners del mbito. El formato
+// sera una secuencia de cadenas del tipo "clave de configuracin" separados por "@"
+// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
+// Devuelve:
+// El cdigo html de la tabla
+//________________________________________________________________________________________________________
+//
+//
+function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc,$ambito,$idambito)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuracin
+ global $conKeys; // Contador de claves de configuracin
+ global $TbMsg;
+ global $_SESSION;
+ $colums=9;
+ echo '<TR>';
+ echo '<TH align=center>&nbsp;&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[8].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[24].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[31].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[27].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[22].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[10].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[16].'&nbsp;</TH>';
+ echo '</TR>';
+
+ $auxCfg=split("@",$configuraciones); // Crea lista de particiones
+ for($i=0;$i<sizeof($auxCfg);$i++){
+ $auxKey=split(";",$auxCfg[$i]); // Toma clave de configuracion
+ for($k=0;$k<$conKeys;$k++){ // Busca los literales para las claves de esa particin
+ if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
+ $swcc=$tbKeys[$k]["clonable"];
+ echo '<TR>'.chr(13);
+ if($swcc){
+ $icp=$cc."_".$tbKeys[$k]["numpar"]; // Identificador de la configuracin-particin
+ echo '<TD align=center><input type=radio idcfg="'.$cc.'" id="'.$icp.'" name="particion" value='.$tbKeys[$k]["numpar"].'></TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.$tbKeys[$k]["numpar"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.$tbKeys[$k]["tipopar"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true,$idordenadores,$ambito).'</TD>';
+ $metodos="CACHE=".$TbMsg[13].chr(13);
+ $metodos.="REPO=".$TbMsg[9];
+ echo '<TD align=center>'.HTMLCTESELECT($metodos,"desplemet_".$icp,"estilodesple","",1,100).'</TD>';
+
+ }
+ echo '</TR>'.chr(13);
+ }
+ }
+ }
+ echo '<TR height=5><TD colspan='.$colums.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+}
+/*________________________________________________________________________________________________________
+
+ Crea la etiqueta html <SELECT> de las imgenes
+________________________________________________________________________________________________________*/
+function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw,$idordenadores,$ambito)
+{
+ global $IMAGENES_INCREMENTALES;
+ global $AMBITO_ORDENADORES;
+
+ $SelectHtml="";
+ $cmd->texto="SELECT imagesbas.*,repositorios.ip as iprepositorio,repositorios.nombrerepositorio,
+ imagenes.idperfilsoft as idperfilsoftinc,imagenes.idimagen as idimageninc,
+ imagenes.nombreca as nombrecainc,imagenes.descripcion as descripcioninc
+ FROM imagenes
+ INNER JOIN imagenes as imagesbas on imagesbas.idimagen = imagenes.imagenid
+ INNER JOIN repositorios ON repositorios.idrepositorio=imagesbas.idrepositorio";
+ if($sw) // Imgenes con el mismo tipo de particin
+ $cmd->texto.= " WHERE imagesbas.codpar=".$codpar;
+ else
+ $cmd->texto.= " WHERE imagesbas.codpar<>".$codpar;
+
+ $cmd->texto.=" AND imagenes.tipo=".$IMAGENES_INCREMENTALES."
+ AND imagenes.idperfilsoft>0"; // La imagene debe existir y estar creada
+
+ $idordenador1 = explode(",",$idordenadores);
+ $idordenador=$idordenador1[0];
+ if ($ambito == $AMBITO_ORDENADORES)
+ $cmd->texto.=" AND (repositorios.idrepositorio=(select idrepositorio from ordenadores where ordenadores.idordenador=" .$idordenador .")
+ OR repositorios.ip=(select ip from ordenadores where ordenadores.idordenador=". $idordenador ."))";
+ else
+ $cmd->texto.=" AND repositorios.idrepositorio=(select idrepositorio from ordenadores where ordenadores.idordenador=" .$idordenador .")";
+
+ //echo $cmd->texto;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if($sw) $des=1; else $des=0;
+ $SelectHtml.= '<SELECT class="formulariodatos" id="despleimagen_'.$icp.'_'.$des.'" style="width:95%">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION
+ value="'.$rs->campos["idimagen"]."_".$rs->campos["nombreca"]."_".$rs->campos["iprepositorio"]."_".$rs->campos["idperfilsoftinc"]."_".$rs->campos["idimageninc"]."_".$rs->campos["nombrecainc"]."_".$rs->campos["ruta"].'"';
+ if($idimagen==$rs->campos["idimagen"]) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcioninc"].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ }
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+/*----------------------------------------------------------------------------------------------
+ Dibuja una tabla con las opciones generales
+----------------------------------------------------------------------------------------------*/
+function opcionesAdicionales()
+{
+ global $TbMsg;
+
+ $tablaHtml.='<table width="95%" align=center border=0 cellPadding=0 cellSpacing=0 class="tabla_accesos">';
+ $tablaHtml.='<tr><th colspan=8 align=center><b>&nbsp;'.$TbMsg[11].'&nbsp;</b></th></tr>';
+ $tablaHtml.='<tr id="trOpc">
+ <td align=right>'.$TbMsg[35].'</td>
+ <td><input type=checkbox name="bpi"></td>'; // Borrar imagen previamente del servidor
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[36].'</td>
+ <td><input type=checkbox name="cpc"></td>'; // Copiar adems la imagen a la cach
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[37].'</td>
+ <td><input type=checkbox name="bpc"></td>'; // Borrar imagen de la cach previamente antes de copiarla
+ $tablaHtml.='
+ <td align=right>'.$TbMsg[39].'</td>
+ <td><input type=checkbox name="nba"></td>'; // No borrar archivos en destino
+ $tablaHtml.='</tr>';
+ $tablaHtml.=' </table>';
+ echo $tablaHtml;
+}
+?>
+
diff --git a/admin/WebConsole/comandos/jscripts/Arrancar.js b/admin/WebConsole/comandos/jscripts/Arrancar.js
index fde33943..b9265b49 100644
--- a/admin/WebConsole/comandos/jscripts/Arrancar.js
+++ b/admin/WebConsole/comandos/jscripts/Arrancar.js
@@ -7,9 +7,17 @@
// Descripción :
// Este fichero implementa las funciones javascript del fichero Arrancar.php (Comandos)
// *************************************************************************************************************************************************
- function confirmar(){
+ function confirmar()
+ {
+ var RC='@';
if (comprobar_datos()){
filtrado();
+ var obRadB=document.getElementById('broadcast');
+ if(obRadB.checked)
+ document.fdatosejecucion.atributos.value="mar=1"+RC; // Arranque Broadcast
+ else
+ document.fdatosejecucion.atributos.value="mar=2"+RC; // Arranque unicast
+
document.fdatosejecucion.submit();
}
}
diff --git a/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js b/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js
new file mode 100644
index 00000000..e9c507c9
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/CrearImagenBasica.js
@@ -0,0 +1,89 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Copyright 2003-2005 Jos Manuel Alonso. Todos los derechos reservados.
+// Fecha Creacin:2003-2004
+// Fecha ltima modificacin: Marzo-2005
+// Nombre del fichero: CrearImagenBasica.js
+// Descripcin :
+// Este fichero implementa las funciones javascript del fichero CrearImagenBasica.php (Comandos)
+// *************************************************************************************************************************************************
+ var RC="@";
+
+ function confirmar()
+ {
+ var prm=comprobar_datos()
+ if(prm=="") return; // Ha habido algn error
+
+ var disco=1; // Siempre disco 1
+ document.fdatosejecucion.atributos.value="dsk="+disco+RC+prm;
+ document.fdatosejecucion.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Cancela la edicin
+//________________________________________________________________________________________________________
+
+function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+
+function comprobar_datos()
+{
+ var prm=""; // Retorno parmetros
+ var cadPar=document.getElementById("cadPar").getAttribute("value");
+ var tbPar=cadPar.split(";");
+ for(var i=0;i<tbPar.length;i++){
+ var par=tbPar[i]; // Numero de particin
+ if(par>0){
+ var trObj=document.getElementById('trPar-'+par); // Recupera objeto fila
+ var obRDO=trObj.childNodes[0].childNodes[0]; // Recupera Radio buton de la fila
+ if(obRDO.checked){ // Si est seleccionado ...
+ var cpt=obRDO.getAttribute("value");
+ var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen
+ var idx=obSel.selectedIndex;
+ if(idx==0){ // No ha seleccionado indice en el desplegable imagen
+ alert(TbMsg[1]);
+ return(false);
+ }
+ // Compone parametros
+ var tbIMG=obSel.options[idx].value.split(";");
+ var idi=tbIMG[0]; // Identificador de la imagen
+ var nci=tbIMG[1]; // Nombre cannico de la imagen
+ var ipr=tbIMG[2]; // Ip del repositorio de la imagen
+ var rti=tbIMG[3]; // Ruta de origen de la imagen
+
+ prm+="par="+par+RC;
+ prm+="cpt="+cpt+RC;
+ prm+="idi="+idi+RC;
+ prm+="nci="+nci+RC;
+ prm+="ipr="+ipr+RC;
+ prm+="rti="+rti+RC;
+
+ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales
+ var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen
+ if(obChk.checked) prm+="bpi=1"+RC; else prm+="bpi=0"+RC;
+ var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache
+ if(obChk.checked) prm+="cpc=1"+RC; else prm+="cpc=0"+RC;
+ var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache
+ if(obChk.checked) prm+="bpc=1"+RC; else prm+="bpc=0"+RC;
+ var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino
+ if(obChk.checked) prm+="nba=1"+RC; else prm+="nba=0"+RC;
+
+ if(comprobar_datosejecucion()) // Comprueba opciones de ejecucin
+ return(prm);
+ else
+ return("");
+ }
+ }
+ }
+ // No ha elegido ninguna particin
+ alert(TbMsg[2])
+ return("");
+}
+
+
diff --git a/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js b/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js
new file mode 100644
index 00000000..3bd0e3f4
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/CrearSoftIncremental.js
@@ -0,0 +1,91 @@
+// **************************************************************************************************************
+// Libreria de scripts de Javascript
+// Copyright 2003-2005 Jos Manuel Alonso. Todos los derechos reservados.
+// Fecha Creacin:2003-2004
+// Fecha ltima modificacin: Marzo-2005
+// Nombre del fichero: CrearSoftIncremental.js
+// Descripcin :
+// Este fichero implementa las funciones javascript del fichero CrearSoftIncremental.php (Comandos)
+// **************************************************************************************************************
+
+ var RC="@";
+
+ function confirmar()
+ {
+ var prm=comprobar_datos()
+ if(prm=="") return; // Ha habido algn error
+
+ var disco=1; // Siempre disco 1
+ document.fdatosejecucion.atributos.value="dsk="+disco+RC+prm;
+ document.fdatosejecucion.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Cancela la edicin
+//________________________________________________________________________________________________________
+
+function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+
+function comprobar_datos()
+{
+ var prm=""; // Retorno parmetros
+ var cadPar=document.getElementById("cadPar").getAttribute("value");
+ var tbPar=cadPar.split(";");
+ for(var i=0;i<tbPar.length;i++){
+ var par=tbPar[i]; // Numero de particin
+ if(par>0){
+ var trObj=document.getElementById('trPar-'+par); // Recupera objeto fila
+ var obRDO=trObj.childNodes[0].childNodes[0]; // Recupera Radio buton de la fila
+ if(obRDO.checked){ // Si est seleccionado ...
+ var obSel=trObj.childNodes[3].childNodes[0]; // Recupera objeto select de la Imagen
+ var idx=obSel.selectedIndex;
+ if(idx==0){ // No ha seleccionado indice en el desplegable imagen
+ alert(TbMsg[1]);
+ return(false);
+ }
+ var tbIMG=obSel.options[idx].value.split(";");
+ var idi=tbIMG[0]; // Identificador de la imagen bsica
+ var nci=tbIMG[1]; // Nombre cannico de la imagen bsica
+ var ipr=tbIMG[2]; // Ip del repositorio de la imagen
+ var idf=tbIMG[3]; // NIdentificador de la imagen incremental
+ var ncf=tbIMG[4]; // Nombre cannico de la imagen incremental
+ var rti=tbIMG[5]; // Ruta de origen de la imagen
+
+ // Compone parametros
+ prm+="par="+par+RC;
+ prm+="idi="+idi+RC;
+ prm+="nci="+nci+RC;
+ prm+="ipr="+ipr+RC;
+ prm+="idf="+idf+RC;
+ prm+="ncf="+ncf+RC;
+ prm+="rti="+rti+RC;
+
+ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales
+ var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen
+ if(obChk.checked) prm+="bpi=1"+RC; else prm+="bpi=0"+RC;
+ var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache
+ if(obChk.checked) prm+="cpc=1"+RC; else prm+="cpc=0"+RC;
+ var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache
+ if(obChk.checked) prm+="bpc=1"+RC; else prm+="bpc=0"+RC;
+ var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino
+ if(obChk.checked) prm+="nba=1"+RC; else prm+="nba=0"+RC;
+
+ if(comprobar_datosejecucion()) // Comprueba opciones de ejecucin
+ return(prm);
+ else
+ return("");
+ }
+ }
+ }
+ // No ha elegido ninguna particin
+ alert(TbMsg[2])
+ return("");
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js b/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js
new file mode 100644
index 00000000..36ed4091
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/RestaurarImagenBasica.js
@@ -0,0 +1,98 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: RestaurarImagenBasica.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero RestaurarImagenBasica.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if(comprobar_datos()){
+ var RC="@";
+ var disco=1; // Siempre disco 1
+ var atributos="dsk="+disco+RC;
+ var tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ var idradio=ochecks[i].id;
+ var numpar=ochecks[i].value;
+
+ atributos+="par="+numpar+RC; // Número de partición
+ var despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1");
+ var despleimagen;
+
+ if(despleimagenizda.selectedIndex>0) despleimagen=despleimagenizda;
+
+ var imgcanrepo=despleimagen.value.split("_");
+ atributos+="idi="+imgcanrepo[0]+RC; // Identificador de la imagen
+ atributos+="nci="+imgcanrepo[1]+RC; // Nombre canónico
+ atributos+="ipr="+imgcanrepo[2]+RC; // Dirección ip del repositorio donde se aloja la imagen
+ atributos+="ifs="+imgcanrepo[3]+RC; // Identificador del perfil software de la imagen
+ atributos+="rti="+imgcanrepo[4]+RC; // Ruta de origen de la imagen
+
+ var desplemet=document.getElementById("desplemet_"+idradio); // Desplegable metodo de restauración
+ var p=desplemet.selectedIndex // Toma índice seleccionado
+ atributos+="met="+p+RC; // Método de clonación 0=caché 1=repositorio
+
+ var cc=ochecks[i].getAttribute('idcfg'); // Toma identificador del bloque de configuración
+ if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){
+ var tbOrd=document.getElementById("tbOrd_"+cc);
+ var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores
+ var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito
+ if(idordenadores!=cadenaid){
+ document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido
+ document.fdatosejecucion.idambito.value=idordenadores;
+ }
+ }
+ // Opciones adicionales
+ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales
+ var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen
+ if(obChk.checked) atributos+="bpi=1"+RC; else atributos+="bpi=0"+RC;
+ var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache
+ if(obChk.checked) atributos+="cpc=1"+RC; else atributos+="cpc=0"+RC;
+ var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache
+ if(obChk.checked) atributos+="bpc=1"+RC; else atributos+="bpc=0"+RC;
+ var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino
+ if(obChk.checked) atributos+="nba=1"+RC; else atributos+="nba=0"+RC;
+
+ document.fdatosejecucion.atributos.value=atributos;
+ filtrado();
+ document.fdatosejecucion.submit();
+ break;
+ }
+ }
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+ function comprobar_datos()
+{
+ tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ var op=0
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ op++;
+ var idradio=ochecks[i].id; // Toma idemtificador del desplegable de imagenes
+ despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable izda.
+ var p1=despleimagenizda.selectedIndex // Toma índice seleccionado
+ if (p1==0){
+ alert(TbMsg[0])
+ despleimagenizda.focus()
+ return(false)
+ }
+ }
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js b/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js
new file mode 100644
index 00000000..2d5c3326
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/RestaurarSoftIncremental.js
@@ -0,0 +1,100 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: RestaurarSoftIncremental.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero RestaurarSoftIncremental.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if(comprobar_datos()){
+ var RC="@";
+ var disco=1; // Siempre disco 1
+ var atributos="dsk="+disco+RC;
+ var tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ var idradio=ochecks[i].id;
+ var numpar=ochecks[i].value;
+
+ atributos+="par="+numpar+RC; // Número de partición
+ var despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1");
+ var despleimagen;
+
+ if(despleimagenizda.selectedIndex>0) despleimagen=despleimagenizda;
+
+ var imgcanrepo=despleimagen.value.split("_");
+ atributos+="idi="+imgcanrepo[0]+RC; // Identificador de la imagen
+ atributos+="nci="+imgcanrepo[1]+RC; // Nombre canónico de la imagen básica
+ atributos+="ipr="+imgcanrepo[2]+RC; // Dirección ip del repositorio donde se aloja la imagen
+ atributos+="ifs="+imgcanrepo[3]+RC; // Identificador del perfil software
+ atributos+="idf="+imgcanrepo[4]+RC; // Identificador de la imagen incremental
+ atributos+="ncf="+imgcanrepo[5]+RC; // Nombre canónico de la imagen incremental
+ atributos+="rti="+imgcanrepo[6]+RC; // Ruta de origen de la imagen
+
+ var desplemet=document.getElementById("desplemet_"+idradio); // Desplegable metodo de restauración
+ var p=desplemet.selectedIndex // Toma índice seleccionado
+ atributos+="met="+p+RC; // Método de clonación 0=caché 1=repositorio
+
+ var cc=ochecks[i].getAttribute('idcfg'); // Toma identificador del bloque de configuración
+ if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){
+ var tbOrd=document.getElementById("tbOrd_"+cc);
+ var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores
+ var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito
+ if(idordenadores!=cadenaid){
+ document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido
+ document.fdatosejecucion.idambito.value=idordenadores;
+ }
+ }
+ // Opciones adicionales
+ var trObj=document.getElementById('trOpc'); // Recupera objeto fila de la tabla opciones adicionales
+ var obChk=trObj.childNodes[3].childNodes[0]; // Recupera objeto checkbox borrar de la Imagen
+ if(obChk.checked) atributos+="bpi=1"+RC; else atributos+="bpi=0"+RC;
+ var obChk=trObj.childNodes[7].childNodes[0]; // Recupera objeto checkbox copiar en cache
+ if(obChk.checked) atributos+="cpc=1"+RC; else atributos+="cpc=0"+RC;
+ var obChk=trObj.childNodes[11].childNodes[0]; // Recupera objeto checkbox borrar la cache
+ if(obChk.checked) atributos+="bpc=1"+RC; else atributos+="bpc=0"+RC;
+ var obChk=trObj.childNodes[15].childNodes[0]; // Recupera objeto checkbox no borrar archivos en destino
+ if(obChk.checked) atributos+="nba=1"+RC; else atributos+="nba=0"+RC;
+
+ document.fdatosejecucion.atributos.value=atributos;
+ filtrado();
+ document.fdatosejecucion.submit();
+ break;
+ }
+ }
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+ function comprobar_datos()
+{
+ tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ var op=0
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ op++;
+ var idradio=ochecks[i].id; // Toma idemtificador del desplegable de imagenes
+ despleimagenizda=document.getElementById("despleimagen_"+idradio+"_1"); // Desplegable imagenes.
+ var p1=despleimagenizda.selectedIndex // Toma índice seleccionado
+ if (p1==0){
+ alert(TbMsg[0])
+ despleimagenizda.focus()
+ return(false)
+ }
+ }
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/controlacceso.php b/admin/WebConsole/controlacceso.php
index 7fa41b67..de3b8b41 100644
--- a/admin/WebConsole/controlacceso.php
+++ b/admin/WebConsole/controlacceso.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *********************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -17,3 +17,4 @@
$idi="esp"; // Idioma por defecto
//========================================================================================================
?>
+
diff --git a/admin/WebConsole/gestores/gestor_grupos.php b/admin/WebConsole/gestores/gestor_grupos.php
index b20ed22e..e846e112 100644
--- a/admin/WebConsole/gestores/gestor_grupos.php
+++ b/admin/WebConsole/gestores/gestor_grupos.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -67,7 +67,7 @@ if ($cmd){
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<BODY>
<SCRIPT language="javascript" src="../jscripts/propiedades_grupos.js"></SCRIPT>
-<?
+<?php
$literal="";
switch($opcion){
case $op_alta :
@@ -100,7 +100,7 @@ else{
?>
</BODY>
</HTML>
-<?
+<?php
/**************************************************************************************************************************************************
Inserta, modifica o elimina datos en la tabla grupos
________________________________________________________________________________________________________*/
@@ -184,7 +184,9 @@ function EliminaGrupos($cmd,$identificador,$nombreid,$literaltipo,$swid=1){
if (empty($identificador)) return(true);
global $LITAMBITO_GRUPOSAULAS ;
- global $LITAMBITO_GRUPOSIMAGENES ;
+ global $LITAMBITO_GRUPOSIMAGENESMONOLITICAS ;
+ global $LITAMBITO_GRUPOSIMAGENESBASICAS ;
+ global $LITAMBITO_GRUPOSIMAGENESINCREMENTALES ;
global $LITAMBITO_GRUPOSPROCEDIMIENTOS ;
global $LITAMBITO_GRUPOSTAREAS ;
global $LITAMBITO_GRUPOSTRABAJOS ;
@@ -223,9 +225,15 @@ function EliminaGrupos($cmd,$identificador,$nombreid,$literaltipo,$swid=1){
case $LITAMBITO_GRUPOSTRABAJOS :
$resul=EliminaTrabajos($cmd,$rs->campos["idgrupo"],"grupoid");
break;
- case $LITAMBITO_GRUPOSIMAGENES :
+ case $LITAMBITO_GRUPOSIMAGENESMONOLITICAS :
$resul=EliminaImagenes($cmd,$rs->campos["idgrupo"],"grupoid");
break;
+ case $LITAMBITO_GRUPOSIMAGENESBASICAS :
+ $resul=EliminaImagenes($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSIMAGENESINCREMENTALES :
+ $resul=EliminaImagenes($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
case $LITAMBITO_GRUPOSCOMPONENTESHARD :
$resul=EliminaHardwares($cmd,$rs->campos["idgrupo"],"grupoid");
break;
@@ -271,3 +279,4 @@ function EliminaGrupos($cmd,$identificador,$nombreid,$literaltipo,$swid=1){
return($resul);
}
?>
+
diff --git a/admin/WebConsole/gestores/gestor_imagenes.php b/admin/WebConsole/gestores/gestor_imagenes.php
index bbffd63a..95d2d97f 100644
--- a/admin/WebConsole/gestores/gestor_imagenes.php
+++ b/admin/WebConsole/gestores/gestor_imagenes.php
@@ -21,6 +21,7 @@ $opcion=0; // Inicializa parametros
$idimagen=0;
$nombreca="";
+$ruta="";
$descripcion="";
$grupoid=0;
$idperfilsoft=0;
@@ -28,11 +29,15 @@ $comentarios="";
$numpar=0;
$codpar=0;
$idrepositorio=0;
+$imagenid=0;
+$tipoimg=0;
+$litamb="";
if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
if (isset($_POST["idimagen"])) $idimagen=$_POST["idimagen"];
if (isset($_POST["nombreca"])) $nombreca=$_POST["nombreca"];
+if (isset($_POST["ruta"])) $ruta=$_POST["ruta"];
if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
if (isset($_POST["idperfilsoft"])) $idperfilsoft=$_POST["idperfilsoft"];
@@ -41,6 +46,9 @@ if (isset($_POST["identificador"])) $idimagen=$_POST["identificador"];
if (isset($_POST["numpar"])) $numpar=$_POST["numpar"];
if (isset($_POST["codpar"])) $codpar=$_POST["codpar"];
if (isset($_POST["idrepositorio"])) $idrepositorio=$_POST["idrepositorio"];
+if (isset($_POST["imagenid"])) $imagenid=$_POST["imagenid"];
+if (isset($_POST["tipoimg"])) $tipoimg=$_POST["tipoimg"];
+if (isset($_POST["litamb"])) $litamb=$_POST["litamb"];
$tablanodo=""; // Arbol para nodos insertados
@@ -95,9 +103,9 @@ if($opcion!=$op_movida){
echo '</BODY> ';
echo '</HTML>';
}
-/**************************************************************************************************************************************************
+/*********************************************************************************************************
Inserta, modifica o elimina datos en la tabla imagenes
-________________________________________________________________________________________________________*/
+/*********************************************************************************************************/
function Gestiona(){
global $cmd;
global $opcion;
@@ -105,13 +113,16 @@ function Gestiona(){
global $idcentro;
global $idimagen;
global $nombreca;
+ global $ruta;
global $descripcion;
global $grupoid;
global $comentarios;
global $numpar;
global $codpar;
global $idrepositorio;
+ global $imagenid;
global $idperfilsoft;
+ global $tipoimg;
global $op_alta;
global $op_modificacion;
@@ -124,6 +135,7 @@ function Gestiona(){
$cmd->CreaParametro("@idimagen",$idimagen,1);
$cmd->CreaParametro("@nombreca",$nombreca,0);
+ $cmd->CreaParametro("@ruta",$ruta,0);
$cmd->CreaParametro("@descripcion",$descripcion,0);
$cmd->CreaParametro("@grupoid",$grupoid,1);
$cmd->CreaParametro("@idperfilsoft",$idperfilsoft,1);
@@ -131,11 +143,13 @@ function Gestiona(){
$cmd->CreaParametro("@numpar",$numpar,1);
$cmd->CreaParametro("@codpar",$codpar,1);
$cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
+ $cmd->CreaParametro("@imagenid",$imagenid,1);
+ $cmd->CreaParametro("@tipo",$tipoimg,1);
switch($opcion){
case $op_alta :
- $cmd->texto="INSERT INTO imagenes (nombreca,descripcion,idperfilsoft,comentarios,numpar,codpar,idrepositorio,idcentro,grupoid)
- VALUES (@nombreca,@descripcion,@idperfilsoft,@comentarios,@numpar,@codpar,@idrepositorio,@idcentro,@grupoid)";
+ $cmd->texto="INSERT INTO imagenes (nombreca,ruta,descripcion,idperfilsoft,comentarios,numpar,codpar,idrepositorio,imagenid,idcentro,grupoid,tipo)
+ VALUES (@nombreca,@ruta,@descripcion,@idperfilsoft,@comentarios,@numpar,@codpar,@idrepositorio,@imagenid,@idcentro,@grupoid,@tipo)";
$resul=$cmd->Ejecutar();
if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
$idimagen=$cmd->Autonumerico();
@@ -147,9 +161,10 @@ function Gestiona(){
}
break;
case $op_modificacion:
- $cmd->texto="UPDATE imagenes SET nombreca=@nombreca,descripcion=@descripcion,idperfilsoft=@idperfilsoft,
- comentarios=@comentarios,numpar=@numpar,codpar=@codpar,idrepositorio=@idrepositorio
- WHERE idimagen=@idimagen";
+ $cmd->texto="UPDATE imagenes SET nombreca=@nombreca,ruta=@ruta,descripcion=@descripcion,idperfilsoft=@idperfilsoft,
+ comentarios=@comentarios,numpar=@numpar,codpar=@codpar,idrepositorio=@idrepositorio,
+ imagenid=@imagenid
+ WHERE idimagen=@idimagen";
$resul=$cmd->Ejecutar();
break;
case $op_eliminacion :
@@ -167,14 +182,16 @@ function Gestiona(){
/*________________________________________________________________________________________________________
Crea un arbol XML para el nuevo nodo insertado
________________________________________________________________________________________________________*/
-function SubarbolXML_imagenes($idimagen,$descripcion){
- global $LITAMBITO_IMAGENES;
+function SubarbolXML_imagenes($idimagen,$descripcion)
+{
+ global $litamb;
+
$cadenaXML='<IMAGEN';
// Atributos
$cadenaXML.=' imagenodo="../images/iconos/imagen.gif"';
$cadenaXML.=' infonodo="'.$descripcion.'"';
- $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_IMAGENES."'" .')"';
- $cadenaXML.=' nodoid='.$LITAMBITO_IMAGENES.'-'.$idimagen;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$litamb."'" .')"';
+ $cadenaXML.=' nodoid='.$litamb.'-'.$idimagen;
$cadenaXML.='>';
$cadenaXML.='</IMAGEN>';
return($cadenaXML);
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagenbasica_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagenbasica_esp.js
new file mode 100644
index 00000000..4631b8a7
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagenbasica_esp.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearimagenbasica_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="";
+TbMsg[1]="Debe elegir una imagen para esta partición";
+TbMsg[2]="No ha seleccionado ninguna partición";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js
index bfcbf99a..b1f3baa8 100644
--- a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js
@@ -4,5 +4,7 @@
// Idioma: Español
//________________________________________________________________________________________________________
TbMsg=new Array;
-TbMsg[0]="Debe elegir un software incremental para esta partición";
-TbMsg[1]="Debe elegir al menos una partición y un software incremental";
+TbMsg[0]="";
+TbMsg[1]="Debe elegir una imagen básica para esta partición";
+TbMsg[2]="No ha seleccionado ninguna partición";
+TbMsg[3]="Debe elegir un software incremental para esta partición";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagenbasica_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagenbasica_esp.js
new file mode 100644
index 00000000..6fa89c04
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagenbasica_esp.js
@@ -0,0 +1,13 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: restaurarimagenbasica_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe elegir una imagen para esta partición";
+TbMsg[1]="Debe elegir al menos una partición y una imagen";
+TbMsg[2]="";
+TbMsg[3]="¿ Está seguro ?"
+TbMsg[4]="Debe elegir al menos una imagen para la partición"
+TbMsg[5]="Debe elegir al menos un path de imagen para la partición ";
+TbMsg[6]="Debe elegir la imagen de uno sólo de los desplegables"
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarsoftincremental_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarsoftincremental_esp.js
new file mode 100644
index 00000000..ad84ea2e
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarsoftincremental_esp.js
@@ -0,0 +1,13 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: restaurarsoftincremental_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe elegir una imagen para esta partición";
+TbMsg[1]="Debe elegir al menos una partición y una imagen";
+TbMsg[2]=" ";
+TbMsg[3]="¿ Está seguro ?"
+TbMsg[4]="Debe elegir al menos una imagen para la partición"
+TbMsg[5]="Debe elegir al menos un path de imagen para la partición ";
+TbMsg[6]="Debe elegir un software incremental para esta partición";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js
index 7deec9a3..f8583cae 100644
--- a/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js
@@ -7,8 +7,9 @@ TbMsg=new Array;
TbMsg[0]="Debe introducir un nombre para esta imagen";
TbMsg[1]="La imagen debe contener al menos un perflil software";
TbMsg[2]="ATENCIÓN: Hay ordenadores con esta imagen en alguna de sus particiones. ¿ Está seguro ?";
-TbMsg[3]="nombre canónico fichero-imagen no puede contener valores no alfanumericos";
+TbMsg[3]="Nombre canónico fichero-imagen no puede contener valores no alfanumericos";
TbMsg[4]="Falta numero de particion";
TbMsg[5]="Falta el tipo de la particion";
TbMsg[6]="Falta el repositorio";
-TbMsg[7]="Falta un comentario"; \ No newline at end of file
+TbMsg[7]="Falta un comentario";
+TbMsg[8]="Debe especificar la imagen básica con la que estará adjunta"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/aulas_esp.php b/admin/WebConsole/idiomas/php/esp/aulas_esp.php
index ed4de97f..1f13d130 100644
--- a/admin/WebConsole/idiomas/php/esp/aulas_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/aulas_esp.php
@@ -54,5 +54,6 @@
$TbMsg[46]='Identificador ámbito';
$TbMsg[47]='"Log historico"';
$TbMsg[48]='"Log en tiempo real"';
+ $TbMsg[49]='"Sincronización"';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php
index 2cdbb0d6..3e82fbcc 100644
--- a/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php
@@ -12,5 +12,9 @@
$TbMsg[4]='Ordenadores';
$TbMsg[5]='Arrancar ordenadores';
$TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Broadcast';
+ $TbMsg[9]='Unicast';
+ $TbMsg[10]='Método de arranque';
?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php
new file mode 100644
index 00000000..353c99b5
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/crearimagenbasica_esp.php
@@ -0,0 +1,25 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearimagenbasica_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Creación de Imagen Básica' ;
+ $TbMsg[1]='Características del ordenador';
+ $TbMsg[2]='Nombre';
+ $TbMsg[3]='Dirección IP';
+ $TbMsg[4]='Dirección MAC';
+ $TbMsg[5]='Perfil Hardware';
+ $TbMsg[6]='Datos a suministrar';
+ $TbMsg[7]='Disco';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Nombre S.O.';
+ $TbMsg[10]='Imagen / Repositorio';
+ $TbMsg[11]='Repositorio';
+ $TbMsg[12]='Opciones Adicionales';
+ $TbMsg[13]='Borrar la Imagen Previamente';
+ $TbMsg[14]='Copiar Imagen en cache';
+ $TbMsg[15]='Borrarla previamente de la cache';
+ $TbMsg[16]='No borrar archivos en destino';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php
index 0eb03d9b..8793829c 100644
--- a/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php
@@ -5,15 +5,21 @@
// Idioma: Español
//________________________________________________________________________________________________________
$TbMsg=array();
- $TbMsg[0]='Generación de software Incremental' ;
+ $TbMsg[0]='Creación de Imagen Incremental' ;
$TbMsg[1]='Características del ordenador';
$TbMsg[2]='Nombre';
$TbMsg[3]='Dirección IP';
$TbMsg[4]='Dirección MAC';
$TbMsg[5]='Perfil Hardware';
$TbMsg[6]='Datos a suministrar';
- $TbMsg[7]='';
+ $TbMsg[7]='Disco';
$TbMsg[8]='Par';
- $TbMsg[9]='Nombre Perfil';
- $TbMsg[10]='Software incremental disponible';
-?> \ No newline at end of file
+ $TbMsg[9]='Nombre S.O.';
+ $TbMsg[10]='Imagen Incremental / Repositorio';
+ $TbMsg[11]='Opciones Adicionales';
+ $TbMsg[12]='Software incremental';
+ $TbMsg[13]='Borrar Incremental previamente';
+ $TbMsg[14]='Copiar Incremental en cache';
+ $TbMsg[15]='Borrarla previamente de la cache';
+ $TbMsg[16]='No borrar archivos en destino';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php
new file mode 100644
index 00000000..0c389481
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagenbasica_esp.php
@@ -0,0 +1,51 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: restaurarimagenbasica_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centros';
+ $TbMsg[1]='Grupo de aulas';
+ $TbMsg[2]='Aulas';
+ $TbMsg[3]='Grupo de ordenadores';
+ $TbMsg[4]='Ordenadores';
+ $TbMsg[5]='Restaurar Imagen Básica';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Repositorio';
+ $TbMsg[10]='Imagen';
+ $TbMsg[11]='Opciones Adicionales';
+ $TbMsg[12]='Desconocido';
+ $TbMsg[13]='Caché';
+ $TbMsg[14]='Ámbito';
+ $TbMsg[15]='Ordenadores';
+ $TbMsg[16]='Desde';
+ $TbMsg[17]='';
+ $TbMsg[18]="DESAGRUPAR SEGÚN VALORES DISTINTOS DE:";
+ $TbMsg[19]="Datos a suministrar";
+ // Cabeceras de tabla de configuración
+ $TbMsg[20]='Partición';
+ $TbMsg[21]='S.O. Instalado';
+ $TbMsg[22]='Tamaño';
+ $TbMsg[23]='Datos de configuration';
+ $TbMsg[24]='Tipo';
+ $TbMsg[25]='Imagen';
+ $TbMsg[26]='Perfil Software';
+ $TbMsg[27]='S.F.';
+ $TbMsg[28]='Ninguno';
+ $TbMsg[29]='Desconocido';
+ // Desagrupamiento
+ $TbMsg[30]='Sistema de Ficheros';
+ $TbMsg[31]='Nombre del S.O.';
+ $TbMsg[32]='Tamaño de partición';
+ $TbMsg[33]='Nombre de la Imagen ';
+ $TbMsg[34]='Perfil software';
+ // OPciones adicionales
+ $TbMsg[35]='Borrar la Partición Previamente';
+ $TbMsg[36]='Copiar Imagen en cache';
+ $TbMsg[37]='Borrarla previamente de la cache';
+ $TbMsg[38]='No borrar archivos en destino';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php
new file mode 100644
index 00000000..7ee817ba
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarsoftincremental_esp.php
@@ -0,0 +1,51 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: restaurarsoftincremental_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centros';
+ $TbMsg[1]='Grupo de aulas';
+ $TbMsg[2]='Aulas';
+ $TbMsg[3]='Grupo de ordenadores';
+ $TbMsg[4]='Ordenadores';
+ $TbMsg[5]='Restaurar Software Incremental';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Repositorio';
+ $TbMsg[10]='Imagen';
+ $TbMsg[11]='Opciones Adicionales';
+ $TbMsg[12]='Desconocido';
+ $TbMsg[13]='Caché';
+ $TbMsg[14]='Ámbito';
+ $TbMsg[15]='Ordenadores';
+ $TbMsg[16]='Desde';
+ $TbMsg[17]='';
+ $TbMsg[18]="DESAGRUPAR SEGÚN VALORES DISTINTOS DE:";
+ $TbMsg[19]="Datos a suministrar";
+ // Cabeceras de tabla de configuración
+ $TbMsg[20]='Partición';
+ $TbMsg[21]='S.O. Instalado';
+ $TbMsg[22]='Tamaño';
+ $TbMsg[23]='Datos de configuration';
+ $TbMsg[24]='Tipo';
+ $TbMsg[25]='Imagen';
+ $TbMsg[26]='Perfil Software';
+ $TbMsg[27]='S.F.';
+ $TbMsg[28]='Ninguno';
+ $TbMsg[29]='Desconocido';
+ // Desagrupamiento
+ $TbMsg[30]='Sistema de Ficheros';
+ $TbMsg[31]='Nombre del S.O.';
+ $TbMsg[32]='Tamaño de partición';
+ $TbMsg[33]='Nombre de la Imagen ';
+ $TbMsg[34]='Perfil software';
+ // OPciones adicionales
+ $TbMsg[35]='Borrar la Partición Previamente';
+ $TbMsg[36]='Copiar Imagen en cache';
+ $TbMsg[37]='Borrarla previamente de la cache';
+ $TbMsg[38]='Software Incremental';
+ $TbMsg[39]='No borrar archivos en destino';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/imagenes_esp.php
index 076060b4..3abb5600 100644
--- a/admin/WebConsole/idiomas/php/esp/imagenes_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/imagenes_esp.php
@@ -16,4 +16,7 @@
$TbMsg[8]='"Eliminar Imagen"';
$TbMsg[9]='"Imágenes"';
$TbMsg[10]='"Gestión incrementales"';
+ $TbMsg[11]='"Imágenes Monolíticas"';
+ $TbMsg[12]='"Imágenes Básicas"';
+ $TbMsg[13]='"Imágenes Incrementales"';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
index e38ebbb0..76ad742d 100644
--- a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
@@ -32,7 +32,16 @@ $TbMsg=array();
$TbMsg[22]='ATENCIÓN, ha habido algún error en el proceso de ejecución del script bash';
$TbMsg[23]='ATENCIÓN';
$TbMsg[24]='NO UTILICE NI APAGUE ESTE ORDENADOR.';
-
-
+ $TbMsg[25]='Creando Imagen Incremental, por favor espere...';
+ $TbMsg[26]='El proceso de creación de imagen incremental ha terminado correctamente';
+ $TbMsg[27]='ATENCIÓN, ha habido algún error en el proceso de creación de imagen incremental';
+ $TbMsg[28]='El proceso de creación de imagen básica ha terminado correctamente';
+ $TbMsg[29]='ATENCIÓN, ha habido algún error en el proceso de creación de imagen básica';
+ $TbMsg[30]='Creando Imagen Básica, por favor espere...';
+ $TbMsg[31]='Restaurando Imagen Básica, por favor espere...';
+ $TbMsg[32]='El proceso de restauración de imagen básica ha terminado correctamente';
+ $TbMsg[33]='ATENCIÓN, ha habido algún error en el proceso de restauración de imagen básica';
+ $TbMsg[34]='El proceso de restauración de imagen básica ha terminado correctamente';
+ $TbMsg[35]='ATENCIÓN, ha habido algún error en el proceso de restauración de imagen básica';
?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php
index c2bf7247..1ac0bb97 100644
--- a/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php
@@ -28,4 +28,7 @@ $TbMsg[19]="Grupos de Menús";
$TbMsg[20]="Grupos de Reservas";
$TbMsg[21]="Grupos de Entidades";
$TbMsg[22]="Grupos de Ordenadores";
+$TbMsg[23]="Grupos de Imágenes Monolíticas";
+$TbMsg[24]="Grupos de Imágenes Básicas";
+$TbMsg[25]="Grupos de Imágenes Incrementales";
?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php
index 965ef98a..77345d24 100644
--- a/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php
@@ -9,12 +9,19 @@ $TbMsg[0]="Sin Opción";
$TbMsg[1]="Insertar";
$TbMsg[2]="Modificar";
$TbMsg[3]="Eliminar";
-$TbMsg[4]="Gestión Imágenes";
-$TbMsg[5]="Nombre Imagen";
+$TbMsg[4]="Gestión Imágenes Monolíticas";
+$TbMsg[5]="Descripción";
$TbMsg[6]="Perfil Software";
$TbMsg[7]="Comentarios";
$TbMsg[8]="Partición";
$TbMsg[9]="Tipo partición";
$TbMsg[10]="Repositorio";
-$TbMsg[11]="Nombre canónico";
+$TbMsg[11]="Nombre";
+$TbMsg[12]="Gestión Imágenes Básicas";
+$TbMsg[13]="Gestión Imágenes Incrementales";
+$TbMsg[14]="Imagen básica";
+$TbMsg[15]="ATENCIÓN.- Una imagen que tiene perfil software indica que en algún momento se ha creado <br>
+ y por tanto no pueden modificarse ciertos datos a menos que la elimine y la vuelva a crear";
+$TbMsg[16]="Ruta Origen";
+
?>
diff --git a/admin/WebConsole/includes/HTMLSELECT.php b/admin/WebConsole/includes/HTMLSELECT.php
index 5db2e45b..76433d08 100644
--- a/admin/WebConsole/includes/HTMLSELECT.php
+++ b/admin/WebConsole/includes/HTMLSELECT.php
@@ -19,12 +19,13 @@
// - clase: Clase que define su estilo (por defecto: formulariodatos)
// - clausulawhere: Clausula Where adicional
// *************************************************************************************************************************************************
-function HTMLSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$ancho,$eventochg = "",$clase="",$clausulawhere=""){
+function HTMLSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$ancho,$eventochg = "",$clase="",$clausulawhere="",$nwname=""){
$nombretabla=htmlentities($nombretabla);
$nombreid=htmlentities($nombreid);
$nombreliteral=htmlentities($nombreliteral);
if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
if (empty($clase)) $clase='formulariodatos';
+ if (empty($nwname)) $nwname=$nombreid;
$SelectHtml="";
$rs=new Recordset;
if ($idcentro>0){
@@ -41,7 +42,7 @@ function HTMLSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombre
//echo "<br>".$cmd->texto;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return(""); // Error al abrir recordset
- $SelectHtml.= '<SELECT '.$eventochg.' class="'.$clase.'" name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ $SelectHtml.= '<SELECT '.$eventochg.' class="'.$clase.'" name="'.$nwname.'" style="WIDTH: '.$ancho.'">';
$SelectHtml.= ' <OPTION value="0"></OPTION>';
$rs->Primero();
while (!$rs->EOF){
diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php
index e3e89700..531b9b61 100644
--- a/admin/WebConsole/includes/comunes.php
+++ b/admin/WebConsole/includes/comunes.php
@@ -1,4 +1,4 @@
-<?php
+<?
//________________________________________________________________________________________
//
// Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
@@ -145,7 +145,7 @@
// que se almacenan en las tablas de procedimientos_acciones o acciones
//___________________________________________________________________________________
- function ParametrosValor($cmd,$parametros,&$tbParametrosValor,$ch="\r")
+ function ParametrosValor($cmd,$parametros,$tbParametrosValor,$ch="\r")
{
global $tbParametros;
$html="";
@@ -166,7 +166,7 @@
$blkprm=split(chr(10),substr($auxprm[$i],4));
for($j=0;$j<sizeof($blkprm);$j++){
$tbSubParametrosValor=array();
- ParametrosValor($cmd,$blkprm[$j],$tbSubParametrosValor,chr(9));
+ ParametrosValor($cmd,$blkprm[$j],&$tbSubParametrosValor,chr(9));
for($k=0;$k<sizeof($tbSubParametrosValor);$k++){
$elem=current($tbSubParametrosValor);
$tbParametrosValor[$nemonico][$j]["valor"].=$elem["descripcion"];
@@ -182,7 +182,11 @@
break;
case 4: // El valor lo toma directamente pero está codificado con urlencode
$tbParametrosValor[$nemonico]["valor"]='<PRE>'.urldecode($valor).'</PRE>';
-
+ break;
+ case 5: // El valor es 0 ó 1 y se muestra NO o SI
+ $tbSN[0]="No";
+ $tbSN[1]="Si";
+ $tbParametrosValor[$nemonico]["valor"]=$tbSN[$valor];
}
}
}
@@ -240,8 +244,8 @@
for($i=$len-1;$i>=0;$i--){
$cadenafinal=substr($cadena,$i,1).$cadenafinal;
if($m%3==0 && $i>0){
- $cadenafinal=".".$cadenafinal;
- $m=0;
+ $cadenafinal=".".$cadenafinal;
+ $m=0;
}
$m++;
}
@@ -251,13 +255,13 @@
Devuelve la url de la imagen y la descripción de un ámbito
Parametros:
- ambito: Identificador del ambito
- - urlimg: Por referencia. Es donde se devuelve la url de la imagen
+ - urlimg: Por referencia. Es donde se devuelve la url de la imagen
- textambito: Por referencia. Es donde se devuelve la descripción
Devuelve:
- Los dos parámetros pasados por referencia
________________________________________________________________________*/
- function tomaAmbito($ambito,&$urlimg,&$textambito)
+ function tomaAmbito($ambito,$urlimg,$textambito)
{
global $AMBITO_CENTROS;
global $AMBITO_GRUPOSAULAS;
@@ -296,7 +300,7 @@
Devuelve la descripción de un ambito
Parametros:
- - cmd: Objeto comando (Operativo)
+ - cmd: Objeto comando (Operativo)
- ambito: tipo de ambito
- idambito: Identificador del ambito
- textambito: Por referencia. Es donde se devuelve la descripción
@@ -305,7 +309,7 @@
- Los dos parámetros pasados por referencia
________________________________________________________________________*/
- function tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito)
+ function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito)
{
global $AMBITO_CENTROS;
global $AMBITO_GRUPOSAULAS;
@@ -313,29 +317,29 @@
global $AMBITO_GRUPOSORDENADORES;
global $AMBITO_ORDENADORES;
- switch($ambito){
- case $AMBITO_CENTROS :
- $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro');
- break;
- case $AMBITO_GRUPOSAULAS :
- $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo');
- break;
- case $AMBITO_AULAS :
- $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula');
- break;
- case $AMBITO_GRUPOSORDENADORES :
- $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador');
- break;
- case $AMBITO_ORDENADORES :
- $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
- break;
- default:
- $textambito;
- }
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro');
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo');
+ break;
+ case $AMBITO_AULAS :
+ $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula');
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador');
+ break;
+ case $AMBITO_ORDENADORES :
+ $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
+ break;
+ default:
+ $textambito;
+ }
}
/*______________________________________________________________________
- Devuelve el código HTML de una etiqueta "select" para un ámbito concreto
+ Devuelve el código html de una etiqueta SELECT para un ámbito concreto
Parametros:
- cmd: Objeto comando (Operativo)
- ambito: tipo de ambito
@@ -376,4 +380,3 @@
}
return($selecHtml);
}
-
diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php
index 1107bee9..fc5baf0b 100644
--- a/admin/WebConsole/includes/constantes.php
+++ b/admin/WebConsole/includes/constantes.php
@@ -13,6 +13,9 @@ $AMBITO_IMAGENES=0x20;
$AMBITO_PROCEDIMIENTOS=0x21;
$AMBITO_TAREAS=0x22;
$AMBITO_COMANDOS=0x23;
+$AMBITO_IMAGENESMONOLITICAS=0x49;
+$AMBITO_IMAGENESBASICAS=0x50;
+$AMBITO_IMAGENESINCREMENTALES=0x51;
$AMBITO_COMPONENTESHARD=0x24;
$AMBITO_COMPONENTESSOFT=0x25;
@@ -20,13 +23,12 @@ $AMBITO_PERFILESHARD=0x26;
$AMBITO_PERFILESSOFT=0x27;
$AMBITO_MENUS=0x28;
$AMBITO_REPOSITORIOS=0x29;
-$AMBITO_RESERVAS=0x32;
+$AMBITO_RESERVAS=0x31;
// Código del resto de ambitos( grupos )
$AMBITO_GRUPOSIMAGENES=0x32;
$AMBITO_GRUPOSPROCEDIMIENTOS=0x33;
$AMBITO_GRUPOSTAREAS=0x34;
-
$AMBITO_GRUPOSCOMPONENTESHARD=0x36;
$AMBITO_GRUPOSCOMPONENTESSOFT=0x37;
$AMBITO_GRUPOSPERFILESHARD=0x38;
@@ -35,12 +37,21 @@ $AMBITO_GRUPOSMENUS=0x40;
$AMBITO_GRUPOSREPOSITORIOS=0x41;
$AMBITO_GRUPOSRESERVAS=0x44;
$AMBITO_GRUPOSENTIDADES=0x45;
+$AMBITO_GRUPOSIMAGENESMONOLITICAS=0x46;
+$AMBITO_GRUPOSIMAGENESBASICAS=0x47;
+$AMBITO_GRUPOSIMAGENESINCREMENTALES=0x48;
+$AMBITO_GRUPOSIMAGENESMONOLITICAS=0x46;
+$AMBITO_GRUPOSIMAGENESBASICAS=0x47;
+$AMBITO_GRUPOSIMAGENESINCREMENTALES=0x48;
// Literales de los ambitos
$LITAMBITO_CENTROS="centros";
$LITAMBITO_AULAS="aulas";
$LITAMBITO_ORDENADORES="ordenadores";
$LITAMBITO_IMAGENES="imagenes";
+$LITAMBITO_IMAGENESMONOLITICAS="imagenesmonoliticas";
+$LITAMBITO_IMAGENESBASICAS="imagenesbasicas";
+$LITAMBITO_IMAGENESINCREMENTALES="imagenesincrementales";
$LITAMBITO_PROCEDIMIENTOS="procedimientos";
$LITAMBITO_TAREAS="tareas";
@@ -52,7 +63,6 @@ $LITAMBITO_PERFILESSOFT="perfilessoft";
$LITAMBITO_MENUS="menus";
$LITAMBITO_REPOSITORIOS="repositorios";
-
$LITAMBITO_RESERVAS="reservas";
$LITAMBITO_ADMINISTRACION="administracion";
$LITAMBITO_UNIVERSIDADES="universidades";
@@ -62,6 +72,9 @@ $LITAMBITO_USUARIOS="usuarios";
$LITAMBITO_GRUPOSAULAS="gruposaulas";
$LITAMBITO_GRUPOSORDENADORES="gruposordenadores";
$LITAMBITO_GRUPOSIMAGENES="gruposimagenes";
+$LITAMBITO_GRUPOSIMAGENESMONOLITICAS="gruposimagenesmonoliticas";
+$LITAMBITO_GRUPOSIMAGENESBASICAS="gruposimagenesbasicas";
+$LITAMBITO_GRUPOSIMAGENESINCREMENTALES="gruposimagenesincrementales";
$LITAMBITO_GRUPOSPROCEDIMIENTOS="gruposprocedimientos";
$LITAMBITO_GRUPOSTAREAS="grupostareas";
@@ -73,7 +86,6 @@ $LITAMBITO_GRUPOSMENUS="gruposmenus";
$LITAMBITO_GRUPOSREPOSITORIOS="gruporepositorio";
$LITAMBITO_GRUPOSRESERVAS="gruposreservas";
$LITAMBITO_GRUPOSENTIDADES="gruposentidades";
-
// Código de los tipo de acciones
$EJECUCION_COMANDO=0x0001;
@@ -170,4 +182,10 @@ $msk_imagen=0x08;
$msk_perfil=0x10;
$msk_cache=0x12;
-?> \ No newline at end of file
+// Tipos de imagenes
+$IMAGENES_MONOLITICAS=0x01;
+$IMAGENES_BASICAS=0x02;
+$IMAGENES_INCREMENTALES=0x03;
+
+?>
+
diff --git a/admin/WebConsole/jscripts/constantes.js b/admin/WebConsole/jscripts/constantes.js
index 59315348..33d35675 100644
--- a/admin/WebConsole/jscripts/constantes.js
+++ b/admin/WebConsole/jscripts/constantes.js
@@ -116,3 +116,9 @@ var MSG_NOTIFICACION=0x02; // Respuesta a la ejecución un comando
var MSG_PETICION=0x03; // Petición de cualquier actuación
var MSG_RESPUESTA=0x04; // Respuesta a una petición
var MSG_INFORMACION=0x05; // Envío de cualquier información sin espera de confirmación o respuesta
+
+
+// Tipos de imagenes
+var IMAGENES_MONOLITICAS=0x01;
+var IMAGENES_BASICAS=0x02;
+var IMAGENES_INCREMENTALES=0x03;
diff --git a/admin/WebConsole/jscripts/imagenes.js b/admin/WebConsole/jscripts/imagenes.js
index 9a2d2a6f..327e6f42 100644
--- a/admin/WebConsole/jscripts/imagenes.js
+++ b/admin/WebConsole/jscripts/imagenes.js
@@ -26,3 +26,39 @@ function insertar_imagenincremental(){
var whref="../varios/imagenincremental.php?idimagen="+identificador+"&descripcionimagen="+descripcionimagen
window.open(whref,"frame_contenidos")
}
+//________________________________________________________________________________________________________
+//
+// Inserta nueva imagen
+//________________________________________________________________________________________________________
+//
+function insertar_imagen(litamb,tipoimg)
+{
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var whref="../propiedades/propiedades_imagenes.php?opcion="+op_alta+"&grupoid="+identificador+"&litamb="+litamb+"&tipoimg="+tipoimg
+ window.open(whref,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Modificar datos de imagen
+//________________________________________________________________________________________________________
+//
+function modificar_imagen(tipoimg)
+{
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var whref="../propiedades/propiedades_imagenes.php?opcion="+op_modificacion+"&tipoimg="+tipoimg+"&identificador="+identificador
+ window.open(whref,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Eliminar una imagen
+//________________________________________________________________________________________________________
+//
+function eliminar_imagen(tipoimg)
+{
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var whref="../propiedades/propiedades_imagenes.php?opcion="+op_eliminacion+"&tipoimg="+tipoimg+"&identificador="+identificador
+ window.open(whref,"frame_contenidos");
+}
diff --git a/admin/WebConsole/jscripts/propiedades_imagenes.js b/admin/WebConsole/jscripts/propiedades_imagenes.js
index 2cecc566..0161f715 100644
--- a/admin/WebConsole/jscripts/propiedades_imagenes.js
+++ b/admin/WebConsole/jscripts/propiedades_imagenes.js
@@ -2,7 +2,7 @@
// Libreria de scripts de Javascript
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: 2009-2010
-// Fecha Última modificación: Agosto-2010
+// Fecha Última modificación: Noviembre-2012
// Nombre del fichero: propiedades_imagenes.js
// Descripción :
// Este fichero implementa las funciones javascript del fichero propiedades_imagenes.php
@@ -74,6 +74,7 @@ function confirmar(op){
// Comprobar_datos
//________________________________________________________________________________________________________
function comprobar_datos(){
+
function validate (field, validator, msgi) {
if (!validator (field.value)) {
alert(TbMsg[msgi]);
@@ -82,15 +83,20 @@ function comprobar_datos(){
}
return true;
}
-
-
var form = document.fdatos;
- return validate (form.nombreca, validate_nameimagefile, 3) &&
- validate (form.nombreca, validate_notnull, 3) &&
- validate (form.descripcion, validate_notnull, 0) &&
- validate (form.numpar, validate_notnull, 4) &&
- validate (form.codpar, validate_notnull, 5) &&
- validate (form.idrepositorio, validate_notnull, 6);
-
+ if(form.tipoimg.getAttribute("value")!=IMAGENES_INCREMENTALES){
+ return validate (form.nombreca, validate_nameimagefile, 3) &&
+ validate (form.nombreca, validate_notnull, 3) &&
+ validate (form.descripcion, validate_notnull, 0) &&
+ validate (form.numpar, validate_notnull, 4) &&
+ validate (form.codpar, validate_notnull, 5) &&
+ validate (form.idrepositorio, validate_notnull, 6);
+ }
+ else{
+ return validate (form.nombreca, validate_nameimagefile, 3) &&
+ validate (form.nombreca, validate_notnull, 3) &&
+ validate (form.descripcion, validate_notnull, 0) &&
+ validate (form.imagenid, validate_notnull, 8);
+ }
return(true);
}
diff --git a/admin/WebConsole/principal/aula.php b/admin/WebConsole/principal/aula.php
index 83b750d1..40a410e2 100644
--- a/admin/WebConsole/principal/aula.php
+++ b/admin/WebConsole/principal/aula.php
@@ -120,6 +120,11 @@ echo $flotante->CreaMenuContextual($XMLcontextual);
$XMLcontextual=ContextualXMLAsistentes($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
echo $flotante->CreaMenuContextual($XMLcontextual);
+// Crea contextual de los comandos para los distintos ámbitos
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_AULAS,$AMBITO_AULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
?>
<SCRIPT language="javascript">
Sondeo();
@@ -352,11 +357,20 @@ function ContextualXMLAulas(){
$layerXML.='></ITEM>';
$layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_sincronizacion_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[49];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
$layerXML.=' subflotante="flo_asistentes_'.$LITAMBITO_AULAS.'"';
$layerXML.=' imgitem="../images/iconos/comandos.gif"';
$layerXML.=' textoitem='.$TbMsg[38];
$layerXML.='></ITEM>';
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_AULAS.')"';
$layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
@@ -420,7 +434,8 @@ function ContextualXMLAulas(){
$layerXML.=' imgitem="../images/iconos/reservas.gif"';
$layerXML.=' textoitem='.$TbMsg[29];
$layerXML.='></ITEM>';
-
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
$layerXML.='</MENUCONTEXTUAL>';
return($layerXML);
}
@@ -495,12 +510,20 @@ function ContextualXMLOrdenadores(){
$layerXML.='></ITEM>';
$layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_sincronizacion_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[49];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
$layerXML.=' subflotante="flo_asistentes_'.$LITAMBITO_ORDENADORES.'"';
$layerXML.=' imgitem="../images/iconos/comandos.gif"';
$layerXML.=' textoitem='.$TbMsg[38];
$layerXML.='></ITEM>';
-
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_ORDENADORES.')"';
$layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
@@ -544,10 +567,10 @@ function ContextualXMLComandos($litambito,$ambito){
global $TbMsg;
$maxlongdescri=0;
$rs=new Recordset;
- $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion
- FROM comandos
- WHERE activo=1 AND aplicambito & ".$ambito.">0
- ORDER BY descripcion";
+ $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion
+ FROM comandos
+ WHERE activo=1 AND submenu='' AND aplicambito & ".$ambito.">0
+ ORDER BY descripcion";
$rs->Comando=&$cmd;
if ($rs->Abrir()){
$layerXML="";
@@ -555,14 +578,14 @@ function ContextualXMLComandos($litambito,$ambito){
while (!$rs->EOF){
$descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]];
if (empty ($descrip)) {
- $descrip=$rs->campos["funcion"];
+ $descrip=$rs->campos["descripcion"];
}
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
$layerXML.=' textoitem="'.$descrip.'"';
$layerXML.='></ITEM>';
- if($maxlongdescri<strlen($rs->campos["descripcion"])) // Toma la Descripción de mayor longitud
- $maxlongdescri=strlen($rs->campos["descripcion"]);
+ if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud
+ $maxlongdescri=strlen($descrip);
$rs->Siguiente();
}
$layerXML.='</MENUCONTEXTUAL>';
@@ -575,8 +598,44 @@ function ContextualXMLComandos($litambito,$ambito){
return($finallayerXML);
}
}
-
-
+//________________________________________________________________________________________________________
+function ContextualXMLSincronizacion($litambito,$ambito){
+ global $cmd;
+ global $TbMsg;
+ $maxlongdescri=0;
+ $rs=new Recordset;
+ $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion
+ FROM comandos
+ WHERE activo=1 AND submenu='Sincronización' AND aplicambito & ".$ambito.">0
+ ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $layerXML="";
+ $rs->Primero();
+ while (!$rs->EOF){
+ $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]];
+ if (empty ($descrip)) {
+ $descrip=$rs->campos["descripcion"];
+ }
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
+ $layerXML.=' textoitem="'.$descrip.'"';
+ $layerXML.='></ITEM>';
+ if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud
+ $maxlongdescri=strlen($descrip);
+ $rs->Siguiente();
+ }
+ $layerXML.='</MENUCONTEXTUAL>';
+ $prelayerXML='<MENUCONTEXTUAL';
+ $prelayerXML.=' idctx="flo_sincronizacion_'.$litambito.'"';
+ $prelayerXML.=' maxanchu='.$maxlongdescri*7;
+ $prelayerXML.=' clase="menu_contextual"';
+ $prelayerXML.='>';
+ $finallayerXML=$prelayerXML.$layerXML;
+ return($finallayerXML);
+ }
+}
+//________________________________________________________________________________________________________
function ContextualXMLAsistentes($litambito,$ambito){
global $cmd;
global $TbMsg;
diff --git a/admin/WebConsole/principal/aulas.php b/admin/WebConsole/principal/aulas.php
index d0856843..db0ae2ff 100644
--- a/admin/WebConsole/principal/aulas.php
+++ b/admin/WebConsole/principal/aulas.php
@@ -85,6 +85,18 @@ echo $flotante->CreaMenuContextual($XMLcontextual);
$XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
echo $flotante->CreaMenuContextual($XMLcontextual);
+// Crea contextual de los comandos para los distintos �bitos
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_CENTROS,$AMBITO_CENTROS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_GRUPOSAULAS,$AMBITO_GRUPOSAULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_AULAS,$AMBITO_AULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_GRUPOSORDENADORES,$AMBITO_GRUPOSORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
// Crea submenu contextual de clase de gestion de arranque pxe
$XMLcontextual=ContextualXMLNetBoot(); // Crea submenu contextual de acciones
echo $flotante->CreaMenuContextual($XMLcontextual);
@@ -175,7 +187,7 @@ function SubarbolXML_grupos_aulas($cmd,$idcentro,$grupoid){
return($cadenaXML);
}
//________________________________________________________________________________________________________
-function SubarbolXML_aulas_operadores($cmd,$idaula,&$cont){
+function SubarbolXML_aulas_operadores($cmd,$idaula,$cont){
global $TbMsg;
global $LITAMBITO_USUARIOS;
global $cadenaXML;
@@ -329,6 +341,7 @@ function ContextualXMLCentros(){
$layerXML.=' textoitem='.$TbMsg[5];
$layerXML.='></ITEM>';
+
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_CENTROS.')"';
$layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
@@ -578,11 +591,20 @@ function ContextualXMLAulas(){
$layerXML.='></ITEM>';
$layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_sincronizacion_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[49];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
$layerXML.=' subflotante="flo_asistentes_'.$LITAMBITO_AULAS.'"';
$layerXML.=' imgitem="../images/iconos/comandos.gif"';
$layerXML.=' textoitem='.$TbMsg[38];
$layerXML.='></ITEM>';
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_AULAS.')"';
$layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
@@ -767,14 +789,22 @@ function ContextualXMLGruposOrdenadores(){
$layerXML.=' imgitem="../images/iconos/comandos.gif"';
$layerXML.=' textoitem='.$TbMsg[5];
$layerXML.='></ITEM>';
-
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_sincronizacion_'.$LITAMBITO_GRUPOSORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[49];
+ $layerXML.='></ITEM>';
+
$layerXML.='<ITEM';
$layerXML.=' subflotante="flo_asistentes_'.$LITAMBITO_GRUPOSORDENADORES.'"';
$layerXML.=' imgitem="../images/iconos/comandos.gif"';
$layerXML.=' textoitem='.$TbMsg[38];
$layerXML.='></ITEM>';
-
-
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_GRUPOSORDENADORES.')"';
$layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
@@ -893,6 +923,11 @@ function ContextualXMLOrdenadores(){
$layerXML.=' textoitem='.$TbMsg[5];
$layerXML.='></ITEM>';
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_sincronizacion_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[49];
+ $layerXML.='></ITEM>';
$layerXML.='<ITEM';
$layerXML.=' subflotante="flo_asistentes_'.$LITAMBITO_ORDENADORES.'"';
@@ -900,6 +935,8 @@ function ContextualXMLOrdenadores(){
$layerXML.=' textoitem='.$TbMsg[38];
$layerXML.='></ITEM>';
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_ORDENADORES.')"';
@@ -946,7 +983,7 @@ function ContextualXMLComandos($litambito,$ambito){
$rs=new Recordset;
$cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion
FROM comandos
- WHERE activo=1 AND aplicambito & ".$ambito.">0
+ WHERE activo=1 AND submenu='' AND aplicambito & ".$ambito.">0
ORDER BY descripcion";
$rs->Comando=&$cmd;
if ($rs->Abrir()){
@@ -955,7 +992,7 @@ function ContextualXMLComandos($litambito,$ambito){
while (!$rs->EOF){
$descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]];
if (empty ($descrip)) {
- $descrip=$rs->campos["funcion"];
+ $descrip=$rs->campos["descripcion"];
}
$layerXML.='<ITEM';
$layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
@@ -968,14 +1005,50 @@ function ContextualXMLComandos($litambito,$ambito){
$layerXML.='</MENUCONTEXTUAL>';
$prelayerXML='<MENUCONTEXTUAL';
$prelayerXML.=' idctx="flo_comandos_'.$litambito.'"';
- $prelayerXML.=' maxanchu='.$maxlongdescri*7;
+ $prelayerXML.=' maxanchu='.$maxlongdescri*6;
+ $prelayerXML.=' clase="menu_contextual"';
+ $prelayerXML.='>';
+ $finallayerXML=$prelayerXML.$layerXML;
+ return($finallayerXML);
+ }
+}
+//________________________________________________________________________________________________________
+function ContextualXMLSincronizacion($litambito,$ambito){
+ global $cmd;
+ global $TbMsg;
+ $maxlongdescri=0;
+ $rs=new Recordset;
+ $cmd->texto="SELECT idcomando,descripcion,pagina,gestor,funcion
+ FROM comandos
+ WHERE activo=1 AND submenu='Sincronización' AND aplicambito & ".$ambito.">0
+ ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $layerXML="";
+ $rs->Primero();
+ while (!$rs->EOF){
+ $descrip=$TbMsg["COMMAND_".$rs->campos["funcion"]];
+ if (empty ($descrip)) {
+ $descrip=$rs->campos["descripcion"];
+ }
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
+ $layerXML.=' textoitem="'.$descrip.'"';
+ $layerXML.='></ITEM>';
+ if ($maxlongdescri < strlen($descrip)) // Toma la Descripción de mayor longitud
+ $maxlongdescri=strlen($descrip);
+ $rs->Siguiente();
+ }
+ $layerXML.='</MENUCONTEXTUAL>';
+ $prelayerXML='<MENUCONTEXTUAL';
+ $prelayerXML.=' idctx="flo_sincronizacion_'.$litambito.'"';
+ $prelayerXML.=' maxanchu='.$maxlongdescri*6;
$prelayerXML.=' clase="menu_contextual"';
$prelayerXML.='>';
$finallayerXML=$prelayerXML.$layerXML;
return($finallayerXML);
}
}
-
//________________________________________________________________________________________________________
function ContextualXMLAsistentes($litambito,$ambito){
@@ -1007,7 +1080,7 @@ function ContextualXMLAsistentes($litambito,$ambito){
$layerXML.='</MENUCONTEXTUAL>';
$prelayerXML='<MENUCONTEXTUAL';
$prelayerXML.=' idctx="flo_asistentes_'.$litambito.'"';
- $prelayerXML.=' maxanchu='.$maxlongdescri*7;
+ $prelayerXML.=' maxanchu='.$maxlongdescri*6;
$prelayerXML.=' clase="menu_contextual"';
$prelayerXML.='>';
$finallayerXML=$prelayerXML.$layerXML;
diff --git a/admin/WebConsole/principal/imagenes.php b/admin/WebConsole/principal/imagenes.php
index ff2f372c..629e0803 100644
--- a/admin/WebConsole/principal/imagenes.php
+++ b/admin/WebConsole/principal/imagenes.php
@@ -1,13 +1,13 @@
<?
-// *************************************************************************************************************************************************
+// *******************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: Año 2009-2010
-// Fecha Última modificación: Agosto-2010
+// Fecha Última modificación: Noviembre-2012
// Nombre del fichero: imagenes.php
// Descripción :
// Administra imágenes de un determinado Centro
-// *************************************************************************************************************************************************
+// ********************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../clases/AdoPhp.php");
include_once("../clases/XmlPhp.php");
@@ -17,15 +17,18 @@ include_once("../includes/constantes.php");
include_once("../includes/CreaComando.php");
include_once("../idiomas/php/".$idioma."/imagenes_".$idioma.".php");
//________________________________________________________________________________________________________
+
$cmd=CreaComando($cadenaconexion);
if (!$cmd)
Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
else
- $arbolXML=CreaArbol($cmd,$idcentro); // Crea el arbol XML con todos las acciones registradas en el Centro
-// Creación del árbol
+ $arbolXML=CreaArbol($cmd,$idcentro); // Crea el código XML del arbol
+
+// Genera vista del árbol usando como origen de datos el XML anterior
$baseurlimg="../images/signos"; // Url de las imágenes de signo
$clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
$arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault,1,0,5);
+
//________________________________________________________________________________________________________
?>
<HTML>
@@ -46,72 +49,197 @@ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault,1,0,5);
<BODY OnContextMenu="return false">
<?
//________________________________________________________________________________________________________
-echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
-$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+echo $arbol->CreaArbolVistaXML(); // Muestra árbol en pantalla
// Crea contextual de las imágenes
- $XMLcontextual=CreacontextualXMLImagenes();
- echo $flotante->CreaMenuContextual($XMLcontextual);
- $XMLcontextual=ContextualXMLGruposImagenes(); // Grupos de imágenes
- echo $flotante->CreaMenuContextual($XMLcontextual);
- $XMLcontextual=CreacontextualXMLImagen(); // Imágenes
- echo $flotante->CreaMenuContextual($XMLcontextual);
+$flotante=new MenuContextual();
+
+$XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $LITAMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $AMBITO_IMAGENESMONOLITICAS,
+ $LITAMBITO_IMAGENESMONOLITICAS,
+ $IMAGENES_MONOLITICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESBASICAS,
+ $LITAMBITO_GRUPOSIMAGENESBASICAS,
+ $AMBITO_IMAGENESBASICAS,
+ $LITAMBITO_IMAGENESBASICAS,
+ $IMAGENES_BASICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreaContextualXMLTiposImagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $LITAMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $AMBITO_IMAGENESINCREMENTALES,
+ $LITAMBITO_IMAGENESINCREMENTALES,
+ $IMAGENES_INCREMENTALES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $LITAMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $AMBITO_IMAGENESMONOLITICAS,
+ $LITAMBITO_IMAGENESMONOLITICAS,
+ $IMAGENES_MONOLITICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESBASICAS,
+ $LITAMBITO_GRUPOSIMAGENESBASICAS,
+ $AMBITO_IMAGENESBASICAS,
+ $LITAMBITO_IMAGENESBASICAS,
+ $IMAGENES_BASICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreaContextualXMLGruposImagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $LITAMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $AMBITO_IMAGENESINCREMENTALES,
+ $LITAMBITO_IMAGENESINCREMENTALES,
+ $IMAGENES_INCREMENTALES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESMONOLITICAS,
+ $LITAMBITO_IMAGENESMONOLITICAS,
+ $IMAGENES_MONOLITICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESBASICAS,
+ $LITAMBITO_IMAGENESBASICAS,
+ $IMAGENES_BASICAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+$XMLcontextual=CreacontextualXMLImagen($AMBITO_IMAGENESINCREMENTALES,
+ $LITAMBITO_IMAGENESINCREMENTALES,
+ $IMAGENES_INCREMENTALES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
?>
</BODY>
</HTML>
<?
-// *************************************************************************************************************************************************
-// Devuelve una cadena con formato XML con toda la información de las imáges registradas en un Centro concreto
+// ********************************************************************************************************
+// Devuelve una cadena con formato XML con toda la información de las imáges registradas en un Centro
+// concreto
// Parametros:
// - cmd:Una comando ya operativo ( con conexión abierta)
// - idcentro: El identificador del centro
//________________________________________________________________________________________________________
-function CreaArbol($cmd,$idcentro){
+
+function CreaArbol($cmd,$idcentro)
+{
global $TbMsg;
- global $LITAMBITO_IMAGENES;
+
+ global $AMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $LITAMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $AMBITO_IMAGENESMONOLITICAS,
+ $LITAMBITO_IMAGENESMONOLITICAS,
+ $IMAGENES_MONOLITICAS;
+
+ global $AMBITO_GRUPOSIMAGENESBASICAS,
+ $LITAMBITO_GRUPOSIMAGENESBASICAS,
+ $AMBITO_IMAGENESBASICAS,
+ $LITAMBITO_IMAGENESBASICAS,
+ $IMAGENES_BASICAS;
+
+ global $AMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $LITAMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $AMBITO_IMAGENESINCREMENTALES,
+ $LITAMBITO_IMAGENESINCREMENTALES,
+ $IMAGENES_INCREMENTALES;
+
$cadenaXML='<RAIZ';
// Atributos
$cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
$cadenaXML.=' nodoid=Raiz'.$LITAMBITO_IMAGENES;
$cadenaXML.=' infonodo="'.$TbMsg[9].'"';
- $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_IMAGENES."'".')"';
$cadenaXML.='>';
- $cadenaXML.=SubarbolXML_grupos_imagenes($cmd,$idcentro,0);
+ $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $LITAMBITO_GRUPOSIMAGENESMONOLITICAS,
+ $AMBITO_IMAGENESMONOLITICAS,
+ $LITAMBITO_IMAGENESMONOLITICAS,
+ $IMAGENES_MONOLITICAS,
+ $TbMsg[11]);
+
+ $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESBASICAS,
+ $LITAMBITO_GRUPOSIMAGENESBASICAS,
+ $AMBITO_IMAGENESBASICAS,
+ $LITAMBITO_IMAGENESBASICAS,
+ $IMAGENES_BASICAS,
+ $TbMsg[12]);
+
+ $cadenaXML.=SubarbolXML_tiposimagenes($AMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $LITAMBITO_GRUPOSIMAGENESINCREMENTALES,
+ $AMBITO_IMAGENESINCREMENTALES,
+ $LITAMBITO_IMAGENESINCREMENTALES,
+ $IMAGENES_INCREMENTALES,
+ $TbMsg[13]);
$cadenaXML.='</RAIZ>';
return($cadenaXML);
}
//________________________________________________________________________________________________________
-function SubarbolXML_grupos_imagenes($cmd,$idcentro,$grupoid){
- global $LITAMBITO_GRUPOSIMAGENES;
- global $AMBITO_GRUPOSIMAGENES;
+
+function SubarbolXML_tiposimagenes($ambg,$litambg,$amb,$litamb,$tipo,$msg)
+{
+ $cadenaXML="";
+ $cadenaXML.='<TIPOSIMAGENES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' nodoid=SubRaiz-0';
+ $cadenaXML.=' infonodo='.$msg;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'TipoImagen_".$tipo."'".')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_gruposimagenes(0,$ambg,$litambg,$amb,$litamb,$tipo);
+ $cadenaXML.='</TIPOSIMAGENES>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+
+function SubarbolXML_gruposimagenes($grupoid,$ambg,$litambg,$amb,$litamb,$tipo)
+{
+ global $cmd;
+ global $idcentro;
+
$cadenaXML="";
$rs=new Recordset;
- $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSIMAGENES." ORDER BY nombregrupo";
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid
+ FROM grupos WHERE grupoid=".$grupoid."
+ AND idcentro=".$idcentro."
+ AND tipo=".$ambg."
+ ORDER BY nombregrupo";
$rs->Comando=&$cmd;
+ //echo $cmd->texto;
if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
$rs->Primero();
while (!$rs->EOF){
$cadenaXML.='<GRUPOSIMAGENES';
// Atributos
- $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSIMAGENES."'" .');"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$litambg."'" .');"';
$cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
$cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
- $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSIMAGENES.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.=' nodoid="'.$litambg."-".$rs->campos["idgrupo"];
$cadenaXML.='>';
- $cadenaXML.=SubarbolXML_grupos_imagenes($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.=SubarbolXML_gruposimagenes($rs->campos["idgrupo"],$ambg,$litambg,$amb,$litamb,$tipo);
$cadenaXML.='</GRUPOSIMAGENES>';
$rs->Siguiente();
}
$rs->Cerrar();
- $cadenaXML.=SubarbolXML_Imagenes($cmd,$idcentro,$grupoid);
+ $cadenaXML.=SubarbolXML_Imagenes($grupoid,$amb,$litamb,$tipo);
return($cadenaXML);
}
//________________________________________________________________________________________________________
-function SubarbolXML_Imagenes($cmd,$idcentro,$grupoid){
- global $LITAMBITO_IMAGENES;
+
+function SubarbolXML_Imagenes($grupoid,$amb,$litamb,$tipo)
+{
+ global $cmd;
+ global $idcentro;
+
$cadenaXML="";
$rs=new Recordset;
- $cmd->texto="SELECT idimagen,descripcion FROM imagenes WHERE idcentro=".$idcentro." AND grupoid=".$grupoid." ORDER BY descripcion";
+ $cmd->texto="SELECT idimagen,descripcion
+ FROM imagenes
+ WHERE idcentro=".$idcentro."
+ AND grupoid=".$grupoid."
+ AND tipo=".$tipo."
+ ORDER BY descripcion";
+ //echo "<br>".$cmd->texto;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
$rs->Primero();
@@ -120,8 +248,8 @@ function SubarbolXML_Imagenes($cmd,$idcentro,$grupoid){
// Atributos
$cadenaXML.=' imagenodo="../images/iconos/imagen.gif"';
$cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
- $cadenaXML.=' nodoid='.$LITAMBITO_IMAGENES.'-'.$rs->campos["idimagen"];
- $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_IMAGENES."'" .')"';
+ $cadenaXML.=' nodoid='.$litamb.'-'.$rs->campos["idimagen"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$litamb."'" .')"';
$cadenaXML.='>';
$cadenaXML.='</IMAGEN>';
$rs->Siguiente();
@@ -132,36 +260,28 @@ function SubarbolXML_Imagenes($cmd,$idcentro,$grupoid){
//________________________________________________________________________________________________________
//
// Menús Contextuales
+
//________________________________________________________________________________________________________
-function CreacontextualXMLImagenes(){
- global $AMBITO_IMAGENES;
- global $AMBITO_GRUPOSIMAGENES;
- global $LITAMBITO_GRUPOSIMAGENES;
- global $LITAMBITO_IMAGENES;
- global $TbMsg;
+function CreaContextualXMLTiposImagenes($ambg,$litambg,$amb,$litamb,$tipo)
+{
+ global $TbMsg;
+
$layerXML='<MENUCONTEXTUAL';
- $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_IMAGENES.'"';
- $layerXML.=' maxanchu=170';
+ $layerXML.=' idctx="TipoImagen_'.$tipo.'"';
+ $layerXML.=' maxanchu=175';
$layerXML.=' swimg=1';
$layerXML.=' clase="menu_contextual"';
$layerXML.='>';
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSIMAGENES.',' ."'".$LITAMBITO_GRUPOSIMAGENES."'".')"';
+ $layerXML.=' alpulsar="insertar_grupos('.$ambg.',' ."'".$litambg."'". ')"';
$layerXML.=' imgitem="../images/iconos/carpeta.gif"';
$layerXML.=' textoitem='.$TbMsg[0];
$layerXML.='></ITEM>';
-
- $wLeft=140;
- $wTop=115;
- $wWidth=550;
- $wHeight=300;
- $wpages="../propiedades/propiedades_imagenes.php";
- $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
-
+
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' alpulsar="insertar_imagen(\''.$litamb.'\','.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/imagen.gif"';
$layerXML.=' textoitem='.$TbMsg[1];
$layerXML.='></ITEM>';
@@ -172,7 +292,7 @@ function CreacontextualXMLImagenes(){
$wParam="../gestores/gestor_imagenes.php";
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_IMAGENES.')"';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/colocar.gif"';
$layerXML.=' textoitem='.$TbMsg[2];
$layerXML.='></ITEM>';
@@ -180,35 +300,27 @@ function CreacontextualXMLImagenes(){
$layerXML.='</MENUCONTEXTUAL>';
return($layerXML);
}
-//__________________________________________________________________________________________
-function ContextualXMLGruposImagenes(){
- global $AMBITO_IMAGENES;
- global $AMBITO_GRUPOSIMAGENES;
- global $LITAMBITO_GRUPOSIMAGENES;
+//________________________________________________________________________________________________________
+
+function CreaContextualXMLGruposImagenes($ambg,$litambg,$amb,$litamb,$tipo)
+{
global $TbMsg;
$layerXML='<MENUCONTEXTUAL';
- $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSIMAGENES.'"';
+ $layerXML.=' idctx="flo_'.$litambg.'"';
$layerXML.=' maxanchu=175';
$layerXML.=' swimg=1';
$layerXML.=' clase="menu_contextual"';
$layerXML.='>';
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSIMAGENES.',' ."'".$LITAMBITO_GRUPOSIMAGENES."'". ')"';
+ $layerXML.=' alpulsar="insertar_grupos('.$ambg.',' ."'".$litambg."'". ')"';
$layerXML.=' imgitem="../images/iconos/carpeta.gif"';
$layerXML.=' textoitem='.$TbMsg[0];
$layerXML.='></ITEM>';
- $wLeft=140;
- $wTop=115;
- $wWidth=550;
- $wHeight=290;
- $wpages="../propiedades/propiedades_imagenes.php";
- $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
-
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' alpulsar="insertar_imagen(\''.$litamb.'\','.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/imagen.gif"';
$layerXML.=' textoitem='.$TbMsg[1];
$layerXML.='></ITEM>';
@@ -219,7 +331,7 @@ function ContextualXMLGruposImagenes(){
$wParam="../gestores/gestor_imagenes.php";
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_IMAGENES.')"';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/colocar.gif"';
$layerXML.=' textoitem='.$TbMsg[2];
$layerXML.='></ITEM>';
@@ -242,25 +354,18 @@ function ContextualXMLGruposImagenes(){
$layerXML.='</MENUCONTEXTUAL>';
return($layerXML);
}
-//---------------------------------------------------------------------------------------------------------------------------
-function CreacontextualXMLImagen(){
- global $AMBITO_IMAGENES;
- global $LITAMBITO_IMAGENES;
+//__________________________________________________________________________________________
+
+function CreacontextualXMLImagen($amb,$litamb,$tipo)
+{
global $TbMsg;
$layerXML='<MENUCONTEXTUAL';
- $layerXML.=' idctx="flo_'.$LITAMBITO_IMAGENES.'"';
+ $layerXML.=' idctx="flo_'.$litamb.'"';
$layerXML.=' maxanchu=150';
$layerXML.=' swimg=1';
$layerXML.='>';
-/*
- $layerXML.='<ITEM';
- $layerXML.=' alpulsar="insertar_imagenincremental()"';
- $layerXML.=' imgitem="../images/iconos/incremental.gif"';
- $layerXML.=' textoitem='.$TbMsg[10];
- $layerXML.='></ITEM>';
-*/
$layerXML.='<ITEM';
$layerXML.=' alpulsar="muestra_informacion()"';
$layerXML.=' textoitem='.$TbMsg[5];
@@ -271,7 +376,7 @@ function CreacontextualXMLImagen(){
$layerXML.='</SEPARADOR>';
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="mover('.$AMBITO_IMAGENES.')"';
+ $layerXML.=' alpulsar="mover('.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/mover.gif"';
$layerXML.=' textoitem='.$TbMsg[6];
$layerXML.='></ITEM>';
@@ -279,21 +384,14 @@ function CreacontextualXMLImagen(){
$layerXML.='<SEPARADOR>';
$layerXML.='</SEPARADOR>';
- $wLeft=140;
- $wTop=115;
- $wWidth=550;
- $wHeight=290;
- $wpages="../propiedades/propiedades_imagenes.php";
- $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
-
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' alpulsar="modificar_imagen('.$tipo.')"';
$layerXML.=' textoitem='.$TbMsg[7];
$layerXML.=' imgitem="../images/iconos/propiedades.gif"';
$layerXML.='></ITEM>';
$layerXML.='<ITEM';
- $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' alpulsar="eliminar_imagen('.$tipo.')"';
$layerXML.=' imgitem="../images/iconos/eliminar.gif"';
$layerXML.=' textoitem='.$TbMsg[8];
$layerXML.='></ITEM>';
diff --git a/admin/WebConsole/propiedades/propiedades_grupos.php b/admin/WebConsole/propiedades/propiedades_grupos.php
index fa3aaf42..3c974daa 100644
--- a/admin/WebConsole/propiedades/propiedades_grupos.php
+++ b/admin/WebConsole/propiedades/propiedades_grupos.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -36,6 +36,7 @@ if (isset($_GET["iduniversidad"])) $iduniversidad=$_GET["iduniversidad"];
if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
if (isset($_GET["identificador"])) $idgrupo=$_GET["identificador"];
+
//________________________________________________________________________________________________________
$cmd=CreaComando($cadenaconexion); // Crea objeto comando
if (!$cmd)
@@ -70,10 +71,18 @@ switch($literaltipo){
$urlimg='../images/iconos/carpeta.gif';
$textambito=$TbMsg[10];
break;
- case $LITAMBITO_GRUPOSIMAGENES :
+ case $LITAMBITO_GRUPOSIMAGENESMONOLITICAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[23];
+ break;
+ case $LITAMBITO_GRUPOSIMAGENESBASICAS :
$urlimg='../images/iconos/carpeta.gif';
- $textambito=$TbMsg[11];
+ $textambito=$TbMsg[24];
break;
+ case $LITAMBITO_GRUPOSIMAGENESINCREMENTALES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[25];
+ break;
case $LITAMBITO_GRUPOSCOMPONENTESHARD :
$urlimg='../images/iconos/carpeta.gif';
$textambito=$TbMsg[12];
@@ -145,7 +154,7 @@ switch($literaltipo){
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
<TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
- <?if ($opcion==$op_eliminacion)
+ <?php if ($opcion==$op_eliminacion)
echo '<TD style="width:300">'.$nombregrupo.'</TD>';
else
echo '<TD><INPUT class="formulariodatos" name=nombregrupo style="width:320" type=text value="'.$nombregrupo.'"></TD>';?>
@@ -153,7 +162,7 @@ switch($literaltipo){
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<TR>
<TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
- <?if ($opcion==$op_eliminacion)
+ <?php if ($opcion==$op_eliminacion)
echo '<TD>'.$comentarios.'</TD>';
else
echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=60>'.$comentarios.'</TEXTAREA></TD>';
@@ -162,14 +171,14 @@ switch($literaltipo){
<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
</TABLE>
</FORM>
-<?
+<?php
//________________________________________________________________________________________________________
include_once("../includes/opcionesbotonesop.php");
//________________________________________________________________________________________________________
?>
</BODY>
</HTML>
-<?
+<?php
//________________________________________________________________________________________________________
// Recupera los datos de una grupo
// Parametros:
@@ -203,3 +212,4 @@ function TomaPropiedades($cmd,$id){
return(false);
}
?>
+
diff --git a/admin/WebConsole/propiedades/propiedades_imagenes.php b/admin/WebConsole/propiedades/propiedades_imagenes.php
index dca4ca6c..32cb3c49 100644
--- a/admin/WebConsole/propiedades/propiedades_imagenes.php
+++ b/admin/WebConsole/propiedades/propiedades_imagenes.php
@@ -1,5 +1,5 @@
-<?
-// *************************************************************************************************************************************************
+<?php
+// ********************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: Año 2009-2010
@@ -7,32 +7,40 @@
// Nombre del fichero: propiedades_imagenes.php
// Descripción :
// Presenta el formulario de captura de datos de una imagen para insertar,modificar y eliminar
-// *************************************************************************************************************************************************
+// *******************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../includes/opciones.php");
include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
include_once("../clases/AdoPhp.php");
include_once("../includes/HTMLSELECT.php");
+include_once("../includes/TomaDato.php");
include_once("../idiomas/php/".$idioma."/propiedades_imagenes_".$idioma.".php");
//________________________________________________________________________________________________________
+
$opcion=0;
$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
//________________________________________________________________________________________________________
+
$idimagen=0;
$nombreca="";
+$ruta="";
$descripcion="";
$idperfilsoft=0;
$comentarios="";
-$codpar=131; // Por defecto: LINUX (83)
-$numpar="";
-$idrepositorio=1;
$grupoid=0;
+$litamb="";
+$tipoimg=0;
+
if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
if (isset($_GET["idimagen"])) $idimagen=$_GET["idimagen"];
if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
if (isset($_GET["identificador"])) $idimagen=$_GET["identificador"];
+if (isset($_GET["litamb"])) $litamb=$_GET["litamb"];
+if (isset($_GET["tipoimg"])) $tipoimg=$_GET["tipoimg"];
//________________________________________________________________________________________________________
+
$cmd=CreaComando($cadenaconexion); // Crea objeto comando
if (!$cmd)
Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
@@ -49,103 +57,165 @@ if ($opcion!=$op_alta){
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<LINK rel="stylesheet" type="text/css" href="../estilos.css">
<SCRIPT language="javascript" src="../jscripts/validators.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
<SCRIPT language="javascript" src="../jscripts/propiedades_imagenes.js"></SCRIPT>
<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_imagenes_'.$idioma.'.js"></SCRIPT>'?>
</HEAD>
<BODY>
-<DIV align=center>
-<FORM name="fdatos" action="../gestores/gestor_imagenes.php" method="post">
- <INPUT type=hidden name=opcion value=<?=$opcion?>>
- <INPUT type=hidden name=idimagen value=<?=$idimagen?>>
- <INPUT type=hidden name=grupoid value=<?=$grupoid?>>
- <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
- <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_imagenes.php" method="post">
+ <INPUT type="hidden" name="opcion" value="<?=$opcion?>">
+ <INPUT type="hidden" name="idimagen" value="<?=$idimagen?>">
+ <INPUT type="hidden" name="grupoid" value="<?=$grupoid?>">
+ <INPUT type="hidden" name="tipoimg" value="<?=$tipoimg?>">
+ <INPUT type="hidden" name="litamb" value="<?=$litamb?>">
+ <?
+ switch($tipoimg){
+ case $IMAGENES_MONOLITICAS:
+ $lit=$TbMsg[4];
+ break;
+ case
+ $IMAGENES_BASICAS:
+ $lit=$TbMsg[12];
+ break;
+ case $IMAGENES_INCREMENTALES:
+ $lit=$TbMsg[13];
+ }
+
+ ?>
+ <P align=center class=cabeceras><?echo $lit?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN>
+ </P>
+
<TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
- <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- <TR>
+ <!-------------------------------------------------------------------------------------->
+ <TR>
<TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
- <?if ($opcion==$op_eliminacion)
- echo '<TD style="width:150">'.$nombreca.'</TD>';
+ <?if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<TD style="width:150">'.$nombreca.'
+ &nbsp;<INPUT type="hidden" name="nombreca" value="'.$nombreca.'"></TD>';
else
- echo '<TD><INPUT class="formulariodatos" name=nombreca style="width:150" type=text value="'.$nombreca.'"></TD>';?>
+ echo '<TD><INPUT class="formulariodatos" name=nombreca style="width:150" type=text value="'.$nombreca.'"></TH>';?>
</TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- <TR>
+ <!-------------------------------------------------------------------------------------->
+ <TR>
<TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
<?if ($opcion==$op_eliminacion)
echo '<TD style="width:300">'.$descripcion.'</TD>';
else
- echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:300" type=text value="'.$descripcion.'"></TD>';?>
+ echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:350" type=text value="'.$descripcion.'"></TH>';?>
</TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <!-------------------------------------------------------------------------------------->
+ <?if($tipoimg==$IMAGENES_INCREMENTALES){?>
<TR>
- <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <TH align=center>&nbsp;<?echo $TbMsg[14]?>&nbsp;</TD>
<?
- if ($opcion==$op_eliminacion)
- echo '<TD>'.$perfilsoft.'</TD>';
+ if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<TD>'.TomaDato($cmd,$idcentro,'imagenes',$imagenid,'imagenid','descripcion').'
+ &nbsp;<INPUT type="hidden" name="imagenid" value="'.$imagenid.'"></TD>';
else
- echo '<TD>'.HTMLSELECT($cmd,$idcentro,'perfilessoft',$idperfilsoft,'idperfilsoft','descripcion',300).'</TD>';
+ echo '<TD>'.HTMLSELECT($cmd,$idcentro,'imagenes',$imagenid,'idimagen','descripcion',300,"","","
+ tipo=".$IMAGENES_BASICAS,"imagenid").'</TD>';
?>
</TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <?}?>
+ <!-------------------------------------------------------------------------------------->
+ <?if($tipoimg!=$IMAGENES_INCREMENTALES){?>
<TR>
<TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
<?
- if ($opcion==$op_eliminacion)
- echo '<TD>'.$numpar.'</TD>';
+ if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<TD>'.$numpar.'
+ &nbsp;<INPUT type="hidden" name="numpar" value="'.$numpar.'"></TD>';
else
- echo '<TD><INPUT class="formulariodatos" name=numpar style="width:30" type=text value="'.$numpar.'"></TD>';
+ echo '<TD><INPUT class="formulariodatos" name=numpar style="width:30" type=text value="'.$numpar.'"></TH>';
?>
</TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <!-------------------------------------------------------------------------------------->
<tr>
<th align="center">&nbsp;<?php echo $TbMsg[9]?>&nbsp;</th>
<?php
- if ($opcion==$op_eliminacion)
- echo '<td>'.$tipopar.'</td>';
+ if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<td>'.$tipopar.'
+ &nbsp;<INPUT type="hidden" name="codpar" value="'.$codpar.'"></TD>';
else
echo '<td>'.HTMLSELECT($cmd,0,'tipospar',$codpar,'codpar',"CONCAT(tipopar,' (',HEX(codpar),')')",170,"","","clonable=1").'</td>';
?>
</tr>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <!-------------------------------------------------------------------------------------->
<TR>
<TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
<?
- if ($opcion==$op_eliminacion)
- echo '<TD>'.$nombrerepositorio.'</TD>';
+ if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<TD>'.$nombrerepositorio.'
+ &nbsp;<INPUT type="hidden" name="idrepositorio" value="'.$idrepositorio.'"></TD>';
else
echo '<TD>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio',300).'</TD>';
?>
- </TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
- <TR>
+ </TR>
+ <!-------------------------------------------------------------------------------------->
+ <?if($tipoimg==$IMAGENES_BASICAS){?>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[16]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion || !empty($idperfilsoft))
+ echo '<TD>'.$ruta.'
+ &nbsp;<INPUT type="hidden" name="ruta" value="'.$ruta.'"></TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=ruta style="width:350" type=text value="'.$ruta.'"></TH>';?>
+ </TR>
+ <?}?>
+ <!-------------------------------------------------------------------------------------->
+ <TR>
<TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
<?if ($opcion==$op_eliminacion)
echo '<TD>'.$comentarios.'</TD>';
else
- echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=55>'.$comentarios.'</TEXTAREA></TD>';
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=55>'.$comentarios.'</TEXTAREA></TH>';
?>
- </TR>
-<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TR>
+ <!-------------------------------------------------------------------------------------->
+
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?
+ echo '<TD>'.$perfilsoft.'
+ &nbsp;<INPUT type="hidden" name="idperfilsoft" value="'.$idperfilsoft.'"></TH>';
+
+ ?>
+ </TR>
+ <?}?>
+ <!-------------------------------------------------------------------------------------->
</TABLE>
</FORM>
+
<?
+if (!empty($idperfilsoft)){ // Nota a pie de página indicando que cuando la imagen tiene perfilsoft no pueden modificarse ciertos campos
+ echo '
+ <DIV id="Layer_nota" align=center >
+ <SPAN align=center class=notas><I>'.$TbMsg[15].'</I></SPAN>
+ </DIV><br>';
+}
//________________________________________________________________________________________________________
+
include_once("../includes/opcionesbotonesop.php");
//________________________________________________________________________________________________________
+
?>
</BODY>
</HTML>
<?
//________________________________________________________________________________________________________
+
// Recupera los datos de una imagen
// Parametros:
// - cmd: Una comando ya operativo (con conexión abierta)
// - id: El identificador de la imagen
//________________________________________________________________________________________________________
+
function TomaPropiedades($cmd,$idmagen){
global $nombreca;
+ global $ruta;
global $descripcion;
global $comentarios;
global $idperfilsoft;
@@ -155,18 +225,21 @@ function TomaPropiedades($cmd,$idmagen){
global $nombrerepositorio;
global $idrepositorio;
global $perfilsoft;
+ global $imagenid;
$rs=new Recordset;
- $cmd->texto="SELECT imagenes.*,tipospar.tipopar,repositorios.nombrerepositorio,perfilessoft.descripcion as perfilsoft FROM imagenes
- LEFT OUTER JOIN tipospar ON tipospar.codpar=imagenes.codpar
- LEFT OUTER JOIN repositorios ON repositorios.idrepositorio=imagenes.idrepositorio
- LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=imagenes.idperfilsoft
- WHERE imagenes.idimagen=".$idmagen;
+ $cmd->texto="SELECT imagenes.*,tipospar.tipopar,repositorios.nombrerepositorio,perfilessoft.descripcion as perfilsoft
+ FROM imagenes
+ LEFT OUTER JOIN tipospar ON tipospar.codpar=imagenes.codpar
+ LEFT OUTER JOIN repositorios ON repositorios.idrepositorio=imagenes.idrepositorio
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=imagenes.idperfilsoft
+ WHERE imagenes.idimagen=".$idmagen;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return(0); // Error al abrir recordset
$rs->Primero();
if (!$rs->EOF){
$nombreca=$rs->campos["nombreca"];
+ $ruta=$rs->campos["ruta"];
$descripcion=$rs->campos["descripcion"];
$idperfilsoft=$rs->campos["idperfilsoft"];
$comentarios=$rs->campos["comentarios"];
@@ -176,6 +249,7 @@ function TomaPropiedades($cmd,$idmagen){
$idrepositorio=$rs->campos["idrepositorio"];
$nombrerepositorio=$rs->campos["nombrerepositorio"];
$perfilsoft=$rs->campos["perfilsoft"];
+ $imagenid=$rs->campos["imagenid"];
$rs->Cerrar();
return(true);
}
diff --git a/admin/WebConsole/varios/informacion_acciones.php b/admin/WebConsole/varios/informacion_acciones.php
index 06afe479..b2223a00 100644
--- a/admin/WebConsole/varios/informacion_acciones.php
+++ b/admin/WebConsole/varios/informacion_acciones.php
@@ -1,4 +1,4 @@
-<?
+<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
@@ -54,7 +54,7 @@ $arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titu
<SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
</HEAD>
<BODY>
- <?
+ <?php
switch($tipoaccion){
case $AMBITO_PROCEDIMIENTOS:
$urlimg="../images/iconos/procedimiento.gif";
@@ -68,13 +68,13 @@ $arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titu
break;
}
?>
- <P align=center class=cabeceras><?echo $litcab?><BR>
- <SPAN align=center class=subcabeceras><?echo $litsub?></SPAN>&nbsp;<IMG src="../images/iconos/acciones.gif"><BR>
- <IMG src="<? echo $urlimg?>"><SPAN class=presentaciones>&nbsp;&nbsp;<?echo $descripcionaccion?></SPAN></P>
- <?echo urldecode($arbol->CreaArbolVistaXml()); // Crea arbol de configuraciones?>
+ <P align=center class=cabeceras><?php echo $litcab?><BR>
+ <SPAN align=center class=subcabeceras><?php echo $litsub?></SPAN>&nbsp;<IMG src="../images/iconos/acciones.gif"><BR>
+ <IMG src="<?php echo $urlimg?>"><SPAN class=presentaciones>&nbsp;&nbsp;<?echo $descripcionaccion?></SPAN></P>
+ <?php echo urldecode($arbol->CreaArbolVistaXml()); // Crea arbol de configuraciones?>
</BODY>
</HTML>
-<?
+<?php
/********************************************************************************************************
Devuelve una cadena con formato XML de toda la Información de los procedimientos o tareas
softwares
@@ -190,7 +190,6 @@ function SubarbolXML_comandos($descricomando,$parametros,$visuparametros)
if(isset($tbParametrosValor[$nemo])){
for($j=0;$j<sizeof($tbParametrosValor[$nemo])-1;$j++){
$descripcion=$tbParametrosValor[$nemo]["descripcion"];
- $valor=$tbParametrosValor[$nemo][$j]["valor"];
if(sizeof($tbParametrosValor[$nemo])>2)
$valor=$tbParametrosValor[$nemo][$j]["valor"];
else
diff --git a/doc/CHANGELOG.es.txt b/doc/CHANGELOG.es.txt
index e713ea14..be2b4684 100644
--- a/doc/CHANGELOG.es.txt
+++ b/doc/CHANGELOG.es.txt
@@ -5,6 +5,9 @@ LISTA DE CAMBIOS CHANGELOG.es.ext
Lista de cambios incluidos en OpenGnSys 1.0.5
---------------------------------------------
+Tickets resueltos en módulo OpenGnSys Client:
+#568 Menú por defecto para los clientes incluye acceso a sistemas operativos
+
Tickets resueltos en módulo OpenGnSys Server:
#567 Los comandos se ejecutan 2 veces si se incluyen en la cola de acciones
diff --git a/repoman/etc/rsyncd.conf b/repoman/etc/rsyncd.conf
new file mode 100644
index 00000000..cc6f7c14
--- /dev/null
+++ b/repoman/etc/rsyncd.conf
@@ -0,0 +1,14 @@
+max connections = 2
+log file = /var/log/rsync.log
+timeout = 300
+
+ [imagenes]
+ comment = Carpeta de imagenes
+ path = /opt/opengnsys/client/images
+ read only = no
+ list = yes
+ uid = root
+ gid = root
+ auth users = usuog
+ secrets file = /etc/rsyncd.secrets
+
diff --git a/repoman/etc/rsyncd.secrets b/repoman/etc/rsyncd.secrets
new file mode 100644
index 00000000..3724a2f6
--- /dev/null
+++ b/repoman/etc/rsyncd.secrets
@@ -0,0 +1 @@
+usuog:passusuog