summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-10-23 09:34:04 +0000
committeralonso <alonso@us.es>2010-10-23 09:34:04 +0000
commit3ec149cb19165453434984c88e8ba03f648e578e (patch)
tree9d315751684c2c27ed66ad645aeea52ce9027859 /admin
parent550b680d176cbccfecfe35fad440dd570d90ba5b (diff)
git-svn-id: https://opengnsys.es/svn/trunk@1314 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin')
-rw-r--r--admin/Database/ogAdmBD-0.9.1-0.9.2pre.sql8
-rw-r--r--admin/Database/ogAdmBD.sql915
-rw-r--r--admin/Interface/Apagar2
-rw-r--r--admin/Interface/Configurar81
-rw-r--r--admin/Interface/ConsolaRemota3
-rw-r--r--admin/Interface/CrearImagen12
-rw-r--r--admin/Interface/EjecutarScript3
-rw-r--r--admin/Interface/InventarioHardware3
-rw-r--r--admin/Interface/InventarioSoftware3
-rw-r--r--admin/Interface/Reiniciar2
-rw-r--r--admin/Interface/RestaurarImagen12
-rw-r--r--admin/Interface/getConfiguration45
-rw-r--r--admin/Interface/getIpAddress2
-rw-r--r--admin/Interface/procesaCache2
-rw-r--r--admin/Sources/Clients/ogAdmClient/Makefile34
-rw-r--r--admin/Sources/Clients/ogAdmClient/ogAdmClient.cfg6
-rw-r--r--admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c1771
-rw-r--r--admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h121
-rw-r--r--admin/Sources/Includes/Database.cpp198
-rw-r--r--admin/Sources/Includes/Database.h60
-rw-r--r--admin/Sources/Includes/ogAdmLib.c1099
-rw-r--r--admin/Sources/Includes/ogAdmLib.h308
-rw-r--r--admin/Sources/Services/ogAdmAgent/Makefile43
-rw-r--r--admin/Sources/Services/ogAdmAgent/ogAdmAgent.cfg7
-rw-r--r--admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp905
-rw-r--r--admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.h81
-rw-r--r--admin/Sources/Services/ogAdmBoot/Makefile43
-rw-r--r--admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg8
-rw-r--r--admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp1264
-rw-r--r--admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h262
-rw-r--r--admin/Sources/Services/ogAdmRepo/Makefile43
-rw-r--r--admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg3
-rw-r--r--admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp177
-rw-r--r--admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h41
-rw-r--r--admin/Sources/Services/ogAdmServer/Makefile43
-rw-r--r--admin/Sources/Services/ogAdmServer/ogAdmServer.cfg6
-rw-r--r--admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp3027
-rw-r--r--admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h118
-rw-r--r--admin/WebConsole/acceso.php21
-rw-r--r--admin/WebConsole/acceso_esp.php117
-rw-r--r--admin/WebConsole/barramenu.php175
-rw-r--r--admin/WebConsole/clases/AdoPhp.php676
-rw-r--r--admin/WebConsole/clases/ArbolVistaXML.php272
-rw-r--r--admin/WebConsole/clases/EncripDescrip.php55
-rw-r--r--admin/WebConsole/clases/MenuContextual.php164
-rw-r--r--admin/WebConsole/clases/SockHidra.php183
-rw-r--r--admin/WebConsole/clases/XmlPhp.php285
-rw-r--r--admin/WebConsole/clases/jscripts/ArbolVistaXML.js574
-rw-r--r--admin/WebConsole/clases/jscripts/HttpLib.js59
-rw-r--r--admin/WebConsole/clases/jscripts/MenuContextual.js394
-rw-r--r--admin/WebConsole/comandos/Apagar.php72
-rw-r--r--admin/WebConsole/comandos/Arrancar.php71
-rw-r--r--admin/WebConsole/comandos/Comando.php72
-rw-r--r--admin/WebConsole/comandos/Configurar.php260
-rw-r--r--admin/WebConsole/comandos/CrearImagen.php212
-rw-r--r--admin/WebConsole/comandos/EjecutarScripts.php81
-rw-r--r--admin/WebConsole/comandos/IniciarSesion.php153
-rw-r--r--admin/WebConsole/comandos/InventarioHardware.php72
-rw-r--r--admin/WebConsole/comandos/InventarioSoftware.php122
-rw-r--r--admin/WebConsole/comandos/Reiniciar.php71
-rw-r--r--admin/WebConsole/comandos/RestaurarImagen.php269
-rw-r--r--admin/WebConsole/comandos/gestores/gestor_Comandos.php285
-rw-r--r--admin/WebConsole/comandos/includes/capturaacciones.php31
-rw-r--r--admin/WebConsole/comandos/includes/formularioacciones.php20
-rw-r--r--admin/WebConsole/comandos/includes/opcionesacciones.php93
-rw-r--r--admin/WebConsole/comandos/jscripts/Apagar.js24
-rw-r--r--admin/WebConsole/comandos/jscripts/Arrancar.js24
-rw-r--r--admin/WebConsole/comandos/jscripts/Comando.js24
-rw-r--r--admin/WebConsole/comandos/jscripts/Configurar.js174
-rw-r--r--admin/WebConsole/comandos/jscripts/CrearImagen.js70
-rw-r--r--admin/WebConsole/comandos/jscripts/EjecutarScripts.js34
-rw-r--r--admin/WebConsole/comandos/jscripts/IniciarSesion.js47
-rw-r--r--admin/WebConsole/comandos/jscripts/InventarioHardware.js24
-rw-r--r--admin/WebConsole/comandos/jscripts/InventarioSoftware.js44
-rw-r--r--admin/WebConsole/comandos/jscripts/Reiniciar.js24
-rw-r--r--admin/WebConsole/comandos/jscripts/RestaurarImagen.js95
-rw-r--r--admin/WebConsole/comandos/jscripts/comunescomandos.js190
-rw-r--r--admin/WebConsole/controlacceso.php19
-rw-r--r--admin/WebConsole/controlpostacceso.php185
-rw-r--r--admin/WebConsole/dirphp.php63
-rw-r--r--admin/WebConsole/estilos.css395
-rw-r--r--admin/WebConsole/frames.php34
-rw-r--r--admin/WebConsole/gestores/gestor_accionmenu.php145
-rw-r--r--admin/WebConsole/gestores/gestor_administradores_centros.php77
-rw-r--r--admin/WebConsole/gestores/gestor_administradores_usuarios.php80
-rw-r--r--admin/WebConsole/gestores/gestor_aulas.php264
-rw-r--r--admin/WebConsole/gestores/gestor_centros.php160
-rw-r--r--admin/WebConsole/gestores/gestor_colasacciones.php178
-rw-r--r--admin/WebConsole/gestores/gestor_componentehardwares.php169
-rw-r--r--admin/WebConsole/gestores/gestor_componentesoftwares.php173
-rw-r--r--admin/WebConsole/gestores/gestor_ejecutaracciones.php300
-rw-r--r--admin/WebConsole/gestores/gestor_entidades.php163
-rw-r--r--admin/WebConsole/gestores/gestor_entornos.php86
-rw-r--r--admin/WebConsole/gestores/gestor_grupos.php273
-rw-r--r--admin/WebConsole/gestores/gestor_gruposordenadores.php165
-rw-r--r--admin/WebConsole/gestores/gestor_imagenes.php182
-rw-r--r--admin/WebConsole/gestores/gestor_inclusionacciones.php175
-rw-r--r--admin/WebConsole/gestores/gestor_menus.php209
-rw-r--r--admin/WebConsole/gestores/gestor_ordenadores.php210
-rw-r--r--admin/WebConsole/gestores/gestor_ordenadorestandar.php136
-rw-r--r--admin/WebConsole/gestores/gestor_perfilcomponente_hard.php77
-rw-r--r--admin/WebConsole/gestores/gestor_perfilcomponente_soft.php77
-rw-r--r--admin/WebConsole/gestores/gestor_perfilhardwares.php163
-rw-r--r--admin/WebConsole/gestores/gestor_perfilsoftwares.php159
-rw-r--r--admin/WebConsole/gestores/gestor_procedimientos.php159
-rw-r--r--admin/WebConsole/gestores/gestor_procedimientoscomandos.php71
-rw-r--r--admin/WebConsole/gestores/gestor_programaciones.php210
-rw-r--r--admin/WebConsole/gestores/gestor_repositorios.php187
-rw-r--r--admin/WebConsole/gestores/gestor_reservas.php200
-rw-r--r--admin/WebConsole/gestores/gestor_tareas.php312
-rw-r--r--admin/WebConsole/gestores/gestor_tareascomandos.php122
-rw-r--r--admin/WebConsole/gestores/gestor_tipohardwares.php150
-rw-r--r--admin/WebConsole/gestores/gestor_universidades.php97
-rw-r--r--admin/WebConsole/gestores/gestor_usuarios.php211
-rw-r--r--admin/WebConsole/gestores/relaciones/aulas_eliminacion.php43
-rw-r--r--admin/WebConsole/gestores/relaciones/centros_eliminacion.php41
-rw-r--r--admin/WebConsole/gestores/relaciones/entidades_eliminacion.php41
-rw-r--r--admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php44
-rw-r--r--admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php42
-rw-r--r--admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php43
-rw-r--r--admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php46
-rw-r--r--admin/WebConsole/gestores/relaciones/menus_eliminacion.php43
-rw-r--r--admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php44
-rw-r--r--admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php47
-rw-r--r--admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php46
-rw-r--r--admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php51
-rw-r--r--admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php43
-rw-r--r--admin/WebConsole/gestores/relaciones/reservas_eliminacion.php43
-rw-r--r--admin/WebConsole/gestores/relaciones/softwares_eliminacion.php42
-rw-r--r--admin/WebConsole/gestores/relaciones/tareas_eliminacion.php52
-rw-r--r--admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php51
-rw-r--r--admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php44
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/acciones_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/accionmenu_eng.js13
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/colasacciones_eng.js28
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js15
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/crearperfilsoftware_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/crearsoftincremental_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/particionaryformatear_eng.js15
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/comunes_eng.js14
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/ejecutarprocedimientos_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/hardwares_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/imagenes_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/imagenincremental_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/incrementalcomponente_soft_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/informacion_menus_eng.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/menus_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_hard_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_soft_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/procedimientoscomandos_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/programaciones_eng.js21
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js11
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_centros_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_componentehardwares_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_componentesoftwares_eng.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_entidades_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_grupos_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_imagenes_eng.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_ordenadores_eng.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilhardwares_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilsoftwares_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_procedimientos_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_reservas_eng.js11
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_softincrementales_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_tareas_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_tipohardwares_eng.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_trabajos_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_universidades_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/propiedades_usuarios_eng.js11
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/reservas_eng.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/softwares_eng.js6
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/eng/trabajostareas_eng.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/acciones_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/accionmenu_esp.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/administradores_centros_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/administradores_usuarios_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/aulas_esp.js19
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/colasacciones_esp.js17
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js14
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagen_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/crearperfilsoftware_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/iniciarsesion_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/inventariosoftware_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/particionaryformatear_esp.js15
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js13
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/comunes_esp.js14
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/consolaremota_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/ejecutaracciones_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/hardwares_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/imagenes_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/imagenincremental_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/inclusionacciones_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/incrementalcomponente_soft_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/informacion_menus_esp.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/menus_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_hard_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_soft_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/procedimientoscomandos_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/programaciones_esp.js21
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_aulas_esp.js11
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_centros_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_componentehardwares_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_componentesoftwares_esp.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_entidades_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_grupos_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_ordenadores_esp.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilhardwares_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilsoftwares_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_procedimientos_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_repositorios_esp.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_reservas_esp.js11
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_softincrementales_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_tareas_esp.js9
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_tipohardwares_esp.js8
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_trabajos_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_universidades_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/propiedades_usuarios_esp.js12
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/reservas_esp.js7
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/softwares_esp.js6
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/tareascomandos_esp.js10
-rw-r--r--admin/WebConsole/idiomas/javascripts/esp/trabajostareas_esp.js10
-rw-r--r--admin/WebConsole/idiomas/php/cat/acciomenu_cat.txt23
-rw-r--r--admin/WebConsole/idiomas/php/cat/accions_cat.txt41
-rw-r--r--admin/WebConsole/idiomas/php/cat/actualitzar_cat.txt10
-rw-r--r--admin/WebConsole/idiomas/php/cat/administracio_cat.txt19
-rw-r--r--admin/WebConsole/idiomas/php/cat/aules_cat.php46
-rw-r--r--admin/WebConsole/idiomas/php/cat/barramenu_cat.txt18
-rw-r--r--admin/WebConsole/idiomas/php/cat/configuracioaula_cat.txt23
-rw-r--r--admin/WebConsole/idiomas/php/cat/configuraciogrupordinador_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/configuracioordinador_cat.txt19
-rw-r--r--admin/WebConsole/idiomas/php/cat/conmutar_cat.txt10
-rw-r--r--admin/WebConsole/idiomas/php/cat/cuasaccions_cat.txt79
-rw-r--r--admin/WebConsole/idiomas/php/cat/cuasreserves_cat.txt53
-rw-r--r--admin/WebConsole/idiomas/php/cat/executarprocediments_cat.php18
-rw-r--r--admin/WebConsole/idiomas/php/cat/hardwares_cat.txt30
-rw-r--r--admin/WebConsole/idiomas/php/cat/imatgeincremental_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/cat/imatgens_cat.txt19
-rw-r--r--admin/WebConsole/idiomas/php/cat/incorporaordinadors_cat.txt17
-rw-r--r--admin/WebConsole/idiomas/php/cat/incrementalcomponent_soft_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_imatges_cat.txt18
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_incrementals_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_menus_cat.txt29
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_perfilshard_cat.txt17
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_perfilssoft_cat.txt17
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_procediments_cat.txt11
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_tasques_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/cat/informacio_treballs_cat.txt14
-rw-r--r--admin/WebConsole/idiomas/php/cat/menus_cat.txt18
-rw-r--r--admin/WebConsole/idiomas/php/cat/perfilcomponent_hard_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/cat/perfilcomponent_soft_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/cat/procedimentscomandaments_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/programacions_cat.txt19
-rw-r--r--admin/WebConsole/idiomas/php/cat/programacionsaules_cat.txt54
-rw-r--r--admin/WebConsole/idiomas/php/cat/programacionsreserves_cat.txt53
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_aules_cat.txt24
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_centres_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_componenthardwares_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_componentsoftwares_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_entitats_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_grups_cat.txt31
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_imatges_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_menus_cat.txt26
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_ordinadors_cat.txt21
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_ordinadorstandar_cat.txt21
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_perfilhardwares_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_perfilsoftwares_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_procediments_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_reserves_cat.txt30
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_softincrementals_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_tasques_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_tipushardwares_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_treballs_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_universitats_cat.txt15
-rw-r--r--admin/WebConsole/idiomas/php/cat/propietats_usuaris_cat.txt19
-rw-r--r--admin/WebConsole/idiomas/php/cat/purgar_cat.txt10
-rw-r--r--admin/WebConsole/idiomas/php/cat/reserves_cat.txt20
-rw-r--r--admin/WebConsole/idiomas/php/cat/softwares_cat.txt37
-rw-r--r--admin/WebConsole/idiomas/php/cat/tasquescomandaments_cat.txt16
-rw-r--r--admin/WebConsole/idiomas/php/cat/treballstasques_cat.txt13
-rw-r--r--admin/WebConsole/idiomas/php/eng/acciones_eng.php41
-rw-r--r--admin/WebConsole/idiomas/php/eng/accionmenu_eng.php25
-rw-r--r--admin/WebConsole/idiomas/php/eng/actualizar_eng.php10
-rw-r--r--admin/WebConsole/idiomas/php/eng/administracion_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/aulas_eng.php47
-rw-r--r--admin/WebConsole/idiomas/php/eng/barramenu_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php405
-rw-r--r--admin/WebConsole/idiomas/php/eng/clases/Calendario_eng.php472
-rw-r--r--admin/WebConsole/idiomas/php/eng/colasacciones_eng.php79
-rw-r--r--admin/WebConsole/idiomas/php/eng/colasreservas_eng.php53
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/apagar_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/arrancar_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php26
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/conmutar_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/crearperfilsoftware_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/gestor_ejecutarscripts_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php26
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/reiniciar_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/rembooffline_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php21
-rw-r--r--admin/WebConsole/idiomas/php/eng/comandos/tomaconfiguracion_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/configuracionaula_eng.php23
-rw-r--r--admin/WebConsole/idiomas/php/eng/configuraciongrupoordenador_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/configuracionordenador_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/conmutar_eng.php10
-rw-r--r--admin/WebConsole/idiomas/php/eng/ejecutarprocedimientos_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/hardwares_eng.php29
-rw-r--r--admin/WebConsole/idiomas/php/eng/imagenes_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/imagenincremental_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/incorporaordenadores_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/incrementalcomponente_soft_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_incrementales_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php29
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_perfileshard_eng.php17
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_perfilessoft_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_procedimientos_eng.php11
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_tareas_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/informacion_trabajos_eng.php14
-rw-r--r--admin/WebConsole/idiomas/php/eng/menus_eng.php18
-rw-r--r--admin/WebConsole/idiomas/php/eng/perfilcomponente_hard_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/perfilcomponente_soft_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/eng/procedimientoscomandos_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/programaciones_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/programacionesaulas_eng.php54
-rw-r--r--admin/WebConsole/idiomas/php/eng/programacionesreservas_eng.php53
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php25
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_centros_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_componentehardwares_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_componentesoftwares_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_entidades_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_grupos_eng.php31
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php26
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php22
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_ordenadorestandar_eng.php21
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_perfilhardwares_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_perfilsoftwares_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_procedimientos_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_reservas_eng.php30
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_softincrementales_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_tipohardwares_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_trabajos_eng.php15
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_universidades_eng.php17
-rw-r--r--admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/purgar_eng.php10
-rw-r--r--admin/WebConsole/idiomas/php/eng/reservas_eng.php19
-rw-r--r--admin/WebConsole/idiomas/php/eng/softwares_eng.php37
-rw-r--r--admin/WebConsole/idiomas/php/eng/tareascomandos_eng.php16
-rw-r--r--admin/WebConsole/idiomas/php/eng/trabajostareas_eng.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/acciones_esp.php42
-rw-r--r--admin/WebConsole/idiomas/php/esp/accionmenu_esp.php24
-rw-r--r--admin/WebConsole/idiomas/php/esp/actualizar_esp.php10
-rw-r--r--admin/WebConsole/idiomas/php/esp/administracion_esp.php22
-rw-r--r--admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php14
-rw-r--r--admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php14
-rw-r--r--admin/WebConsole/idiomas/php/esp/aulas_esp.php48
-rw-r--r--admin/WebConsole/idiomas/php/esp/barramenu_esp.php21
-rw-r--r--admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php391
-rw-r--r--admin/WebConsole/idiomas/php/esp/clases/Calendario_esp.php523
-rw-r--r--admin/WebConsole/idiomas/php/esp/colasacciones_esp.php80
-rw-r--r--admin/WebConsole/idiomas/php/esp/colasreservas_esp.php53
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php47
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/crearimagen_esp.php24
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php20
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php18
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php26
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php45
-rw-r--r--admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/configuraciones_esp.php48
-rw-r--r--admin/WebConsole/idiomas/php/esp/conmutar_esp.php10
-rw-r--r--admin/WebConsole/idiomas/php/esp/consolaremota_esp.php24
-rw-r--r--admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php21
-rw-r--r--admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/hardwares_esp.php30
-rw-r--r--admin/WebConsole/idiomas/php/esp/imagenes_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php21
-rw-r--r--admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php18
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php31
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php17
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php11
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/menus_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php35
-rw-r--r--admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php13
-rw-r--r--admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/programaciones_esp.php18
-rw-r--r--admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php54
-rw-r--r--admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php53
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php34
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php16
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php24
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php31
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php20
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php27
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php21
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php21
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_repositorios_esp.php19
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php30
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php23
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php15
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php22
-rw-r--r--admin/WebConsole/idiomas/php/esp/purgar_esp.php10
-rw-r--r--admin/WebConsole/idiomas/php/esp/repositorios_esp.php24
-rw-r--r--admin/WebConsole/idiomas/php/esp/reservas_esp.php20
-rw-r--r--admin/WebConsole/idiomas/php/esp/softwares_esp.php37
-rw-r--r--admin/WebConsole/idiomas/php/esp/sondeo_esp.php10
-rw-r--r--admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php18
-rw-r--r--admin/WebConsole/images/L_Iconos.js111
-rw-r--r--admin/WebConsole/images/L_Iconos.php157
-rw-r--r--admin/WebConsole/images/M_Iconos.js85
-rw-r--r--admin/WebConsole/images/M_Iconos.php298
-rw-r--r--admin/WebConsole/images/aula.jpgbin0 -> 10281 bytes
-rw-r--r--admin/WebConsole/images/boton_aceptar.gifbin0 -> 397 bytes
-rw-r--r--admin/WebConsole/images/boton_annadir.gifbin0 -> 999 bytes
-rw-r--r--admin/WebConsole/images/boton_cancelar.gifbin0 -> 554 bytes
-rw-r--r--admin/WebConsole/images/boton_cerrar.gifbin0 -> 175 bytes
-rw-r--r--admin/WebConsole/images/boton_confirmar.gifbin0 -> 588 bytes
-rw-r--r--admin/WebConsole/images/boton_insertar.gifbin0 -> 462 bytes
-rw-r--r--admin/WebConsole/images/botonok.gifbin0 -> 249 bytes
-rw-r--r--admin/WebConsole/images/botonok.pngbin0 -> 3716 bytes
-rw-r--r--admin/WebConsole/images/flotantes/eid.gifbin0 -> 64 bytes
-rw-r--r--admin/WebConsole/images/flotantes/eii.gifbin0 -> 65 bytes
-rw-r--r--admin/WebConsole/images/flotantes/esd.gifbin0 -> 57 bytes
-rw-r--r--admin/WebConsole/images/flotantes/esi.gifbin0 -> 51 bytes
-rw-r--r--admin/WebConsole/images/flotantes/ldr.gifbin0 -> 63 bytes
-rw-r--r--admin/WebConsole/images/flotantes/lin.gifbin0 -> 63 bytes
-rw-r--r--admin/WebConsole/images/flotantes/liz.gifbin0 -> 43 bytes
-rw-r--r--admin/WebConsole/images/flotantes/lsu.gifbin0 -> 43 bytes
-rw-r--r--admin/WebConsole/images/flotantes/sep.gifbin0 -> 70 bytes
-rw-r--r--admin/WebConsole/images/flotantes/swsbfb.gifbin0 -> 55 bytes
-rw-r--r--admin/WebConsole/images/flotantes/swsbfn.gifbin0 -> 60 bytes
-rw-r--r--admin/WebConsole/images/fotoordenador.gifbin0 -> 7436 bytes
-rw-r--r--admin/WebConsole/images/iconos/acAbortada.gifbin0 -> 540 bytes
-rw-r--r--admin/WebConsole/images/iconos/acConErrores.gifbin0 -> 133 bytes
-rw-r--r--admin/WebConsole/images/iconos/acDetenida.gifbin0 -> 128 bytes
-rw-r--r--admin/WebConsole/images/iconos/acExitosa.gifbin0 -> 300 bytes
-rw-r--r--admin/WebConsole/images/iconos/acFallida.gifbin0 -> 189 bytes
-rw-r--r--admin/WebConsole/images/iconos/acFinalizada.gifbin0 -> 61 bytes
-rw-r--r--admin/WebConsole/images/iconos/acIniciada.gifbin0 -> 128 bytes
-rw-r--r--admin/WebConsole/images/iconos/acSinErrores.gifbin0 -> 61 bytes
-rw-r--r--admin/WebConsole/images/iconos/acTerminada.gifbin0 -> 536 bytes
-rw-r--r--admin/WebConsole/images/iconos/acciones.gifbin0 -> 132 bytes
-rw-r--r--admin/WebConsole/images/iconos/actualizandor.gifbin0 -> 105 bytes
-rw-r--r--admin/WebConsole/images/iconos/actualizar.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/administracion.gifbin0 -> 179 bytes
-rw-r--r--admin/WebConsole/images/iconos/administraciones.gifbin0 -> 1031 bytes
-rw-r--r--admin/WebConsole/images/iconos/administradores.gifbin0 -> 906 bytes
-rw-r--r--admin/WebConsole/images/iconos/administrar_off.gifbin0 -> 175 bytes
-rw-r--r--admin/WebConsole/images/iconos/administrar_on.gifbin0 -> 167 bytes
-rw-r--r--admin/WebConsole/images/iconos/aplicaciones.gifbin0 -> 177 bytes
-rw-r--r--admin/WebConsole/images/iconos/archivos.gifbin0 -> 107 bytes
-rw-r--r--admin/WebConsole/images/iconos/audio.gifbin0 -> 1027 bytes
-rw-r--r--admin/WebConsole/images/iconos/aula.gifbin0 -> 171 bytes
-rw-r--r--admin/WebConsole/images/iconos/ayuda.gifbin0 -> 610 bytes
-rw-r--r--admin/WebConsole/images/iconos/barraven.pngbin0 -> 424 bytes
-rw-r--r--admin/WebConsole/images/iconos/busquedas.gifbin0 -> 193 bytes
-rw-r--r--admin/WebConsole/images/iconos/camweb.gifbin0 -> 952 bytes
-rw-r--r--admin/WebConsole/images/iconos/carpeta.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/carpetaup.gifbin0 -> 125 bytes
-rw-r--r--admin/WebConsole/images/iconos/centros.gifbin0 -> 358 bytes
-rw-r--r--admin/WebConsole/images/iconos/clienven.pngbin0 -> 2892 bytes
-rw-r--r--admin/WebConsole/images/iconos/colocar.gifbin0 -> 92 bytes
-rw-r--r--admin/WebConsole/images/iconos/comandos.gifbin0 -> 104 bytes
-rw-r--r--admin/WebConsole/images/iconos/configuraciones.gifbin0 -> 175 bytes
-rw-r--r--admin/WebConsole/images/iconos/configuraciones_ON.gifbin0 -> 167 bytes
-rw-r--r--admin/WebConsole/images/iconos/confihard.gifbin0 -> 261 bytes
-rw-r--r--admin/WebConsole/images/iconos/confirmadas.gifbin0 -> 138 bytes
-rw-r--r--admin/WebConsole/images/iconos/confisoft.gifbin0 -> 228 bytes
-rw-r--r--admin/WebConsole/images/iconos/consultar.gifbin0 -> 147 bytes
-rw-r--r--admin/WebConsole/images/iconos/copiar.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/copiar_off.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/cortar.gifbin0 -> 102 bytes
-rw-r--r--admin/WebConsole/images/iconos/cortar_off.gifbin0 -> 107 bytes
-rw-r--r--admin/WebConsole/images/iconos/denegadas.gifbin0 -> 140 bytes
-rw-r--r--admin/WebConsole/images/iconos/discoduro.gifbin0 -> 563 bytes
-rw-r--r--admin/WebConsole/images/iconos/dvdcd.gifbin0 -> 1040 bytes
-rw-r--r--admin/WebConsole/images/iconos/ecocon.gifbin0 -> 612 bytes
-rw-r--r--admin/WebConsole/images/iconos/eliminar.gifbin0 -> 83 bytes
-rw-r--r--admin/WebConsole/images/iconos/email.gifbin0 -> 239 bytes
-rw-r--r--admin/WebConsole/images/iconos/entidades.gifbin0 -> 143 bytes
-rw-r--r--admin/WebConsole/images/iconos/entornos.gifbin0 -> 1037 bytes
-rw-r--r--admin/WebConsole/images/iconos/filtro_off.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/filtroaccion.gifbin0 -> 120 bytes
-rw-r--r--admin/WebConsole/images/iconos/filtroambito.gifbin0 -> 126 bytes
-rw-r--r--admin/WebConsole/images/iconos/fondo800x600.pngbin0 -> 30996 bytes
-rw-r--r--admin/WebConsole/images/iconos/fondomenuETSII.pngbin0 -> 67784 bytes
-rw-r--r--admin/WebConsole/images/iconos/funcion.gifbin0 -> 358 bytes
-rw-r--r--admin/WebConsole/images/iconos/hidra.gifbin0 -> 111 bytes
-rw-r--r--admin/WebConsole/images/iconos/icono_pdf.gifbin0 -> 229 bytes
-rw-r--r--admin/WebConsole/images/iconos/iconos.gifbin0 -> 169 bytes
-rw-r--r--admin/WebConsole/images/iconos/ide.gifbin0 -> 120 bytes
-rw-r--r--admin/WebConsole/images/iconos/imagen.gifbin0 -> 218 bytes
-rw-r--r--admin/WebConsole/images/iconos/imagenes.gifbin0 -> 165 bytes
-rw-r--r--admin/WebConsole/images/iconos/incremental.gifbin0 -> 590 bytes
-rw-r--r--admin/WebConsole/images/iconos/informacion.gifbin0 -> 137 bytes
-rw-r--r--admin/WebConsole/images/iconos/ko.gifbin0 -> 83 bytes
-rw-r--r--admin/WebConsole/images/iconos/logoXP.pngbin0 -> 11145 bytes
-rw-r--r--admin/WebConsole/images/iconos/logohidra16.gifbin0 -> 156 bytes
-rw-r--r--admin/WebConsole/images/iconos/logolinux.pngbin0 -> 7796 bytes
-rw-r--r--admin/WebConsole/images/iconos/logoopengnsys.pngbin0 -> 13331 bytes
-rw-r--r--admin/WebConsole/images/iconos/menu.gifbin0 -> 1037 bytes
-rw-r--r--admin/WebConsole/images/iconos/menus.gifbin0 -> 120 bytes
-rw-r--r--admin/WebConsole/images/iconos/micro.gifbin0 -> 118 bytes
-rw-r--r--admin/WebConsole/images/iconos/modificar.gifbin0 -> 166 bytes
-rw-r--r--admin/WebConsole/images/iconos/mover.gifbin0 -> 93 bytes
-rw-r--r--admin/WebConsole/images/iconos/nada.gifbin0 -> 61 bytes
-rw-r--r--admin/WebConsole/images/iconos/nic.gifbin0 -> 161 bytes
-rw-r--r--admin/WebConsole/images/iconos/ojo.gifbin0 -> 1077 bytes
-rw-r--r--admin/WebConsole/images/iconos/ok.gifbin0 -> 298 bytes
-rw-r--r--admin/WebConsole/images/iconos/oldmenu.gifbin0 -> 1037 bytes
-rw-r--r--admin/WebConsole/images/iconos/oldmenus.gifbin0 -> 1036 bytes
-rw-r--r--admin/WebConsole/images/iconos/operadores.gifbin0 -> 917 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenador.gifbin0 -> 130 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadores.gifbin0 -> 174 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadornot.gifbin0 -> 159 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadornot_ko.gifbin0 -> 130 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadornot_ok.gifbin0 -> 130 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadoroff.pngbin0 -> 5393 bytes
-rw-r--r--admin/WebConsole/images/iconos/ordenadoron.pngbin0 -> 6111 bytes
-rw-r--r--admin/WebConsole/images/iconos/papelera.gifbin0 -> 397 bytes
-rw-r--r--admin/WebConsole/images/iconos/particionar.pngbin0 -> 6502 bytes
-rw-r--r--admin/WebConsole/images/iconos/pegar.gifbin0 -> 164 bytes
-rw-r--r--admin/WebConsole/images/iconos/pegar_off.gifbin0 -> 111 bytes
-rw-r--r--admin/WebConsole/images/iconos/pendientes.gifbin0 -> 80 bytes
-rw-r--r--admin/WebConsole/images/iconos/perfilhardware.gifbin0 -> 406 bytes
-rw-r--r--admin/WebConsole/images/iconos/perfilsoftware.gifbin0 -> 190 bytes
-rw-r--r--admin/WebConsole/images/iconos/placabase.gifbin0 -> 160 bytes
-rw-r--r--admin/WebConsole/images/iconos/plantilla.gifbin0 -> 119 bytes
-rw-r--r--admin/WebConsole/images/iconos/pomo.gifbin0 -> 72 bytes
-rw-r--r--admin/WebConsole/images/iconos/procedimiento.gifbin0 -> 145 bytes
-rw-r--r--admin/WebConsole/images/iconos/propiedad.gifbin0 -> 332 bytes
-rw-r--r--admin/WebConsole/images/iconos/propiedades.gifbin0 -> 126 bytes
-rw-r--r--admin/WebConsole/images/iconos/purgar.gifbin0 -> 166 bytes
-rw-r--r--admin/WebConsole/images/iconos/ratones.gifbin0 -> 630 bytes
-rw-r--r--admin/WebConsole/images/iconos/reiniciar.gifbin0 -> 93 bytes
-rw-r--r--admin/WebConsole/images/iconos/reloj.gifbin0 -> 1046 bytes
-rw-r--r--admin/WebConsole/images/iconos/repositorio.gifbin0 -> 166 bytes
-rw-r--r--admin/WebConsole/images/iconos/reservas.gifbin0 -> 130 bytes
-rw-r--r--admin/WebConsole/images/iconos/salir_on.gifbin0 -> 156 bytes
-rw-r--r--admin/WebConsole/images/iconos/salvar.gifbin0 -> 137 bytes
-rw-r--r--admin/WebConsole/images/iconos/separitem.gifbin0 -> 45 bytes
-rw-r--r--admin/WebConsole/images/iconos/shell.gifbin0 -> 605 bytes
-rw-r--r--admin/WebConsole/images/iconos/so.gifbin0 -> 191 bytes
-rw-r--r--admin/WebConsole/images/iconos/softcombi.gifbin0 -> 175 bytes
-rw-r--r--admin/WebConsole/images/iconos/sonido.gifbin0 -> 1032 bytes
-rw-r--r--admin/WebConsole/images/iconos/superadministradores.gifbin0 -> 932 bytes
-rw-r--r--admin/WebConsole/images/iconos/tablas.gifbin0 -> 124 bytes
-rw-r--r--admin/WebConsole/images/iconos/tareas.gifbin0 -> 623 bytes
-rw-r--r--admin/WebConsole/images/iconos/trabajos.gifbin0 -> 133 bytes
-rw-r--r--admin/WebConsole/images/iconos/tsonido.gifbin0 -> 139 bytes
-rw-r--r--admin/WebConsole/images/iconos/universidades.gifbin0 -> 174 bytes
-rw-r--r--admin/WebConsole/images/iconos/us.gifbin0 -> 173 bytes
-rw-r--r--admin/WebConsole/images/iconos/usb.gifbin0 -> 113 bytes
-rw-r--r--admin/WebConsole/images/iconos/usuarios.gifbin0 -> 153 bytes
-rw-r--r--admin/WebConsole/images/iconos/usuarioslog.gifbin0 -> 3565 bytes
-rw-r--r--admin/WebConsole/images/iconos/vga.gifbin0 -> 1031 bytes
-rw-r--r--admin/WebConsole/images/login_eng.jpgbin0 -> 85838 bytes
-rw-r--r--admin/WebConsole/images/login_esp.jpgbin0 -> 85838 bytes
-rw-r--r--admin/WebConsole/images/login_operador.pngbin0 -> 116787 bytes
-rw-r--r--admin/WebConsole/images/logo_us.gifbin0 -> 2189 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/eid.gifbin0 -> 64 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/eii.gifbin0 -> 65 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/esd.gifbin0 -> 57 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/esi.gifbin0 -> 51 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/ldr.gifbin0 -> 63 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/lin.gifbin0 -> 63 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/liz.gifbin0 -> 43 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/menucontextual%252flsu.gifbin0 -> 43 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/menucontextual%252fswsbfb.gifbin0 -> 55 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/menucontextual%252fswsbfn.gifbin0 -> 60 bytes
-rw-r--r--admin/WebConsole/images/menucontextual/sep.gifbin0 -> 70 bytes
-rw-r--r--admin/WebConsole/images/ordenador.gifbin0 -> 801 bytes
-rw-r--r--admin/WebConsole/images/ordenador_BSY.gifbin0 -> 811 bytes
-rw-r--r--admin/WebConsole/images/ordenador_INI.gifbin0 -> 1117 bytes
-rw-r--r--admin/WebConsole/images/ordenador_LNX.gifbin0 -> 801 bytes
-rw-r--r--admin/WebConsole/images/ordenador_OFF.gifbin0 -> 810 bytes
-rw-r--r--admin/WebConsole/images/ordenador_RMB.gifbin0 -> 1060 bytes
-rw-r--r--admin/WebConsole/images/ordenador_W2K.gifbin0 -> 804 bytes
-rw-r--r--admin/WebConsole/images/ordenador_W95.gifbin0 -> 798 bytes
-rw-r--r--admin/WebConsole/images/ordenador_W98.gifbin0 -> 808 bytes
-rw-r--r--admin/WebConsole/images/ordenador_WML.gifbin0 -> 804 bytes
-rw-r--r--admin/WebConsole/images/ordenador_WXP.gifbin0 -> 801 bytes
-rw-r--r--admin/WebConsole/images/ordenadorflash.gifbin0 -> 1549 bytes
-rw-r--r--admin/WebConsole/images/ordenadoroff.gifbin0 -> 1433 bytes
-rw-r--r--admin/WebConsole/images/signos/mas_c.gifbin0 -> 82 bytes
-rw-r--r--admin/WebConsole/images/signos/mas_l.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/signos/mas_root.gifbin0 -> 493 bytes
-rw-r--r--admin/WebConsole/images/signos/mas_t.gifbin0 -> 82 bytes
-rw-r--r--admin/WebConsole/images/signos/menos_c.gifbin0 -> 80 bytes
-rw-r--r--admin/WebConsole/images/signos/menos_l.gifbin0 -> 78 bytes
-rw-r--r--admin/WebConsole/images/signos/menos_root.gifbin0 -> 486 bytes
-rw-r--r--admin/WebConsole/images/signos/menos_t.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/signos/nada.gifbin0 -> 61 bytes
-rw-r--r--admin/WebConsole/images/signos/nada_c.gifbin0 -> 69 bytes
-rw-r--r--admin/WebConsole/images/signos/nada_l.gifbin0 -> 69 bytes
-rw-r--r--admin/WebConsole/images/signos/nada_t.gifbin0 -> 72 bytes
-rw-r--r--admin/WebConsole/images/tsignos/Copia de mas_l.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/contra.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/desple.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/mas_c.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/mas_l.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/mas_root.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/mas_t.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/menos_c.gifbin0 -> 80 bytes
-rw-r--r--admin/WebConsole/images/tsignos/menos_l.gifbin0 -> 78 bytes
-rw-r--r--admin/WebConsole/images/tsignos/menos_root.gifbin0 -> 486 bytes
-rw-r--r--admin/WebConsole/images/tsignos/menos_t.gifbin0 -> 81 bytes
-rw-r--r--admin/WebConsole/images/tsignos/nada.gifbin0 -> 61 bytes
-rw-r--r--admin/WebConsole/images/tsignos/nada_c.gifbin0 -> 69 bytes
-rw-r--r--admin/WebConsole/images/tsignos/nada_l.gifbin0 -> 69 bytes
-rw-r--r--admin/WebConsole/images/tsignos/nada_t.gifbin0 -> 72 bytes
-rw-r--r--admin/WebConsole/includes/ConfiguracionesParticiones.php639
-rw-r--r--admin/WebConsole/includes/CreaComando.php24
-rw-r--r--admin/WebConsole/includes/CreaTablaParametros.php50
-rw-r--r--admin/WebConsole/includes/FicherosPost.php51
-rw-r--r--admin/WebConsole/includes/HTMLCTEMULSELECT.php37
-rw-r--r--admin/WebConsole/includes/HTMLCTESELECT.php31
-rw-r--r--admin/WebConsole/includes/HTMLMULSELECT.php52
-rw-r--r--admin/WebConsole/includes/HTMLSELECT.php52
-rw-r--r--admin/WebConsole/includes/InvFecha.php37
-rw-r--r--admin/WebConsole/includes/RecopilaIpesMacs.php149
-rw-r--r--admin/WebConsole/includes/RedireccionaError.php13
-rw-r--r--admin/WebConsole/includes/TomaDato.php41
-rw-r--r--admin/WebConsole/includes/TomanDatos.php36
-rw-r--r--admin/WebConsole/includes/comunes.php378
-rw-r--r--admin/WebConsole/includes/constantes.php172
-rw-r--r--admin/WebConsole/includes/ctrlacc.php48
-rw-r--r--admin/WebConsole/includes/cuestionacciones.php79
-rw-r--r--admin/WebConsole/includes/cuestionaccionescab.php23
-rw-r--r--admin/WebConsole/includes/opciones.php16
-rw-r--r--admin/WebConsole/includes/opcionesbotones.php7
-rw-r--r--admin/WebConsole/includes/opcionesbotonesop.php9
-rw-r--r--admin/WebConsole/jscripts/acciones.js111
-rw-r--r--admin/WebConsole/jscripts/accionmenu.js121
-rw-r--r--admin/WebConsole/jscripts/administracion.js24
-rw-r--r--admin/WebConsole/jscripts/administradores_centros.js41
-rw-r--r--admin/WebConsole/jscripts/administradores_usuarios.js43
-rw-r--r--admin/WebConsole/jscripts/aula.js151
-rw-r--r--admin/WebConsole/jscripts/aulas.js337
-rw-r--r--admin/WebConsole/jscripts/cadenas.js45
-rw-r--r--admin/WebConsole/jscripts/colasacciones.js439
-rw-r--r--admin/WebConsole/jscripts/colasreservas.js82
-rw-r--r--admin/WebConsole/jscripts/comunes.js366
-rw-r--r--admin/WebConsole/jscripts/configuracionaula.js93
-rw-r--r--admin/WebConsole/jscripts/configuraciones.js93
-rw-r--r--admin/WebConsole/jscripts/consolaremota.js64
-rw-r--r--admin/WebConsole/jscripts/constantes.js118
-rw-r--r--admin/WebConsole/jscripts/ecoremoto.js23
-rw-r--r--admin/WebConsole/jscripts/ejecutaracciones.js51
-rw-r--r--admin/WebConsole/jscripts/hardwares.js28
-rw-r--r--admin/WebConsole/jscripts/imagenes.js28
-rw-r--r--admin/WebConsole/jscripts/imagenincremental.js35
-rw-r--r--admin/WebConsole/jscripts/inclusionacciones.js87
-rw-r--r--admin/WebConsole/jscripts/incrementalcomponente_soft.js35
-rw-r--r--admin/WebConsole/jscripts/informacion_menus.js85
-rw-r--r--admin/WebConsole/jscripts/menus.js29
-rw-r--r--admin/WebConsole/jscripts/opciones.js14
-rw-r--r--admin/WebConsole/jscripts/parametrostrabajos.js18
-rw-r--r--admin/WebConsole/jscripts/perfilcomponente_hard.js42
-rw-r--r--admin/WebConsole/jscripts/perfilcomponente_soft.js42
-rw-r--r--admin/WebConsole/jscripts/procedimientoscomandos.js78
-rw-r--r--admin/WebConsole/jscripts/programaciones.js783
-rw-r--r--admin/WebConsole/jscripts/programacionesaulas.js88
-rw-r--r--admin/WebConsole/jscripts/programacionesreservas.js88
-rw-r--r--admin/WebConsole/jscripts/propiedades_aulas.js115
-rw-r--r--admin/WebConsole/jscripts/propiedades_centros.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_componentehardwares.js89
-rw-r--r--admin/WebConsole/jscripts/propiedades_componentesoftwares.js116
-rw-r--r--admin/WebConsole/jscripts/propiedades_entidades.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_entornos.js73
-rw-r--r--admin/WebConsole/jscripts/propiedades_grupos.js93
-rw-r--r--admin/WebConsole/jscripts/propiedades_imagenes.js96
-rw-r--r--admin/WebConsole/jscripts/propiedades_menus.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_ordenadores.js99
-rw-r--r--admin/WebConsole/jscripts/propiedades_ordenadorestandar.js76
-rw-r--r--admin/WebConsole/jscripts/propiedades_perfilhardwares.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_perfilsoftwares.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_procedimientos.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_repositorios.js110
-rw-r--r--admin/WebConsole/jscripts/propiedades_reservas.js104
-rw-r--r--admin/WebConsole/jscripts/propiedades_softincrementales.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_tareas.js120
-rw-r--r--admin/WebConsole/jscripts/propiedades_tipohardwares.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_trabajos.js83
-rw-r--r--admin/WebConsole/jscripts/propiedades_universidades.js58
-rw-r--r--admin/WebConsole/jscripts/propiedades_usuarios.js99
-rw-r--r--admin/WebConsole/jscripts/repositorios.js18
-rw-r--r--admin/WebConsole/jscripts/reservas.js30
-rw-r--r--admin/WebConsole/jscripts/softwares.js51
-rw-r--r--admin/WebConsole/jscripts/tareascomandos.js78
-rw-r--r--admin/WebConsole/jscripts/trabajostareas.js80
-rw-r--r--admin/WebConsole/jscripts/util.js19
-rw-r--r--admin/WebConsole/menus/images/linux.pngbin0 -> 14390 bytes
-rw-r--r--admin/WebConsole/menus/images/opengnsys.pngbin0 -> 19827 bytes
-rw-r--r--admin/WebConsole/menus/images/xp.pngbin0 -> 20248 bytes
-rw-r--r--admin/WebConsole/menus/menuaula1.html37
-rw-r--r--admin/WebConsole/nada.php9
-rw-r--r--admin/WebConsole/pagerror.php33
-rw-r--r--admin/WebConsole/principal/acciones.php688
-rw-r--r--admin/WebConsole/principal/actualizar.php63
-rw-r--r--admin/WebConsole/principal/administracion.php604
-rw-r--r--admin/WebConsole/principal/aula.php527
-rw-r--r--admin/WebConsole/principal/aulas.php890
-rw-r--r--admin/WebConsole/principal/colasacciones.php1239
-rw-r--r--admin/WebConsole/principal/colasreservas.php970
-rw-r--r--admin/WebConsole/principal/comandos.php147
-rw-r--r--admin/WebConsole/principal/configuraciones.php341
-rw-r--r--admin/WebConsole/principal/consolaremota.php143
-rw-r--r--admin/WebConsole/principal/ecoconsola.php81
-rw-r--r--admin/WebConsole/principal/ecoremoto.php92
-rw-r--r--admin/WebConsole/principal/hardwares.php637
-rw-r--r--admin/WebConsole/principal/imagenes.php304
-rw-r--r--admin/WebConsole/principal/menus.php307
-rw-r--r--admin/WebConsole/principal/programacionesaulas.php834
-rw-r--r--admin/WebConsole/principal/programacionesreservas.php715
-rw-r--r--admin/WebConsole/principal/purgar.php63
-rw-r--r--admin/WebConsole/principal/repositorios.php292
-rw-r--r--admin/WebConsole/principal/reservas.php336
-rw-r--r--admin/WebConsole/principal/shellconsola.php192
-rw-r--r--admin/WebConsole/principal/softwares.php798
-rw-r--r--admin/WebConsole/principal/sondeo.php68
-rw-r--r--admin/WebConsole/propiedades/propiedades_aulas.php417
-rw-r--r--admin/WebConsole/propiedades/propiedades_centros.php115
-rw-r--r--admin/WebConsole/propiedades/propiedades_componentehardwares.php112
-rw-r--r--admin/WebConsole/propiedades/propiedades_componentesoftwares.php129
-rw-r--r--admin/WebConsole/propiedades/propiedades_entidades.php117
-rw-r--r--admin/WebConsole/propiedades/propiedades_entornos.php152
-rw-r--r--admin/WebConsole/propiedades/propiedades_grupos.php207
-rw-r--r--admin/WebConsole/propiedades/propiedades_imagenes.php181
-rw-r--r--admin/WebConsole/propiedades/propiedades_menus.php271
-rw-r--r--admin/WebConsole/propiedades/propiedades_ordenadores.php209
-rw-r--r--admin/WebConsole/propiedades/propiedades_ordenadorestandar.php211
-rw-r--r--admin/WebConsole/propiedades/propiedades_perfilhardwares.php116
-rw-r--r--admin/WebConsole/propiedades/propiedades_perfilsoftwares.php126
-rw-r--r--admin/WebConsole/propiedades/propiedades_procedimientos.php110
-rw-r--r--admin/WebConsole/propiedades/propiedades_repositorios.php176
-rw-r--r--admin/WebConsole/propiedades/propiedades_reservas.php235
-rw-r--r--admin/WebConsole/propiedades/propiedades_tareas.php155
-rw-r--r--admin/WebConsole/propiedades/propiedades_tipohardwares.php114
-rw-r--r--admin/WebConsole/propiedades/propiedades_universidades.php109
-rw-r--r--admin/WebConsole/propiedades/propiedades_usuarios.php183
-rw-r--r--admin/WebConsole/varios/acceso_operador.php98
-rw-r--r--admin/WebConsole/varios/accesoperadores.php50
-rw-r--r--admin/WebConsole/varios/accionmenu.php265
-rw-r--r--admin/WebConsole/varios/administradores_centros.php117
-rw-r--r--admin/WebConsole/varios/administradores_usuarios.php108
-rw-r--r--admin/WebConsole/varios/calendario_ventana.php195
-rw-r--r--admin/WebConsole/varios/consulta_programaciones.php32
-rw-r--r--admin/WebConsole/varios/desplegablesambitos.php28
-rw-r--r--admin/WebConsole/varios/ejecutaracciones.php207
-rw-r--r--admin/WebConsole/varios/ejecutaritem.php61
-rw-r--r--admin/WebConsole/varios/horareser_ventana.php105
-rw-r--r--admin/WebConsole/varios/horario_ventana.php95
-rw-r--r--admin/WebConsole/varios/incluiracciones.php265
-rw-r--r--admin/WebConsole/varios/inclusionacciones.php288
-rw-r--r--admin/WebConsole/varios/incorporaordenadores.php183
-rw-r--r--admin/WebConsole/varios/incrementalcomponente_soft.php105
-rw-r--r--admin/WebConsole/varios/informacion_acciones.php218
-rw-r--r--admin/WebConsole/varios/informacion_imagenes.php203
-rw-r--r--admin/WebConsole/varios/informacion_menus.php278
-rw-r--r--admin/WebConsole/varios/informacion_perfileshardware.php213
-rw-r--r--admin/WebConsole/varios/informacion_perfilessoftware.php213
-rw-r--r--admin/WebConsole/varios/informacion_procedimientos.php213
-rw-r--r--admin/WebConsole/varios/informacion_repositorios.php184
-rw-r--r--admin/WebConsole/varios/informacion_tareas.php176
-rw-r--r--admin/WebConsole/varios/menubrowser.php82
-rw-r--r--admin/WebConsole/varios/menucliente.php225
-rw-r--r--admin/WebConsole/varios/msgbrowser.php86
-rw-r--r--admin/WebConsole/varios/perfilcomponente_hard.php95
-rw-r--r--admin/WebConsole/varios/perfilcomponente_soft.php93
-rw-r--r--admin/WebConsole/varios/procedimientoscomandos.php169
-rw-r--r--admin/WebConsole/varios/programaciones.php283
-rw-r--r--admin/WebConsole/varios/tareascomandos.php216
-rw-r--r--admin/WebConsole/varios/toma_mes.php26
814 files changed, 58167 insertions, 0 deletions
diff --git a/admin/Database/ogAdmBD-0.9.1-0.9.2pre.sql b/admin/Database/ogAdmBD-0.9.1-0.9.2pre.sql
new file mode 100644
index 00000000..09d15a5f
--- /dev/null
+++ b/admin/Database/ogAdmBD-0.9.1-0.9.2pre.sql
@@ -0,0 +1,8 @@
+-- Cambios para gestión de Multicast
+
+ALTER TABLE `ordenadores`
+ ADD COLUMN `modomul` TINYINT(4) NOT NULL,
+ ADD COLUMN `ipmul` VARCHAR(16) NOT NULL,
+ ADD COLUMN `pormul` INT(11) NOT NULL,
+ ADD COLUMN `velmul` SMALLINT(6) NOT NULL;
+
diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql
new file mode 100644
index 00000000..83bbfb14
--- /dev/null
+++ b/admin/Database/ogAdmBD.sql
@@ -0,0 +1,915 @@
+-- phpMyAdmin SQL Dump
+-- version 3.2.2.1deb1
+-- http://www.phpmyadmin.net
+--
+-- Servidor: localhost
+-- Tiempo de generación: 20-09-2010 a las 22:43:50
+-- Versión del servidor: 5.1.37
+-- Versión de PHP: 5.2.10-2ubuntu6.4
+
+SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
+
+--
+-- Base de datos: `ogAdmBD`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `acciones`
+--
+
+CREATE TABLE IF NOT EXISTS `acciones` (
+ `idaccion` int(11) NOT NULL AUTO_INCREMENT,
+ `tipoaccion` smallint(6) NOT NULL,
+ `idtipoaccion` int(11) NOT NULL,
+ `descriaccion` varchar(250) NOT NULL,
+ `idordenador` int(11) NOT NULL,
+ `ip` varchar(50) NOT NULL,
+ `sesion` int(11) NOT NULL,
+ `idcomando` int(11) NOT NULL,
+ `parametros` text,
+ `fechahorareg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `fechahorafin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `estado` tinyint(1) NOT NULL DEFAULT '0',
+ `resultado` tinyint(1) NOT NULL DEFAULT '0',
+ `descrinotificacion` varchar(256) DEFAULT NULL,
+ `ambito` smallint(6) NOT NULL DEFAULT '0',
+ `idambito` int(11) NOT NULL DEFAULT '0',
+ `restrambito` text NOT NULL,
+ `idprocedimiento` int(11) NOT NULL DEFAULT '0',
+ `idtarea` int(11) NOT NULL DEFAULT '0',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `idprogramacion` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`idaccion`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `acciones_menus`
+--
+
+CREATE TABLE IF NOT EXISTS `acciones_menus` (
+ `idaccionmenu` int(11) NOT NULL AUTO_INCREMENT,
+ `tipoaccion` tinyint(4) NOT NULL DEFAULT '0',
+ `idtipoaccion` int(11) NOT NULL DEFAULT '0',
+ `idmenu` int(11) NOT NULL DEFAULT '0',
+ `tipoitem` tinyint(4) DEFAULT NULL,
+ `idurlimg` int(11) DEFAULT NULL,
+ `descripitem` varchar(250) DEFAULT NULL,
+ `orden` tinyint(4) DEFAULT NULL,
+ PRIMARY KEY (`idaccionmenu`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `administradores_centros`
+--
+
+CREATE TABLE IF NOT EXISTS `administradores_centros` (
+ `idadministradorcentro` int(11) NOT NULL AUTO_INCREMENT,
+ `idusuario` int(11) NOT NULL DEFAULT '0',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`idadministradorcentro`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `aulas`
+--
+
+CREATE TABLE IF NOT EXISTS `aulas` (
+ `idaula` int(11) NOT NULL AUTO_INCREMENT,
+ `nombreaula` varchar(100) NOT NULL DEFAULT '',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `urlfoto` varchar(250) DEFAULT NULL,
+ `cuadro_y` char(3) DEFAULT NULL,
+ `cuadro_x` char(3) DEFAULT NULL,
+ `cagnon` tinyint(1) DEFAULT NULL,
+ `pizarra` tinyint(1) DEFAULT NULL,
+ `grupoid` int(11) DEFAULT NULL,
+ `ubicacion` varchar(255) DEFAULT NULL,
+ `comentarios` text,
+ `puestos` tinyint(4) DEFAULT NULL,
+ `horaresevini` tinyint(4) DEFAULT NULL,
+ `horaresevfin` tinyint(4) DEFAULT NULL,
+ `modomul` tinyint(4) NOT NULL,
+ `ipmul` varchar(16) NOT NULL,
+ `pormul` int(11) NOT NULL,
+ `velmul` smallint(6) NOT NULL,
+ PRIMARY KEY (`idaula`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `campus`
+--
+
+CREATE TABLE IF NOT EXISTS `campus` (
+ `idcampus` int(11) NOT NULL AUTO_INCREMENT,
+ `nombrecampus` varchar(100) NOT NULL DEFAULT '',
+ `iduniversidad` int(11) DEFAULT NULL,
+ `urlmapa` varchar(255) DEFAULT NULL,
+ `cuadro_y` tinyint(3) DEFAULT NULL,
+ `cuadro_x` tinyint(3) DEFAULT NULL,
+ PRIMARY KEY (`idcampus`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+--
+-- Volcar la base de datos para la tabla `campus`
+--
+
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `centros`
+--
+
+CREATE TABLE IF NOT EXISTS `centros` (
+ `idcentro` int(11) NOT NULL AUTO_INCREMENT,
+ `nombrecentro` varchar(100) NOT NULL DEFAULT '',
+ `identidad` int(11) DEFAULT NULL,
+ `comentarios` text,
+ PRIMARY KEY (`idcentro`)
+) 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');
+
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `comandos`
+--
+
+CREATE TABLE IF NOT EXISTS `comandos` (
+ `idcomando` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `pagina` varchar(256) NOT NULL,
+ `gestor` varchar(256) NOT NULL,
+ `funcion` varchar(64) NOT NULL,
+ `urlimg` varchar(250) DEFAULT NULL,
+ `aplicambito` tinyint(4) DEFAULT NULL,
+ `visuparametros` varchar(250) DEFAULT NULL,
+ `parametros` varchar(250) DEFAULT NULL,
+ `comentarios` text,
+ `activo` tinyint(1) NOT NULL,
+ PRIMARY KEY (`idcomando`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
+
+--
+-- Volcar la base de datos para la tabla `comandos`
+--
+
+INSERT INTO `comandos` (`idcomando`, `descripcion`, `pagina`, `gestor`, `funcion`, `urlimg`, `aplicambito`, `visuparametros`, `parametros`, `comentarios`, `activo`) VALUES
+(1, 'Arrancar', '../comandos/Arrancar.php', '../comandos/gestores/gestor_Comandos.php', 'Arrancar', '', 31, '', 'nfn;iph;mac', '', 1),
+(2, 'Apagar', '../comandos/Apagar.php', '../comandos/gestores/gestor_Comandos.php', 'Apagar', '', 31, '', 'nfn;iph;mac', '', 1),
+(3, 'Restaurar Imagen', '../comandos/RestaurarImagen.php', '../comandos/gestores/gestor_Comandos.php', 'RestaurarImagen', '', 28, 'dsk;par;idi;nci;ipr;ptc', 'nfn;iph;mac;dsk;par;idi;nci;ipr;ifs;ptc', '', 1),
+(4, 'Crear Imagen', '../comandos/CrearImagen.php', '../comandos/gestores/gestor_Comandos.php', 'CrearImagen', '', 16, 'dsk;par;idi;nci;ipr;cpt', 'nfn;iph;mac;dsk;par;idi;nci;ipr;cpt;', '', 1),
+(5, 'Reiniciar', '../comandos/Reiniciar.php', '../comandos/gestores/gestor_Comandos.php', 'Reiniciar', '', 31, '', 'nfn;iph;mac;', '', 1),
+(6, 'Inventario Hardware', '../comandos/InventarioHardware.php', '../comandos/gestores/gestor_Comandos.php', 'InventarioHardware', '', 16, '', 'nfn;iph;mac;', '', 1),
+(7, 'Inventario Software', '../comandos/InventarioSoftware.php', '../comandos/gestores/gestor_Comandos.php', 'InventarioSoftware', '', 16, 'par', 'nfn;iph;mac;par', '', 1),
+(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', '', 1);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `entidades`
+--
+
+CREATE TABLE IF NOT EXISTS `entidades` (
+ `identidad` int(11) NOT NULL AUTO_INCREMENT,
+ `nombreentidad` varchar(200) NOT NULL DEFAULT '',
+ `comentarios` text,
+ `iduniversidad` int(11) DEFAULT NULL,
+ `grupoid` int(11) DEFAULT NULL,
+ PRIMARY KEY (`identidad`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Volcar la base de datos para la tabla `entidades`
+--
+
+INSERT INTO `entidades` (`identidad`, `nombreentidad`, `comentarios`, `iduniversidad`, `grupoid`) VALUES
+(1, 'Entidad (Default)', 'Esta Entidad se crea automáticamente en el proceso de instalación de OpenGNSys', 1, 0);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `entornos`
+--
+
+CREATE TABLE IF NOT EXISTS `entornos` (
+ `identorno` int(11) NOT NULL AUTO_INCREMENT,
+ `ipserveradm` varchar(50) NOT NULL,
+ `portserveradm` int(20) NOT NULL,
+ `protoclonacion` varchar(50) NOT NULL,
+ PRIMARY KEY (`identorno`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Volcar la base de datos para la tabla `entornos`
+--
+
+INSERT INTO `entornos` (`identorno`, `ipserveradm`, `portserveradm`, `protoclonacion`) VALUES
+(1, '10.1.15.3', 2009, 'MULTICAST');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `estatus`
+--
+
+CREATE TABLE IF NOT EXISTS `estatus` (
+ `idestatus` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ PRIMARY KEY (`idestatus`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
+
+--
+-- Volcar la base de datos para la tabla `estatus`
+--
+
+INSERT INTO `estatus` (`idestatus`, `descripcion`) VALUES
+(1, 'P.D.I. ( Profesor)'),
+(2, 'P.A.S.'),
+(3, 'Doctor'),
+(4, 'Alumno'),
+(5, 'Otros');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `grupos`
+--
+
+CREATE TABLE IF NOT EXISTS `grupos` (
+ `idgrupo` int(11) NOT NULL AUTO_INCREMENT,
+ `nombregrupo` varchar(250) NOT NULL DEFAULT '',
+ `grupoid` int(11) NOT NULL DEFAULT '0',
+ `tipo` tinyint(4) NOT NULL DEFAULT '0',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `iduniversidad` int(11) DEFAULT NULL,
+ `comentarios` text,
+ PRIMARY KEY (`idgrupo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `gruposordenadores`
+--
+
+CREATE TABLE IF NOT EXISTS `gruposordenadores` (
+ `idgrupo` int(11) NOT NULL AUTO_INCREMENT,
+ `nombregrupoordenador` varchar(250) NOT NULL DEFAULT '',
+ `idaula` int(11) NOT NULL DEFAULT '0',
+ `grupoid` int(11) DEFAULT NULL,
+ `comentarios` text,
+ PRIMARY KEY (`idgrupo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `hardwares`
+--
+
+CREATE TABLE IF NOT EXISTS `hardwares` (
+ `idhardware` int(11) NOT NULL AUTO_INCREMENT,
+ `idtipohardware` int(11) NOT NULL DEFAULT '0',
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `grupoid` int(11) DEFAULT NULL,
+ PRIMARY KEY (`idhardware`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `iconos`
+--
+
+CREATE TABLE IF NOT EXISTS `iconos` (
+ `idicono` int(11) NOT NULL AUTO_INCREMENT,
+ `urlicono` varchar(200) DEFAULT NULL,
+ `idtipoicono` int(11) DEFAULT NULL,
+ `descripcion` varchar(250) DEFAULT NULL,
+ PRIMARY KEY (`idicono`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
+
+--
+-- Volcar la base de datos para la tabla `iconos`
+--
+
+INSERT INTO `iconos` (`idicono`, `urlicono`, `idtipoicono`, `descripcion`) VALUES
+(1, 'vga.gif', 1, 'Tarjeta gráfica'),
+(2, 'nic.gif', 1, 'Tarjeta de Red'),
+(3, 'placabase.gif', 1, 'Placas base'),
+(4, 'tsonido.gif', 1, 'Tarjeta de sonido'),
+(5, 'camweb.gif', 1, 'Cámara web'),
+(6, 'logoXP.png', 2, 'Logo Windows XP'),
+(7, 'logolinux.png', 2, 'Logo General de Linux'),
+(8, 'particionar.png', 2, 'Particionar'),
+(9, 'ordenadoroff.png', 2, 'Ordenador apagado'),
+(10, 'ordenadoron.png', 2, 'Ordenador encendido'),
+(11, 'usb.gif', 1, 'Mi icono usb'),
+(12, 'ide.gif', 1, 'Controladores IDE'),
+(13, 'dvdcd.gif', 1, 'Lectoras y grabadoras de DVD'),
+(14, 'audio.gif', 1, 'Dispositivos de audio');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `idiomas`
+--
+
+CREATE TABLE IF NOT EXISTS `idiomas` (
+ `ididioma` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(100) DEFAULT NULL,
+ `nemonico` char(3) DEFAULT NULL,
+ PRIMARY KEY (`ididioma`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
+
+--
+-- Volcar la base de datos para la tabla `idiomas`
+--
+
+INSERT INTO `idiomas` (`ididioma`, `descripcion`, `nemonico`) VALUES
+(1, 'Español', 'esp'),
+(2, 'Ingles', 'eng'),
+(3, 'Catalan', 'cat');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `imagenes`
+--
+
+CREATE TABLE IF NOT EXISTS `imagenes` (
+ `idimagen` int(11) NOT NULL AUTO_INCREMENT,
+ `nombreca` varchar(50) NOT NULL,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `idperfilsoft` int(11) DEFAULT NULL,
+ `idcentro` int(11) DEFAULT NULL,
+ `comentarios` text,
+ `grupoid` int(11) DEFAULT NULL,
+ `idrepositorio` int(11) NOT NULL,
+ `numpar` smallint(6) NOT NULL,
+ `codpar` smallint(6) NOT NULL,
+ PRIMARY KEY (`idimagen`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `menus`
+--
+
+CREATE TABLE IF NOT EXISTS `menus` (
+ `idmenu` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `idurlimg` int(11) NOT NULL DEFAULT '0',
+ `titulo` varchar(250) DEFAULT NULL,
+ `coorx` int(11) DEFAULT NULL,
+ `coory` int(11) DEFAULT NULL,
+ `modalidad` tinyint(4) DEFAULT NULL,
+ `scoorx` int(11) DEFAULT NULL,
+ `scoory` int(11) DEFAULT NULL,
+ `smodalidad` tinyint(4) DEFAULT NULL,
+ `comentarios` text,
+ `grupoid` int(11) NOT NULL DEFAULT '0',
+ `htmlmenupub` varchar(250) DEFAULT NULL,
+ `htmlmenupri` varchar(250) DEFAULT NULL,
+ `resolucion` tinyint(4) DEFAULT NULL,
+ PRIMARY KEY (`idmenu`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `nombresos`
+--
+
+CREATE TABLE IF NOT EXISTS `nombresos` (
+ `idnombreso` smallint(11) NOT NULL AUTO_INCREMENT,
+ `nombreso` varchar(250) NOT NULL,
+ `idtiposo` int(11) DEFAULT '0',
+ PRIMARY KEY (`idnombreso`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `ordenadores`
+--
+
+CREATE TABLE IF NOT EXISTS `ordenadores` (
+ `idordenador` int(11) NOT NULL AUTO_INCREMENT,
+ `nombreordenador` varchar(100) DEFAULT NULL,
+ `ip` varchar(16) NOT NULL,
+ `mac` varchar(12) DEFAULT NULL,
+ `idaula` int(11) DEFAULT NULL,
+ `idperfilhard` int(11) DEFAULT NULL,
+ `idrepositorio` int(11) DEFAULT NULL,
+ `grupoid` int(11) DEFAULT NULL,
+ `idmenu` int(11) DEFAULT NULL,
+ `cache` int(11) DEFAULT NULL,
+ `router` varchar(16) NOT NULL,
+ `mascara` varchar(16) NOT NULL,
+ `idproautoexec` int(11) NOT NULL,
+ PRIMARY KEY (`idordenador`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `ordenadores_particiones`
+--
+
+CREATE TABLE IF NOT EXISTS `ordenadores_particiones` (
+ `idordenador` int(11) NOT NULL,
+ `numpar` tinyint(4) NOT NULL,
+ `codpar` smallint(11) NOT NULL,
+ `tamano` int(11) NOT NULL,
+ `idsistemafichero` smallint(11) NOT NULL,
+ `idnombreso` smallint(11) NOT NULL,
+ `idimagen` int(11) NOT NULL,
+ `idperfilsoft` int(11) NOT NULL,
+ UNIQUE KEY `idordenadornumpar` (`idordenador`,`numpar`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `parametros`
+--
+
+CREATE TABLE IF NOT EXISTS `parametros` (
+ `idparametro` int(11) NOT NULL AUTO_INCREMENT,
+ `nemonico` char(3) NOT NULL,
+ `descripcion` text NOT NULL,
+ `nomidentificador` varchar(64) NOT NULL,
+ `nomtabla` varchar(64) NOT NULL,
+ `nomliteral` varchar(64) NOT NULL,
+ `tipopa` tinyint(1) DEFAULT '0',
+ `visual` tinyint(4) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`idparametro`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=31 ;
+
+--
+-- Volcar la base de datos para la tabla `parametros`
+--
+
+INSERT INTO `parametros` (`idparametro`, `nemonico`, `descripcion`, `nomidentificador`, `nomtabla`, `nomliteral`, `tipopa`, `visual`) VALUES
+(1, 'nfn', 'Nombre de la función o script a ejecutar en el cliente y que implementa el comando. Es posible que también els ervidor debo ejecutar la misma función como ocurre en el comando "Arrancar" y que implementa el comportamiento del comando en el servidor', '', '', '', 0, 0),
+(2, 'iph', 'Dirección ip de los ordenadores a los que se envía el comando', '', '', '', 0, 0),
+(3, 'ido', 'Identificadores de los ordenadores a los que se envía el comando', '', '', '', 0, 0),
+(4, 'mac', 'Direcciones macs de los clientes a los que se le envía el comando', '', '', '', 0, 0),
+(5, 'idc', 'Unidad organizativa', 'idcentro', 'centros', '', 1, 0),
+(6, 'ida', 'Aula', 'idaula', 'aulas', 'nombreaula', 1, 0),
+(18, 'cfg', 'Configuración', '', '', '', 2, 1),
+(7, 'dsk', 'Disco', '', '', '', 0, 1),
+(8, 'par', 'Partición', '', '', '', 0, 1),
+(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),
+(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),
+(16, 'exe', 'Identificador del procedimiento que será el que ejecute el cliente al arrancar (Autoexec)', '', '', '', 0, 0),
+(17, 'res', 'Respuesta del comando: Puede tomar los valores 1 o 2 en el caso de que la respuesta sea correcta o que haya un error al ejecutarse.', '', '', '', 0, 0),
+(19, 'ipr', 'Repositorio', 'ip', 'repositorios', 'nombrerepositorio', 1, 1),
+(20, 'cpt', 'Tipo partición', 'codpar', 'tipospar', 'tipopar', 1, 1),
+(21, 'sfi', 'Sistema de fichero', 'idsistemafichero', 'sistemasficheros', 'nemonico', 1, 0),
+(22, 'tam', 'Tamaño', '', '', '', 0, 0),
+(23, 'ope', 'Operación', ';', '', 'Sin operación;Formatear;Ocultar;Mostrar', 3, 1),
+(24, 'nfl', 'Nombre del fichero que se envía o se recibe', '', '', '', 0, 0),
+(25, 'hrd', 'Nombre del archivo de inventario hardware enviado por la red', '', '', '', 0, 0),
+(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', 3, 1);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `perfileshard`
+--
+
+CREATE TABLE IF NOT EXISTS `perfileshard` (
+ `idperfilhard` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `comentarios` text,
+ `grupoid` int(11) DEFAULT NULL,
+ `idcentro` int(11) NOT NULL,
+ PRIMARY KEY (`idperfilhard`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `perfileshard_hardwares`
+--
+
+CREATE TABLE IF NOT EXISTS `perfileshard_hardwares` (
+ `idperfilhard` int(11) NOT NULL DEFAULT '0',
+ `idhardware` int(11) NOT NULL DEFAULT '0',
+ KEY `idperfilhard` (`idperfilhard`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `perfilessoft`
+--
+
+CREATE TABLE IF NOT EXISTS `perfilessoft` (
+ `idperfilsoft` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `comentarios` text,
+ `grupoid` int(11) DEFAULT NULL,
+ `idcentro` int(11) NOT NULL,
+ PRIMARY KEY (`idperfilsoft`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `perfilessoft_softwares`
+--
+
+CREATE TABLE IF NOT EXISTS `perfilessoft_softwares` (
+ `idperfilsoft` int(11) NOT NULL DEFAULT '0',
+ `idsoftware` int(11) NOT NULL DEFAULT '0'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `plataformas`
+--
+
+CREATE TABLE IF NOT EXISTS `plataformas` (
+ `idplataforma` int(11) NOT NULL AUTO_INCREMENT,
+ `plataforma` varchar(250) NOT NULL,
+ PRIMARY KEY (`idplataforma`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;
+
+--
+-- Volcar la base de datos para la tabla `plataformas`
+--
+
+INSERT INTO `plataformas` (`idplataforma`, `plataforma`) VALUES
+(1, 'MsDos'),
+(2, 'Windows'),
+(3, 'Linux'),
+(4, 'Mac'),
+(5, 'OS');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `procedimientos`
+--
+
+CREATE TABLE IF NOT EXISTS `procedimientos` (
+ `idprocedimiento` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `urlimg` varchar(250) DEFAULT NULL,
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `comentarios` text,
+ `grupoid` int(11) DEFAULT '0',
+ PRIMARY KEY (`idprocedimiento`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `procedimientos_acciones`
+--
+
+CREATE TABLE IF NOT EXISTS `procedimientos_acciones` (
+ `idprocedimientoaccion` int(11) NOT NULL AUTO_INCREMENT,
+ `idprocedimiento` int(11) NOT NULL DEFAULT '0',
+ `orden` smallint(4) DEFAULT NULL,
+ `idcomando` int(11) NOT NULL DEFAULT '0',
+ `parametros` text,
+ `procedimientoid` int(11) NOT NULL,
+ PRIMARY KEY (`idprocedimientoaccion`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `programaciones`
+--
+
+CREATE TABLE IF NOT EXISTS `programaciones` (
+ `idprogramacion` int(11) NOT NULL AUTO_INCREMENT,
+ `tipoaccion` int(11) DEFAULT NULL,
+ `identificador` int(11) DEFAULT NULL,
+ `nombrebloque` varchar(255) DEFAULT NULL,
+ `annos` tinyint(4) DEFAULT NULL,
+ `meses` smallint(4) DEFAULT NULL,
+ `diario` int(11) DEFAULT NULL,
+ `dias` tinyint(4) DEFAULT NULL,
+ `semanas` tinyint(4) DEFAULT NULL,
+ `horas` smallint(4) DEFAULT NULL,
+ `ampm` tinyint(1) DEFAULT NULL,
+ `minutos` tinyint(4) DEFAULT NULL,
+ `segundos` tinyint(4) DEFAULT NULL,
+ `horasini` smallint(4) DEFAULT NULL,
+ `ampmini` tinyint(1) DEFAULT NULL,
+ `minutosini` tinyint(4) DEFAULT NULL,
+ `horasfin` smallint(4) DEFAULT NULL,
+ `ampmfin` tinyint(1) DEFAULT NULL,
+ `minutosfin` tinyint(4) DEFAULT NULL,
+ `suspendida` tinyint(1) DEFAULT NULL,
+ `sesion` int(11) NOT NULL,
+ PRIMARY KEY (`idprogramacion`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `repositorios`
+--
+
+CREATE TABLE IF NOT EXISTS `repositorios` (
+ `idrepositorio` int(11) NOT NULL AUTO_INCREMENT,
+ `nombrerepositorio` varchar(250) NOT NULL,
+ `ip` varchar(15) NOT NULL DEFAULT '',
+ `passguor` varchar(50) NOT NULL DEFAULT '',
+ `pathrepoconf` varchar(250) NOT NULL,
+ `pathrepod` varchar(250) NOT NULL,
+ `pathpxe` varchar(250) NOT NULL,
+ `idcentro` int(11) DEFAULT NULL,
+ `grupoid` int(11) DEFAULT NULL,
+ `comentarios` text,
+ `puertorepo` int(11) NOT NULL,
+ PRIMARY KEY (`idrepositorio`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `sistemasficheros`
+--
+
+CREATE TABLE IF NOT EXISTS `sistemasficheros` (
+ `idsistemafichero` smallint(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(50) NOT NULL DEFAULT '',
+ `nemonico` varchar(16) DEFAULT NULL,
+ `codpar` smallint(6) NOT NULL,
+ PRIMARY KEY (`idsistemafichero`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `softwares`
+--
+
+CREATE TABLE IF NOT EXISTS `softwares` (
+ `idsoftware` int(11) NOT NULL AUTO_INCREMENT,
+ `idtiposoftware` int(11) NOT NULL DEFAULT '0',
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `urlimg` varchar(250) DEFAULT NULL,
+ `idtiposo` int(11) DEFAULT NULL,
+ `grupoid` int(11) DEFAULT NULL,
+ PRIMARY KEY (`idsoftware`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tareas`
+--
+
+CREATE TABLE IF NOT EXISTS `tareas` (
+ `idtarea` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `urlimg` varchar(250) DEFAULT NULL,
+ `idcentro` int(11) NOT NULL DEFAULT '0',
+ `ambito` smallint(6) NOT NULL DEFAULT '0',
+ `idambito` int(11) NOT NULL DEFAULT '0',
+ `restrambito` text NOT NULL,
+ `comentarios` text,
+ `grupoid` int(11) DEFAULT '0',
+ PRIMARY KEY (`idtarea`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tareas_acciones`
+--
+
+CREATE TABLE IF NOT EXISTS `tareas_acciones` (
+ `idtareaaccion` int(11) NOT NULL AUTO_INCREMENT,
+ `idtarea` int(11) NOT NULL DEFAULT '0',
+ `orden` smallint(6) NOT NULL DEFAULT '0',
+ `idprocedimiento` int(11) NOT NULL DEFAULT '0',
+ `tareaid` int(11) DEFAULT '0',
+ PRIMARY KEY (`idtareaaccion`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tipohardwares`
+--
+
+CREATE TABLE IF NOT EXISTS `tipohardwares` (
+ `idtipohardware` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `urlimg` varchar(250) NOT NULL DEFAULT '',
+ `nemonico` char(3) NOT NULL,
+ `pci` tinyint(1) NOT NULL,
+ PRIMARY KEY (`idtipohardware`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
+
+--
+-- Volcar la base de datos para la tabla `tipohardwares`
+--
+
+INSERT INTO `tipohardwares` (`idtipohardware`, `descripcion`, `urlimg`, `nemonico`, `pci`) VALUES
+(1, 'Placas', '../images/iconos/placabase.gif', 'boa', 0),
+(2, 'Dispositivos Multimedia', '../images/iconos/tsonido.gif', 'mul', 0),
+(3, 'Tarjetas de Red', '../images/iconos/nic.gif', 'net', 0),
+(4, 'Microprocesadores', '../images/iconos/micro.gif', 'cpu', 0),
+(5, 'Memorias', '../images/iconos/confihard.gif', 'mem', 0),
+(7, 'Tarjetas gráficas', '../images/iconos/vga.gif', 'vga', 0),
+(8, 'Discos', '../images/iconos/discoduro.gif', 'dis', 0),
+(9, 'Dispositivos de sonido', '../images/iconos/audio.gif', 'aud', 0),
+(10, 'Marca y modelo del equipo', '../images/iconos/confihard.gif', 'mod', 0),
+(11, 'Modelo y version de la bios', '../images/iconos/confihard.gif', 'bio', 0),
+(12, 'Modelo de grabadora o grabadora de CD/DVD', '../images/iconos/dvdcd.gif', 'cdr', 0),
+(13, 'Controladores IDE', '../images/iconos/ide.gif', 'ide', 0),
+(14, 'Controladores FireWire', '../images/iconos/confihard.gif', 'fir', 0),
+(15, 'Controladores USB', '../images/iconos/usb.gif', 'usb', 0),
+(16, 'Bus del Sistema', '../images/iconos/confihard.gif', 'bus', 0);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tiposoftwares`
+--
+
+CREATE TABLE IF NOT EXISTS `tiposoftwares` (
+ `idtiposoftware` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ `urlimg` varchar(250) NOT NULL DEFAULT '',
+ PRIMARY KEY (`idtiposoftware`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
+
+--
+-- Volcar la base de datos para la tabla `tiposoftwares`
+--
+
+INSERT INTO `tiposoftwares` (`idtiposoftware`, `descripcion`, `urlimg`) VALUES
+(1, 'Sistemas Operativos', '../images/iconos/so.gif'),
+(2, 'Aplicaciones', '../images/iconos/aplicaciones.gif'),
+(3, 'Archivos', '../images/iconos/archivos.gif');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tiposos`
+--
+
+CREATE TABLE IF NOT EXISTS `tiposos` (
+ `idtiposo` int(11) NOT NULL AUTO_INCREMENT,
+ `tiposo` varchar(250) NOT NULL,
+ `idplataforma` int(11) NOT NULL,
+ PRIMARY KEY (`idtiposo`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
+
+--
+-- Volcar la base de datos para la tabla `tiposos`
+--
+
+INSERT INTO `tiposos` (`idtiposo`, `tiposo`, `idplataforma`) VALUES
+(1, 'MsDos 6.0', 1),
+(2, 'Windows 98', 2),
+(3, 'Linux Ubuntu', 3),
+(4, 'Mac', 0),
+(5, 'OS', 0),
+(17, 'Windows XP', 2),
+(18, 'Windows Vista', 2),
+(19, 'Linux Red Hat', 3),
+(20, 'Windows 7', 2);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `tipospar`
+--
+
+CREATE TABLE IF NOT EXISTS `tipospar` (
+ `codpar` smallint(4) NOT NULL,
+ `tipopar` varchar(250) NOT NULL,
+ `clonable` tinyint(4) NOT NULL,
+ UNIQUE KEY `codpar` (`codpar`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Volcar la base de datos para la tabla `tipospar`
+--
+
+INSERT INTO `tipospar` (`codpar`, `tipopar`, `clonable`) VALUES
+(0, 'EMPTY', 0),
+(1, 'FAT12', 1),
+(5, 'EXTENDED', 0),
+(7, 'NTFS', 1),
+(11, 'FAT32', 1),
+(17, 'HFAT12', 1),
+(22, 'HFAT16', 1),
+(23, 'HNTFS', 1),
+(27, 'HFAT32', 1),
+(130, 'LINUX-SWAP', 0),
+(131, 'LINUX', 1),
+(142, 'LINUX-LVM', 1),
+(191, 'SOLARIS', 1),
+(202, 'CACHE', 0),
+(253, 'LINUX-RAID', 1);
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `universidades`
+--
+
+CREATE TABLE IF NOT EXISTS `universidades` (
+ `iduniversidad` int(11) NOT NULL AUTO_INCREMENT,
+ `nombreuniversidad` varchar(200) NOT NULL DEFAULT '',
+ `comentarios` text,
+ PRIMARY KEY (`iduniversidad`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Volcar la base de datos para la tabla `universidades`
+--
+
+INSERT INTO `universidades` (`iduniversidad`, `nombreuniversidad`, `comentarios`) VALUES
+(1, 'Universidad default...', 'Esta Universidad se crea automáticamentese en el proceso de instalación de OpenGNSys');
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `urlimagesitems`
+--
+
+CREATE TABLE IF NOT EXISTS `urlimagesitems` (
+ `idurlimagesitems` int(11) NOT NULL AUTO_INCREMENT,
+ `descripcion` varchar(250) NOT NULL DEFAULT '',
+ PRIMARY KEY (`idurlimagesitems`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+
+--
+-- Volcar la base de datos para la tabla `urlimagesitems`
+--
+
+
+-- --------------------------------------------------------
+
+--
+-- Estructura de tabla para la tabla `usuarios`
+--
+
+CREATE TABLE IF NOT EXISTS `usuarios` (
+ `idusuario` int(11) NOT NULL AUTO_INCREMENT,
+ `usuario` varchar(50) NOT NULL DEFAULT '',
+ `pasguor` varchar(50) NOT NULL DEFAULT '',
+ `nombre` varchar(200) DEFAULT NULL,
+ `email` varchar(200) DEFAULT NULL,
+ `ididioma` int(11) DEFAULT NULL,
+ `idtipousuario` tinyint(4) DEFAULT NULL,
+ PRIMARY KEY (`idusuario`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Volcar la base de datos para la tabla `usuarios`
+--
+
+INSERT INTO `usuarios` (`idusuario`, `usuario`, `pasguor`, `nombre`, `email`, `ididioma`, `idtipousuario`) VALUES
+(1, 'usuog', 'passusuog', 'Usuario de la base de datos MySql', '', 1, 1);
+
diff --git a/admin/Interface/Apagar b/admin/Interface/Apagar
new file mode 100644
index 00000000..fc850d9f
--- /dev/null
+++ b/admin/Interface/Apagar
@@ -0,0 +1,2 @@
+#!/bin/bash
+poweroff
diff --git a/admin/Interface/Configurar b/admin/Interface/Configurar
new file mode 100644
index 00000000..d98776f4
--- /dev/null
+++ b/admin/Interface/Configurar
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+#_______________________________________________________________________________________________________________________________
+#
+# Formato de entrada:
+# $1 disco
+# $2 par=Número de particion#cod=Código de partición#sfi=Sistema de ficheros#tam=Tamaño de la partición#ope=Operación$
+#_______________________________________________________________________________________________________________________________
+
+particiones=$(echo $2 | awk '{n=split($0,sep,"$");print n}')
+
+declare -a TBP
+declare -a TBF
+for ((par=1;par<$particiones;par++));
+ do
+ TBP[$par]=$(echo $2 | awk -v p=$par '{
+ n=split($0,sep,"$");
+ split(sep[p],dua,"#");
+ split(dua[1],prm,"=");
+ par=prm[2];
+ split(dua[2],prm,"=");
+ cpt=prm[2];
+ split(dua[3],prm,"=");
+ sfi=prm[2];
+ split(dua[4],prm,"=");
+ tam=prm[2];
+ split(dua[5],prm,"=");
+ ope=prm[2];
+ printf("%s %x %s %s %s",par,cpt,sfi,tam,ope);
+ }')
+ done
+
+# Prepara cadena de particiones _______________________________________
+cP=""
+for ((par=1;par<$particiones;par++));
+ do
+ cfg=${TBP[$par]}
+
+ cP=$cP$(echo $cfg | awk '{
+ n=split($0,prm," ");
+ par=prm[1];
+ cpt=prm[2];
+ sfi=prm[3];
+ tam=prm[4];
+ ope=prm[5];
+ if(ope==1)
+ printf("%s:%s ",sfi,tam);
+ else{
+ if(ope==2)
+ printf("H%s:%s ",sfi,tam);
+ else
+ printf("%s:%s ",sfi,tam);
+ }
+ }')
+
+ TBF[$par]=$(echo $cfg | awk '{
+ n=split($0,prm," ");
+ sfi=prm[3];
+ ope=prm[5];
+ if(ope==1)
+ printf("%s",sfi);
+ else
+ printf("EMPTY");
+ }')
+
+ done
+ ogCreatePartitions $1 $cP
+
+# Formatear _______________________________________
+
+for ((par=1;par<$particiones;par++));
+ do
+ sfi=${TBF[$par]}
+ if [ $sfi == "EMPTY" ]; then
+ TBF[$par]=" "
+ else
+ ogFormatFs $1 $par $sfi
+ fi
+
+ done
+
diff --git a/admin/Interface/ConsolaRemota b/admin/Interface/ConsolaRemota
new file mode 100644
index 00000000..f5697716
--- /dev/null
+++ b/admin/Interface/ConsolaRemota
@@ -0,0 +1,3 @@
+#!/bin/bash
+chmod +x $1
+$1>$2 || exit $?
diff --git a/admin/Interface/CrearImagen b/admin/Interface/CrearImagen
new file mode 100644
index 00000000..86b55fc6
--- /dev/null
+++ b/admin/Interface/CrearImagen
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#_______________________________________________________________________________________________________________________________
+#
+# PARAMETROS RECIBIDOS DESDE EL CLIENTE:
+# $1 disco
+# $2 par=Nmero de particion
+# $3 Nombre cannico de la imagen
+# $4 Direccin del repositorio
+#_______________________________________________________________________________________________________________________________
+#createImage $1 $2 REPO $3
+exit 0
diff --git a/admin/Interface/EjecutarScript b/admin/Interface/EjecutarScript
new file mode 100644
index 00000000..8925ac2b
--- /dev/null
+++ b/admin/Interface/EjecutarScript
@@ -0,0 +1,3 @@
+#!/bin/bash
+chmod +x $1
+$1 || exit $?
diff --git a/admin/Interface/InventarioHardware b/admin/Interface/InventarioHardware
new file mode 100644
index 00000000..38d63213
--- /dev/null
+++ b/admin/Interface/InventarioHardware
@@ -0,0 +1,3 @@
+#!/bin/bash
+file=$(listHardwareInfo)
+cp $file $1
diff --git a/admin/Interface/InventarioSoftware b/admin/Interface/InventarioSoftware
new file mode 100644
index 00000000..fc0ed8d3
--- /dev/null
+++ b/admin/Interface/InventarioSoftware
@@ -0,0 +1,3 @@
+#!/bin/bash
+file=$(listSoftwareInfo $1 $2)
+cp $file $3
diff --git a/admin/Interface/Reiniciar b/admin/Interface/Reiniciar
new file mode 100644
index 00000000..01bd8683
--- /dev/null
+++ b/admin/Interface/Reiniciar
@@ -0,0 +1,2 @@
+#!/bin/bash
+reboot
diff --git a/admin/Interface/RestaurarImagen b/admin/Interface/RestaurarImagen
new file mode 100644
index 00000000..85970239
--- /dev/null
+++ b/admin/Interface/RestaurarImagen
@@ -0,0 +1,12 @@
+#!/bin/bash
+#_______________________________________________________________________________________________________________________________
+#
+# PARAMETROS RECIBIDOS DESDE EL CLIENTE:
+# $1 disco
+# $2 par=Nmero de particion
+# $3 Nombre cannico de la imagen
+# $4 Direccin del repositorio
+#_______________________________________________________________________________________________________________________________
+
+#ogRestoreImage REPO $3 $1 $2 UNICAST
+exit 0
diff --git a/admin/Interface/getConfiguration b/admin/Interface/getConfiguration
new file mode 100644
index 00000000..628c9846
--- /dev/null
+++ b/admin/Interface/getConfiguration
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+#_______________________________________________________________________________________________________________________________
+#
+# Formato de salida:
+# par=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n
+#_______________________________________________________________________________________________________________________________
+
+cfg=$(listPrimaryPartitions 1)
+particiones=$(echo $cfg | awk '{n=split($0,sep," ");print n}')
+cfg=""
+for ((par=1;par<=$particiones;par++));
+ do
+ # Tipo de partición o sistema de fichero
+ fsi=$(getFsType 1 $par 2>/dev/null)
+ fsi=${fsi:-"EMPTY"}
+ # Tamaño de la particón
+ tam=$(ogGetPartitionSize 1 $par 2>/dev/null)
+ tam=${tam:-"0"}
+ # Código de la partición
+ cod=$(ogFsToId $fsi)
+
+
+ if [ $cod == 82 ]; then
+ soi=" "
+ else
+ # Sistema de fichero instalado
+ soi=$(getOsVersion 1 $par 2>/dev/null)
+ soi=$(echo $soi | awk '{split($0,sep,":"); print sep[2]}')
+ fi
+
+ cfg=$(echo $cfg$par":"$cod":"$fsi":"$soi":"$tam";")
+
+done
+
+echo $cfg | awk '{
+ n=split($0,sep,";");
+ for(i=1;i<n;i++){
+ split(sep[i],dua,":");
+ printf("par=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\n",dua[1],dua[2],dua[3],dua[4],dua[5]);
+ }
+
+ }'
+
+
diff --git a/admin/Interface/getIpAddress b/admin/Interface/getIpAddress
new file mode 100644
index 00000000..9e4c34ef
--- /dev/null
+++ b/admin/Interface/getIpAddress
@@ -0,0 +1,2 @@
+#!/bin/bash
+getIpAddress
diff --git a/admin/Interface/procesaCache b/admin/Interface/procesaCache
new file mode 100644
index 00000000..9153bb6c
--- /dev/null
+++ b/admin/Interface/procesaCache
@@ -0,0 +1,2 @@
+#!/bin/bash
+initCache $1
diff --git a/admin/Sources/Clients/ogAdmClient/Makefile b/admin/Sources/Clients/ogAdmClient/Makefile
new file mode 100644
index 00000000..3d36dc7e
--- /dev/null
+++ b/admin/Sources/Clients/ogAdmClient/Makefile
@@ -0,0 +1,34 @@
+# makefile
+
+# Nombre del proyecto
+PROYECTO := ogAdmClient
+
+# Directorios y librerias
+DIRS :=
+LIBS := -static
+
+# Opciones de compilacion
+OPCS := -O0 -g -Wall # Depuracion
+#OPCS := -O3 -Wall # Optimizacion
+
+# Ficheros objetos
+OBJS := sources/ogAdmClient.o
+
+all: $(PROYECTO)
+
+$(PROYECTO): $(OBJS)
+ g++ $(DIRS) $(LIBS) $(OBJS) -o $(PROYECTO)
+# strip $(PROYECTO) # Optimizacion
+
+clean:
+ rm $(PROYECTO) $(OBJS)
+
+sources/%.o: sources/%.cpp
+ g++ $(OPCS) -c -o"$@" "$<"
+
+sources/%.o: sources/%.c
+ gcc $(OPCS) -I ../../Includes -c -o"$@" "$<"
+
+
+
+
diff --git a/admin/Sources/Clients/ogAdmClient/ogAdmClient.cfg b/admin/Sources/Clients/ogAdmClient/ogAdmClient.cfg
new file mode 100644
index 00000000..04f91119
--- /dev/null
+++ b/admin/Sources/Clients/ogAdmClient/ogAdmClient.cfg
@@ -0,0 +1,6 @@
+ServidorAdm=SERVERIP
+PUERTO=2008
+PATHINTERFACE=/opt/opengnsys/Interface
+UrlMenu=OPENGNSYSURL/varios/menubrowser.php
+UrlMsg=OPENGNSYSURL/varios/msgbrowser.php
+
diff --git a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c
new file mode 100644
index 00000000..259e0dd0
--- /dev/null
+++ b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.c
@@ -0,0 +1,1771 @@
+// ********************************************************************************************************
+// Cliernte: ogAdmClient
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Abril-2010
+// Nombre del fichero: ogAdmClient.c
+// Descripción :Este fichero implementa el cliente general del sistema
+// ********************************************************************************************************
+#include "ogAdmClient.h"
+#include "ogAdmLib.c"
+//________________________________________________________________________________________________________
+// Función: tomaConfiguracion
+//
+// Descripción:
+// Lee el fichero de configuración del servicio
+// Parámetros:
+// filecfg : Ruta completa al fichero de configuración
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char* filecfg)
+{
+ char modulo[] = "tomaConfiguracion()";
+
+ if (filecfg == NULL || strlen(filecfg) == 0) {
+ errorLog(modulo, 1, FALSE); // Fichero de configuración del cliente vacío
+ return (FALSE);
+ }
+ FILE *fcfg;
+ int lSize;
+ char * buffer, *lineas[MAXPRM], *dualparametro[2];
+ int i, numlin, resul;
+
+ fcfg = fopen(filecfg, "rt");
+ if (fcfg == NULL) {
+ errorLog(modulo, 2, FALSE); // No existe fichero de configuración del cliente
+ return (FALSE);
+ }
+
+ fseek(fcfg, 0, SEEK_END);
+ lSize = ftell(fcfg); // Obtiene tamaño del fichero.
+ rewind(fcfg);
+ buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ lSize=fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
+ buffer[lSize]=CHARNULL;
+ fclose(fcfg);
+
+ /* Inicializar variables globales */
+ servidoradm[0]=CHARNULL;
+ puerto[0] = CHARNULL;
+ pathinterface[0]=CHARNULL;
+ urlmenu[0]=CHARNULL;
+ urlmsg[0]=CHARNULL;
+
+ numlin = splitCadena(lineas, buffer, '\n');
+ for (i = 0; i < numlin; i++) {
+ splitCadena(dualparametro, lineas[i], '=');
+
+ resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM");
+ if (resul == 0)
+ strcpy(servidoradm, dualparametro[1]);
+
+ resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
+ if (resul == 0)
+ strcpy(puerto, dualparametro[1]);
+
+ resul = strcmp(StrToUpper(dualparametro[0]), "PATHINTERFACE");
+ if (resul == 0)
+ strcpy(pathinterface, dualparametro[1]);
+
+ resul = strcmp(StrToUpper(dualparametro[0]), "URLMENU");
+ if (resul == 0)
+ strcpy(urlmenu, dualparametro[1]);
+
+ resul = strcmp(StrToUpper(dualparametro[0]), "URLMSG");
+ if (resul == 0)
+ strcpy(urlmsg, dualparametro[1]);
+ }
+
+ if (servidoradm[0] == CHARNULL) {
+ errorLog(modulo,4, FALSE); // Falta parámetro SERVIDORADM
+ return (FALSE);
+ }
+
+ if (puerto[0] == CHARNULL) {
+ errorLog(modulo,5, FALSE); // Falta parámetro PUERTO
+ return (FALSE);
+ }
+ if (pathinterface[0] == CHARNULL) {
+ errorLog(modulo,56, FALSE); // Falta parámetro PATHINTERFACE
+ return (FALSE);
+ }
+
+ if (urlmenu[0] == CHARNULL) {
+ errorLog(modulo,89, FALSE); // Falta parámetro URLMENU
+ return (FALSE);
+ }
+ if (urlmsg[0] == CHARNULL) {
+ errorLog(modulo,90, FALSE); // Falta parámetro URLMSG
+ return (FALSE);
+ }
+
+ return (TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: FinterfaceAdmin
+//
+// Descripción:
+// Esta función es la puerta de comunicación entre el módulo de administración y el motor de clonación.
+// La Aplicación de administración utiliza una interface para ejecutar funciones del motor de clonación;
+// esta interface llamará a la API del motor con lo que cambiando el comportamiento de esta interface
+// podremos hacer llamadas a otras API de clonación y de esta manera probar distintos motores.
+//
+// Parámetros:
+// - script: Nombre del módulo,función o script de la interface
+// - parametros: Parámetros que se le pasarán a la interface
+// - salida: Recoge la salida que genera la llamada a la interface
+
+// Devuelve:
+// Código de error de la ejecución al módulo , función o script de la interface
+//
+// Especificaciones:
+// El parámetro salida recoge la salida desde un fichero que se genera en la ejecución del script siempre que
+// sea distinto de NULL, esto es, si al llamar a la función este parámetro es NULL no se recogerá dicha salida.
+// Este fichero tiene una ubicación fija: /tmp/_retinterface
+//______________________________________________________________________________________________________
+
+int FinterfaceAdmin( char *script,char* parametros,char* salida)
+{
+ FILE *f;
+ int lSize,nargs,i,resul;
+ char msglog[LONSTD],*argumentos[MAXARGS];
+ char modulo[] = "FinterfaceAdmin()";
+
+
+ if (ndebug>= DEBUG_MEDIO) {
+ sprintf(msglog, "%s:%s", tbMensajes[8], script);
+ infoDebug(msglog);
+ }
+
+ /* Crea matriz de los argumentos */
+ nargs=splitCadena(argumentos,parametros,32);
+ for(i=nargs;i<MAXARGS;i++){
+ argumentos[i]=NULL;
+ }
+
+ /* Muestra matriz de los argumentos */
+ for(i=0;i<nargs;i++){
+ if (ndebug>= DEBUG_ALTO) {
+ sprintf(msglog, "%s: #%d-%s", tbMensajes[9],i+1,argumentos[i]);
+ infoDebug(msglog);
+ }
+ }
+ /* Elimina fichero de retorno */
+ if(salida!=(char*)NULL){
+ f = fopen("/tmp/_retinterface_","w" );
+ if (f==NULL){ // Error de eliminación
+ scriptLog(modulo,10);
+ resul=8;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ fclose(f);
+ }
+ /* Compone linea de comando */
+ if(parametros){
+ strcat(script," ");
+ strcat(script,parametros);
+ }
+ /* LLamada función interface */
+ resul=system(script);
+ if(resul){
+ scriptLog(modulo,10);
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ /* Lee fichero de retorno */
+ if(salida!=(char*)NULL){
+ f = fopen("/tmp/_retinterface_","rb" );
+ if (f==NULL){ // Error de apertura
+ scriptLog(modulo,10);
+ resul=9;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ else{
+ fseek (f ,0,SEEK_END); // Obtiene tamaño del fichero.
+ lSize = ftell (f);
+ rewind (f);
+ if(lSize>LONGITUD_SCRIPTSALIDA){
+ scriptLog(modulo,10);
+ resul=11;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ fread (salida,1,lSize,f); // Lee contenido del fichero
+ rTrim(salida);
+ fclose(f);
+ }
+ }
+ /* Muestra información de retorno */
+ if(salida!=(char*)NULL){
+ if(ndebug>2){
+ sprintf(msglog,"Información devuelta %s",salida);
+ infoDebug(msglog);
+ }
+ }
+ return(resul);
+}
+//______________________________________________________________________________________________________
+// Función: interfaceAdmin
+//
+// Descripción:
+// Esta función es la puerta de comunicación entre el módulo de administración y el motor de clonación.
+// La Aplicación de administración utiliza una interface para ejecutar funciones del motor de clonación;
+// esta interface llamará a la API del motor con lo que cambiando el comportamiento de esta interface
+// podremos hacer llamadas a otras API de clonación y de esta manera probar distintos motores.
+//
+// Parámetros:
+// - script: Nombre del módulo,función o script de la interface
+// - parametros: Parámetros que se le pasarán a la interface
+// - salida: Recoge la salida que genera la llamada a la interface
+
+// Devuelve:
+// Código de error de la ejecución al módulo , función o script de la interface
+//
+// Especificaciones:
+// El parámetro salida recoge la salida desde el procedimiento hijo que se genera en la ejecución de éste
+// siempre que sea distinto de NULL, esto es, si al llamar a la función este parámetro es NULL no se
+// recogerá dicha salida.
+//______________________________________________________________________________________________________
+
+int interfaceAdmin( char *script,char* parametros,char* salida)
+{
+ int descr[2]; /* Descriptores de E y S de la turbería */
+ int bytesleidos; /* Bytes leidos en el mensaje */
+ int estado;
+ pid_t pid;
+ char buffer[LONGITUD_SCRIPTSALIDA];
+ pipe (descr);
+ int i,nargs,resul;
+ char msglog[LONSTD],*argumentos[MAXARGS];
+ char modulo[] = "interfaceAdmin()";
+ if (ndebug>= DEBUG_MEDIO) {
+ sprintf(msglog, "%s:%s", tbMensajes[8], script);
+ infoDebug(msglog);
+ }
+
+ /* Crea matriz de los argumentos */
+ nargs=splitCadena(argumentos,parametros,32);
+ for(i=nargs;i<MAXARGS;i++){
+ argumentos[i]=NULL;
+ }
+ /* Muestra matriz de los argumentos */
+ for(i=1;i<nargs;i++){
+ if (ndebug>= DEBUG_ALTO) {
+ sprintf(msglog, "%s: #%d-%s", tbMensajes[9],i+1,argumentos[i]);
+ infoDebug(msglog);
+ }
+ }
+
+ if((pid=fork())==0)
+ {
+ //_______________________________________________________________
+
+ /* Proceso hijo que ejecuta la función de interface */
+
+ close (descr[LEER]);
+ dup2 (descr[ESCRIBIR], 1);
+ close (descr[ESCRIBIR]);
+ resul=execv(script,argumentos);
+ //resul=execlp (script, script, argumentos[0],argumentos[1],NULL);
+ exit(resul);
+
+ /* Fin de proceso hijo */
+ //_______________________________________________________________
+ }
+ else
+ {
+ //_______________________________________________________________
+
+ /* Proceso padre que espera la ejecución del hijo */
+
+ if (pid ==-1){ // Error en la creación del proceso hijo
+ scriptLog(modulo,10);
+ resul=13;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ close (descr[ESCRIBIR]);
+ bytesleidos = read (descr[LEER], buffer, LONGITUD_SCRIPTSALIDA-1);
+ while(bytesleidos>0){
+ if(salida!=(char*)NULL){ // Si se solicita retorno de información...
+ buffer[bytesleidos]='\0';
+ if(strlen(buffer)+strlen(salida)>LONGITUD_SCRIPTSALIDA){
+ scriptLog(modulo,10);
+ resul=11;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ rTrim(buffer);
+ strcat(salida,buffer);
+
+ }
+ bytesleidos = read (descr[LEER], buffer, LONGITUD_SCRIPTSALIDA-1);
+ }
+ close (descr[LEER]);
+ //kill(pid,SIGQUIT);
+ waitpid(pid,&estado,0);
+ resul=WEXITSTATUS(estado);
+ if(resul){
+ scriptLog(modulo,10);
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ /* Fin de proceso padre */
+ //_______________________________________________________________
+ }
+
+ /* Muestra información de retorno */
+ if(salida!=(char*)NULL){
+ if(ndebug>2){
+ sprintf(msglog,"Información devuelta %s",salida);
+ infoDebug(msglog);
+ }
+ }
+ return(resul);
+}
+//______________________________________________________________________________________________________
+// Función: scriptLog
+//
+// Descripción:
+// Registra los sucesos de errores de scripts en el fichero de log
+// Parametros:
+// - modulo: Módulo donde se produjo el error
+// - coderr : Código del mensaje de error del script
+//______________________________________________________________________________________________________
+void scriptLog(const char *modulo,int coderr)
+{
+ char msglog[LONSUC];
+
+ if(coderr<MAXERRORSCRIPT)
+ errorInfo(modulo,tbErroresScripts[coderr]); // Se ha producido algún error registrado
+ else{
+ sprintf(msglog,"%s: %d",tbErroresScripts[MAXERRORSCRIPT],coderr);
+ errorInfo(modulo,msglog);
+ }
+}
+//______________________________________________________________________________________________________
+// Función: TomaIPlocal
+//
+// Descripción:
+// Recupera la IP local
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// Especificaciones:
+// En caso de no encontrar la IP o generarse algún error la IP local sería 0.0.0.0
+//______________________________________________________________________________________________________
+BOOLEAN tomaIPlocal()
+{
+ char modulo[] = "tomaIPlocal()";
+
+ sprintf(interface,"%s/getIpAddress",pathinterface);
+ herror=interfaceAdmin(interface,NULL,IPlocal);
+ if(herror){
+ errorLog(modulo,85,FALSE);
+ return(FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: cuestionCache
+//
+// Descripción:
+// Procesa la cache en caso de existir.
+// Parámetros:
+// tam : Tamaño de la cache
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN cuestionCache(char* tam)
+{
+ char msglog[LONSTD];
+ char modulo[] = "cuestionCache()";
+
+ sprintf(interface,"%s/%s",pathinterface,"procesaCache");
+ sprintf(parametros,"%s %s","procesaCache",tam);
+
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s",tbErrores[88]);
+ errorInfo(modulo,msglog);
+ return(FALSE);
+ }
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: cargaPaginaWeb
+//
+// Descripción:
+// Muestra una pégina web usando el browser
+// Parámetros:
+// urp: Dirección url de la página
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+int cargaPaginaWeb(char *url)
+{
+ int resul=0;
+ char* argumentos[3];
+ char modulo[] = "cargaPaginaWeb()";
+
+ if(pidbash>0)
+ kill(pidbash,SIGQUIT); // Destruye el proceso hijo del proceso bash si existiera una conmutación
+
+ if(pidbrowser>0)
+ kill(pidbrowser,SIGQUIT); // Destruye el proceso hijo anterior y se queda sólo el actual
+
+ sprintf(interface,"/opt/opengnsys/bin/browser");
+ sprintf(parametros,"%s %s %s","browser","-qws",url);
+
+ splitCadena(argumentos,parametros,' '); // Crea matriz de los argumentos del scripts
+
+ if((pidbrowser=fork())==0){
+ /* Proceso hijo que ejecuta el script */
+ resul=execv(interface,argumentos);
+ exit(resul);
+ }
+ else {
+ if (pidbrowser ==-1){
+ scriptLog(modulo,10);
+ resul=13;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ }
+ return(resul);
+}
+//________________________________________________________________________________________________________
+// Función: muestraMenu
+//
+// Descripción:
+// Muestra el menu inicial del cliente
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+void muestraMenu()
+{
+ cargaPaginaWeb(urlmenu);
+}
+//______________________________________________________________________________________________________
+// Función: muestraMensaje
+//
+// Descripción:
+// Muestra un mensaje en pantalla
+// Parámetros:
+// - idx: Indice del mensaje
+// - msg: Descripción Mensaje
+// ________________________________________________________________________________________________________
+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
+ else
+ sprintf(url,"%s?idx=%d",urlmsg,idx); // Url de la página de mensajes
+ cargaPaginaWeb(url);
+}
+//______________________________________________________________________________________________________
+// Función: InclusionCliente
+// Descripción:
+// Abre una sesión en el servidor de administración y registra al cliente en el sistema
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN inclusionCliente(TRAMA* ptrTrama)
+{
+ int lon;
+ char msglog[LONSTD],*cfg;
+ SOCKET socket_c;
+ char modulo[] = "inclusionCliente()";
+
+ char *dsk=(char*)reservaMemoria(2);
+ sprintf(dsk,"1"); // Siempre el disco 1
+
+ cfg=LeeConfiguracion(dsk);
+ if(!cfg){ // No se puede recuperar la configuración del cliente
+ errorLog(modulo,36,FALSE);
+ errorLog(modulo,37,FALSE);
+ return(FALSE);
+ }
+ if (ndebug>= DEBUG_ALTO) {
+ sprintf(msglog, "%s:%s", tbMensajes[14],cfg);
+ infoDebug(msglog);
+ }
+ 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
+
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
+ errorLog(modulo,37,FALSE);
+ return(FALSE);
+ }
+ ptrTrama=recibeMensaje(&socket_c);
+ if(!ptrTrama){
+ errorLog(modulo,45,FALSE);
+ return(FALSE);
+ }
+ close(socket_c);
+
+ if(!gestionaTrama(ptrTrama)){ // Análisis de la trama
+ errorLog(modulo,39,FALSE);
+ return(FALSE);
+ }
+
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: RESPUESTA_InclusionCliente
+//
+// Descripción:
+// Respuesta del servidor de administración a la petición de inicio
+// enviando los datos identificativos del cliente y otras configuraciones
+// Parámetros:
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN RESPUESTA_InclusionCliente(TRAMA* ptrTrama)
+{
+ char* res;
+ char modulo[] = "RESPUESTA_InclusionCliente()";
+
+ res=copiaParametro("res",ptrTrama); // Resultado del proceso de inclusión
+ if(atoi(res)==0){ // Error en el proceso de inclusión
+ 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
+
+ if(idordenador==NULL || nombreordenador==NULL){
+ errorLog(modulo,40,FALSE);
+ return (FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+//
+// Función: LeeConfiguracion
+// Descripción:
+// Abre una sesión en el servidor de administración y registra al cliente en el sistema
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+
+char* LeeConfiguracion(char* dsk)
+{
+ char* parametroscfg;
+ char modulo[] = "LeeConfiguracion()";
+
+ parametroscfg=(char*)reservaMemoria(LONGITUD_PARAMETROS);
+ if(!parametroscfg){
+ errorLog(modulo,3,FALSE);
+ return(NULL);
+ }
+ sprintf(interface,"%s/%s",pathinterface,"getConfiguration");
+ herror=interfaceAdmin(interface,NULL,parametroscfg);
+
+ if(herror){ // No se puede recuperar la configuración del cliente
+ errorLog(modulo,36,FALSE);
+ return(NULL);
+ }
+ return(parametroscfg);
+}
+//________________________________________________________________________________________________________
+// Función: autoexecCliente
+//
+// Descripción:
+// Solicita procedimiento de autoexec para el cliebnte
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN autoexecCliente(TRAMA* ptrTrama)
+{
+ int lon;
+ SOCKET socket_c;
+ char modulo[] = "autoexecCliente()";
+
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=AutoexecCliente\rexe=%s\r",idproautoexec);
+
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ ptrTrama=recibeMensaje(&socket_c);
+ if(!ptrTrama){
+ errorLog(modulo,45,FALSE);
+ return(FALSE);
+ }
+
+ close(socket_c);
+
+ if(!gestionaTrama(ptrTrama)){ // Análisis de la trama
+ errorLog(modulo,39,FALSE);
+ return(FALSE);
+ }
+
+ return(TRUE);
+}
+//________________________________________________________________________________________________________
+// Función: autoexecCliente
+//
+// Descripción:
+// Ejecuta un script de autoexec personalizado en todos los inicios para el cliente
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_AutoexecCliente(TRAMA* ptrTrama)
+{
+ SOCKET socket_c;
+ char *res,*nfl;
+ char modulo[] = "RESPUESTA_AutoexecCliente()";
+
+ res=copiaParametro("res",ptrTrama);
+ if(atoi(res)==0){ // Error en el proceso de autoexec
+ return (FALSE);
+ }
+ nfl=copiaParametro("nfl",ptrTrama);
+ initParametros(ptrTrama,0);
+ sprintf(ptrTrama->parametros,"nfn=enviaArchivo\rnfl=%s\r",nfl);
+ /* Envía petición */
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ /* Nombre del archivo destino (local)*/
+ char fileautoexec[LONPRM];
+ sprintf(fileautoexec,"/tmp/_autoexec_%s",IPlocal);
+
+ /* Recibe archivo */
+ if(!recArchivo(&socket_c,fileautoexec)){
+ errorLog(modulo,58, FALSE);
+ close(socket_c);
+ return(FALSE);
+ }
+
+ close(socket_c);
+
+ /* Ejecuta archivo */
+ ejecutaArchivo(fileautoexec,ptrTrama);
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: comandosPendientes
+//
+// Descripción:
+// Búsqueda de acciones pendientes en el servidor de administración
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN comandosPendientes(TRAMA* ptrTrama)
+{
+ SOCKET socket_c;
+ char modulo[] = "comandosPendientes()";
+
+ CMDPTES=TRUE;
+ initParametros(ptrTrama,0);
+
+ while(CMDPTES){
+ sprintf(ptrTrama->parametros,"nfn=ComandosPendientes\r");
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_PETICION)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ ptrTrama=recibeMensaje(&socket_c);
+ if(!ptrTrama){
+ errorLog(modulo,45,FALSE);
+ return(FALSE);
+ }
+ close(socket_c);
+
+ if(!gestionaTrama(ptrTrama)){ // Análisis de la trama
+ errorLog(modulo,39,FALSE);
+ return(FALSE);
+ }
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: NoComandosPtes
+//
+// Descripción:
+// Conmuta el switch de los comandos pendientes y lo pone a false
+// Parámetros:
+// - ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE siempre
+// Especificaciones:
+// Cuando se ejecuta esta función se sale del bucle que recupera los comandos pendientes en el
+// servidor y el cliente pasa a a estar disponible para recibir comandos desde el éste.
+//______________________________________________________________________________________________________
+BOOLEAN NoComandosPtes(TRAMA* ptrTrama)
+{
+ CMDPTES=FALSE; // Corta el bucle de comandos pendientes
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: ProcesaComandos
+//
+// Descripción:
+// Espera comando desde el Servidor de Administración para ejecutarlos
+// Parámetros:
+// Ninguno
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+void procesaComandos(TRAMA* ptrTrama)
+{
+ int lon;
+ SOCKET socket_c;
+ char modulo[] = "procesaComandos()";
+
+ initParametros(ptrTrama,0);
+ while(TRUE){
+ lon=sprintf(ptrTrama->parametros,"nfn=DisponibilidadComandos\r");
+ lon+=sprintf(ptrTrama->parametros+lon,"tpc=%s\r",CLIENTE_OPENGNSYS); // Activar disponibilidad
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_INFORMACION)){
+ errorLog(modulo,43,FALSE);
+ return;
+ }
+ infoLog(19); // Disponibilidad de cliente activada
+ ptrTrama=recibeMensaje(&socket_c);
+ if(!ptrTrama){
+ errorLog(modulo,46,FALSE);
+ return;
+ }
+
+ close(socket_c);
+
+ if(!gestionaTrama(ptrTrama)){ // Análisis de la trama
+ errorLog(modulo,39,FALSE);
+ return;
+ }
+ if(!comandosPendientes(ptrTrama)){
+ errorLog(modulo,42,FALSE);
+ }
+ }
+}
+//______________________________________________________________________________________________________
+// Función: Actualizar
+//
+// Descripción:
+// Actualiza los datos de un ordenador como si volviera a solicitar la entrada
+// en el sistema al servidor de administración
+// Parámetros:
+// ptrTrama: contenido del mensajede
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN Actualizar(TRAMA* ptrTrama)
+{
+ char msglog[LONSTD];
+ char modulo[] = "Actualizar()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ muestraMensaje(1,NULL);
+ if(!comandosPendientes(ptrTrama)){
+ errorLog(modulo,84,FALSE);
+ return(FALSE);
+ }
+ muestraMenu();
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: Purgar
+//
+// Descripción:
+// Detiene la ejecución del browser
+// Parámetros:
+// ptrTrama: contenido del mensajede
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+int Purgar(TRAMA* ptrTrama)
+{
+ int resul=0;
+ char modulo[] = "Purgar()";
+
+ if(pidbrowser>0)
+ kill(pidbrowser,SIGQUIT); // Destruye el proceso hijo anterior y se queda sólo el actual
+
+ if(pidbash>0)
+ kill(pidbash,SIGQUIT); // Destruye el proceso hijo del proceso bash si existiera una conmutación
+
+ sprintf(interface,"/opt/opengnsys/bin/bash");
+ if((pidbash=fork())==0){
+ /* Proceso hijo que ejecuta el script */
+ resul=execv(interface,NULL);
+ exit(resul);
+ }
+ else {
+ if (pidbash ==-1){
+ scriptLog(modulo,10);
+ resul=13;
+ scriptLog(modulo,resul);
+ return(resul);
+ }
+ }
+ exit(EXIT_SUCCESS);
+}
+//______________________________________________________________________________________________________
+// Función: Sondeo
+//
+// Descripción:
+// Envía al servidor una confirmación de que está dentro del sistema
+// Parámetros:
+// ptrTrama: contenido del mensajede
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN Sondeo(TRAMA* ptrTrama)
+{
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: ConsolaRemota
+//
+// Descripción:
+// Ejecuta un comando de la Shell y envia el eco al servidor (Consola remota)
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN ConsolaRemota(TRAMA* ptrTrama)
+{
+ SOCKET socket_c;
+ char *nfn,*ids,*scp,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);
+ escribeArchivo(filescript,scp);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(ecosrc,"/tmp/_econsola_%s",IPlocal);
+ sprintf(parametros,"%s %s %s",nfn,filescript,ecosrc);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ }
+ else{
+ /* Envía fichero de inventario al servidor */
+ sprintf(ecodst,"/tmp/_Seconsola_%s",IPlocal); // Nombre que tendra el archivo en el Servidor
+ initParametros(ptrTrama,0);
+ sprintf(ptrTrama->parametros,"nfn=recibeArchivo\rnfl=%s\r",ecodst);
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_COMANDO)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ /* Espera señal para comenzar el envío */
+ recibeFlag(&socket_c,ptrTrama);
+ /* Envía archivo */
+ if(!sendArchivo(&socket_c,ecosrc)){
+ errorLog(modulo,57, FALSE);
+ herror=12; // Error de envío de fichero por la red
+ }
+ close(socket_c);
+ }
+ return(TRUE);
+}
+//_____________________________________________________________________________________________________
+// Función: Comando
+//
+// Descripción:
+// COmando personalizado enviado desde el servidor
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________
+BOOLEAN Comando(TRAMA* ptrTrama)
+{
+ int lon;
+ char *ids,*nfn,msglog[LONSTD];
+ char modulo[] = "Comando()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ herror=interfaceAdmin(interface,NULL,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ }
+ /* Envia respuesta de ejecucución del comando */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=RESPUESTA_%s\r",nfn);
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+ return(TRUE);
+}
+//_____________________________________________________________________________________________________
+// Función: Arrancar
+//
+// Descripción:
+// Responde a un comando de encendido por la red
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________
+BOOLEAN Arrancar(TRAMA* ptrTrama)
+{
+ int lon;
+ char *ids,msglog[LONSTD];
+ char modulo[] = "Arrancar()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+
+ ids=copiaParametro("ids",ptrTrama);
+
+ /* Envia respuesta de ejecucución del script */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_Arrancar");
+ lon+=sprintf(ptrTrama->parametros+lon,"tpc=%s\r",CLIENTE_OPENGNSYS);
+ respuestaEjecucionComando(ptrTrama,0,ids);
+ return(TRUE);
+}
+//_____________________________________________________________________________________________________
+// Función: Apagar
+//
+// Descripción:
+// Apaga el cliente
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________
+BOOLEAN Apagar(TRAMA* ptrTrama)
+{
+ int lon;
+ char *ids,*nfn,msglog[LONSTD];
+ char modulo[] = "Apagar()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_Apagar");
+ respuestaEjecucionComando(ptrTrama,0,ids);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ herror=interfaceAdmin(interface,NULL,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ return(FALSE);
+ }
+ return(TRUE);
+}
+//_____________________________________________________________________________________________________
+// Función: Reiniciar
+//
+// Descripción:
+// Apaga el cliente
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________
+BOOLEAN Reiniciar(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*ids,msglog[LONSTD];
+ char modulo[] = "Reiniciar()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_Reiniciar");
+ respuestaEjecucionComando(ptrTrama,0,ids);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ herror=interfaceAdmin(interface,NULL,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ return(FALSE);
+ }
+ return(TRUE);
+}
+//_____________________________________________________________________________________________________
+// Función: IniciarSesion
+//
+// Descripción:
+// Inicia sesión en el Sistema Operativo de una de las particiones
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________
+BOOLEAN IniciarSesion(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*ids,*par,msglog[LONSTD];
+ char modulo[] = "IniciarSesion()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_IniciarSesion");
+ respuestaEjecucionComando(ptrTrama,0,ids);
+
+ par=copiaParametro("par",ptrTrama);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s",nfn,par);
+ herror=interfaceAdmin(interface,parametros,NULL);
+
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ return(FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: CrearImagen
+//
+// Descripción:
+// Crea una imagen de 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 CrearImagen(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*cpt,*idi,*ipr,*nci,*ids,msglog[LONSTD];
+ char modulo[] = "CrearImagen()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+
+ dsk=copiaParametro("dsk",ptrTrama); // Disco
+ par=copiaParametro("par",ptrTrama); // Número de partición
+ cpt=copiaParametro("cpt",ptrTrama); // Código de la partición
+ idi=copiaParametro("idi",ptrTrama); // Identificador de la imagen
+ nci=copiaParametro("nci",ptrTrama); // Nombre canónico de la imagen
+ ipr=copiaParametro("ipr",ptrTrama); // Ip del repositorio
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+
+ if(InventariandoSoftware(ptrTrama,FALSE,"InventarioSoftware")){ // Crea inventario Software previamente
+ muestraMensaje(2,NULL);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s",nfn,dsk,par,nci,ipr);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(10,NULL);
+ }
+ else
+ muestraMensaje(9,NULL);
+ }
+ else{
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ }
+
+ muestraMenu();
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_CrearImagen");
+ 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);
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: RestaurarImagen
+//
+// Descripción:
+// Restaura una imagen 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 RestaurarImagen(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*par,*idi,*ipr,*ifs,*nci,*ids,*ptc,msglog[LONSTD];
+ char modulo[] = "RestaurarImagen()";
+
+ 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);
+ nci=copiaParametro("nci",ptrTrama);
+ ifs=copiaParametro("ifs",ptrTrama);
+ ptc=copiaParametro("ptc",ptrTrama);
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(3,NULL);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s %s %s",nfn,dsk,par,nci,ipr);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(12,NULL);
+ }
+ else
+ muestraMensaje(11,NULL);
+
+ muestraMenu();
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_RestaurarImagen");
+ 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);
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: Configurar
+//
+// Descripción:
+// Configura la tabla de particiones y formatea
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN Configurar(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*dsk,*cfg,*ids,msglog[LONSTD];
+ char modulo[] = "Configurar()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+
+ dsk=copiaParametro("dsk",ptrTrama);
+ cfg=copiaParametro("cfg",ptrTrama);
+ /* Sustituir caracteres */
+ sustituir(cfg,'\n','$');
+ sustituir(cfg,'\t','#');
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(4,NULL);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s %s'",nfn,dsk,cfg);
+
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(13,NULL);
+ }
+ else
+ muestraMensaje(14,NULL);
+
+ muestraMenu();
+
+ cfg=LeeConfiguracion(dsk);
+ if(!cfg){ // No se puede recuperar la configuración del cliente
+ errorLog(modulo,36,FALSE);
+ return(FALSE);
+ }
+
+ /* Envia respuesta de ejecución del comando*/
+ initParametros(ptrTrama,0);
+ 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);
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: InventarioHardware
+//
+// Descripción:
+// Envia al servidor el nombre del archivo de inventario de su hardware para posteriormente
+// esperar que éste lo solicite y enviarlo por la red.
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN InventarioHardware(TRAMA* ptrTrama)
+{
+ int lon;
+ SOCKET socket_c;
+ char *nfn,*ids,msglog[LONSTD],hrdsrc[LONPRM],hrddst[LONPRM];
+ char modulo[] = "InventarioHardware()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(6,NULL);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(hrdsrc,"/tmp/Chrd-%s",IPlocal); // Nombre que tendra el archivo de inventario
+ sprintf(parametros,"%s %s",nfn,hrdsrc);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(18,NULL);
+ }
+ else{
+ /* Envía fichero de inventario al servidor */
+ sprintf(hrddst,"/tmp/Shrd-%s",IPlocal); // Nombre que tendra el archivo en el Servidor
+ initParametros(ptrTrama,0);
+ sprintf(ptrTrama->parametros,"nfn=recibeArchivo\rnfl=%s\r",hrddst);
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_COMANDO)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ /* Espera señal para comenzar el envío */
+ recibeFlag(&socket_c,ptrTrama);
+ /* Envía archivo */
+ if(!sendArchivo(&socket_c,hrdsrc)){
+ errorLog(modulo,57, FALSE);
+ herror=12; // Error de envío de fichero por la red
+ }
+ close(socket_c);
+ muestraMensaje(17,NULL);
+ }
+ muestraMenu();
+
+ /* Envia respuesta de ejecución de la función de interface */
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_InventarioHardware");
+ lon+=sprintf(ptrTrama->parametros+lon,"hrd=%s\r",hrddst);
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: InventarioSoftware
+//
+// Descripción:
+// Crea el inventario software de un sistema operativo instalado 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 InventarioSoftware(TRAMA* ptrTrama)
+{
+ char *nfn,*ids,msglog[LONSTD];
+ char modulo[] = "InventarioSoftware()";
+
+ if (ndebug>=DEBUG_MAXIMO) {
+ sprintf(msglog, "%s:%s",tbMensajes[21],modulo);
+ infoDebug(msglog);
+ }
+ nfn=copiaParametro("nfn",ptrTrama);
+ ids=copiaParametro("ids",ptrTrama);
+ muestraMensaje(7,NULL);
+ InventariandoSoftware(ptrTrama,TRUE,nfn);
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+ muestraMenu();
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: InventariandoSoftware
+//
+// Descripción:
+// Envia al servidor el nombre del archivo de inventario de su software para posteriormente
+// esperar que éste lo solicite y enviarlo por la red.
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// sw: switch que indica si la función es llamada por el comando InventarioSoftware(true) o CrearImagen(false)
+// nfn: Nombre de la función del Interface que implementa el comando
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN InventariandoSoftware(TRAMA* ptrTrama,BOOLEAN sw,char *nfn)
+{
+ int lon;
+ SOCKET socket_c;
+ char *dsk,*par,msglog[LONSTD],sftsrc[LONPRM],sftdst[LONPRM];
+ char modulo[] = "InventariandoSoftware()";
+
+ dsk=copiaParametro("dsk",ptrTrama); // Disco
+ par=copiaParametro("par",ptrTrama);
+
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(sftsrc,"/tmp/CSft-%s-%s",IPlocal,par); // Nombre que tendra el archivo de inventario
+ sprintf(parametros,"%s %s %s %s",nfn,dsk,par,sftsrc);
+
+ herror=interfaceAdmin(interface,parametros,NULL);
+ herror=0;
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(20,NULL);
+ }
+ else{
+ /* Envía fichero de inventario al servidor */
+ sprintf(sftdst,"/tmp/Ssft-%s-%s",IPlocal,par); // Nombre que tendra el archivo en el Servidor
+ initParametros(ptrTrama,0);
+
+ sprintf(ptrTrama->parametros,"nfn=recibeArchivo\rnfl=%s\r",sftdst);
+ if(!enviaMensajeServidor(&socket_c,ptrTrama,MSG_COMANDO)){
+ errorLog(modulo,42,FALSE);
+ return(FALSE);
+ }
+ /* Espera señal para comenzar el envío */
+ if(!recibeFlag(&socket_c,ptrTrama)){
+ errorLog(modulo,17,FALSE);
+ }
+ /* Envía archivo */
+ if(!sendArchivo(&socket_c,sftsrc)){
+ errorLog(modulo,57, FALSE);
+ herror=12; // Error de envío de fichero por la red
+ }
+ close(socket_c);
+ muestraMensaje(19,NULL);
+ }
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_InventarioSoftware");
+ lon+=sprintf(ptrTrama->parametros+lon,"par=%s\r",par);
+ lon+=sprintf(ptrTrama->parametros+lon,"sft=%s\r",sftdst);
+ if(!sw)
+ respuestaEjecucionComando(ptrTrama,herror,"0");
+
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: EjecutarScript
+//
+// Descripción:
+// Ejecuta código de script
+// Parámetros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN EjecutarScript(TRAMA* ptrTrama)
+{
+ int lon;
+ char *nfn,*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);
+ muestraMensaje(8,NULL);
+ /* Nombre del archivo de script */
+ char filescript[LONPRM];
+ sprintf(filescript,"/tmp/_script_%s",IPlocal);
+ escribeArchivo(filescript,scp);
+ sprintf(interface,"%s/%s",pathinterface,nfn);
+ sprintf(parametros,"%s %s",nfn,filescript);
+ herror=interfaceAdmin(interface,parametros,NULL);
+ if(herror){
+ sprintf(msglog,"%s:%s",tbErrores[86],nfn);
+ errorInfo(modulo,msglog);
+ muestraMensaje(21,NULL);
+ }
+ else
+ muestraMensaje(22,NULL);
+ muestraMenu();
+ //herror=ejecutarCodigoBash(scp);
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=%s\r","RESPUESTA_EjecutarScript");
+ respuestaEjecucionComando(ptrTrama,herror,ids);
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: respuestaEjecucionComando
+//
+// Descripción:
+// Envia una respuesta a una ejecucion de comando al servidor de Administración
+// Parámetros:
+// - ptrTrama: contenido del mensaje
+// - res: Resultado de la ejecución (Código de error devuelto por el script ejecutado)
+// - ids: Identificador de la sesion (En caso de no haber seguimiento es NULO)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN respuestaEjecucionComando(TRAMA* ptrTrama,int res,char *ids)
+{
+ int lon;
+ SOCKET socket_c;
+ char modulo[] = "respuestaEjecucionComando()";
+
+ lon=strlen(ptrTrama->parametros);
+ if(ids){ // Existe seguimiento
+ lon+=sprintf(ptrTrama->parametros+lon,"ids=%s\r",ids); // Añade identificador de la sesión
+ }
+ if (res==0){ // Resultado satisfactorio
+ lon+=sprintf(ptrTrama->parametros+lon,"res=%s\r","1");
+ lon+=sprintf(ptrTrama->parametros+lon,"der=%s\r","");
+ }
+ 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
+ else
+ lon+=sprintf(ptrTrama->parametros+lon,"der=%s\r",tbErroresScripts[res]);// Descripción del error
+ }
+ if(!(enviaMensajeServidor(&socket_c,ptrTrama,MSG_NOTIFICACION))){
+ errorLog(modulo,44,FALSE);
+ return(FALSE);
+ }
+ close(socket_c);
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: gestionaTrama
+//
+// Descripción:
+// Procesa las tramas recibidas.
+// Parametros:
+// ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN gestionaTrama(TRAMA *ptrTrama)
+{
+ int i, res;
+ char *nfn;
+ char modulo[] = "gestionaTrama()";
+
+ INTROaFINCAD(ptrTrama);
+ nfn = copiaParametro("nfn", ptrTrama); // Toma nombre de función
+ 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
+ return(tbfuncionesClient[i].fptr(ptrTrama)); // Invoca la función
+ }
+ }
+ /* Sólo puede ser un comando personalizado */
+ if (ptrTrama->tipo==MSG_COMANDO)
+ return(Comando(ptrTrama));
+
+ errorLog(modulo, 18, FALSE);
+ return (FALSE);
+}
+//________________________________________________________________________________________________________
+// Función: ejecutaArchivo
+//
+// Descripción:
+// Ejecuta los comando contenido en un archivo (cada comando y sus parametros separados por un
+// salto de linea.
+// Parámetros:
+// filecmd: Nombre del archivo de comandos
+// ptrTrama: Puntero a una estructura TRAMA usada en las comunicaciones por red (No debe ser NULL)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN ejecutaArchivo(char* filecmd,TRAMA *ptrTrama)
+{
+ char* buffer,*lineas[MAXIMAS_LINEAS];
+ int i,numlin;
+ char modulo[] = "ejecutaArchivo()";
+
+ buffer=leeArchivo(filecmd);
+ if(buffer){
+ numlin = splitCadena(lineas, buffer, '@');
+ initParametros(ptrTrama,0);
+ for (i = 0; i < numlin; i++) {
+ if(strlen(lineas[i])>0){
+ strcpy(ptrTrama->parametros,lineas[i]);
+ strcat(ptrTrama->parametros,"\rMCDJ@"); // Fin de trama
+ if(!gestionaTrama(ptrTrama)){ // Análisis de la trama
+ errorLog(modulo,39,FALSE);
+ //return(FALSE);
+ }
+ }
+ }
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: enviaMensajeServidor
+//
+// Descripción:
+// Envia un mensaje al servidor de Administración
+// Parámetros:
+// - socket_c: (Salida) Socket utilizado para el envío
+// - ptrTrama: contenido del mensaje
+// - tipo: Tipo de mensaje
+// C=Comando, N=Respuesta a un comando, P=Peticion,R=Respuesta a una petición, I=Informacion
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN enviaMensajeServidor(SOCKET *socket_c,TRAMA *ptrTrama,char tipo)
+{
+ int lon;
+ char modulo[] = "enviaMensajeServidor()";
+
+ *socket_c=abreConexion();
+ if(*socket_c==INVALID_SOCKET){
+ errorLog(modulo,38,FALSE); // Error de conexión con el servidor
+ return(FALSE);
+ }
+ ptrTrama->arroba='@'; // Cabecera de la trama
+ strncpy(ptrTrama->identificador,"JMMLCAMDJ_MCDJ",14); // identificador de la trama
+ ptrTrama->tipo=tipo; // Tipo de mensaje
+ lon=strlen(ptrTrama->parametros); // Compone la trama
+ lon+=sprintf(ptrTrama->parametros+lon,"iph=%s\r",IPlocal); // Ip del ordenador
+ lon+=sprintf(ptrTrama->parametros+lon,"ido=%s\r",idordenador); // Identificador del ordenador
+ lon+=sprintf(ptrTrama->parametros+lon,"npc=%s\r",nombreordenador); // Nombre del ordenador
+ lon+=sprintf(ptrTrama->parametros+lon,"idc=%s\r",idcentro); // Identificador del centro
+ lon+=sprintf(ptrTrama->parametros+lon,"ida=%s\r",idaula); // Identificador del aula
+
+ if (!mandaTrama(socket_c,ptrTrama)) {
+ errorLog(modulo,26,FALSE);
+ return (FALSE);
+ }
+ return(TRUE);
+}
+// ********************************************************************************************************
+// PROGRAMA PRINCIPAL (CLIENTE)
+// ********************************************************************************************************
+int main(int argc, char *argv[])
+{
+ TRAMA *ptrTrama;
+ char modulo[] = "main()";
+
+ ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA));
+ if (ptrTrama == NULL) { // No hay memoria suficiente para el bufer de las tramas
+ errorLog(modulo, 3, FALSE);
+ exit(EXIT_FAILURE);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Validación de parámetros de ejecución y fichero de configuración
+ ---------------------------------------------------------------------------------------------------------*/
+ if (!validacionParametros(argc, argv,3)) // Valida parámetros de ejecución
+ exit(EXIT_FAILURE);
+
+ if (!tomaConfiguracion(szPathFileCfg)) // Toma parametros de configuración
+ exit(EXIT_FAILURE);
+ /*--------------------------------------------------------------------------------------------------------
+ Carga catálogo de funciones que procesan las tramas
+ ---------------------------------------------------------------------------------------------------------*/
+ int cf = 0;
+
+ strcpy(tbfuncionesClient[cf].nf, "RESPUESTA_AutoexecCliente");
+ tbfuncionesClient[cf++].fptr = &RESPUESTA_AutoexecCliente;
+
+ strcpy(tbfuncionesClient[cf].nf, "RESPUESTA_InclusionCliente");
+ tbfuncionesClient[cf++].fptr = &RESPUESTA_InclusionCliente;
+
+ strcpy(tbfuncionesClient[cf].nf, "NoComandosPtes");
+ tbfuncionesClient[cf++].fptr = &NoComandosPtes;
+
+ strcpy(tbfuncionesClient[cf].nf, "Actualizar");
+ tbfuncionesClient[cf++].fptr = &Actualizar;
+
+ strcpy(tbfuncionesClient[cf].nf, "Purgar");
+ tbfuncionesClient[cf++].fptr = &Purgar;
+
+ strcpy(tbfuncionesClient[cf].nf, "ConsolaRemota");
+ tbfuncionesClient[cf++].fptr = &ConsolaRemota;
+
+ strcpy(tbfuncionesClient[cf].nf, "Sondeo");
+ tbfuncionesClient[cf++].fptr = &Sondeo;
+
+ strcpy(tbfuncionesClient[cf].nf, "Arrancar");
+ tbfuncionesClient[cf++].fptr = &Arrancar;
+
+ strcpy(tbfuncionesClient[cf].nf, "Apagar");
+ tbfuncionesClient[cf++].fptr = &Apagar;
+
+ strcpy(tbfuncionesClient[cf].nf, "Reiniciar");
+ tbfuncionesClient[cf++].fptr = &Reiniciar;
+
+ strcpy(tbfuncionesClient[cf].nf, "IniciarSesion");
+ tbfuncionesClient[cf++].fptr = &IniciarSesion;
+
+ strcpy(tbfuncionesClient[cf].nf, "CrearImagen");
+ tbfuncionesClient[cf++].fptr = &CrearImagen;
+
+ strcpy(tbfuncionesClient[cf].nf, "RestaurarImagen");
+ tbfuncionesClient[cf++].fptr = &RestaurarImagen;
+
+ strcpy(tbfuncionesClient[cf].nf, "Configurar");
+ tbfuncionesClient[cf++].fptr = &Configurar;
+
+ strcpy(tbfuncionesClient[cf].nf, "EjecutarScript");
+ tbfuncionesClient[cf++].fptr = &EjecutarScript;
+
+ strcpy(tbfuncionesClient[cf].nf, "InventarioHardware");
+ tbfuncionesClient[cf++].fptr = &InventarioHardware;
+
+ strcpy(tbfuncionesClient[cf].nf, "InventarioSoftware");
+ tbfuncionesClient[cf++].fptr = &InventarioSoftware;
+
+ /*--------------------------------------------------------------------------------------------------------
+ Toma dirección IP del cliente
+ ---------------------------------------------------------------------------------------------------------*/
+ if(!tomaIPlocal()){ // Error al recuperar la IP local
+ errorLog(modulo,0,FALSE);
+ exit(EXIT_FAILURE);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Inicio de sesión
+ ---------------------------------------------------------------------------------------------------------*/
+ infoLog(1); // Inicio de sesión
+ infoLog(3); // Abriendo sesión en el servidor de Administración;
+ /*--------------------------------------------------------------------------------------------------------
+ Inclusión del cliente en el sistema
+ ---------------------------------------------------------------------------------------------------------*/
+ if(!inclusionCliente(ptrTrama)){ // Ha habido algún problema al abrir sesión
+ errorLog(modulo,0,FALSE);
+ exit(EXIT_FAILURE);
+ }
+ infoLog(4); // Cliente iniciado
+
+ /*--------------------------------------------------------------------------------------------------------
+ Procesamiento de la cache
+ ---------------------------------------------------------------------------------------------------------*/
+ infoLog(23); // Abriendo sesión en el servidor de Administración;
+ if(!cuestionCache(cache)){
+ errorLog(modulo,0,FALSE);
+ exit(EXIT_FAILURE);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Ejecución del autoexec
+ ---------------------------------------------------------------------------------------------------------*/
+ if(atoi(idproautoexec)>0){ // Ejecución de procedimiento Autoexec
+ infoLog(5);
+ if(!autoexecCliente(ptrTrama)){ // Ejecución fichero autoexec
+ errorLog(modulo,0,FALSE);
+ exit(EXIT_FAILURE);
+ }
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Comandos pendientes
+ ---------------------------------------------------------------------------------------------------------*/
+ infoLog(6); // Procesa comandos pendientes
+ if(!comandosPendientes(ptrTrama)){ // Ejecución de acciones pendientes
+ errorLog(modulo,0,FALSE);
+ exit(EXIT_FAILURE);
+ }
+ infoLog(7); // Acciones pendientes procesadas
+ /*--------------------------------------------------------------------------------------------------------
+ Bucle de recepción de comandos
+ ---------------------------------------------------------------------------------------------------------*/
+ muestraMenu();
+ procesaComandos(ptrTrama); // Bucle para procesar comandos interactivos
+ /*--------------------------------------------------------------------------------------------------------
+ Fin de la sesión
+ ---------------------------------------------------------------------------------------------------------*/
+ exit(EXIT_SUCCESS);
+}
diff --git a/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
new file mode 100644
index 00000000..976c393c
--- /dev/null
+++ b/admin/Sources/Clients/ogAdmClient/sources/ogAdmClient.h
@@ -0,0 +1,121 @@
+// ********************************************************************************************************
+// Cliernte: ogAdmClient
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmClient.h
+// Descripción :Este fichero implementa el cliente general del sistema
+// ********************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <signal.h>
+#include "ogAdmLib.h"
+// ________________________________________________________________________________________________________
+// 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 IPlocal[LONIP]; // Ip local
+
+char servidoradm[LONPRM]; // Dirección IP del servidor de administración
+char puerto[LONPRM]; // Puerto de comunicación
+char pathinterface[LONPRM]; // Path donde está la interface entre la administración y el módulo de clonación
+
+char interface[LONFUN]; // Nombre del módulo,función o script de la interface con el módulo de administración
+char parametros[LONSTD]; // Parámetros para la llamada
+int herror;
+
+BOOLEAN CMDPTES; // Para bucle de comandos pendientes
+
+pid_t pidbrowser; // Identificador del proceso que se crea para mostrar una página web con el browser
+pid_t pidbash; // Identificador del proceso que se crea cuando se conmuta el browser
+
+char urlmenu[MAXLONURL]; // Url de la pagina de menu para el browser
+char urlmsg[MAXLONURL]; // Url de la página de mensajed para el browser
+
+
+typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas
+ char nf[LONFUN]; // Nombre de la función
+ BOOLEAN (*fptr)(TRAMA*); // Puntero a la función que procesa la trama
+}MSGFUN;
+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",\
+ "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",\
+ "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",\
+ "011-La información retornada por la interface de administración excede de la longitud permitida",\
+ "012-Error en el envío de fichero por la red",\
+ "013-Error en la creación del proceso hijo",\
+ "Error desconocido "
+ };
+ #define MAXERRORSCRIPT 14 // Error máximo cometido
+// ________________________________________________________________________________________________________
+// Prototipo de funciones
+// ________________________________________________________________________________________________________
+BOOLEAN autoexecCliente(TRAMA*);
+BOOLEAN RESPUESTA_AutoexecCliente(TRAMA*);
+void procesaComandos(TRAMA*);
+
+BOOLEAN tomaConfiguracion(char*);
+BOOLEAN tomaIPlocal(void);
+void scriptLog(const char *,int );
+
+BOOLEAN gestionaTrama(TRAMA *);
+BOOLEAN inclusionCliente();
+char* LeeConfiguracion(char*);
+BOOLEAN RESPUESTA_InclusionCliente(TRAMA *);
+
+BOOLEAN comandosPendientes(TRAMA*);
+BOOLEAN NoComandosPtes(TRAMA *);
+
+BOOLEAN respuestaEjecucionComando(TRAMA *,int,char*);
+BOOLEAN Sondeo(TRAMA *);
+BOOLEAN Actualizar(TRAMA *);
+int Purgar(TRAMA* );
+
+BOOLEAN ConsolaRemota(TRAMA*);
+
+BOOLEAN Arrancar(TRAMA *);
+BOOLEAN Apagar(TRAMA *);
+BOOLEAN Reiniciar(TRAMA *);
+BOOLEAN IniciarSesion(TRAMA *);
+BOOLEAN CrearImagen(TRAMA *);
+BOOLEAN InventarioHardware(TRAMA *);
+BOOLEAN InventariandoSoftware(TRAMA *,BOOLEAN,char*);
+BOOLEAN EjecutarScript(TRAMA *);
+BOOLEAN ejecutaArchivo(char*,TRAMA*);
+
+BOOLEAN cuestionCache(char*);
+int cargaPaginaWeb(char *);
+void muestraMenu(void);
+void muestraMensaje(int idx,char*);
+
+BOOLEAN enviaMensajeServidor(SOCKET *,TRAMA *,char);
+
+
+
+
diff --git a/admin/Sources/Includes/Database.cpp b/admin/Sources/Includes/Database.cpp
new file mode 100644
index 00000000..0d1ddcc5
--- /dev/null
+++ b/admin/Sources/Includes/Database.cpp
@@ -0,0 +1,198 @@
+// ********************************************************************************************************
+// Nombre del fichero: Database.cpp
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Descripción:
+// Fichero de implementación de la clase Database para funciones de manipulación
+// de bases de datos sobre un Servidor Mysql
+// ********************************************************************************************************
+#include "Database.h"
+// __________________________________________________________________________
+void ErrorHandler(Herror hr, char* ErrStr)
+{
+ sprintf(ErrStr,"Error:\n");
+ sprintf(ErrStr,"%sCode = %d\n",ErrStr ,hr.nError);
+ sprintf(ErrStr,"%sDescription = %s",ErrStr, (char*) hr.dError);
+}
+// __________________________________________________________________________
+Database::Database()
+{
+ m_Cnn=NULL;
+ sprintf(m_ErrStr,"NULL POINTER");
+}
+// __________________________________________________________________________
+void Database::GetErrorErrStr(char* ErrStr)
+{
+ sprintf(ErrStr,"%s",m_ErrStr);
+}
+// __________________________________________________________________________
+void Table::GetErrorErrStr(char* ErrStr)
+{
+ sprintf(ErrStr,"%s",m_ErrStr);
+}
+// __________________________________________________________________________
+bool Database::Open(char* UserName, char* Pwd,char* server,char*Bd)
+{
+ Herror hr;
+ m_Cnn=mysql_init(NULL);
+ if(m_Cnn==NULL){
+ hr.nError=0;
+ strcpy(hr.dError,"Error en la Creación del objeto MYSQL");
+ ErrorHandler(hr,m_ErrStr);
+ return(false); // Fallo de inicializaci�
+ }
+
+ if(!mysql_real_connect(m_Cnn, server,UserName,Pwd,Bd, MYSQL_PORT,NULL,0)){
+ mysql_error(m_Cnn);
+ hr.nError=mysql_errno(m_Cnn);
+ strcpy(hr.dError,mysql_error(m_Cnn));
+ ErrorHandler(hr,m_ErrStr);
+ return(false); // Fallo de conexi�
+ }
+ hr.nError=0;
+ strcpy(hr.dError,"Success");
+ ErrorHandler(hr,m_ErrStr);
+ return (true);
+}
+// __________________________________________________________________________
+bool Database::Close()
+{
+ mysql_close(m_Cnn);
+ return(true);
+}
+// __________________________________________________________________________
+bool Database::Execute(char* CmdStr)
+{
+ Herror hr;
+ if (mysql_query(m_Cnn,CmdStr)){ // Ejecuta la consulta
+ mysql_error(m_Cnn);
+ hr.nError=mysql_errno(m_Cnn);
+ strcpy(hr.dError,mysql_error(m_Cnn));
+ ErrorHandler(hr,m_ErrStr);
+ mysql_close(m_Cnn);
+ return(false); // Fallo de conexión
+ }
+ hr.nError=0;
+ strcpy(hr.dError,"Success");
+ ErrorHandler(hr,m_ErrStr);
+ return (true);
+}
+// __________________________________________________________________________
+bool Database::Execute(char* CmdStr, Table& Tbl)
+{
+ Herror hr;
+ if (mysql_query(m_Cnn,CmdStr)) { // Ejecuta la consulta
+ mysql_error(m_Cnn);
+ hr.nError=mysql_errno(m_Cnn);
+ strcpy(hr.dError,mysql_error(m_Cnn));
+ ErrorHandler(hr,m_ErrStr);
+ mysql_close(m_Cnn);
+ return(false); // Fallo de conexi�
+ }
+
+ hr.nError=0;
+ strcpy(hr.dError,"Success");
+ ErrorHandler(hr,m_ErrStr);
+
+ Tbl.m_Rec = mysql_store_result(m_Cnn) ; // Toma el recordset
+ if(Tbl.m_Rec){
+ Tbl.row=mysql_fetch_row(Tbl.m_Rec);
+ Tbl.fields = mysql_fetch_fields(Tbl.m_Rec);
+ Tbl.num_fields = mysql_num_fields(Tbl.m_Rec);
+ Tbl.numreg=mysql_num_rows(Tbl.m_Rec);
+ Tbl.eof=Tbl.numreg==0; // Consulta vacia
+ }
+ return (true);
+}
+// __________________________________________________________________________
+Table::Table()
+{
+ m_Rec=NULL;
+}
+// __________________________________________________________________________
+bool Table::ISEOF()
+{
+ return(eof);
+}
+// __________________________________________________________________________
+bool Table::Get(const char* FieldName, char *FieldValue)
+{
+ char * aux;
+ aux=tomadato(FieldName);
+ if(aux)
+ strcpy(FieldValue,aux);
+ else
+ strcpy(FieldValue,"");
+ return(true);
+}
+// __________________________________________________________________________
+bool Table::Get(const char* FieldName,int &FieldValue)
+{
+ char *aux;
+ aux=tomadato(FieldName);
+ if(aux)
+ FieldValue=atoi(aux);
+ else
+ FieldValue=0;
+ return(true);
+}
+// __________________________________________________________________________
+bool Table::Get(const char* FieldName,char &FieldValue)
+{
+ char *aux;
+ aux=tomadato(FieldName);
+ FieldValue=aux[0];
+ return(true);
+}
+// __________________________________________________________________________
+char* Table::tomadato(const char* FieldName)
+{
+ Herror hr;
+ unsigned int i;
+
+ for(i = 0; i < num_fields; i++){
+ if(strcmp((char*)fields[i].name,FieldName)==0){
+ sprintf(m_ErrStr,"Success");
+ return((char*)row[i]);
+ }
+ }
+ hr.nError=-1;
+ strcpy(hr.dError,"El nombre del campo no existe");
+ ErrorHandler(hr,m_ErrStr);
+ return(NULL); // No existe el nombre del campo en la tabla
+}
+// __________________________________________________________________________
+
+bool Table::MoveNext()
+{
+ eof=false;
+ row=mysql_fetch_row(m_Rec);
+ if(row==NULL){
+ if(!mysql_eof(m_Rec))
+ return(false); // Fallo de lectura
+ else
+ eof=true; // Fin de fichero
+ }
+ return (true);
+}
+// __________________________________________________________________________
+bool Table::MoveFirst()
+{
+ my_ulonglong auxnumreg;
+
+ auxnumreg=0;
+ mysql_data_seek(m_Rec,auxnumreg);
+ return (MoveNext());
+}
+// __________________________________________________________________________
+bool Table::MoveLast()
+{
+ my_ulonglong auxnumreg;
+ auxnumreg=numreg;
+ auxnumreg--;
+ if(auxnumreg<0) auxnumreg=0; // Principio de fichero
+ mysql_data_seek(m_Rec,auxnumreg);
+ return (MoveNext());
+ return (true);
+}
diff --git a/admin/Sources/Includes/Database.h b/admin/Sources/Includes/Database.h
new file mode 100644
index 00000000..0af1561b
--- /dev/null
+++ b/admin/Sources/Includes/Database.h
@@ -0,0 +1,60 @@
+// ******************************************************************************************************
+// Aplicación HIDRA
+// Copyright 2004 Jos�Manuel Alonso. Todos los derechos reservados.
+// Fichero: Database.h
+// Descripción:
+// Fichero de cabecera de la clase Database para implementar funciones de manipulaci�
+// de bases de datos sobre un Servidor Mysql
+// ******************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include </usr/include/mysql/mysql.h>
+// __________________________________________________________________________
+class Database;
+class Table;
+// __________________________________________________________________________
+class Database
+{
+public:
+ MYSQL *m_Cnn;
+ char m_ErrStr[500];
+ Database();
+ bool Open(char* UserName, char* Pwd,char* server,char*Database);
+ bool OpenTbl(int Mode, char* CmdStr, Table& Tbl);
+ bool Close(void);
+ bool Execute(char* CmdStr);
+ bool Execute(char* CmdStr, Table& Tbl);
+ void GetErrorErrStr(char* ErrStr);
+};
+// __________________________________________________________________________
+class Table{
+ char* tomadato(const char* FieldName);
+public:
+ bool eof,bof;
+ MYSQL_RES * m_Rec ;
+ MYSQL_FIELD *fields;
+ unsigned int num_fields;
+ MYSQL_ROW row ;
+ MYSQL_ROW_OFFSET ptr;
+ my_ulonglong numreg;
+ char m_ErrStr[500];
+ Table();
+ void GetErrorErrStr(char* ErrStr);
+ bool ISEOF();
+ bool MoveNext();
+ bool MovePrevious();
+ bool MoveFirst();
+ bool MoveLast();
+
+ bool Get(const char* FieldName, char* FieldValue);
+ bool Get(const char* FieldName,int &FieldValue);
+ bool Get(const char* FieldName,char &FieldValue);
+};
+// __________________________________________________________________________
+class Herror
+{
+public:
+ int nError; // C�igo del error
+ char dError[500]; // Descripción del error
+};
diff --git a/admin/Sources/Includes/ogAdmLib.c b/admin/Sources/Includes/ogAdmLib.c
new file mode 100644
index 00000000..fdda2855
--- /dev/null
+++ b/admin/Sources/Includes/ogAdmLib.c
@@ -0,0 +1,1099 @@
+// **************************************************************************************************************************************************
+// Libreria: ogAdmLib
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmLib.c
+// Descripción: Este fichero implementa una libreria de funciones para uso común de los servicios
+// **************************************************************************************************************************************************
+// ________________________________________________________________________________________________________
+// Función: encriptar
+//
+// Descripción:
+// Encripta una cadena
+// Parametros:
+// - cadena : Cadena a encriptar
+// - ret : Longitud de la caden cadena encriptada
+// ________________________________________________________________________________________________________
+char * encriptar(char *cadena,int*ret)
+{
+return(cadena);
+ int i,lon;
+ char clave;
+
+ clave = 12 & 0xFFU; // La clave elegida entre 0-255, en este caso 12
+ lon=strlen(cadena);
+ for(i=0;i<lon;i++)
+ cadena[i]=((char)cadena[i] ^ clave) & 0xFF;
+ *ret=lon;
+ return(cadena);
+}
+// ________________________________________________________________________________________________________
+// Función: desencriptar
+//
+// Descripción:
+// Desencripta una cadena
+// Parametros:
+// - cadena : Cadena a desencriptar
+// - ret : Longitud de la caden cadena encriptada
+// ________________________________________________________________________________________________________
+char * desencriptar(char *cadena,int* ret)
+{
+return(cadena);
+ int i,lon;
+ char clave;
+
+ clave = 12 & 0xFFU; // La clave elegida entre 0-255, en este caso 12
+ lon=strlen(cadena);
+ for(i=0;i<lon;i++)
+ cadena[i]=((char)cadena[i] ^ clave) & 0xFF;
+ *ret=lon;
+ return(cadena);
+}
+// ________________________________________________________________________________________________________
+// Función: tomaHora
+//
+// Descripción:
+// Devuelve la hora del sistema
+// Parametros:
+// Ninguno
+// ________________________________________________________________________________________________________
+struct tm * tomaHora()
+{
+ time_t rawtime;
+ time ( &rawtime );
+ return(localtime(&rawtime));
+}
+// ________________________________________________________________________________________________________
+// Función: registraLog
+//
+// Descripción:
+// Registra los eventos en un fichero log ya sean errores o información
+// Parametros:
+// - fileLog : Ruta completa del archivo de log
+// - msg : Descripción del error
+// - swe: Switch que indica si se debe recuperar además el literal de error del propio sistema operativo
+// ________________________________________________________________________________________________________
+void registraLog(const char* filelog,const char *msg,int swe)
+{
+ FILE *flog;
+ struct tm * t;
+
+ t = tomaHora();
+ flog=fopen(filelog,"at");
+ if(swe)
+ fprintf (flog,"%02d/%02d/%d %02d:%02d %s: %s\n",t->tm_mday,t->tm_mon+1,t->tm_year+1900,t->tm_hour,t->tm_min,msg,strerror(errno));
+ else
+ fprintf (flog,"%02d/%02d/%d %02d:%02d %s\n",t->tm_mday,t->tm_mon+1,t->tm_year+1900,t->tm_hour,t->tm_min,msg);
+ fclose(flog);
+}
+// ________________________________________________________________________________________________________
+// Función: errorLog
+//
+// Descripción:
+// Registra los sucesos de errores preestablecidos en el fichero de log
+// Parametros:
+// - coderr : Código del mensaje de error
+// - swe: Switch que indica si se debe recuperar además el literal de error del propio sistema operativo
+// ________________________________________________________________________________________________________
+void errorLog(const char *modulo, int coderr, int swe) {
+ char msglog[LONSUC];
+
+ sprintf(msglog, "*** Error: %s. Módulo %s", tbErrores[coderr], modulo);
+ registraLog(szPathFileLog, msglog, swe);
+}
+// ________________________________________________________________________________________________________
+// Función: errorInfo
+//
+// Descripción:
+// Registra los sucesos de errores dinámicos en el fichero de log
+// Parametros:
+// - msgerr : Descripción del error
+// - swe: Switch que indica si se debe recuperar además el literal de error del propio sistema operativo
+// ________________________________________________________________________________________________________
+void errorInfo(const char *modulo, char *msgerr) {
+ char msglog[LONSUC];
+
+ sprintf(msglog, "*** Error: %s. Módulo %s", msgerr, modulo);
+ registraLog(szPathFileLog, msglog, FALSE);
+}
+// ________________________________________________________________________________________________________
+// Función: infoLog
+//
+// Descripción:
+// Registra los sucesos de información en el fichero de log
+// Parametros:
+// - coderr : Código del mensaje de información
+// ________________________________________________________________________________________________________
+void infoLog(int codinf) {
+ char msglog[LONSUC];
+
+ sprintf(msglog, "*** Info: %s", tbMensajes[codinf]);
+ registraLog(szPathFileLog, msglog, FALSE);
+}
+// ________________________________________________________________________________________________________
+// Función: infoDebug
+//
+// Descripción:
+// Registra los mensajes de debugs en el fichero de log
+// Parametros:
+// - msgdeb : Descripción del mensaje de información
+// ________________________________________________________________________________________________________
+void infoDebug(char* msgdeb) {
+ char msglog[LONSUC];
+
+ sprintf(msglog, "*** Debug: %d-%s", ndebug, msgdeb);
+ registraLog(szPathFileLog, msglog, FALSE);
+}
+//______________________________________________________________________________________________________
+// Función: ValidacionParametros
+//
+// Descripción:
+// Valida que los parametros de ejecución del programa sean correctos
+// Parámetros:
+// - argc: Número de argumentos
+// - argv: Puntero a cada argumento
+// - eje: Tipo de ejecutable (1=Servicio,2=Repositorio o 3=Cliente)
+// Devuelve:
+// - TRUE si los argumentos pasados son correctos
+// - FALSE en caso contrario
+// Especificaciones:
+// La sintaxis de los argumentos es la siguiente
+// -f Archivo de configuración del servicio
+// -l Archivo de logs
+// -d Nivel de debuger (mensages que se escribirán en el archivo de logs)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN validacionParametros(int argc, char*argv[],int eje) {
+ int i;
+ char modulo[] = "validacionParametros()";
+
+ switch(eje){
+ case 1: // Administrador
+ strcpy(szPathFileCfg, "ogAdmServer.cfg"); // Valores por defecto de archivos
+ strcpy(szPathFileLog, "ogAdmServer.log"); // de configuración y de logs
+ break;
+ case 2: // Repositorio
+ strcpy(szPathFileCfg, "ogAdmRepo.cfg"); // Valores por defecto de archivos
+ strcpy(szPathFileLog, "ogAdmRepo.log"); // de configuración y de logs
+ break;
+ case 3: // Cliente OpenGnsys
+ strcpy(szPathFileCfg, "ogAdmClient.cfg"); // Valores por defecto de archivos
+ strcpy(szPathFileLog, "ogAdmClient.log"); // de configuración y de logs
+ break;
+ case 4: // Servicios DHCP,BOOTP Y TFTP
+ strcpy(szPathFileCfg, "ogAdmBoot.cfg"); // Valores por defecto de archivos
+ strcpy(szPathFileLog, "ogAdmBoot.log"); // de configuración y de logs
+ break;
+ case 5: // Agente
+ strcpy(szPathFileCfg, "ogAdmAgent.cfg"); // Valores por defecto de archivos
+ strcpy(szPathFileLog, "ogAdmAgent.log"); // de configuración y de logs
+ break;
+ }
+
+ ndebug = 1; // Nivel de debuger por defecto
+
+ for (i = 1; (i + 1) < argc; i += 2) {
+ if (argv[i][0] == '-') {
+ switch (tolower(argv[i][1])) {
+ case 'f':
+ if (argv[i + 1] != NULL)
+ strcpy(szPathFileCfg, argv[i + 1]);
+ else {
+ errorLog(modulo, 10, FALSE);
+ return (FALSE);
+ }
+ break;
+ case 'l':
+ if (argv[i + 1] != NULL)
+ strcpy(szPathFileLog, argv[i + 1]);
+ else {
+ errorLog(modulo, 11, FALSE);
+ return (FALSE);
+ }
+ break;
+ case 'd':
+ if (argv[i + 1] != NULL) {
+ ndebug = atoi(argv[i + 1]);
+ if (ndebug < 1)
+ ndebug = 1; // Por defecto el nivel de debug es 1
+ } else
+ ndebug = 1; // Por defecto el nivel de debug es 1
+ break;
+ default:
+ errorLog(modulo, 12, FALSE);
+ exit(EXIT_FAILURE);
+ break;
+ }
+ }
+ }
+ return (TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: reservaMemoria
+//
+// Descripción:
+// Reserva memoria para una variable
+// Parámetros:
+// - lon: Longitud en bytes de la reserva
+// Devuelve:
+// Un puntero a la zona de memoria reservada que ha sido previamente rellena con zeros o nulos
+//______________________________________________________________________________________________________
+char* reservaMemoria(int lon)
+{
+ char *mem;
+
+ mem=(char*)malloc(lon);
+ if(mem!=NULL)
+ memset(mem,0,lon);
+ return(mem);
+}
+//______________________________________________________________________________________________________
+// Función: ampliaMemoria
+//
+// Descripción:
+// Amplia memoria para una variable
+// Parámetros:
+// - ptr: Puntero al buffer de memoria que se quiere ampliar
+// - lon: Longitud en bytes de la amplicación
+// Devuelve:
+// Un puntero a la zona de memoria reservada que ha sido previamente rellena con zeros o nulos
+//______________________________________________________________________________________________________
+char* ampliaMemoria(char* ptr,int lon)
+{
+ char *mem;
+
+ mem=(char*)realloc(ptr,lon*sizeof(char*));
+ if(mem!=NULL)
+ return(mem);
+ return(NULL);
+}
+//______________________________________________________________________________________________________
+// Función: liberaMemoria
+//
+// Descripción:
+// Libera memoria para una variable
+// Parámetros:
+// - ptr: Puntero al buffer de memoria que se quiere liberar
+// Devuelve:
+// Nada
+//______________________________________________________________________________________________________
+void liberaMemoria(char* ptr)
+{
+ if(ptr)
+ free (ptr);
+}
+// ________________________________________________________________________________________________________
+// Función: splitCadena
+//
+// Descripción:
+// Trocea una cadena según un carácter delimitador
+// Parámetros:
+// - trozos: Array de punteros a cadenas
+// - cadena: Cadena a trocear
+// - chd: Carácter delimitador
+// Devuelve:
+// Número de trozos en que se divide la cadena
+// ________________________________________________________________________________________________________
+int splitCadena(char **trozos,char *cadena, char chd)
+{
+ int w=0;
+ if(cadena==NULL) return(w);
+
+ trozos[w++]=cadena;
+ while(*cadena!='\0'){
+ if(*cadena==chd){
+ *cadena='\0';
+ if(*(cadena+1)!='\0')
+ trozos[w++]=cadena+1;
+ }
+ cadena++;
+ }
+ return(w); // Devuelve el número de trozos
+}
+// ________________________________________________________________________________________________________
+// Función: sustituir
+//
+// Descripción:
+// Sustituye las apariciones de un caracter por otro en una cadena
+// Parámetros:
+// - cadena: Cadena a convertir
+// - cho: Caracter a sustituir
+// - chs: Caracter sustituto
+// ________________________________________________________________________________________________________
+void sustituir(char *cadena,char cho,char chs)
+{
+ int x=0;
+
+ while(cadena[x]!=0) {
+ if (cadena[x]==cho)
+ cadena[x]=chs;
+ x++;
+ }
+}
+// ________________________________________________________________________________________________________
+// Función: escaparCadena
+//
+// Descripción:
+// Sustituye las apariciones de un caracter comila simple ' por \'
+// Parámetros:
+// - cadena: Cadena a escapar
+// Devuelve:
+// La cadena con las comillas simples sustituidas por \'
+// ________________________________________________________________________________________________________
+char* escaparCadena(char *cadena)
+{
+ int b,c;
+ char *buffer;
+
+ buffer = (char*) reservaMemoria(strlen(cadena)*2); // Toma memoria para el buffer de conversión
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ return (FALSE);
+ }
+
+ c=b=0;
+ while(cadena[c]!=0) {
+ if (cadena[c]=='\''){
+ buffer[b++]='\\';
+ buffer[b++]='\'';
+ }
+ else{
+ buffer[b++]=cadena[c];
+ }
+ c++;
+ }
+ return(buffer);
+}
+// ________________________________________________________________________________________________________
+// Función: StrToUpper
+//
+// Descripción:
+// Convierta una cadena en mayúsculas
+// Parámetros:
+// - cadena: Cadena a convertir
+// ________________________________________________________________________________________________________
+char* StrToUpper(char *cadena)
+{
+ int x=0;
+
+ while(cadena[x]!=0) {
+ if (cadena[x] >= 'a' && cadena[x] <= 'z') {
+ cadena[x] -= 32;
+ }
+ x++;
+ }
+ return(cadena);
+}
+// ________________________________________________________________________________________________________
+// Función: StrToUpper
+//
+// Descripción:
+// Convierta una cadena en mayúsculas
+// Parámetros:
+// - cadena: Cadena a convertir
+// ________________________________________________________________________________________________________
+char* StrToLower(char *cadena)
+{
+ int x=0;
+
+ while(cadena[x]!=0) {
+ if (cadena[x] >= 'A' && cadena[x] <= 'Z') {
+ cadena[x] += 32;
+ }
+ x++;
+ }
+ return(cadena);
+}
+// ________________________________________________________________________________________________________
+// Función: INTROaFINCAD
+//
+// Descripción:
+// Cambia caracteres INTROS por fin de cadena ('\0') en una trama
+// Parametros:
+// - parametros: Puntero a los parametros de la trama
+// - lon: Longitud de la cadena de parametros
+// ________________________________________________________________________________________________________
+void INTROaFINCAD(TRAMA* ptrTrama)
+{
+ char *i,*a,*b;
+
+ a=ptrTrama->parametros;
+ b=a+ptrTrama->lonprm;
+ for(i=a;i<b;i++){ // Cambia los NULOS por INTROS
+ if(*i=='\r') *i='\0';
+ }
+}
+// ________________________________________________________________________________________________________
+// Función: FINCADaINTRO
+//
+// Descripción:
+// Cambia caracteres fin de cadena ('\0') por INTROS en una trama
+// Parametros:
+// - parametros: Puntero a los parametros de la trama
+// - lon: Longitud de la cadena de parametros
+// ________________________________________________________________________________________________________
+void FINCADaINTRO(TRAMA* ptrTrama)
+{
+ char *i,*a,*b;
+
+ a=ptrTrama->parametros;
+ b=a+ptrTrama->lonprm;
+ for(i=a;i<b;i++){ // Cambia los NULOS por INTROS
+ if(*i=='\0') *i='\r';
+ }
+}
+// ________________________________________________________________________________________________________
+// Función: cuentaIPES
+//
+// Descripción:
+// Cuenta los caracteres "." de las IPES dentro del parámetros iph de una trama
+// con lo cual dividiendo por 3 se puede saber la cantdad de direcciones IPES en la cadena
+// Parametros:
+// - ipes: Cadena con las IPES separadas por ";"
+// ________________________________________________________________________________________________________
+int cuentaIPES(char* ipes)
+{
+ int i,a,b,c=0;
+
+ a=0;
+ b=strlen(ipes);
+ for(i=a;i<b;i++){ // Cambia los NULOS por INTROS
+ if(ipes[i]=='.') c++;
+ }
+ return(c/3);
+}
+// ________________________________________________________________________________________________________
+// Función: tomaParametro
+//
+// Descripción:
+// Devuelve el valor de un parametro incluido en una cadena con formatos: "nombre=valor"
+// Parámetros:
+// - nombre: Nombre del parámetro a recuperar
+// - paramestros: Cadena que contiene todos los parámetros
+// ________________________________________________________________________________________________________
+char* tomaParametro(const char* nombre,TRAMA* ptrTrama)
+{
+ char *a,*b,*pos;
+
+ a=ptrTrama->parametros;
+ b=a+ptrTrama->lonprm;
+ for(pos=a;pos<b;pos++){ // Busca valor del parámetro
+ if(pos[0]==nombre[0]){
+ if(pos[1]==nombre[1]){
+ if(pos[2]==nombre[2]){
+ if(pos[3]=='='){
+ pos+=4;
+ return(pos);
+ }
+ }
+ }
+ }
+ }
+ return(NULL);
+}
+//______________________________________________________________________________________________________
+// Función: copiaParametro
+//
+// Descripción:
+// Devuelve una copia del valor de un parámetro
+// Parámetros:
+// - ptrTrama: contenido del mensaje
+// - parametro: Nombre del parámetro
+// - lon: Nombre del parámetro
+// Devuelve:
+// Un puntero a la cadena que contiene el valor del parámetro
+// ________________________________________________________________________________________________________
+char* copiaParametro(const char*nombre,TRAMA* ptrTrama)
+{
+ char *prm,*buffer;
+ char modulo[] = "copiaParametro()";
+
+
+ prm=tomaParametro(nombre,ptrTrama); // Toma identificador de acción
+ if(!prm)
+ return(NULL);
+ buffer = (char*) reservaMemoria(strlen(prm)+1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ strcpy(buffer,prm);
+ return(buffer);
+}
+// ________________________________________________________________________________________________________
+// Función: igualIP
+//
+// Descripción:
+// Comprueba si una cadena con una dirección IP está incluida en otra que contienen varias direcciones ipes
+// separadas por punto y coma
+// Parámetros:
+// - cadenaiph: Cadena de direcciones IPES
+// - ipcliente: Cadena de la IP a buscar
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN contieneIP(char *cadenaiph,char *ipcliente)
+{
+ char *posa,*posb;
+ int lon;
+
+ posa=strstr(cadenaiph,ipcliente);
+ if(posa==NULL) return(FALSE); // No existe la IP en la cadena
+ posb=posa; // Iguala direcciones
+ while(TRUE){
+ posb++;
+ if(*posb==';') break;
+ if(*posb=='\0') break;
+ if(*posb=='\r') break;
+ }
+ lon=strlen(ipcliente);
+ if((posb-posa)==lon) return(TRUE); // IP encontrada
+ return(FALSE);
+}
+// ________________________________________________________________________________________________________
+// Función: rTrim
+//
+// Descripción:
+// Elimina caracteres de espacios y de asci menor al espacio al final de la cadena
+// Parámetros:
+// - cadena: Cadena a procesar
+// ________________________________________________________________________________________________________
+char* rTrim(char *cadena)
+{
+ int i,lon;
+
+ lon=strlen(cadena);
+ for (i=lon-1;i>=0;i--){
+ if(cadena[i]<32)
+ cadena[i]='\0';
+ else
+ return(cadena);
+ }
+ return(cadena);
+}
+// ________________________________________________________________________________________________________
+// Función: mandaTrama
+//
+// Descripción:
+// Envía una trama por la red
+// Parametros:
+// - sock : El socket del host al que se dirige la trama
+// - trama: El contenido de la trama
+// - lon: Longitud de la parte de parametros de la trama que se va a mandar
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN mandaTrama(SOCKET *sock, TRAMA* ptrTrama)
+{
+ int lonprm;
+ char *buffer,hlonprm[LONHEXPRM+1];
+
+ lonprm=strlen(ptrTrama->parametros);
+ ptrTrama->parametros=encriptar(ptrTrama->parametros,&lonprm); // Encripta los parámetros
+ sprintf(hlonprm,"%05X",LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Convierte en hexadecimal la longitud
+
+ buffer=reservaMemoria(LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Longitud total de la trama
+ if(buffer==NULL)
+ 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);
+}
+// ________________________________________________________________________________________________________
+// Función: sendData
+//
+// Descripción:
+// Envía datos por la red a través de un socket
+// Parametros:
+// - sock : El socket por donde se envía
+// - datos: El contenido a enviar
+// - lon: Cantidad de bites a enviar
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN sendData(SOCKET *sock, char* datos,int lon)
+{
+ int idx,ret;
+ idx = 0;
+ while (lon > 0) {
+ ret = send(*sock,&datos[idx],lon, 0);
+ if (ret == 0) { // Conexión cerrada por parte del cliente (Graceful close)
+ break;
+ }
+ else{
+ if (ret == SOCKET_ERROR)
+ return (FALSE);
+ }
+ lon -= ret;
+ idx += ret;
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: recibeTrama
+//
+// Descripción:
+// Recibe una trama por la red
+// Parametros:
+// - sock : El socket del cliente
+// - trama: El buffer para recibir la trama
+// Devuelve:
+// Un puntero a una estrucutra TRAMA o NULL si ha habido algún error
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+TRAMA* recibeTrama(SOCKET *sock)
+{
+ int ret,lon,lSize;
+ char *buffer,bloque[LONBLK],*hlonprm;
+ TRAMA * ptrTrama;
+
+ lon=lSize=0;
+ do{
+ if(!recData(sock,bloque,LONBLK,&ret)) // Lee bloque
+ return(NULL);
+
+ if(lSize==0){ // Comprueba tipo de trama y longitud total de los parámetros
+ if (strncmp(bloque, "@JMMLCAMDJ_MCDJ",15)!=0)
+ return(NULL); // No se reconoce la trama
+ hlonprm=reservaMemoria(LONHEXPRM+1);
+ if(!hlonprm)
+ return(NULL);
+ memcpy(hlonprm,&bloque[LONGITUD_CABECERATRAMA],LONHEXPRM);
+ lSize=strtol(hlonprm,NULL,16); // Longitud total de la trama con los parametros encriptados
+ buffer=(char*)reservaMemoria(lSize); // Toma memoria para la trama completa
+ if(!buffer)
+ return(NULL);
+ }
+
+ if(ret>0){ // Datos recibidos
+ memcpy(&buffer[lon],bloque,ret); // Añade bloque
+ lon+=ret;
+ }
+ }while(lon<lSize);
+
+ ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA));
+ 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);
+ initParametros(ptrTrama,lon); // Desencripta la trama
+ memcpy(ptrTrama->parametros,buffer,lon);
+ ptrTrama->lonprm=lon; // Almacena longitud de los parámetros ya desencriptados
+ return(ptrTrama);
+}
+// ________________________________________________________________________________________________________
+// Función: recData
+//
+// Descripción:
+// Recibe datos por la red a través de un socket
+// Parametros:
+// - sock : El socket por el que se reciben los datos
+// - datos: El buffer donde se almacenan
+// - lon: Cantidad máxima de bites a recibir
+// - ret: Cantidad de bites recibidos (Parámetro de salida)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN recData(SOCKET *sock, char* buffer,int lon,int* ret)
+{
+ *ret = 0;
+
+ while (TRUE) { // Bucle para recibir datos del cliente
+ *ret = recv(*sock,buffer, lon, 0);
+ if (*ret == 0) // Conexión cerrada por parte del cliente (Graceful close)
+ break;
+ else {
+ if (*ret == SOCKET_ERROR) {
+ return (FALSE);
+ } else
+ // Datos recibidos
+ break;
+ }
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: enviaFlag
+//
+// Descripción:
+// Envia una señal de sincronización
+// Parámetros:
+// - socket_c: (Salida) Socket utilizado para el envío (operativo)
+// - ptrTrama: contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN enviaFlag(SOCKET *socket_c,TRAMA *ptrTrama)
+{
+ char modulo[] = "enviaFlag()";
+ if (!mandaTrama(socket_c,ptrTrama)) {
+ errorLog(modulo,26,FALSE);
+ return (FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: recibeFlag
+//
+// Descripción:
+// Recibe una señal de sincronización
+// Parámetros:
+// - socket_c: Socket utilizadopara la recepción (operativo)
+// - ptrTrama: (Salida) Contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN recibeFlag(SOCKET *socket_c,TRAMA *ptrTrama)
+{
+ ptrTrama=recibeTrama(socket_c);
+ if(!ptrTrama){
+ return(FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: URLEncode
+//
+// Descripción:
+// Codifica una cadena en UrlEncode
+// Parámetros:
+// - src: La cadena a decodificar
+// Devuelve:
+// La cadena decodificada
+// ________________________________________________________________________________________________________
+char* URLEncode(char *src)
+{
+ char *dest;
+ int i,j=0,lon;
+
+ lon=strlen(src);
+ dest=(char*)reservaMemoria(lon*2); // Reserva buffer para la cadena
+ for(i=0;i<lon;i++){
+ if(src[i]==0x20){ // Espacio
+ dest[j++] = '%';
+ dest[j++] = '2';
+ dest[j++] = '0';
+ }
+ else
+ dest[j++] = src[i];
+ }
+ return(dest);
+}
+//______________________________________________________________________________________________________
+// Función: URLDecode
+//
+// Descripción:
+// Decodifica una cadena codificada con UrlEncode
+// Parámetros:
+// - src: La cadena a decodificar
+// Devuelve:
+// La cadena decodificada
+// ________________________________________________________________________________________________________
+char* URLDecode(char *src)
+{
+ const char *p = src;
+ char code[3] = {0};
+ unsigned long ascii = 0;
+ char *end = NULL;
+ char *dest,*cad;
+
+ dest=(char*)reservaMemoria(strlen(src)); // Reserva buffer para la cadena
+ cad=dest;
+ while(*p){
+ if(*p == '%'){
+ memcpy(code, ++p, 2);
+ ascii = strtoul(code, &end, 16);
+ *dest++ = (char)ascii;
+ p += 2;
+ }
+ else
+ *dest++ = *p++;
+ }
+ return(cad);
+}
+// ________________________________________________________________________________________________________
+// Función: leeArchivo
+//
+// Descripción:
+// Lee un archivo
+// Parámetros:
+// fil: Nombre completo del archivo
+// Devuelve:
+// Un puntero al buffer con el contenido leido
+
+//______________________________________________________________________________________________________
+char * leeArchivo(char *fil)
+{
+ FILE *f;
+ long lSize;
+
+ f=fopen(fil,"rb");
+ if (!f)
+ return(NULL);
+ fseek (f,0,SEEK_END); // Obtiene tamaño del fichero.
+ lSize = ftell (f);
+ rewind (f);
+ char*buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura.
+ if (!buffer) // No hay memoria suficiente para el buffer
+ return (NULL);
+ lSize=fread (buffer,1,lSize,f); // Lee contenido del fichero
+ fclose(f);
+ return (buffer);
+}
+// ________________________________________________________________________________________________________
+// Función: leeArchivo
+//
+// Descripción:
+// Calcula la longitud de un archivo
+// Parámetros:
+// fil: Nombre completo del archivo
+// Devuelve:
+// Un puntero al buffer con el contenido leido
+
+//______________________________________________________________________________________________________
+int lonArchivo(char *fil)
+{
+ FILE *f;
+ long lSize;
+
+ f=fopen(fil,"rb");
+ if (!f)
+ return(0);
+ fseek (f,0,SEEK_END); // Obtiene tamaño del fichero.
+ lSize = ftell (f);
+ fclose(f);
+ return (lSize);
+}
+// ________________________________________________________________________________________________________
+// Función: escribeArchivo
+//
+// Descripción:
+// Escribe un archivo
+// Parámetros:
+// fil: Nombre completo del archivo
+// buffer: Un puntero al buffer con el contenido a escribir
+// Devuelve:
+//______________________________________________________________________________________________________
+BOOLEAN escribeArchivo(char *fil,char*buffer)
+{
+ FILE *f;
+ long lSize;
+
+ f=fopen(fil,"wb");
+ if (!f){
+ return(FALSE);
+ }
+ lSize=strlen(buffer);
+ fwrite(buffer,1,lSize,f); // Escribe el contenido en el fichero
+ fclose(f);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: sendArchivo
+//
+// Descripción:
+// Envía un archivo por la red
+// Parámetros:
+// sock: Socket para el envío
+// fil: Nombre local completo del archivo
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN sendArchivo(SOCKET *sock,char *fil)
+{
+ long lSize;
+ FILE *f;
+ char buffer[LONBLK];
+
+ f = fopen(fil,"rb");
+ if(!f) // El fichero no existe
+ return(FALSE);
+
+ while(!feof(f)){
+ lSize=fread (buffer,1,LONBLK,f); // Lee el contenido del fichero
+ if(!sendData(sock,buffer,lSize))
+ return (FALSE);
+ }
+ fclose(f);
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: recArchivo
+//
+// Descripción:
+// Recibe un archivo por la red
+// Parámetros:
+// sock: Socket para la recepción
+// fil: Nombre local completo del archivo que se creará
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//______________________________________________________________________________________________________
+BOOLEAN recArchivo(SOCKET *sock,char *fil)
+{
+ int lon;
+ FILE *f;
+ char buffer[LONBLK];
+
+ f = fopen(fil,"wb");
+ if(!f) // No se ha podido crear el archivo
+ return(FALSE);
+ do{
+ if(!recData(sock,buffer,LONBLK,&lon))
+ return(FALSE);
+ // Datos recibidos
+ if(lon>0)
+ fwrite(buffer,1,lon,f); // Lee el contenido del fichero
+ }while(lon>0); // Bucle para recibir datos del cliente
+ fclose(f);
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: initParammetros
+//
+// Descripción:
+// Libera memoria del buffer de los parametros de la trama y vuelve a reservar espacio
+// Parámetros:
+// - parametros : Puntero a la zona donde están los parametros de una trama
+// - lon : Tamaño de la nueva reserva de espacio para los parametros
+// Devuelve:
+// Un puntero a la nueva zona de memoria o NULL si ha habido algún error
+// Especificaciones:
+// En caso de que el parámetro lon valga cero el tamaño a reservar será el estandar
+//______________________________________________________________________________________________________
+BOOLEAN initParametros(TRAMA* ptrTrama,int lon)
+{
+ if(lon==0) lon=LONGITUD_PARAMETROS;
+ ptrTrama->parametros=(char*)ampliaMemoria(ptrTrama->parametros,lon);
+ if(!ptrTrama->parametros)
+ return(FALSE);
+ else
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: TCPConnect
+//
+// Descripción:
+// Crea un socket y lo conecta a un servidor
+// Parámetros:
+// - ips : La Dirección IP del servidor
+// - port : Puerto para la comunicación
+// Devuelve:
+// Un socket para comunicaciones por protocolo TCP
+//______________________________________________________________________________________________________
+SOCKET TCPConnect(char *ips,char* port)
+{
+ SOCKET s;
+ struct sockaddr_in server;
+ char modulo[] = "TCPConnect()";
+
+ s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ if (s == INVALID_SOCKET){
+ return (INVALID_SOCKET);
+ }
+ server.sin_family = AF_INET;
+ server.sin_port = htons((short)atoi(port));
+ server.sin_addr.s_addr = inet_addr(ips);
+
+ if (connect(s, (struct sockaddr *)&server, sizeof(server)) == INVALID_SOCKET){
+ errorLog(modulo,38,TRUE);
+ return (INVALID_SOCKET);
+ }
+
+ return(s);
+}
+//______________________________________________________________________________________________________
+// Función: AbreConexion
+//
+// Descripción:
+// Abre la conexión entre el cliente y el servidor de administración
+// Parámetros:
+// - Ninguno
+// Devuelve:
+// Un socket de cliente para comunicaciones
+//______________________________________________________________________________________________________
+SOCKET abreConexion(void)
+{
+ int swloop=0;
+ SOCKET s;
+
+ while(swloop<MAXCNX){
+ s=TCPConnect(servidoradm,puerto);
+ if(s!= INVALID_SOCKET){
+ return(s);
+ }
+ swloop++;
+ sleep(5); // Espera cinco sgendo antes de intentar una nueva conexión
+ }
+ return(INVALID_SOCKET);
+}
+//______________________________________________________________________________________________________
+// Función: enviaMensaje
+//
+// Descripción:
+// Envia un mensaje al servidor de Administración
+// Parámetros:
+// - socket_c: (Salida) Socket utilizado para el envío
+// - ptrTrama: contenido del mensaje
+// - tipo: Tipo de mensaje
+// C=Comando, N=Respuesta a un comando, P=Peticion,R=Respuesta a una petición, I=Informacion
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN enviaMensaje(SOCKET *socket_c,TRAMA *ptrTrama,char tipo)
+{
+ char modulo[] = "enviaMensaje()";
+
+ *socket_c=abreConexion();
+ if(*socket_c==INVALID_SOCKET){
+ errorLog(modulo,38,FALSE); // Error de conexión con el servidor
+ return(FALSE);
+ }
+ ptrTrama->arroba='@'; // Cabecera de la trama
+ strncpy(ptrTrama->identificador,"JMMLCAMDJ_MCDJ",14); // identificador de la trama
+ ptrTrama->tipo=tipo; // Tipo de mensaje
+
+ if (!mandaTrama(socket_c,ptrTrama)) {
+ errorLog(modulo,26,FALSE);
+ return (FALSE);
+ }
+ return(TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: recibeMensaje
+//
+// Descripción:
+// Recibe un mensaje del servidor de Administración
+// Parámetros:
+// - socket_c: Socket utilizadopara la recepción
+// - ptrTrama: (Salida) Contenido del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+TRAMA* recibeMensaje(SOCKET *socket_c)
+{
+ TRAMA* ptrTrama;
+ char modulo[] = "recibeMensaje()";
+
+ ptrTrama=recibeTrama(socket_c);
+ if(!ptrTrama){
+ errorLog(modulo,17,FALSE);
+ return(NULL);
+ }
+ return(ptrTrama);
+}
diff --git a/admin/Sources/Includes/ogAdmLib.h b/admin/Sources/Includes/ogAdmLib.h
new file mode 100644
index 00000000..1a33efc4
--- /dev/null
+++ b/admin/Sources/Includes/ogAdmLib.h
@@ -0,0 +1,308 @@
+// **************************************************************************************************************************************************
+// Libreria: ogAdmLib
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmLib.h
+// Descripción: Este fichero implementa el archivo de cabecera de la libreria ogAdmLib
+// **************************************************************************************************************************************************
+// ________________________________________________________________________________________________________
+// Valores definidos
+// ________________________________________________________________________________________________________
+#define LONSTD 1024 // Longitud de memoria estandar
+#define LONINT 16 // Longitud de memoria estandar para un número entero
+#define LONFIL 256 // Longitud de memoria estandar para nombres de archivo completos (incluido path)
+#define LONIP 16 // Longitud de memoria estandar para cadenas que contiene una dirección IP
+#define LONMAC 16 // Longitud de memoria estandar para cadenas que contiene una dirección MAC
+#define LONSQL 4096 // Longitud de memoria estandar para una sentencia SQL
+#define LONPRM 512 // Longitud estandar de los parámetros del fichero de configuración del servicio
+#define LONSCP 2024 // Longitud estandar de los parámetros de las tramas
+#define LONFUN 64 // Longitud estandar de los nombres de las funciones que procesan las tramas
+#define LONSUC 512 // Longitud de los mensajes de sucesos
+#define LONBLK 512 // Longitud de los paquetes de tramas leidos cada vez
+#define MAXPRM 10 // Máximo número de parámeros del fichero de configuración del servicio
+#define MAXPAR 16 // Máximo número de particiones manejadas por el sistema
+#define MAXLONURL 512 // Longitud máxima de una dirección url con parámetros
+
+#define LONHEXPRM 5 // Longitud del campo que contiene el tamaño de la cadena de parámetros
+#define LONGITUD_CABECERATRAMA 16 // Longitud de la cabecera de las tramas
+#define LONGITUD_PARAMETROS 1024 // Longitud estandar de la información de la trama (parámetros)
+#define MAXCMD_PARAMETROS 200 // Máximo número de parámetros de una trama
+
+#define MAXIMOS_CLIENTES 4000 // Máximo número de conexiones con ordenadores clientes
+#define MAXIMAS_FUNCIONES LONSTD // Máximo número de funciones que procesan los mensajes entre servicio y clientes
+#define MAXIMAS_LINEAS 3000 // Longitud máxima de lineas en un archivo de comandos
+
+#define AUTOINCORPORACION_OFF 0x0000 // Los ordenadores no se pueden dar de alta automáticamente
+#define AUTOINCORPORACION_ONA 0x0001 // Los ordenadores se pueden dar de alta automáticamente si existe el aula
+#define AUTOINCORPORACION_ONX 0x0002 // Los ordenadores se pueden dar de alta automáticamentee y si no existe el aula la crea
+
+#define DEBUG_BAJO 1 // Nivel de debug bajo
+#define DEBUG_MEDIO 2 // Nivel de debug medio
+#define DEBUG_ALTO 3 // Nivel de debug alto
+#define DEBUG_MAXIMO 4 // Nivel de debug máximo
+
+#define CLIENTE_OCUPADO "BSY" // Cliente ocupado
+#define CLIENTE_APAGADO "OFF" // Cliente apagado
+#define CLIENTE_INICIANDO "INI" // Cliente iniciando
+
+#define CLIENTE_OPENGNSYS "OPG" // Cliente Opengnsys
+
+#define CLIENTE_WIN "WIN" // Cliente Windows genérico
+#define CLIENTE_WNT "WNT" // Windows NT
+#define CLIENTE_W2K "W2K" // Windows 2000
+#define CLIENTE_WS2 "WS2" // Windows Server 2003
+#define CLIENTE_WXP "WXP" // Cliente Windows XP
+#define CLIENTE_W95 "W95" // Windows 95
+#define CLIENTE_W98 "W98" // Windows 98
+#define CLIENTE_WML "WML" // Windows Milenium
+#define CLIENTE_MS2 "MS2" // MsDos
+#define CLIENTE_WVI "WVI" // Cliente Windows Vista
+#define CLIENTE_WI7 "WI7" // Cliente Windows 7
+
+#define CLIENTE_LNX "LNX" // Cliente Linux
+
+#define ACCION_SINRESULTADO 0 // Sin resultado
+#define ACCION_EXITOSA 1 // Finalizada con éxito
+#define ACCION_FALLIDA 2 // Finalizada con errores
+
+#define ACCION_INICIADA 1 // Acción activa
+#define ACCION_DETENIDA 2 // Acción momentanemente parada
+#define ACCION_FINALIZADA 3 // Accion finalizada
+
+#define EJECUCION_COMANDO 1
+#define EJECUCION_PROCEDIMIENTO 2
+#define EJECUCION_TAREA 3
+#define EJECUCION_RESERVA 4
+
+#define AMBITO_CENTROS 0x01
+#define AMBITO_GRUPOSAULAS 0x02
+#define AMBITO_AULAS 0x04
+#define AMBITO_GRUPOSORDENADORES 0x08
+#define AMBITO_ORDENADORES 0x10
+
+// Código de los tipos de mensajes
+#define MSG_COMANDO '1' // Mensaje del tipo comando
+#define MSG_NOTIFICACION '2' // Respuesta a la ejecución un comando
+#define MSG_PETICION '3' // Petición de cualquier actuación
+#define MSG_RESPUESTA '4' // Respuesta a una petición
+#define MSG_INFORMACION '5' // Envío de cualquier información sin espera de confirmación o respuesta
+
+#define ANNOREF 2009 // Año de referencia base
+
+#define LONGITUD_SCRIPTSALIDA 512 // Longitud máxima de la información devuelta por una función de interface
+#define MAXARGS 16 // Número máximo de argumentos enviados a un scripts
+#define MAXCNX 5 // Máximos intentos de conexión al servidor de Administración
+
+#define PUERTO_WAKEUP 9 // Puerto wake up
+
+#define MAXHARDWARE 128 // Máximos elementos hardware a detectar
+#define MAXSOFTWARE 2048 // Máximos elementos software a detectar
+// ________________________________________________________________________________________________________
+// Tipos definidos
+// ________________________________________________________________________________________________________
+typedef unsigned long DWORD;
+typedef unsigned short WORD;
+typedef int BOOLEAN;
+typedef char BYTE;
+typedef int SOCKET;
+typedef void* LPVOID;
+
+#define TRUE 1
+#define FALSE 0
+
+#define SOCKET_ERROR (-1)
+#define INVALID_SOCKET (SOCKET)(~0)
+
+#define LEER 0
+#define ESCRIBIR 1
+
+#define CHARNULL '\0'
+
+// ________________________________________________________________________________________________________
+// Variables globales
+// ________________________________________________________________________________________________________
+char szPathFileCfg[LONSTD],szPathFileLog[LONSTD];
+int ndebug; // Nivel de debuger
+
+typedef struct{ // Estructura de las tramas
+ char arroba; // Caracter arroba siempre
+ char identificador[14]; // Identificador de la trama, siempre JMMLCAMDJ_MCDJ
+ char tipo; // Tipo de mensaje
+ int lonprm; // Longitud en hexadecimal de los parámetros
+ char *parametros; // Parámetros de la trama
+}TRAMA;
+// ________________________________________________________________________________________________________
+// Tabla de errores
+// ________________________________________________________________________________________________________
+const char* tbErrores[]={"Se han generado errores. No se puede continuar la ejecución de este módulo",\
+ "001-El nombre del fichero de configuración del programa está vacío",\
+ "002-No existe fichero de configuración del programa",\
+ "003-No hay memoria suficiente para el buffer",\
+ "004-Error en el fichero de configuración del programa. No se ha definido el parámetro SERVIDORADM",\
+ "005-Error en el fichero de configuración del programa. No se ha definido el parámetro PUERTO",\
+ "006-Error en el fichero de configuración del programa. No se ha definido el parámetro USUARIO",\
+ "007-Error en el fichero de configuración del programa. No se ha definido el parámetro PASSWORD",\
+ "008-Error en el fichero de configuración del programa. No se ha definido el parámetro DATASOURCE",\
+ "009-Error en el fichero de configuración del programa. No se ha definido el parámetro CATALOG",\
+ "010-Error en los parámetros de ejecución del programa. Debe especificar el fichero de configuración",\
+ "011-Error en los parámetros de ejecución del programa. Debe especificar el fichero de log",\
+ "012-Error de sintaxis en los parámetros de ejecución del programa: Debe especificar -f nombre_del_fichero_de_configuración_del_programa -l nombre_del_fichero_de_log_del_programa -d nivel de debug",\
+ "013-Error al crear socket ***socket() fallo",\
+ "014-Error al enlazar socket al interface ***bind() fallo",\
+ "015-Error al acceptar conexión de clientes ***accept() fallo",\
+ "016-Error al crear hebra de cliente en módulo main()",\
+ "017-Error al recibir trama ***recv() fallo",\
+ "018-No se reconoce el mensaje enviado",\
+ "019-Trama recibida NO válida",\
+ "020-No se puede establecer conexión con la base de datos",\
+ "021-No se han podido recuperar los datos de la consulta o bien insertar, modificar o eliminar datos",\
+ "022-El cliente no se ha sido dado de alta en la base de datos del sistema. Se rechaza su petición de inclusión",\
+ "023-Ha habido algún problema en la incorporación automática del cliente",\
+ "024-Ha habido algún problema en la actualización de la configuración del cliente",\
+ "025-La tabla de clientes está llena, no pueden registrarse más clientes en el sistema",\
+ "026-Error al enviar trama ***send() fallo",\
+ "027-No se encuentra Repositorio del cliente",\
+ "028-Ha ocurrido algún error al tomar las particiones",\
+ "029-Ha ocurrido algún problema en el proceso de inclusión del cliente. Se rechaza su petición",\
+ "030-Ha ocurrido algún problema en el proceso de respuesta al comando",\
+ "031-No se ha encontrado la acción a notificar es posible que se haya eliminado el registro",\
+ "032-Ha ocurrido algún problema en el envío del comando",\
+ "033-Error en el fichero de configuración del programa. No se ha definido el parámetro PATHSCRIPTS",\
+ "034-Error en el fichero de configuración del programa. No se ha definido el parámetro URLMENU",\
+ "035-Error en el fichero de configuración del programa. No se ha definido el parámetro URLMSG",\
+ "036-No se ha podido recuperar la configuración de las particiones del disco",\
+ "037-Ha ocurrido algún problema en el proceso de inclusión del cliente",\
+ "038-No se ha podido establecer conexión con el Servidor de Administración",\
+ "039-Ha ocurrido algún problema al procesar la trama recibida",\
+ "040-Se han recibido parámetros conurl valores no válidos",\
+ "041-Ha ocurrido algún problema en el proceso de inclusión del cliente",\
+ "042-Ha ocurrido algún problema al enviar una petición de comandos o tareas pendientes al Servidor de Administración",\
+ "043-Ha ocurrido algún problema al enviar una petición de comandos interactivos al Servidor de Administración",\
+ "044-Ha ocurrido algún problema al enviar una respuesta de comandos al servidor",\
+ "045-Ha ocurrido algún problema al recibir una petición de comandos o tareas pendientes desde el Servidor de Administración",\
+ "046-Ha ocurrido algún problema al recibir un comando interactivo desde el Servidor de Administración",\
+ "047-El cliente no está registrado en la tabla de sockest del sistema",\
+ "048-Error al configurar opción BROADCAST para socket: setsockopt(SO_BROADCAST)",\
+ "049-Error al enviar trama magic packet",\
+ "050-Ha ocurrido algún problema al enviar un fichero por la red",\
+ "051-Error en el fichero de configuración del programa. No se ha definido el parámetro PATHLOGFIL",\
+ "052-No se puede crear archivo temporal para ejecución de Comandos",\
+ "053-Ha ocurrido algún problema al procesar el Inventario Hardware del cliente",\
+ "054-Existe un tipo de hardware que no está registrado",\
+ "055-Ha ocurrido algún problema al actualizar el hardware del cliente",\
+ "056-Error en el fichero de configuración del programa. No se ha definido el parámetro PATHINTERFACE",\
+ "057-Ha ocurrido algún problema al enviar un archivo por la red",\
+ "058-Ha ocurrido algún problema al recibir un archivo por la red",\
+ "059-Error al crear la hebra DHCP o BOOTP",\
+ "060-Error al crear la hebra TFTP",\
+ "061-Error al crear socket para servicio DHCP",\
+ "062-Error al enlazar socket con interface para servicio DHCP",\
+ "063-No hay puertos libres para la hebra del servicio",\
+ "064-Error al crear estructura de control para protocolo DHCP",\
+ "065-Error al recibir mensaje DHCP. Se para el servicio",\
+ "066-Error al crear la hebra cliente DHCP",\
+ "067-Error al crear socket para servicio BOOTP",\
+ "068-Error al enlazar socket con interface para servicio BOOTP",\
+ "069-Error al crear estructura de control para protocolo BOOTP",\
+ "070-Error al recibir mensaje BOOTP. Se para el servicio",\
+ "071-Error al crear la hebra cliente BOOTP",\
+ "072-Error al crear socket para servicio TFTP",\
+ "073-Error al enlazar socket con interface para servicio TFTP",\
+ "074-Error al crear estructura de control para protocolo TFTP",\
+ "075-Error al recibir mensaje TFTP. Se para el servicio",\
+ "076-Error al crear la hebra cliente TFTP",\
+ "077-No se encontró opción DHCP",\
+ "078-ERROR TFTP",\
+ "079-Error al recibir mensaje TFTP en hebra cliente",\
+ "080-Error al recibir mensaje DHCP",\
+ "081-Error al crear socket de usuario para hebra",\
+ "082-Ha ocurrido algún problema al procesar el Inventario software del cliente",\
+ "083-Ha ocurrido algún problema al actualizar el software del cliente",\
+ "084-Ha ocurrido algún problema al reiniciar la sesión del cliente",\
+ "085-No se ha podido recuperar la dirección IP del cliente",\
+ "086-Error al ejecutar el comando",\
+ "087-Error al leer o escribir el contenido del archivo de eco de consola remota",\
+ "088-Ha habido algún problerma al procesar la caché",\
+ "089-Error en el fichero de configuración del programa. No se ha definido el parámetro URLMENU",\
+ "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",\
+
+};
+// ________________________________________________________________________________________________________
+// Tabla de mensajes
+// ________________________________________________________________________________________________________
+const char* tbMensajes[]={"",\
+ "001-Inicio de sesion",\
+ "002-Petición de inclusión de cliente",\
+ "003-Abriendo sesión en el servidor de Administración",\
+ "004-Cliente iniciado",\
+ "005-Ejecución de archivo Autoexec",\
+ "006-Procesa comandos pendientes",\
+ "007-Acciones pendientes procesadas",\
+ "008-Ejecución del script",\
+ "009-Parámetro del script",\
+ "010-Ha ocurrido algún error en la creación del proceso hijo",\
+ "011-Aviso: La información de salida del script excede de la longitud permitida. Puede haberse truncado",\
+ "012-Información devuelta por el script",\
+ "013-Estatus de finalización del script",\
+ "014-Configuración de particiones",\
+ "015-Enviando petición de inclusión en el sistema al Servidor de Administración",\
+ "016-Recibiendo respuesta de inclusión desde el Servidor de Administración",\
+ "017-Enviando petición de comandos o tareas pendientes al Servidor de Administración",\
+ "018-Recibiendo respuesta de comandos o tareas pendientes desde el Servidor de Administración",\
+ "019-Disponibilidad de comandos activada",\
+ "020-Disponibilidad de comandos desactivada",\
+ "021-Ejecución de comando",\
+ "022-Sin eco",\
+ "023-Procesando caché",\
+ "024-Repositorio iniciado",\
+
+};
+// ________________________________________________________________________________________________________
+// Prototipo de funciones
+// ________________________________________________________________________________________________________
+char *desencriptar(char *,int*);
+char *encriptar(char *,int*);
+struct tm * tomaHora();
+void registraLog(const char *,const char *,int );
+void errorLog(const char *,int ,int);
+void errorInfo(const char *,char *);
+void infoLog(int);
+void infoDebug(char*);
+BOOLEAN validacionParametros(int,char**,int);
+char* reservaMemoria(int);
+char* ampliaMemoria(char*,int);
+void liberaMemoria(char*);
+BOOLEAN initParametros(TRAMA*,int);
+int splitCadena(char **,char *, char);
+void sustituir(char *,char ,char );
+char* StrToUpper(char *);
+char* StrToLower(char *);
+void INTROaFINCAD(TRAMA*);
+void FINCADaINTRO(TRAMA*);
+int cuentaIPES(char*);
+char *tomaParametro(const char*,TRAMA*);
+char *copiaParametro(const char*,TRAMA *);
+BOOLEAN contieneIP(char *,char *);
+char* rTrim(char *);
+SOCKET TCPConnect(char *,char *);
+SOCKET abreConexion(void);
+BOOLEAN enviaMensaje(SOCKET *,TRAMA *,char);
+TRAMA* recibeMensaje(SOCKET *);
+BOOLEAN mandaTrama(SOCKET*,TRAMA*);
+BOOLEAN sendData(SOCKET *, char* ,int );
+BOOLEAN enviaTrama(SOCKET *,TRAMA *);
+TRAMA* recibeTrama(SOCKET*);
+BOOLEAN recData(SOCKET *,char*,int,int*);
+BOOLEAN sendFlag(SOCKET *, char* ,int );
+BOOLEAN recibeFlag(SOCKET*,TRAMA*);
+char* URLEncode(char *);
+char* URLDecode(char *);
+char* leeArchivo(char*);
+int lonArchivo(char *);
+BOOLEAN escribeArchivo(char *,char*);
+BOOLEAN sendArchivo(SOCKET *,char *);
+BOOLEAN recArchivo(SOCKET *,char *);
+SOCKET TCPConnect(char *,char*);
+
diff --git a/admin/Sources/Services/ogAdmAgent/Makefile b/admin/Sources/Services/ogAdmAgent/Makefile
new file mode 100644
index 00000000..ae5d0f68
--- /dev/null
+++ b/admin/Sources/Services/ogAdmAgent/Makefile
@@ -0,0 +1,43 @@
+# makefile
+
+# Nombre del proyecto
+PROYECTO := ogAdmAgent
+
+# Directorio de instalación
+INSTALL_DIR := /opt/opengnsys
+
+# Opciones de compilacion
+CFLAGS := -O0 -g -Wall -I../../Includes # Depuracion
+#CFLAGS := -O3 -Wall # Optimizacion
+CPPFLAGS := $(CFLAGS)
+
+# Opciones de linkado
+LDFLAGS := -L/usr/lib -L/usr/lib/mysql -lpthread -lmysqlclient
+
+# Ficheros objetos
+OBJS := ../../Includes/Database.o sources/ogAdmAgent.o
+
+
+all: $(PROYECTO)
+
+$(PROYECTO): $(OBJS)
+ g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO)
+# strip $(PROYECTO) # Optimizacion
+
+install: $(PROYECTO)
+ cp $(PROYECTO) $(INSTALL_DIR)/sbin
+ cp $(PROYECTO).cfg $(INSTALL_DIR)/etc
+
+clean:
+ rm -f $(PROYECTO) $(OBJS)
+
+uninstall: clean
+ rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg
+
+sources/%.o: sources/%.cpp
+ g++ $(CPPFLAGS) -c -o"$@" "$<"
+
+sources/%.o: sources/%.c
+ gcc $(CFLAGS) -c -o"$@" "$<"
+
+
diff --git a/admin/Sources/Services/ogAdmAgent/ogAdmAgent.cfg b/admin/Sources/Services/ogAdmAgent/ogAdmAgent.cfg
new file mode 100644
index 00000000..b21c91ae
--- /dev/null
+++ b/admin/Sources/Services/ogAdmAgent/ogAdmAgent.cfg
@@ -0,0 +1,7 @@
+ServidorAdm=SERVERIP
+PUERTO=2008
+USUARIO=usuog
+PASSWORD=passusuog
+datasource=localhost
+CATALOG=ogAdmBD
+
diff --git a/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp
new file mode 100644
index 00000000..11c1d77f
--- /dev/null
+++ b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.cpp
@@ -0,0 +1,905 @@
+// ********************************************************************************************************
+// Servicio: ogAdmAgent
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmAgent.cpp
+// Descripción: Este fichero implementa el servicio agente del sistema. Revisa a intervalos
+// regulares la base de datos para comprobar si existen acciones programadas.
+// ********************************************************************************************************
+#include "ogAdmAgent.h"
+#include "ogAdmLib.c"
+//________________________________________________________________________________________________________
+// Función: tomaConfiguracion
+//
+// Descripción:
+// Lee el fichero de configuración del servicio
+// Parámetros:
+// filecfg : Ruta completa al fichero de configuración
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char* filecfg)
+{
+ char modulo[] = "tomaConfiguracion()";
+
+ if (filecfg == NULL || strlen(filecfg) == 0) {
+ errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
+ return (FALSE);
+ }
+ FILE *fcfg;
+ long lSize;
+ char * buffer, *lineas[MAXPRM], *dualparametro[2];
+ int i, numlin, resul;
+
+ fcfg = fopen(filecfg, "rt");
+ if (fcfg == NULL) {
+ errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
+ return (FALSE);
+ }
+
+ fseek(fcfg, 0, SEEK_END);
+ lSize = ftell(fcfg); // Obtiene tamaño del fichero.
+ rewind(fcfg);
+ buffer = (char*) reservaMemoria(lSize + 1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
+ buffer[lSize] = (char) NULL;
+ fclose(fcfg);
+
+ servidoradm[0] = (char) NULL; //inicializar variables globales
+ puerto[0] = (char) NULL;
+ usuario[0] = (char) NULL;
+ pasguor[0] = (char) NULL;
+ datasource[0] = (char) NULL;
+ catalog[0] = (char) NULL;
+
+ numlin = splitCadena(lineas, buffer, '\n');
+ for (i = 0; i < numlin; i++) {
+ splitCadena(dualparametro, lineas[i], '=');
+ resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM");
+ if (resul == 0)
+ strcpy(servidoradm, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
+ if (resul == 0)
+ strcpy(puerto, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO");
+ if (resul == 0)
+ strcpy(usuario, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD");
+ if (resul == 0)
+ strcpy(pasguor, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE");
+ if (resul == 0)
+ strcpy(datasource, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG");
+ if (resul == 0)
+ strcpy(catalog, dualparametro[1]);
+ }
+ if (servidoradm[0] == (char) NULL) {
+ errorLog(modulo, 4, FALSE); // Falta parámetro SERVIDORADM
+ return (FALSE);
+ }
+ if (puerto[0] == (char) NULL) {
+ errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO
+ return (FALSE);
+ }
+ if (usuario[0] == (char) NULL) {
+ errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO
+ return (FALSE);
+ }
+ if (pasguor[0] == (char) NULL) {
+ errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD
+ return (FALSE);
+ }
+ if (datasource[0] == (char) NULL) {
+ errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE
+ return (FALSE);
+ }
+ if (catalog[0] == (char) NULL) {
+ errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: diadelaSemana
+//
+// Descripción:
+// Calcula el número del día de la semana que corresponde a una fecha
+// Parámetros:
+// - dia: Un día
+// - mes: Un mes
+// - anno: Un año
+// Devuelve:
+// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo
+// ________________________________________________________________________________________________________
+
+int diadelaSemana(WORD dia,WORD mes,WORD anno)
+{
+ int i,cont,dias_anuales;
+ int desplazamiento_dias=6;
+ int orddiasem;
+
+ cont =0;
+ for (i=1900;i<anno;i++){
+ if (bisiesto(i)) dias_anuales=366; else dias_anuales=365;
+ cont+=dias_anuales;
+ }
+ for (i=1;i<mes;i++){
+ if (i!=2)
+ cont+=dias_meses[i];
+ else{
+ if (bisiesto(anno))
+ cont+=29;
+ else
+ cont+=28;
+ }
+ }
+ cont+=dia+desplazamiento_dias;
+ orddiasem=(cont%7);
+ if(orddiasem==0) orddiasem=7;
+ return(orddiasem);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: bisiesto
+//
+// Descripción:
+// Calcula si un año es bisiesto o no lo es
+// Parámetros:
+// - anno: Un año
+// Devuelve:
+// TRUE si el año es bisiesto
+// FALSE si no es bisiesto
+// ________________________________________________________________________________________________________
+
+BOOLEAN bisiesto(WORD anno){
+ return(anno%4==0);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: semanadelMes
+//
+// Descripción:
+// Calcula el número de semana perteneciente a un día del mes
+// Parámetros:
+// - ordiasem_1: Orden semanal (1,2...) del primer dia del mes que se pasa como parámetro
+// - diames: El mes concreto
+// Devuelve:
+// El número del día de la semana: 1=Lunes, 2=martes ... 6=sábado 7=domingo , de ese mes
+// ________________________________________________________________________________________________________
+
+int semanadelMes(int ordiasem_1,int diames)
+{
+ int nwdia,resto,cociente;
+
+ nwdia=diames+ordiasem_1-1;
+ cociente=nwdia/7;
+ resto=nwdia%7;
+ if(resto>0) cociente++;
+ return(cociente);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: buscaAccion
+//
+// Descripción:
+// Busca en la base de datos, acciones programadas
+// Parámetros:
+// - db: Objeto base de datos (operativo)
+// - dia : Día actual del mes
+// - mes : mes en curso
+// - anno : Año en curso
+// - hora : Hora actual
+// - minutos : Minutos actuales
+// - diasemana : Dia de la semana 1=lunes,2=martes ... ( 0 Domingo)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+
+BOOLEAN buscaAccion(Database db,WORD dia,WORD mes,WORD anno,WORD hora,WORD minutos,WORD diasemana)
+{
+ char msglog[LONSTD], sqlstr[LONSQL];
+ Table tbl;
+ BYTE swampm,bitsemana;
+ int ordsem,ordulsem,ordiasem_1,maxdias;
+ int sesionprog;
+ char modulo[] = "buscaAccion()";
+
+ /* Año de comienzo */
+ anno=anno-ANNOREF; //
+ /* Preparación hora */
+ if(hora>11){
+ hora-=12;
+ swampm=1; // Es P.M.
+ }
+ else
+ swampm=0; // Es am
+ /* Preparación semana */
+ if(diasemana==0) diasemana=7; // El domingo
+
+ // Cuestión semanas
+ ordiasem_1=diadelaSemana(1,mes,anno+2009);
+ ordsem=semanadelMes(ordiasem_1,dia); // Calcula el número de la semana
+ if (mes!=2) // Toma el último día de ese mes
+ maxdias=dias_meses[mes];
+ else{
+ if (bisiesto(anno+ANNOREF))
+ maxdias=29;
+ else
+ maxdias=28;
+ }
+ ordulsem=semanadelMes(ordiasem_1,maxdias); // Calcula el número de la última semana
+ bitsemana=HEX_semanas[ordsem];
+ if(ordsem==ordulsem) // Si es la última semana del mes
+ bitsemana|=HEX_semanas[6];
+
+ sprintf(sqlstr,"SELECT DISTINCT idprogramacion,tipoaccion,identificador,sesion,idcentro,"\
+ "tareas.descripcion as descritarea"\
+ " FROM programaciones"\
+ " LEFT OUTER JOIN tareas ON tareas.idtarea=programaciones.identificador"\
+ " WHERE suspendida=0 "\
+ " AND (annos & %d <> 0) "\
+ " AND (meses & %d<>0) "\
+ " AND ((diario & %d<>0) OR (dias & %d<>0) OR (semanas & %d<>0))"\
+ " AND (horas & %d<>0) AND ampm=%d AND minutos=%d",\
+ HEX_annos[anno],\
+ HEX_meses[mes],\
+ HEX_dias[dia],\
+ HEX_diasemana[diasemana],\
+ bitsemana,\
+ HEX_horas[hora],\
+ swampm,minutos);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(tbl.ISEOF()){
+ return(TRUE); // No hay acciones programadas
+ }
+
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("idprogramacion",idprogramacion)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("tipoaccion",tipoaccion)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("identificador",idtipoaccion)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("sesion",sesionprog)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("idcentro",idcentro)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if(tipoaccion==EJECUCION_COMANDO){ // Es una programación de un comando
+ return(ejecutarComando(db,idprogramacion,sesionprog));
+ }
+ else{
+
+ if(tipoaccion==EJECUCION_TAREA){
+ if(!tbl.Get("descritarea",descriaccion)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return(ejecutarTarea(db,idprogramacion,idtipoaccion));
+ }
+ else{
+ if(tipoaccion==EJECUCION_RESERVA){
+ EjecutarReserva(idtipoaccion,db); // Es una programación de un trabajo
+ }
+ }
+ }
+ tbl.MoveNext();
+ }
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: ejecutarComando
+//
+// Descripción:
+// Ejecuta un comando programado
+// Parámetros:
+// - db: Objeto base de datos (operativo)
+// - idcomando: Identificador del comando
+// - sesion: Sesión correspondiente al comando cuando se grabó en la tabla acciones
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+
+BOOLEAN ejecutarComando(Database db,int idprogramacion,int sesion )
+{
+ struct tm* st;
+ char msglog[LONSTD], sqlstr[LONSQL];
+ char fechahorareg[24];
+ char modulo[] = "ejecutarComando()";
+
+ st = tomaHora();
+ sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1,
+ st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
+
+ sprintf(sqlstr,"UPDATE acciones SET estado=%d,idprogramacion=%d,fechahorareg='%s'"\
+ " WHERE sesion=%d", ACCION_INICIADA,idprogramacion,fechahorareg,sesion);
+
+ if (!db.Execute(sqlstr)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return(enviaPeticion(idprogramacion));
+}
+// ________________________________________________________________________________________________________
+//
+// Función: ejecutarProcedimiento
+//
+// Descripción:
+// Ejecuta un procedimiento programado
+// Parámetros:
+// - db: Objeto base de datos (operativo)
+// - idprocedimiento: Identificador del procedimiento
+// - ambito: Ámbito de aplicación
+// - idambito: Identificador del ámbito
+// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+
+BOOLEAN ejecutarProcedimiento(Database db,int idprocedimiento,int ambito,int idambito,char* restrambito)
+{
+ char msglog[LONSTD], sqlstr[LONSQL],*parametros;
+ Table tbl;
+ int procedimientoid,idcomando,lonprm;
+ char modulo[] = "ejecutarProcedimiento()";
+
+ sprintf(sqlstr,"SELECT idcomando,procedimientoid,parametros,length(parametros) as lonprm"\
+ " FROM procedimientos_acciones"\
+ " WHERE idprocedimiento=%d ORDER BY orden",idprocedimiento);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if(tbl.ISEOF()){
+ return(TRUE); // No exustde tarea
+ }
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("procedimientoid",procedimientoid)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(procedimientoid>0){ // Procedimiento recursivo
+ if(!ejecutarProcedimiento(db,procedimientoid,ambito,idambito,restrambito)){
+ return(false);
+ }
+ }
+ else{
+ if(!tbl.Get("lonprm",lonprm)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ parametros = reservaMemoria(lonprm+1); // Reserva para almacenar los parametros del procedimiento
+ if (parametros == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ if(!tbl.Get("parametros",parametros)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("idcomando",idcomando)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if(!insertaComando(db,idcomando,parametros,idprocedimiento,ambito,idambito,restrambito))
+ return(false);
+ }
+ tbl.MoveNext();
+ }
+ return(TRUE);
+}
+// ________________________________________________________________________________________________________
+//
+// Función: ejecutarTarea
+//
+// Descripción:
+// Ejecuta una tarea programada
+// Parámetros:
+// - db: Objeto base de datos (operativo)
+// - idtarea: Identificador de la tarea
+// - idprogramacion: Identificador de la programación
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+
+BOOLEAN ejecutarTarea(Database db, int idprogramacion, int idtarea)
+{
+ char msglog[LONSTD], sqlstr[LONSQL];
+ Table tbl;
+ int tareaid,ambito,idambito,idprocedimiento,lonrestrambito;
+ char* restrambito;
+ char modulo[] = "ejecutarTarea()";
+
+ sprintf(sqlstr,"SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,"\
+ " tareas.ambito,tareas.idambito,tareas.restrambito,length(tareas.restrambito) as lonrestrambito"\
+ " FROM tareas"\
+ " INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea"\
+ " WHERE tareas_acciones.idtarea=%d ORDER BY tareas_acciones.orden",idtarea);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if(tbl.ISEOF()){
+ return(TRUE); // No existe tarea
+ }
+
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("tareaid",tareaid)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(tareaid>0){ // Tarea recursiva
+ if(!ejecutarTarea(db,idprogramacion,tareaid)){
+ return(false);
+ }
+ }
+ else{
+ if(!tbl.Get("ambito",ambito)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("idambito",idambito)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("lonrestrambito",lonrestrambito)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ restrambito = reservaMemoria(lonrestrambito+1);
+ if (restrambito == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ if(!tbl.Get("restrambito",restrambito)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ RecopilaIpesMacs(db,ambito,idambito,restrambito); // Recopila Ipes del ámbito
+ if(!tbl.Get("idprocedimiento",idprocedimiento)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sesion=time(NULL);
+
+ if(!ejecutarProcedimiento(db,idprocedimiento,ambito,idambito,restrambito))
+ return(FALSE);
+ }
+ tbl.MoveNext();
+ }
+ return(enviaPeticion(idprogramacion));
+}
+// ________________________________________________________________________________________________________
+//
+// Función: ejecutarTarea
+//
+// Descripción:
+// Registra un procedimiento para un ambito concreto
+// Parámetros:
+// - db: Objeto base de datos (operativo)
+// - idcomando: Identificador del comando
+// - idprocedimiento: Identificador del procedimiento
+// - ambito: Ámbito de aplicación
+// - idambito: Identificador del ámbito
+// - restrambito: cadena con los identificadores de los ordenadores a los que se aplica la acción
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN insertaComando(Database db,int idcomando,char*parametros,int idprocedimiento,int ambito,int idambito,char*restrambito)
+{
+ char msglog[LONSTD], sqlstr[LONSQL];
+ struct tm* st;
+ char *auxID[MAXIMOS_CLIENTES],*auxIP[MAXIMOS_CLIENTES];
+ char fechahorareg[24];
+ int i;
+ char modulo[] = "insertaComando()";
+
+ if(concli==0) return(TRUE); // No hay ordenadores en el ámbito
+
+ st = tomaHora();
+ sprintf(fechahorareg,"%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1, st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
+
+ splitCadena(auxID,cadenaid,',');
+ splitCadena(auxIP,cadenaip,';');
+
+ for (i=0;i<concli;i++){
+ sprintf(sqlstr,"INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,"\
+ "sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,"\
+ "restrambito,idprocedimiento,idcentro,idprogramacion)"\
+ " VALUES (%s,%d,%d,'%s','%s',%d,%d,'%s','%s',%d,%d,%d,%d,'%s',%d,%d,%d)",\
+ auxID[i],tipoaccion,idtipoaccion,descriaccion,auxIP[i],sesion,idcomando,parametros,fechahorareg,\
+ ACCION_INICIADA,ACCION_SINRESULTADO,ambito,idambito,restrambito,idprocedimiento,idcentro,idprogramacion);
+ if (!db.Execute(sqlstr)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ return(TRUE);
+}
+// _____________________________________________________________________________________________________________
+// Función: EjecutarReserva
+//
+// Descripción:
+// Registra una acción (Tarea) y la envía para su ejecución
+// Parámetros:
+// - idreserva : Identificador de la reserva
+// - db: una conexion ADO operativa
+// - parametros: Parámetros de la acción
+// _____________________________________________________________________________________________________________
+BOOLEAN EjecutarReserva(int idreserva,Database db )
+{
+
+
+ return(true);
+}
+// _____________________________________________________________________________________________________________
+// Función: enviaPeticion
+//
+// Descripción:
+// Hace una petición al servidor para que actualice los ordenadores implicados en la programación
+// Parámetros:
+// - idprogramacion: Identificador de la programación
+// _____________________________________________________________________________________________________________
+BOOLEAN enviaPeticion(int idprogramacion)
+{
+ int lon;
+ TRAMA *ptrTrama;
+ SOCKET socket_c;
+ char modulo[] = "enviaPeticion()";
+
+ /* Envio de comandos a clientes */
+ ptrTrama=(TRAMA *)reservaMemoria(sizeof(TRAMA));
+ if (ptrTrama == NULL) { // No hay memoria suficiente para el bufer de las tramas
+ errorLog(modulo, 3, FALSE);
+ return(FALSE);
+ }
+ initParametros(ptrTrama,0);
+ lon=sprintf(ptrTrama->parametros,"nfn=envioProgramacion\r"); // Nombre de la función a ejecutar en el servidor
+ lon+=sprintf(ptrTrama->parametros+lon,"idp=%d\r",idprogramacion); // Configuración de los Sistemas Operativos del cliente
+
+ if(!enviaMensaje(&socket_c,ptrTrama,MSG_PETICION)){
+ errorLog(modulo,91,FALSE);
+ return(FALSE);
+ }
+ return(TRUE);
+}
+// _____________________________________________________________________________________________________________
+//
+// Función: RecopilaIpesMacs
+//
+// Descripción :
+// Recopila las IPes, las Macs y los identificadores de ordenadores de un ámbito determinado
+//
+// Especificaciones:
+// Esta Función recibe tres parámatros:
+// db : Un objeto Base de datos totalmente operativo
+// ambito: Tipo de ámbito
+// idambito: Identificador del ámbito
+// Devuelve:
+// Todas los identificadores de ordenadores , las ipes y las macs de los ordenadores que componen el ámbito
+// Para ellos habrá que tener declarada tres variables globales :
+// cadenaid,cadenaip y cadenamac
+// _____________________________________________________________________________________________________________
+
+BOOLEAN RecopilaIpesMacs(Database db,int ambito,int idambito,char *restrambito)
+{
+ char sqlstr[LONSQL];
+
+ concli=0;
+ /* Reserva memoria al meno para caracter nulo */
+ cadenaid=(char*) reservaMemoria(1);
+ cadenaip=(char*) reservaMemoria(1);
+ cadenamac=(char*) reservaMemoria(1);
+
+ switch(ambito){
+ case AMBITO_CENTROS :
+ sprintf(sqlstr,"SELECT idcentro FROM centros WHERE idcentro=%d",idambito);
+ RecorreCentro(db,sqlstr);
+ break;
+ case AMBITO_GRUPOSAULAS :
+ sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idgrupo=%d AND tipo=%d",idambito,AMBITO_GRUPOSAULAS);
+ RecorreGruposAulas(db,sqlstr);
+ break;
+ case AMBITO_AULAS :
+ sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idaula=%d",idambito);
+ RecorreAulas(db,sqlstr);
+ break;
+ case AMBITO_GRUPOSORDENADORES :
+ sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idgrupo=%d",idambito);
+ RecorreGruposOrdenadores(db,sqlstr);
+ break;
+ case AMBITO_ORDENADORES :
+ sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador=%d",idambito);
+ RecorreOrdenadores(db,sqlstr);
+ break;
+ default: // Se trata de un conjunto aleatorio de ordenadores
+ sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idordenador IN (%s)",restrambito);
+ RecorreOrdenadores(db,sqlstr);
+
+ }
+ return (TRUE);
+}
+//________________________________________________________________________________________________________
+
+BOOLEAN RecorreCentro(Database db, char* sqlstr)
+{
+ char msglog[LONSTD];
+ Table tbl;
+ int idcentro;
+ char modulo[] = "RecorreCentro()";
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.ISEOF()){
+ if(!tbl.Get("idcentro",idcentro)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE idcentro=%d AND grupoid=0 AND tipo=%d",idcentro,AMBITO_GRUPOSAULAS);
+ RecorreGruposAulas(db,sqlstr);
+ sprintf(sqlstr,"SELECT idaula FROM aulas WHERE idcentro=%d AND grupoid=0",idcentro);
+ RecorreAulas(db,sqlstr);
+ }
+ return (TRUE);
+}
+//________________________________________________________________________________________________________
+
+BOOLEAN RecorreGruposAulas(Database db, char* sqlstr)
+{
+ char msglog[LONSTD];
+ Table tbl;
+ int idgrupo;
+ char modulo[] = "RecorreGruposAulas()";
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("idgrupo",idgrupo)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(sqlstr,"SELECT idgrupo FROM grupos WHERE grupoid=%d AND tipo=%d",idgrupo,AMBITO_GRUPOSAULAS);
+ RecorreGruposAulas(db,sqlstr);
+ sprintf(sqlstr,"SELECT idaula FROM aulas WHERE grupoid=%d",idgrupo);
+ RecorreAulas(db,sqlstr);
+ tbl.MoveNext();
+ }
+ return (TRUE);
+}
+//________________________________________________________________________________________________________
+
+BOOLEAN RecorreAulas(Database db, char* sqlstr)
+{
+ char msglog[LONSTD];
+ Table tbl;
+ int idaula;
+ char modulo[] = "RecorreAulas()";
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("idaula",idaula)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE idaula=%d AND grupoid=0",idaula);
+ RecorreGruposOrdenadores(db,sqlstr);
+ sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE idaula=%d AND grupoid=0",idaula);
+ RecorreOrdenadores(db,sqlstr);
+ tbl.MoveNext();
+ }
+ return (TRUE);
+}
+//________________________________________________________________________________________________________
+
+BOOLEAN RecorreGruposOrdenadores(Database db, char* sqlstr)
+{
+ char msglog[LONSTD];
+ Table tbl;
+ int idgrupo;
+ char modulo[] = "RecorreGruposOrdenadores()";
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("idgrupo",idgrupo)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(sqlstr,"SELECT idgrupo FROM gruposordenadores WHERE grupoid=%d",idgrupo);
+ RecorreGruposOrdenadores(db,sqlstr);
+ sprintf(sqlstr,"SELECT ip,mac,idordenador FROM ordenadores WHERE grupoid=%d",idgrupo);
+ RecorreOrdenadores(db,sqlstr);
+ tbl.MoveNext();
+ }
+ return (TRUE);
+}
+//________________________________________________________________________________________________________
+
+BOOLEAN RecorreOrdenadores(Database db, char* sqlstr)
+{
+ char msglog[LONSTD];
+ Table tbl;
+ int idordenador,o,p,m,lon;
+ char ido[16],ip[LONIP],mac[LONMAC];
+ char modulo[] = "RecorreOrdenadores()";
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ o=p=m=0;
+ while(!tbl.ISEOF()){
+ if(!tbl.Get("idordenador",idordenador)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("ip",ip)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!tbl.Get("mac",mac)){
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(ido,"%d",idordenador);
+ lon=strlen(ido);
+ if(lon>16) lon=16;
+ cadenaid=(char*) ampliaMemoria(cadenaid,o+lon+1);
+ memcpy(&cadenaid[o],ido,lon);
+ o+=lon;
+ cadenaid[o++]=',';
+
+ lon=strlen(ip);
+ if(lon>16) lon=LONIP;
+ cadenaip=(char*) ampliaMemoria(cadenaip,p+lon+1);
+ memcpy(&cadenaip[p],ip,lon);
+ p+=lon;
+ cadenaip[p++]=';';
+
+ lon=strlen(mac);
+ if(lon>16) lon=LONMAC;
+ cadenamac=(char*) ampliaMemoria(cadenamac,m+lon+1);
+ memcpy(&cadenamac[m],mac,lon);
+ m+=lon;
+ cadenamac[m++]=';';
+
+ concli++;
+ tbl.MoveNext();
+ }
+ if(o>0) o--;
+ if(p>0) p--;
+ if(m>0) m--;
+ cadenaid[o]='\0';
+ cadenaip[p]='\0';
+ cadenamac[m]='\0';
+
+ return (TRUE);
+}
+// ********************************************************************************************************
+// PROGRAMA PRINCIPAL (SERVICIO)
+// ********************************************************************************************************
+int main(int argc, char *argv[])
+{
+ int pseg;
+ char msglog[LONSTD];
+ struct tm* st;
+ Database db;
+ char modulo[] = "main()";
+
+ /* Validación de parámetros de ejecución y lectura del fichero de configuración del servicio */
+
+ if (!validacionParametros(argc, argv, 5)) // Valida parámetros de ejecución
+ exit(EXIT_FAILURE);
+
+ if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
+ exit(EXIT_FAILURE);
+ }
+
+ /* Bucle principal del servicio */
+
+ while (TRUE){
+ st = tomaHora();
+ pseg=65-st->tm_sec; // Calcula segundos de inactividad de la hebra
+ sleep(pseg);
+
+ // Toma la hora
+ st = tomaHora();
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ exit(EXIT_FAILURE);
+ }
+ buscaAccion(db,st->tm_mday,st->tm_mon+1,st->tm_year+1900,st->tm_hour,st->tm_min,st->tm_wday );
+ db.Close(); // Cierra conexión
+ }
+ exit(EXIT_SUCCESS);
+}
+
+
diff --git a/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.h b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.h
new file mode 100644
index 00000000..a2f7deef
--- /dev/null
+++ b/admin/Sources/Services/ogAdmAgent/sources/ogAdmAgent.h
@@ -0,0 +1,81 @@
+// ********************************************************************************************************
+// Servicio: ogAdmAgent
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmAgent.h
+// Descripción: Este fichero implementa el servicio agente del sistema. Revisa a intervalos
+// regulares la base de datos para comprobar si existen acciones programadas.
+// ********************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include </usr/include/mysql/mysql.h>
+#include "Database.h"
+#include "ogAdmLib.h"
+
+// ________________________________________________________________________________________________________
+//
+// Valores hexadecimales para consultas
+// ________________________________________________________________________________________________________
+
+BYTE HEX_annos[]={0,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
+WORD HEX_meses[]={0,0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800};
+int HEX_dias[]={0,0x00000001,0x00000002,0x00000004,0x00000008,0x00000010,0x00000020,0x00000040,0x00000080,0x00000100,0x00000200,
+ 0x00000400,0x00000800,0x00001000,0x00002000,0x00004000,0x00008000,0x00010000,0x00020000,0x00040000,0x00080000,
+ 0x00100000,0x00200000,0x00400000,0x00800000,0x01000000,0x02000000,0x04000000,0x08000000,0x10000000,0x20000000,0x40000000};
+WORD HEX_horas[]={0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,0x0100,0x0200,0x0400,0x0800 };
+BYTE HEX_diasemana[]={0,0x01,0x02,0x04,0x08,0x10,0x20,0x40};
+BYTE HEX_semanas[]={0,0x01,0x02,0x04,0x08,0x10,0x20};
+WORD dias_meses[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
+
+// ________________________________________________________________________________________________________
+//
+// Variables globales
+// ________________________________________________________________________________________________________
+
+char servidoradm[LONPRM]; // Dirección IP del servidor de administración
+char puerto[LONPRM]; // Puerto de comunicación
+char usuario[LONPRM]; // Usuario de acceso a la base de datos
+char pasguor[LONPRM]; // Password del usuario
+char datasource[LONPRM]; // Dirección IP del gestor de base de datos
+char catalog[LONPRM]; // Nombre de la base de datos
+
+int idprogramacion;
+int tipoaccion,idtipoaccion;
+char descriaccion[250];
+char *cadenaid;
+char *cadenaip;
+char *cadenamac;
+int concli;
+int sesion;
+int idcentro;
+
+// ________________________________________________________________________________________________________
+// Prototipo de funciones
+// ________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char*);
+int diadelaSemana(WORD,WORD,WORD);
+BOOLEAN bisiesto(WORD);
+BOOLEAN buscaAccion(Database,WORD,WORD,WORD,WORD,WORD,WORD);
+BOOLEAN ejecutarComando(Database,int,int );
+BOOLEAN ejecutarProcedimiento(Database,int,int,int,char*);
+BOOLEAN ejecutarTarea(Database,int, int);
+BOOLEAN insertaComando(Database,int,char*,int,int,int,char*);
+BOOLEAN EjecutarReserva(int,Database);
+BOOLEAN enviaPeticion(int);
+BOOLEAN RecopilaIpesMacs(Database,int,int,char *);
+BOOLEAN RecorreCentro(Database, char*);
+BOOLEAN RecorreGruposAulas(Database, char*);
+BOOLEAN RecorreAulas(Database, char*);
+BOOLEAN RecorreGruposOrdenadores(Database, char*);
+BOOLEAN RecorreOrdenadores(Database, char*);
+
diff --git a/admin/Sources/Services/ogAdmBoot/Makefile b/admin/Sources/Services/ogAdmBoot/Makefile
new file mode 100644
index 00000000..29557632
--- /dev/null
+++ b/admin/Sources/Services/ogAdmBoot/Makefile
@@ -0,0 +1,43 @@
+# makefile
+
+# Nombre del proyecto
+PROYECTO := ogAdmBoot
+
+# Directorio de instalación
+INSTALL_DIR := /opt/opengnsys
+
+# Opciones de compilacion
+CFLAGS := -O0 -g -Wall -I../includes # Depuracion
+#CFLAGS := -O3 -Wall # Optimizacion
+CPPFLAGS := $(CFLAGS)
+
+# Opciones de linkado
+LDFLAGS := -L/usr/lib -L/usr/lib/mysql -lpthread -lmysqlclient
+
+# Ficheros objetos
+OBJS := ../includes/Database.o sources/ogAdmBoot.o
+
+
+all: $(PROYECTO)
+
+$(PROYECTO): $(OBJS)
+ g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO)
+# strip $(PROYECTO) # Optimizacion
+
+install: $(PROYECTO)
+ cp $(PROYECTO) $(INSTALL_DIR)/sbin
+ cp $(PROYECTO).cfg $(INSTALL_DIR)/etc
+
+clean:
+ rm -f $(PROYECTO) $(OBJS)
+
+uninstall: clean
+ rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg
+
+sources/%.o: sources/%.cpp
+ g++ $(CPPFLAGS) -I ../includes -c -o"$@" "$<"
+
+sources/%.o: sources/%.c
+ gcc $(CFLAGS) -I ../includes -c -o"$@" "$<"
+
+
diff --git a/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg b/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg
new file mode 100644
index 00000000..66c81872
--- /dev/null
+++ b/admin/Sources/Services/ogAdmBoot/ogAdmBoot.cfg
@@ -0,0 +1,8 @@
+IPLocal=10.1.15.8
+USUARIO=usuog
+PASSWORD=passusuog
+datasource=localhost
+CATALOG=ogAdmBD
+router=10.1.12.1
+mascara=lsasdfasdfasdf255.255.252.0
+
diff --git a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp
new file mode 100644
index 00000000..03468d5b
--- /dev/null
+++ b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.cpp
@@ -0,0 +1,1264 @@
+// ********************************************************************************************************
+// Servicio: ogAdmBoot
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Julio-2010
+// Fecha Última modificación: Julio-2010
+// Nombre del fichero: ogAdmBoot.cpp
+// Descripción :Este fichero implementa el servicio dhcp y tftp propios del sistema
+// ********************************************************************************************************
+#include "ogAdmBoot.h"
+#include "ogAdmLib.c"
+//________________________________________________________________________________________________________
+// Función: tomaConfiguracion
+//
+// Descripción:
+// Lee el fichero de configuración del servicio
+// Parámetros:
+// filecfg : Ruta completa al fichero de configuración
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char* filecfg)
+{
+ char modulo[] = "tomaConfiguracion()";
+
+ if (filecfg == NULL || strlen(filecfg) == 0) {
+ errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
+ return (FALSE);
+ }
+ FILE *fcfg;
+ long lSize;
+ char * buffer, *lineas[MAXPRM], *dualparametro[2];
+ int i, numlin, resul;
+
+ fcfg = fopen(filecfg, "rt");
+ if (fcfg == NULL) {
+ errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
+ return (FALSE);
+ }
+
+ fseek(fcfg, 0, SEEK_END);
+ lSize = ftell(fcfg); // Obtiene tamaño del fichero.
+ rewind(fcfg);
+ buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
+ buffer[lSize]=(char) NULL;
+ fclose(fcfg);
+
+ IPlocal[0] = (char) NULL; //inicializar variables globales
+ usuario[0] = (char) NULL;
+ pasguor[0] = (char) NULL;
+ datasource[0] = (char) NULL;
+ catalog[0] = (char) NULL;
+ router[0] = (char) NULL;
+ mascara[0] = (char) NULL;
+
+ numlin = splitCadena(lineas, buffer, '\n');
+ for (i = 0; i < numlin; i++) {
+ splitCadena(dualparametro, lineas[i], '=');
+ resul = strcmp(StrToUpper(dualparametro[0]), "IPLOCAL");
+ if (resul == 0)
+ strcpy(IPlocal, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO");
+ if (resul == 0)
+ strcpy(usuario, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD");
+ if (resul == 0)
+ strcpy(pasguor, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE");
+ if (resul == 0)
+ strcpy(datasource, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG");
+ if (resul == 0)
+ strcpy(catalog, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "ROUTER");
+ if (resul == 0)
+ strcpy(router, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "MASCARA");
+ if (resul == 0)
+ strcpy(mascara, dualparametro[1]);
+ }
+ if (IPlocal[0] == (char) NULL) {
+ errorLog(modulo, 4, FALSE); // Falta parámetro IPLOCAL
+ return (FALSE);
+ }
+ if (usuario[0] == (char) NULL) {
+ errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO
+ return (FALSE);
+ }
+ if (pasguor[0] == (char) NULL) {
+ errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD
+ return (FALSE);
+ }
+ if (datasource[0] == (char) NULL) {
+ errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE
+ return (FALSE);
+ }
+ if (catalog[0] == (char) NULL) {
+ errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// _____________________________________________________________________________________________________________
+// Función: ServicioDHCP
+//
+// Descripción:
+// Esta hebra implementa el servicio DHCP
+// _____________________________________________________________________________________________________________
+
+LPVOID ServicioDHCP(LPVOID ipl)
+{
+ SOCKET socket_s; // Socket donde escucha el servidor
+ struct TramaDhcpBootp * trmInfo;
+ struct sockaddr_in local;
+ int ret,resul;
+ BOOLEAN bOpt;
+ pthread_t hThread;
+ char modulo[]="ServicioDHCP()";
+
+ socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP
+ if (socket_s == SOCKET_ERROR){
+ errorLog(modulo,61, TRUE);
+ return(FALSE);
+ }
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface
+ local.sin_family = AF_INET;
+ local.sin_port = htons(PUERTODHCPORIGEN); // Puerto
+
+ // Enlaza socket
+ if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){
+ errorLog(modulo,62, TRUE);
+ return(FALSE);
+ }
+
+ bOpt=TRUE; // Pone el socket en modo "soportar Broadcast"
+ ret=setsockopt(socket_s,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt));
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,48, TRUE);
+ return(FALSE);
+ }
+ while(true){
+ trmInfo = (struct TramaDhcpBootp*)malloc(sizeof(struct TramaDhcpBootp)); // Crea estructura de control para hebra
+ if (trmInfo == NULL){
+ errorLog(modulo,64, FALSE);
+ return(FALSE);
+ }
+ // Inicializa parámetros
+ memset(trmInfo,0,sizeof(struct TramaDhcpBootp));
+ trmInfo->sockaddrsize = sizeof(trmInfo->cliente);
+ trmInfo->sck=socket_s;
+ // Espera tramas DHCP
+ ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente, &trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,65, TRUE);
+ return(FALSE);
+ }
+ else{
+ if (ret>0){
+ resul=pthread_create(&hThread,NULL,GestionaServicioDHCP,(LPVOID)trmInfo);
+ if(resul!=0){
+ errorLog(modulo,66,TRUE);
+ return(FALSE);
+ }
+ pthread_detach(hThread);
+ }
+ }
+ }
+ close(socket_s);
+}
+// _____________________________________________________________________________________________________________
+// Función: ServicioBOOTP
+//
+// Descripción:
+// Esta hebra implementa el servicio BOOTP
+// _____________________________________________________________________________________________________________
+
+LPVOID ServicioBOOTP(LPVOID iplocal)
+{
+ SOCKET socket_s; // Socket donde escucha el servidor
+ struct TramaDhcpBootp * trmInfo;
+ struct sockaddr_in local;
+ int ret,resul;
+ pthread_t hThread;
+ char modulo[]="ServicioBOOTP()";
+
+ socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP
+ if (socket_s == SOCKET_ERROR){
+ errorLog(modulo,67, TRUE);
+ return(FALSE);
+ }
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface
+ local.sin_family = AF_INET;
+ local.sin_port = htons(PUERTOBOOTPORIGEN); // Puerto
+
+ // Enlaza socket
+ if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){
+ errorLog(modulo,68, TRUE);
+ return(FALSE);
+ }
+ while(true){
+ trmInfo = (struct TramaDhcpBootp*)malloc(sizeof(struct TramaDhcpBootp)); // Crea estructura de control para hebra
+ if (trmInfo == NULL){
+ errorLog(modulo,69, FALSE);
+ return(FALSE);
+ }
+ // Inicializa parámetros
+ memset(trmInfo,0,sizeof(struct TramaDhcpBootp));
+ trmInfo->sockaddrsize = sizeof(trmInfo->cliente);
+ trmInfo->sck=socket_s;
+ // Espera tramas BOOTP
+ ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente, &trmInfo->sockaddrsize);
+
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,70, TRUE);
+ return(FALSE);
+ }
+ else{
+ if (ret>0){
+ resul=pthread_create(&hThread,NULL,GestionaServicioBOOTP,(LPVOID)trmInfo);
+ if(resul!=0){
+ errorLog(modulo,71, TRUE);
+ return(FALSE);
+ }
+ pthread_detach(hThread);
+ }
+ }
+ }
+ close(socket_s);
+}
+// _____________________________________________________________________________________________________________
+// Función: ServicioTFTP
+//
+// Descripción:
+// Esta hebra implementa el servicio TFTP
+// _____________________________________________________________________________________________________________
+
+LPVOID ServicioTFTP(LPVOID ipl)
+{
+ SOCKET socket_s; // Socket donde escucha el servidor
+ struct TramaTftp * trmInfo;
+ struct sockaddr_in local;
+ pthread_t hThread;
+ int ret,resul;
+ char modulo[]="ServicioTFTP()";
+
+ socket_s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP
+ if (socket_s == SOCKET_ERROR){
+ errorLog(modulo,72, TRUE);
+ return(FALSE);
+ }
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface
+ local.sin_family = AF_INET;
+ local.sin_port = htons(PUERTOTFTPORIGEN); // Puerto
+
+ // Enlaza socket
+ if (bind(socket_s,(struct sockaddr *)&local,sizeof(local)) == SOCKET_ERROR){
+ errorLog(modulo,73, TRUE);
+ return(FALSE);
+ }
+ while(true){
+ trmInfo = (struct TramaTftp*)malloc(sizeof(struct TramaTftp)); // Crea estructura de control para hebra
+ if (trmInfo == NULL){
+ errorLog(modulo,74, FALSE);
+ return(FALSE);
+ }
+ memset(trmInfo,0,sizeof(struct TramaTftp));
+ trmInfo->sockaddrsize = sizeof(trmInfo->cliente);
+ // Espera tramas TFTP
+ ret = recvfrom(socket_s,(char *)&trmInfo->pckTftp, sizeof(trmInfo->pckTftp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,75, TRUE);
+ return(FALSE);
+ }
+ else{
+ if (ret>0){
+ resul=pthread_create(&hThread,NULL,GestionaServicioTFTP,(LPVOID)trmInfo);
+ if(resul!=0){
+ errorLog(modulo,76, TRUE);
+ return(FALSE);
+ }
+ pthread_detach(hThread);
+ }
+ }
+
+ }
+ close(socket_s);
+}
+//________________________________________________________________________________________________________
+// Función: GestionaServicioDHCP
+//
+// Descripción:
+// Gestiona la conexiónn con un cliente que sea Hidra para el servicio DHCP
+// Parámetros:
+// lpParam: Puntero a la estructura de control para la conversacion DHCP
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+LPVOID GestionaServicioDHCP(LPVOID lpParam)
+{
+ struct TramaDhcpBootp * trmInfo=(struct TramaDhcpBootp *)lpParam;
+ char IPCliente[16]; // Ip del cliente
+ char MACCliente[16]; // Mac del cliente
+
+ if(!OpcionesPresentes(trmInfo->pckDchp.magiccookie)) // Comprueba que existen opciones en la trama Dhcp
+ return(false);
+ strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr));
+ if(strcmp(IPCliente,"0.0.0.0")!=0){ // El cliente tiene una IP concreta distinta de 0.0.0.0
+ if(!ClienteExistente(trmInfo,IPCliente,1)){ // Comprueba que se trata de un cliente Hidra
+ free(trmInfo);
+ return(false);
+ }
+ }
+ else{
+ sprintf(MACCliente,"%02.2x%02.2x%02.2x%02.2x%02.2x%02.2x",(unsigned int)trmInfo->pckDchp.chaddr[0],(unsigned int)trmInfo->pckDchp.chaddr[1],(unsigned int)trmInfo->pckDchp.chaddr[2],(unsigned int)trmInfo->pckDchp.chaddr[3],(unsigned int)trmInfo->pckDchp.chaddr[4],(unsigned int)trmInfo->pckDchp.chaddr[5]);
+ if(!ClienteExistente(trmInfo,MACCliente,0)){ // Comprueba que se trata de un cliente Hidra (Por la Mac)
+ free(trmInfo);
+ return(false);
+ }
+ }
+ if(OpcionPXEClient(&trmInfo->pckDchp)) // Comprueba que sea un cliente PXE
+ ProcesaTramaClientePXE(trmInfo); // Procesa DHCP para el protocolo PXE
+ else
+ ProcesaTramaClienteDHCP(trmInfo); // Procesa DHCP de cliente Windows o Linux
+
+ free(trmInfo);
+ return(false);
+}
+//_______________________________________________________________________________________________________________
+//
+// Gestiona la conexion con un cliente que sea Hidra para el servicio BOOTP
+// Parámetros:
+// lpParam: Puntero a la estructura de control para la conversacion BOOTP
+//_______________________________________________________________________________________________________________
+LPVOID GestionaServicioBOOTP(LPVOID lpParam)
+{
+ struct TramaDhcpBootp * trmInfo=(struct TramaDhcpBootp *)lpParam;
+ char IPCliente[16]; // Ip del cliente
+
+ if(!OpcionesPresentes(trmInfo->pckDchp.magiccookie)) // Comprueba que existen opciones en la trama Dhcp
+ return(false);
+
+ strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr));
+ if(!ClienteExistente(trmInfo,IPCliente,1)) // Comprueba que se trata de un cliente Hidra
+ return(false);
+
+ if(OpcionPXEClient(&trmInfo->pckDchp)) // Comprueba que sea un cliente PXE
+ ProcesaTramaClienteBOOTP(trmInfo); // Procesa DHCP para el protocolo PXE
+
+ free(trmInfo);
+ return(trmInfo);
+}
+//_______________________________________________________________________________________________________________
+//
+// Comprueba si la IP del cliente está en la base de datos de Hidra
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+// ipmac: IP o MAC del cliente que ha abierto la hebra
+// sw: Si vale 1 o 2 o 3 el parámetro anterior ser una IP en caso contrario ser una MAC
+//
+// Devuelve:
+// true: Si el cliente est en la base de datos
+// false: En caso contrario
+//
+// Comentarios:
+// Slo se procesarn mensages dhcp de clientes hidra.
+//_______________________________________________________________________________________________________________
+int ClienteExistente(struct TramaDhcpBootp *trmInfo,char* ipmac,int sw)
+{
+ char sqlstr[1000],ErrStr[200];
+ Database db;
+ Table tbl;
+ char wrouter[LONPRM];
+ char wmascara[LONPRM];
+ /////////////////////////////////////////////////////////////////////////
+ // ACCESO atnico A TRAVEZ DE OBJETO MUTEX a este trozo de cnigo
+ pthread_mutex_lock(&guardia);
+
+ // Abre conexion con base de datos
+ if(!db.Open(usuario,pasguor,datasource,catalog)){ // error de conexion
+ db.GetErrorErrStr(ErrStr);
+ return(false);
+ }
+
+ if(sw==1 || sw==2){ // Bsqueda por IP
+ sprintf(sqlstr,"SELECT ip,router,mascara FROM ordenadores WHERE ip='%s' ",ipmac);
+ }
+ else{ // Bsqueda por MAC
+ sprintf(sqlstr,"SELECT ip,router,mascara FROM ordenadores WHERE mac='%s' ",ipmac);
+ }
+ if(!db.Execute(sqlstr,tbl)){ // Error al leer
+ db.GetErrorErrStr(ErrStr);
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ return(false);
+ }
+
+ if(tbl.ISEOF()){ // No existe el cliente
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ return(false);
+ }
+ if(sw==1 || sw==0){ // Sólo para las tramas dhcp PXE y BOOTP
+ if(!tbl.Get("ip",trmInfo->bdIP)){ // Incorpora la IP a asignar al cliente a la estructura de control
+ tbl.GetErrorErrStr(ErrStr); // error al acceder al registro
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ return(false);
+ }
+ if(!tbl.Get("router",wrouter)){ // Toma la configuración router del cliente
+ tbl.GetErrorErrStr(ErrStr); // error al acceder al registro
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ return(false);
+ }
+ if(strlen(wrouter)>0)
+ strcpy(oProuter,wrouter);
+ else
+ strcpy(oProuter,router);
+
+ if(!tbl.Get("mascara",wmascara)){ // Toma la configuración router del cliente
+ tbl.GetErrorErrStr(ErrStr); // error al acceder al registro
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ return(false);
+ }
+ if(strlen(wmascara)>0)
+ strcpy(oPmascara,wmascara);
+ else
+ strcpy(oPmascara,mascara);
+ }
+ db.Close();
+ pthread_mutex_unlock(&guardia);
+ ////////////////////////////////////////////////////////////////////////////////
+ return(true);
+}
+//_______________________________________________________________________________________________________________
+//
+// Comprueba que existen opciones en el mensage dhcp analizando la magic cookie
+// Parámetros:
+// mc: Puntero al primer elemento de la magic cookie (primer campo de las opciones)
+//
+// Devuelve:
+// true: Si esta presenta el valor 99..130.83.99
+// false: En caso contrario
+//_______________________________________________________________________________________________________________
+int OpcionesPresentes(unsigned char *mc)
+{
+ if(mc[0]!=0x63) return(false);
+ if(mc[1]!=0x82) return(false);
+ if(mc[2]!=0x53) return(false);
+ if(mc[3]!=0x63) return(false);
+
+ // Magic Cookie presente
+ return(true);
+}
+//_______________________________________________________________________________________________________________
+//
+// Busca una determinada opción dentro de la trama dhcp
+// Parámetros:
+// dhcp_packet: Puntero a la estructura que contiene el mensaje dhcp
+// codop: Cdigo de la opción a buscar
+//
+// Devuelve:
+// Si existe, un puntero al primer elemento de la estructura de la opción (codigo,longitud,valor)
+// en caso contrario devuelve null
+//_______________________________________________________________________________________________________________
+unsigned char * BuscaOpcion(dhcp_packet* tDhcp,unsigned char codop)
+{
+ unsigned char wcodop;
+ unsigned char wlongitud;
+ unsigned char *ptrOp,*ptrDhcp;
+
+ ptrDhcp=(unsigned char*)tDhcp; // Se toma el puntero al principio del mensage
+ ptrOp=(unsigned char*)&tDhcp->options[0]; // Se toma el puntero a las opciones
+
+ while(ptrOp-ptrDhcp<DHCP_OPTION_LEN-4){
+ wcodop = ptrOp[0];
+ if(wcodop==DHCP_PAD)
+ ptrOp++;
+ else{
+ if(wcodop==DHCP_END) // Fin de la cadena de opciones, no se encontr la opción
+ return(NULL);
+ else{
+
+ if (wcodop == codop) // Encuentra la opción
+ return(ptrOp); // Devuelve el puntero a la estructura variable opción
+ else{
+ wlongitud = ptrOp[1];
+ ptrOp+=wlongitud+2; // Avanza hasta la prxima opción
+ }
+ }
+ }
+ }
+ return(NULL);
+}
+//_______________________________________________________________________________________________________________
+//
+// Comprueba si el mensaje recibido proviene de un cliente PXE
+// Parámetros:
+// dhcp_packet: Puntero a la estructura que contiene el mensaje dhcp
+//
+// Devuelve:
+// true: Si el mensaje lo ha enviado un cliente PXE
+// false: En caso contrario
+//_______________________________________________________________________________________________________________
+int OpcionPXEClient(dhcp_packet* tDhcp)
+{
+ if(!BuscaOpcion(tDhcp,DHCP_CLASS_IDENTIFIER))
+ return(false);
+ else
+ return(true);
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje DHCP recibido que proviene de un cliente PXE
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+//_______________________________________________________________________________________________________________
+void ProcesaTramaClientePXE(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char codop;
+ unsigned char longitud;
+ unsigned char *ptrOp;
+ unsigned char *msgDhcp;
+ char modulo[]="ProcesaTramaClientePXE()";
+
+ ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje
+ if(!ptrOp){ // No existe la opción DHCP
+ errorLog(modulo,77, FALSE);
+ return;
+ }
+ codop = ptrOp[0];
+ longitud=ptrOp[1];
+ msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje
+ switch(*msgDhcp){
+ case DHCPDISCOVER:
+ dhcpDISCOVER_PXE(trmInfo);
+ break;
+ case DHCPREQUEST:
+ dhcpREQUEST_PXE(trmInfo);
+ break;
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje BOOTP recibido que proviene de un cliente PXE
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin BOOTP
+//_______________________________________________________________________________________________________________
+void ProcesaTramaClienteBOOTP(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char codop;
+ unsigned char longitud;
+ unsigned char *ptrOp;
+ unsigned char *msgDhcp;
+ char modulo[]="ProcesaTramaClienteBOOTP()";
+
+ ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje
+ if(!ptrOp){ // No existe la opción DHCP
+ errorLog(modulo,77, FALSE);
+ return;
+ }
+ codop = ptrOp[0];
+ longitud=ptrOp[1];
+ msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje
+ switch(*msgDhcp){
+ case DHCPREQUEST:
+ bootpREQUEST_PXE(trmInfo);
+ break;
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Gestiona la conexion con un cliente que sea Hidra para el servicio TFTP
+// Parámetros:
+// lpParam: Puntero a la estructura de control para la conversacion TFTP
+//_______________________________________________________________________________________________________________
+LPVOID GestionaServicioTFTP(LPVOID lpParam)
+{
+ struct TramaTftp * trmInfo=(struct TramaTftp *)lpParam;
+ char IPCliente[16]; // Ip del cliente
+
+ strcpy(IPCliente,inet_ntoa(trmInfo->cliente.sin_addr));
+ if(!ClienteExistente((struct TramaDhcpBootp*)trmInfo,IPCliente,2)) // Comprueba que se trata de un cliente Hidra
+ return(false);
+
+ // Inicializa parámetros
+ trmInfo->sockaddrsize = sizeof(trmInfo->cliente);
+ trmInfo->sck=TomaSocketUser();
+ if(trmInfo->sck==INVALID_SOCKET) return(false); // Ha habido algn problama para crear el socket de usuario
+
+ trmInfo->currentopCode=0x0000; // Cdigo de operación para detectar errores de secuencia
+ trmInfo->bloquesize=512; // Tamao de bloque por defecto 512
+ trmInfo->tsize=0; // Tamao del fichero
+ trmInfo->interval=0; // Intervalo
+
+ ProcesaTramaClienteTFTP(trmInfo); // Procesa TFTP para el protocolo PXE
+ close(trmInfo->sck);
+ free(trmInfo);
+ return(trmInfo);
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje TFTP recibido que proviene de un cliente PXE
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin TFTP
+//_______________________________________________________________________________________________________________
+void ProcesaTramaClienteTFTP(struct TramaTftp* trmInfo)
+{
+ char *ptr;
+ int bloque,lon,ret;
+ char tam[20];
+ struct tftppacket_ack* ptrack;
+ char modulo[]="ProcesaTramaClienteTFTP()";
+
+ while(true){
+ switch(ntohs(trmInfo->pckTftp.opcode)){
+ case TFTPRRQ: // Read Request
+ if(trmInfo->currentopCode!=0x0000) return; // Error en la secuencia de operaciones
+ if(!PeticionFichero(trmInfo)) return;
+ fseek(trmInfo->fileboot,0,SEEK_SET);
+ trmInfo->pckTftp.opcode= htons(TFTPOACK);
+ trmInfo->currentopCode=TFTPOACK;
+ ptr=&trmInfo->pckTftp.buffer[0];
+ if(trmInfo->tsize>0){ // opción tsize
+ strcpy(ptr,"tsize");
+ ptr+=strlen(ptr)+1;
+ //itoa(trmInfo->tsize,tam,10);
+ sprintf(tam,"%d",trmInfo->tsize);
+ strcpy(ptr,tam);
+ ptr+=strlen(ptr)+1;
+ *ptr=0x00;
+ }
+ else{
+ if(trmInfo->bloquesize>0){ // opción blksize
+ strcpy(ptr,"blksize");
+ ptr+=strlen(ptr)+1;
+ //itoa(trmInfo->bloquesize,tam,10);
+ sprintf(tam,"%d",trmInfo->bloquesize);
+ strcpy(ptr,tam);
+ ptr+=strlen(ptr)+1;
+ *ptr=0x00;
+ }
+ else
+ trmInfo->bloquesize=512;
+ }
+
+ lon=ptr-(char*)&trmInfo->pckTftp;
+ //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ //if (ret == SOCKET_ERROR){
+ // RegistraLog("***connect() fallo:",true);
+ // return;
+ //}
+ ret=sendto(trmInfo->sck,(char*)&trmInfo->pckTftp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ //ret=send(trmInfo->sck,(char*)&trmInfo->pckTftp,lon,0);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,26, TRUE);
+ return;
+ }
+ break;
+
+ case TFTPACK: //
+ if(trmInfo->currentopCode!=TFTPOACK && trmInfo->currentopCode!=TFTPDATA) return; // Error en la secuencia de operaciones
+ ptrack=(struct tftppacket_ack*)&trmInfo->pckTftp;
+ bloque=ntohs(ptrack->block);
+ trmInfo->currentopCode=TFTPDATA;
+ ptrack->opcode=htons(TFTPDATA);
+ bloque++;
+ ptrack->block=htons(bloque);
+ trmInfo->numblock=bloque;
+ lon=fread(ptrack->buffer,1,trmInfo->bloquesize,trmInfo->fileboot);
+ //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ //if (ret == SOCKET_ERROR){
+ // RegistraLog("***connect() fallo:",true);
+ // return;
+ //}
+ ret=sendto(trmInfo->sck,(char*)&trmInfo->pckTftp,lon+4,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ //ret=send(trmInfo->sck,(char*)&trmInfo->pckTftp,lon+4,0);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,26, TRUE);
+ return;
+ }
+ if(lon==0)
+ return; // Fin de la trama tftp
+ break;
+ case TFTPERROR:
+ errorLog(modulo,78, TRUE);
+ }
+ ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckTftp, sizeof(trmInfo->pckTftp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,79, TRUE);
+ return;
+ }
+ else
+ if(ret==0) break;
+ }
+ return;
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje Tftp de peticin de fichero. Recupera datos de tamao de bloque y otros parámetros
+// para gestionar la conversacin.
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin TFTP
+//_______________________________________________________________________________________________________________
+int PeticionFichero(struct TramaTftp* trmInfo)
+{
+ char *ptr;
+ char nomfile[250];
+
+ if(strncmp(trmInfo->pckTftp.buffer,"pxelinux.cfg",12)==0)
+ strcpy(nomfile,"default");
+ else
+ strcpy(nomfile,trmInfo->pckTftp.buffer);
+
+ trmInfo->currentopCode=ntohs(trmInfo->pckTftp.opcode); // Guarda código de operación
+ // Localiza parámetros
+ ptr=&trmInfo->pckTftp.buffer[0];
+ ptr+=strlen(ptr)+1; // Avanza al campo siguiente al del nombre de fichero
+ if(!strcmp(ptr,"octet")){ // Modo de apertura
+ //trmInfo->fileboot=fopen(trmInfo->pckTftp.buffer,"rb");
+ trmInfo->fileboot=fopen(nomfile,"rb");
+ }
+ else{
+ //trmInfo->fileboot=fopen(trmInfo->pckTftp.buffer,"rt");
+ trmInfo->fileboot=fopen(nomfile,"rt");
+ }
+ if(trmInfo->fileboot==NULL)
+ return(false); // No existe el fichero boot
+ ptr+=strlen(ptr)+1; // Paso al parámetro siguiente
+ while(*ptr){
+ if(strcmp(ptr,"blksize")==0){ // parámetro blksize
+ ptr+=strlen(ptr) + 1;
+ trmInfo->bloquesize=atoi(ptr);
+ if(trmInfo->bloquesize<512) trmInfo->bloquesize=512;
+ if(trmInfo->bloquesize>MAXBLOCK) trmInfo->bloquesize=512;
+ ptr+=strlen(ptr) + 1;
+ }
+ else{
+ if(strcmp(ptr,"tsize")==0){ // parámetro tsize
+ ptr+=strlen(ptr) + 1;
+ fseek(trmInfo->fileboot,0,SEEK_END);
+ trmInfo->tsize=ftell(trmInfo->fileboot);
+ ptr+=strlen(ptr) + 1;
+ }
+ else{
+ if(strcmp(ptr,"interval")==0){ // Tamao de los bloques
+ ptr+=strlen(ptr) + 1;
+ trmInfo->interval=atoi(ptr);
+ ptr+=strlen(ptr) + 1;
+ }
+ else
+ return(false);
+ }
+
+ }
+ }
+ return(true);
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje recibido que proviene de un cliente Hidra pero no en el momento de arranque con PXE
+// sino cuando arranca con algn S.O. como (Windows oLinux)
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+//_______________________________________________________________________________________________________________
+void ProcesaTramaClienteDHCP(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char codop;
+ unsigned char longitud;
+ unsigned char *ptrOp;
+ unsigned char *msgDhcp;
+ int ret;
+ char modulo[]="ProcesaTramaClienteDHCP()";
+
+ while(true){
+ ptrOp=BuscaOpcion(&trmInfo->pckDchp,DHCP_MESSAGE_TYPE); // Puntero a la opción tipo de mensaje
+ if(!ptrOp){ // No existe la opción DHCP
+ errorLog(modulo,77, FALSE);
+ return;
+ }
+ codop = ptrOp[0];
+ longitud=ptrOp[1];
+ msgDhcp=ptrOp+2; // Puntero al dato tipo de mensaje
+
+ switch(*msgDhcp){
+ case DHCPDISCOVER:
+ dhcpDISCOVER_PXE(trmInfo);
+ break;
+ case DHCPREQUEST:
+ dhcpREQUEST_PXE(trmInfo);
+ break;
+ }
+ ret = recvfrom(trmInfo->sck,(char *)&trmInfo->pckDchp, sizeof(trmInfo->pckDchp),0,(struct sockaddr *)&trmInfo->cliente,&trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,80, TRUE);
+ }
+ else
+ if(ret==0) break;
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Rellena el campo IP asignada(yiaddr) al cliente dentro del mensaje DHCP
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+//_______________________________________________________________________________________________________________
+void RellenaIPCLiente(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned long aux;
+
+ aux=inet_addr(trmInfo->bdIP); // Ip para el cliente
+ memcpy((void*)&trmInfo->pckDchp.yiaddr,&aux,sizeof(aux));
+}
+//_______________________________________________________________________________________________________________
+//
+// Rellena el campo IP del servidor(siaddr) dentro del mensaje DHCP
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+//_______________________________________________________________________________________________________________
+void RellenaIPServidor(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned long aux;
+
+ aux=inet_addr(IPlocal); // Ip del servidor
+ memcpy(&trmInfo->pckDchp.siaddr,&aux,sizeof(aux));
+}
+//_______________________________________________________________________________________________________________
+//
+// Rellena el campo nombre del servidor boot dentro del mensaje BOOTP
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin BOOTP
+//_______________________________________________________________________________________________________________
+void RellenaNombreServidorBoot(struct TramaDhcpBootp* trmInfo)
+{
+ char aux[100];
+
+ strcpy(aux,"Hidra 2.0 PXE Boot Server");
+ memcpy(&trmInfo->pckDchp.sname,&aux,25);
+}
+//_______________________________________________________________________________________________________________
+//
+// Rellena el campo nombre del fichero boot dentro del mensaje BOOTP
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin BOOTP
+//_______________________________________________________________________________________________________________
+void RellenaNombreFicheroBoot(struct TramaDhcpBootp* trmInfo)
+{
+ char aux[100];
+
+ strcpy(aux,"pxelinux.0");
+ memcpy(&trmInfo->pckDchp.file,&aux,25);
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje DHCPDISCOVER
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control de la conversacin DHCP
+//
+// Devuelve:
+// true: Si el mensaje se procesa correctamente
+// false: En caso contrario
+//_______________________________________________________________________________________________________________
+void dhcpDISCOVER_PXE(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char *ptrOp,*ptrDhcp;
+ int lon,ret;
+ char modulo[]="dhcpDISCOVER_PXE()";
+
+ ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage
+ ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones
+ lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie
+
+ RellenaIPCLiente(trmInfo);
+ RellenaIPServidor(trmInfo);
+ *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas
+
+
+ AdjDHCPOFFER(&ptrOp,&lon); // Genera opción de Mensaje (0x35) dhcp valor 1
+ AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp
+ AdjLEASETIME(&ptrOp,&lon); // Genera opción de Mensaje (0x33) Dhcp
+ AdjSUBNETMASK(&ptrOp,&lon); // Genera opción de Mensaje (0x01) Dhcp
+ AdjROUTERS(&ptrOp,&lon); // Genera opción de Mensaje (0x03) Dhcp
+ AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp
+ *ptrOp=DHCP_END;
+ lon++;
+ trmInfo->pckDchp.op=DHCPOFFER;
+ //MandaRespuesta(&trmInfo->pckDchp,htonl(INADDR_BROADCAST),lon,htons(PUERTODHCPDESTINO));
+ trmInfo->cliente.sin_addr.s_addr=htonl(INADDR_BROADCAST);
+ ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,26, TRUE);
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje DHCPREQUEST (DHCP)
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control para la conversacin DHCP
+//
+// Devuelve:
+// true: Si el mensaje se procesa correctamente
+// false: En caso contrario
+//_______________________________________________________________________________________________________________
+void dhcpREQUEST_PXE(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char * ptrOp,*ptrDhcp;
+ struct dhcp_opcion;
+ int lon,ret;
+ char modulo[]="dhcpREQUEST_PXE()";
+
+ ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage
+ ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones
+ lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie
+
+ RellenaIPCLiente(trmInfo);
+ RellenaIPServidor(trmInfo);
+ *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas
+
+ AdjDHCPACK(&ptrOp,&lon); // Ge db.Close();nera opción de Mensaje (0x35) dhcp valor 5
+ AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp
+ AdjLEASETIME(&ptrOp,&lon); // Genera opción de Mensaje (0x33) Dhcp
+ AdjSUBNETMASK(&ptrOp,&lon); // Genera opción de Mensaje (0x01) Dhcp
+ AdjROUTERS(&ptrOp,&lon); // Genera opción de Mensaje (0x03) Dhcp
+ AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp
+
+ *ptrOp=DHCP_END;
+ lon++;
+
+ trmInfo->pckDchp.op=DHCPOFFER;
+ //MandaRespuesta(&trmInfo->pckDchp,htonl(INADDR_BROADCAST),lon,htons(PUERTODHCPDESTINO));
+ trmInfo->cliente.sin_addr.s_addr=htonl(INADDR_BROADCAST);
+ ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,26, TRUE);
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Procesa un mensaje DHCPREQUEST (BOOTP)
+//
+// Parámetros:
+// trmInfo: Puntero a la estructura de control para la conversacin BOOTP
+//
+// Devuelve:
+// true: Si el mensaje se procesa correctamente
+// false: En caso contrario
+//_______________________________________________________________________________________________________________
+void bootpREQUEST_PXE(struct TramaDhcpBootp* trmInfo)
+{
+ unsigned char * ptrOp,*ptrDhcp;
+ struct dhcp_opcion;
+ int lon,ret;
+ unsigned long aux;
+ char modulo[]="bootpREQUEST_PXE()";
+
+ ptrDhcp=(unsigned char*)&trmInfo->pckDchp; // Se toma el puntero al principio del mensage
+ ptrOp=(unsigned char*)&trmInfo->pckDchp.options[0]; // Se toma el puntero a las opciones
+ lon=ptrOp-ptrDhcp; //Longitud del mensaje sin las opciones ni la magic coockie
+
+ aux=inet_addr("0.0.0.0"); // Borra Ip del cliente ( No se porqu pero en la trama aparece as)
+ memcpy(&trmInfo->pckDchp.ciaddr,&aux,4);
+ RellenaNombreServidorBoot(trmInfo);
+ RellenaNombreFicheroBoot(trmInfo);
+
+ *ptrOp='\0'; //Borra opciones del mensaje recibido para colocar las nuevas
+
+ AdjDHCPACK(&ptrOp,&lon); // Genera opción de Mensaje (0x35) dhcp valor 5
+ AdjSERVERIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x36) Dhcp
+ AdjBOOTSIZE(&ptrOp,&lon); // Genera opción de Mensaje (0x0D) Dhcp
+ AdjCLASSIDENTIFIER(&ptrOp,&lon); // Genera opción de Mensaje (0x3c) Dhcp
+
+ *ptrOp=DHCP_END;
+ lon++;
+
+ trmInfo->pckDchp.op=DHCPOFFER;
+ //ret=connect(trmInfo->sck,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ //if (ret == SOCKET_ERROR){
+ // RegistraLog("***connect() fallo:",true);
+ // return;
+ //}
+ //ret=send(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0);
+ ret=sendto(trmInfo->sck,(char*)&trmInfo->pckDchp,lon,0,(struct sockaddr*)&trmInfo->cliente,trmInfo->sockaddrsize);
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,26,TRUE);
+ return;
+ }
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x35(53) con el valor "Dhcp Offer" valor 2
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Mensaje dhcp Offer
+//_______________________________________________________________________________________________________________
+void AdjDHCPOFFER(unsigned char* *ptrOp,int*lon)
+{
+ **ptrOp=DHCP_MESSAGE_TYPE;
+ *ptrOp+=1;
+ **ptrOp=1;
+ *ptrOp+=1;
+ **ptrOp=DHCPOFFER;
+ *ptrOp+=1;
+ *lon+=3;
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x35(53) con el valor "Dhcp Ack" valor 5
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Mensaje dhcp Ack
+//_______________________________________________________________________________________________________________
+void AdjDHCPACK(unsigned char** ptrOp,int*lon)
+
+{
+ **ptrOp=DHCP_MESSAGE_TYPE;
+ *ptrOp+=1;
+ **ptrOp=1;
+ *ptrOp+=1;
+ **ptrOp=DHCPACK;
+ *ptrOp+=1;
+ *lon+=3;
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x03(3) con la IP del router
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Ip del Routers
+//_______________________________________________________________________________________________________________
+void AdjROUTERS(unsigned char** ptrOp,int*lon)
+{
+ unsigned long aux;
+ aux=inet_addr(oProuter); // Router
+
+ **ptrOp=DHCP_ROUTERS;
+ *ptrOp+=1;
+ **ptrOp=4;
+ *ptrOp+=1;
+ memcpy(*ptrOp,&aux,4); // Copia la Ip del router en la estructura
+ *ptrOp+=4;
+ *lon+=6;
+
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x01(1) con la mascara de red
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de mscara de red
+//_______________________________________________________________________________________________________________
+void AdjSUBNETMASK(unsigned char** ptrOp,int*lon)
+{
+ unsigned long aux;
+ aux=inet_addr(oPmascara); // Mascara de red
+
+ **ptrOp=DHCP_SUBNET_MASK;
+ *ptrOp+=1;
+ **ptrOp=4;
+ *ptrOp+=1;
+ memcpy(*ptrOp,&aux,4); // Copia la máscara de red
+ *ptrOp+=4;
+ *lon+=6;
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x3c(60) con el literal "PXECLient" para clientes PXE
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de clase de cliente
+//_______________________________________________________________________________________________________________
+void AdjCLASSIDENTIFIER(unsigned char** ptrOp,int*lon)
+{
+ **ptrOp=DHCP_CLASS_IDENTIFIER;
+ *ptrOp+=1;
+ **ptrOp=9;
+ *ptrOp+=1;
+ memcpy(*ptrOp,"PXEClient",9); // Copia el literal PXClient
+ *ptrOp+=9;
+ *lon+=11;
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x36(54) con la IP del servidor
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones de Ip del servidor
+//_______________________________________________________________________________________________________________
+void AdjSERVERIDENTIFIER(unsigned char** ptrOp,int*lon)
+{
+ unsigned long aux;
+ aux=inet_addr(IPlocal); // Ip del servidor
+
+ **ptrOp=DHCP_SERVER_IDENTIFIER;
+ *ptrOp+=1;
+ **ptrOp=4;
+ *ptrOp+=1;
+ memcpy(*ptrOp,&aux,4); // Copia la Ip del ervidor en la estructura
+ *ptrOp+=4;
+ *lon+=6;
+
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x33(51) con el tiempo de "lease" de la IP
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones del "Lease Time"
+//_______________________________________________________________________________________________________________
+void AdjLEASETIME(unsigned char** ptrOp,int*lon)
+{
+ unsigned long aux;
+ aux=0x00006054; // tiempo en segundos
+
+ **ptrOp=DHCP_LEASE_TIME;
+ *ptrOp+=1;
+ **ptrOp=4;
+ *ptrOp+=1;
+ memcpy(*ptrOp,&aux,4); // Copia el lease time en la estructura
+ *ptrOp+=4;
+ *lon+=6;
+}
+//_______________________________________________________________________________________________________________
+//
+// Genera una opción del tipo 0x0D(13) con el tiempo tamao del fichero boot
+//
+// Devuelve:
+// Una estructura de opciones de dhcp(codigo,longitud,dato) con la opciones del "Lease Time"
+//_______________________________________________________________________________________________________________
+void AdjBOOTSIZE(unsigned char** ptrOp,int*lon)
+{
+ unsigned short aux;
+ aux=0x0402; // Tamao en bytes
+
+ **ptrOp=DHCP_BOOT_SIZE;
+ *ptrOp+=1;
+ **ptrOp=2;
+ *ptrOp+=1;
+ memcpy(*ptrOp,&aux,2); // Copia el tamao en la estructura
+ *ptrOp+=2;
+ *lon+=4;
+}
+//_______________________________________________________________________________________________________________
+//
+// Crea un socket en un puerto determinado para la conversacin de las distintas hebras
+//
+//_______________________________________________________________________________________________________________
+SOCKET TomaSocketUser()
+{
+ SOCKET socket_c; // Socket para hebras (UDP)
+ struct sockaddr_in cliente;
+ int ret,puerto;
+ BOOLEAN bOpt;
+ char modulo[]="TomaSocketUser()";
+
+ socket_c = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Crea socket para UDP
+
+ if (socket_c == SOCKET_ERROR){
+ errorLog(modulo,81,TRUE);
+ return(false);
+ }
+ cliente.sin_addr.s_addr = htonl(INADDR_ANY); // selecciona interface
+ cliente.sin_family = AF_INET;
+ puerto=PUERTOMINUSER;
+ while(puerto<PUERTOMAXUSER){ // Busca puerto libre
+ cliente.sin_port = htons(puerto); // Puerto asignado
+ if (bind(socket_c,(struct sockaddr *)&cliente,sizeof(cliente)) == SOCKET_ERROR)
+ puerto++;
+ else
+ break;
+ }
+ if(puerto>=PUERTOMAXUSER){ // No hay puertos libres
+ errorLog(modulo,63, TRUE);
+ return(INVALID_SOCKET);
+ }
+
+ bOpt=TRUE; // Pone el socket en modo "soportar Broadcast"
+ ret=setsockopt(socket_c,SOL_SOCKET,SO_BROADCAST,(char *)&bOpt,sizeof(bOpt));
+ if (ret == SOCKET_ERROR){
+ errorLog(modulo,48, TRUE);
+ return(INVALID_SOCKET);
+ }
+ return(socket_c);
+}
+//_______________________________________________________________________________________________________________
+void Pinta(dhcp_packet* tdp)
+{
+ return;
+ printf("\nop = %d htype = %d hlen = %d hops = %d",tdp -> op, tdp -> htype, tdp -> hlen, tdp -> hops);
+ //printf ("\nxid = %x secs = %d flags = %x",tdp -> xid, tdp -> secs, tdp -> flags);
+ printf ("\nciaddr = %s", inet_ntoa (tdp -> ciaddr));
+ printf ("\nyiaddr = %s", inet_ntoa (tdp -> yiaddr));
+ printf ("\nsiaddr = %s", inet_ntoa (tdp -> siaddr));
+ printf ("\ngiaddr = %s", inet_ntoa (tdp -> giaddr));
+ printf ("\nchaddr = %x:%x:%x:%x:%x:%x",((unsigned char *)(tdp -> chaddr)) [0],((unsigned char *)(tdp -> chaddr)) [1],((unsigned char *)(tdp -> chaddr)) [2],((unsigned char *)(tdp -> chaddr)) [3],((unsigned char *)(tdp -> chaddr)) [4],((unsigned char *)(tdp -> chaddr)) [5]);
+ printf ("\nfilename = %s", tdp -> file);
+ printf ("\nserver_name = %s", tdp -> sname);
+
+ printf ("\n\n");
+}
+//***************************************************************************************************************
+// PROGRAMA PRINCIPAL
+//***************************************************************************************************************
+int main(int argc, char **argv)
+{
+ pthread_t hThreadDHCP,hThreadBOOTP,hThreadTFTP;
+ int resul;
+ char modulo[] = "main()";
+
+ /*--------------------------------------------------------------------------------------------------------
+ Validación de parámetros de ejecución y lectura del fichero de configuración del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ if (!validacionParametros(argc, argv,4)) // Valida parámetros de ejecución
+ exit(EXIT_FAILURE);
+
+ if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
+ exit(EXIT_FAILURE);
+ }
+
+ infoLog(1); // Inicio de sesión
+
+ // Hebra servicio DHCP ---------------------------------
+ resul=pthread_create(&hThreadDHCP,NULL,ServicioDHCP,(LPVOID)IPlocal);
+ if(resul!=0){
+ errorLog(modulo, 58, TRUE);
+ exit(EXIT_FAILURE);
+ }
+ pthread_detach(hThreadDHCP);
+
+
+ // Hebra servicio BOOTP ---------------------------------
+ resul=pthread_create(&hThreadBOOTP,NULL,ServicioBOOTP,(LPVOID)IPlocal);
+ if(resul!=0){
+ errorLog(modulo,59,TRUE);
+ exit(EXIT_FAILURE);
+ }
+ pthread_detach(hThreadBOOTP);
+
+ // Hebra servicio TFTP ----------------------------------
+ resul=pthread_create(&hThreadTFTP,NULL,ServicioTFTP,(LPVOID)IPlocal);
+ if(resul!=0){
+ errorLog(modulo,60,TRUE);
+ exit(EXIT_FAILURE);
+ }
+ pthread_detach(hThreadTFTP);
+
+ while (true)
+ sleep(1000);
+
+}
diff --git a/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h
new file mode 100644
index 00000000..ec6db36a
--- /dev/null
+++ b/admin/Sources/Services/ogAdmBoot/sources/ogAdmBoot.h
@@ -0,0 +1,262 @@
+// ********************************************************************************************************
+// Servicio: ogAdmBoot
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Julio-2010
+// Fecha Última modificación: Julio-2010
+// Nombre del fichero: ogAdmBoot.cpp
+// Descripción :Este fichero implementa el servicio dhcp y tftp propios del sistema
+// ********************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include </usr/include/mysql/mysql.h>
+#include <pthread.h>
+#include "Database.h"
+#include "ogAdmLib.h"
+// _____________________________________________________________________________________________________________
+
+#define PUERTODHCPORIGEN 67
+#define PUERTODHCPDESTINO 68
+
+#define PUERTOBOOTPORIGEN 4011
+#define PUERTOBOOTPDESTINO 68
+
+#define PUERTOTFTPORIGEN 69
+
+#define PUERTOMINUSER 20000
+#define PUERTOMAXUSER 60000
+
+#define MAX_INTERFACE_LIST 20
+#define MAX_NUM_CSADDRS 20
+// _____________________________________________________________________________________________________________
+#define DHCP_UDP_OVERHEAD (20 + 8 ) // IP header + UDP header
+#define DHCP_SNAME_LEN 64
+#define DHCP_FILE_LEN 128
+#define DHCP_FIXED_NON_UDP 236
+#define DHCP_FIXED_LEN (DHCP_FIXED_NON_UDP + DHCP_UDP_OVERHEAD) // Longitud de la trama sin las opciones
+#define DHCP_MTU_MAX 1500
+#define DHCP_OPTION_LEN (DHCP_MTU_MAX - DHCP_FIXED_LEN)
+
+#define BOOTP_MIN_LEN 300
+#define DHCP_MIN_LEN 548
+
+struct dhcp_packet {
+ unsigned char op; // Message opcode
+ unsigned char htype; // Hardware addr type
+ unsigned char hlen; // Hardware addr length
+ unsigned char hops; // Number of relay agent hops from client
+ unsigned long xid; // Transaction ID
+ unsigned short secs; // Seconds since client started looking
+ unsigned short flags; // Flag bits
+ struct in_addr ciaddr; // Client IP address
+ struct in_addr yiaddr; // Client IP address
+ struct in_addr siaddr; // IP address of next server
+ struct in_addr giaddr; // DHCP relay agent IP address
+ unsigned char chaddr [16];// Client hardware address
+ char sname[DHCP_SNAME_LEN]; // Server name
+ char file[DHCP_FILE_LEN]; // Boot filename
+ unsigned char magiccookie[4];
+ unsigned char options [DHCP_OPTION_LEN-4]; // Optional parameters.
+};
+
+// Estructura genrica de una opcin DHCP
+struct dhcp_opcion {
+ unsigned char codop;
+ unsigned char tam;
+ unsigned char dato;
+};
+
+// Cdigo de las distintas opciones DHCP
+#define DHCP_PAD 0
+#define DHCP_SUBNET_MASK 1
+#define DHCP_TIME_OFFSET 2
+#define DHCP_ROUTERS 3
+#define DHCP_TIME_SERVERS 4
+#define DHCP_NAME_SERVERS 5
+#define DHCP_DOMAIN_NAME_SERVERS 6
+#define DHCP_LOG_SERVERS 7
+#define DHCP_COOKIE_SERVERS 8
+#define DHCP_LPR_SERVERS 9
+#define DHCP_IMPRESS_SERVERS 10
+#define DHCP_RESOURCE_LOCATION_SERVERS 11
+#define DHCP_HOST_NAME 12
+#define DHCP_BOOT_SIZE 13
+#define DHCP_MERIT_DUMP 14
+#define DHCP_DOMAIN_NAME 15
+#define DHCP_SWAP_SERVER 16
+#define DHCP_ROOT_PATH 17
+#define DHCP_EXTENSIONS_PATH 18
+#define DHCP_IP_FORWARDING 19
+#define DHCP_NON_LOCAL_SOURCE_ROUTING 20
+#define DHCP_POLICY_FILTER 21
+#define DHCP_MAX_DGRAM_REASSEMBLY 22
+#define DHCP_DEFAULT_IP_TTL 23
+#define DHCP_PATH_MTU_AGING_TIMEOUT 24
+#define DHCP_PATH_MTU_PLATEAU_TABLE 25
+#define DHCP_INTERFACE_MTU 26
+#define DHCP_ALL_SUBNETS_LOCAL 27
+#define DHCP_BROADCAST_ADDRESS 28
+#define DHCP_PERFORM_MASK_DISCOVERY 29
+#define DHCP_MASK_SUPPLIER 30
+#define DHCP_ROUTER_DISCOVERY 31
+#define DHCP_ROUTER_SOLICITATION_ADDRESS 32
+#define DHCP_STATIC_ROUTES 33
+#define DHCP_TRAILER_ENCAPSULATION 34
+#define DHCP_ARP_CACHE_TIMEOUT 35
+#define DHCP_IEEE802_3_ENCAPSULATION 36
+#define DHCP_DEFAULT_TCP_TTL 37
+#define DHCP_TCP_KEEPALIVE_INTERVAL 38
+#define DHCP_TCP_KEEPALIVE_GARBAGE 39
+#define DHCP_NIS_DOMAIN 40
+#define DHCP_NIS_SERVERS 41
+#define DHCP_NTP_SERVERS 42
+#define DHCP_VENDOR_ENCAPSULATED_OPTIONS 43
+#define DHCP_NETBIOS_NAME_SERVERS 44
+#define DHCP_NETBIOS_DD_SERVER 45
+#define DHCP_NETBIOS_NODE_TYPE 46
+#define DHCP_NETBIOS_SCOPE 47
+#define DHCP_FONT_SERVERS 48
+#define DHCP_X_DISPLAY_MANAGER 49
+#define DHCP_REQUESTED_ADDRESS 50
+#define DHCP_LEASE_TIME 51
+#define DHCP_OPTION_OVERLOAD 52
+#define DHCP_MESSAGE_TYPE 53
+#define DHCP_SERVER_IDENTIFIER 54
+#define DHCP_PARAMETER_REQUEST_LIST 55
+#define DHCP_MESSAGE 56
+#define DHCP_MAX_MESSAGE_SIZE 57
+#define DHCP_RENEWAL_TIME 58
+#define DHCP_REBINDING_TIME 59
+#define DHCP_CLASS_IDENTIFIER 60
+#define DHCP_CLIENT_IDENTIFIER 61
+#define DHCP_USER_CLASS_ID 77
+#define DHCP_END 255
+
+// DHCP message types.
+#define DHCPDISCOVER 1
+#define DHCPOFFER 2
+#define DHCPREQUEST 3
+#define DHCPDECLINE 4
+#define DHCPACK 5
+#define DHCPNAK 6
+#define DHCPRELEASE 7
+#define DHCPINFORM 8
+
+// Estructura para trabajar en cada hebra con el cliente en cuestion
+struct TramaDhcpBootp{
+ SOCKET sck;
+ struct sockaddr_in cliente;
+ socklen_t sockaddrsize;
+ struct dhcp_packet pckDchp;
+ char bdIP[16];
+};
+// _____________________________________________________________________________________________________________
+
+#define MAXBLOCK 4096
+
+
+// TFTP Cdigos de operacin.
+#define TFTPRRQ 1 // Read request.
+#define TFTPWRQ 2 // Write request
+#define TFTPDATA 3 // Read or write the next block of data.
+#define TFTPACK 4 // Confirnacin de bloque procesado
+#define TFTPERROR 5 // Error message
+#define TFTPOACK 6 // Option acknowledgment
+
+// Paquete TFTP genrico
+struct tftp_packet
+{
+ WORD opcode;
+ char buffer[MAXBLOCK+2];
+};
+// Paquete TFTP tipo ACK
+struct tftppacket_ack
+{
+ WORD opcode;
+ WORD block;
+ char buffer[MAXBLOCK];
+};
+// Paquete TFTP tipo ERROR packet
+struct tftppacket_error
+{
+ WORD opcode;
+ WORD errorcode;
+ char errormessage[508];
+};
+// Estructura para trabajar en cada hebra con el cliente en cuestion
+struct TramaTftp{
+ SOCKET sck;
+ struct sockaddr_in cliente;
+ socklen_t sockaddrsize;
+ struct tftp_packet pckTftp;
+ FILE * fileboot;
+ int bloquesize;
+ int tsize;
+ int interval;
+ int numblock;
+ unsigned short currentopCode;
+};
+//______________________________________________________
+static pthread_mutex_t guardia; // Controla acceso exclusivo de hebras
+//______________________________________________________
+char IPlocal[LONPRM];
+char usuario[LONPRM];
+char pasguor[LONPRM];
+char datasource[LONPRM];
+char catalog[LONPRM];
+char router[LONPRM];
+char mascara[LONPRM];
+
+char oProuter[LONPRM];
+char oPmascara[LONPRM];
+
+// Prototipo de funciones
+void RegistraLog(char *,int);
+int TomaParametrosReg();
+
+LPVOID ServicioDHCP(LPVOID);
+LPVOID ServicioBOOTP(LPVOID);
+LPVOID ServicioTFTP(LPVOID);
+LPVOID GestionaServicioDHCP(LPVOID);
+LPVOID GestionaServicioBOOTP(LPVOID);
+LPVOID GestionaServicioTFTP(LPVOID);
+
+int ClienteExistente(struct TramaDhcpBootp *,char*,int);
+int OpcionesPresentes(unsigned char *);
+unsigned char * BuscaOpcion(dhcp_packet* ,unsigned char );
+
+int OpcionPXEClient(dhcp_packet* );
+void ProcesaTramaClientePXE(struct TramaDhcpBootp* trmInfo);
+void ProcesaTramaClienteDHCP(struct TramaDhcpBootp* trmInfo);
+void ProcesaTramaClienteBOOTP(struct TramaDhcpBootp* trmInfo);
+void ProcesaTramaClienteTFTP(struct TramaTftp * trmInfo);
+
+void RellenaIPCLiente(struct TramaDhcpBootp*);
+void RellenaIPServidor(struct TramaDhcpBootp*);
+void dhcpDISCOVER_PXE(struct TramaDhcpBootp*);
+void dhcpREQUEST_PXE(struct TramaDhcpBootp*);
+void bootpREQUEST_PXE(struct TramaDhcpBootp*);
+
+int PeticionFichero(struct TramaTftp*);
+
+void AdjDHCPOFFER(unsigned char**,int*);
+void AdjDHCPACK(unsigned char**,int*);
+void AdjROUTERS(unsigned char** ,int*);
+void AdjSUBNETMASK(unsigned char**,int*);
+void AdjCLASSIDENTIFIER(unsigned char** ,int*);
+void AdjSERVERIDENTIFIER(unsigned char** ,int*);
+void AdjLEASETIME(unsigned char** ,int*);
+void AdjBOOTSIZE(unsigned char** ,int*);
+
+SOCKET TomaSocketUser();
+struct tm * TomaHora();
+int split_parametros(char **,char *, char *);
+void duerme(unsigned int );
diff --git a/admin/Sources/Services/ogAdmRepo/Makefile b/admin/Sources/Services/ogAdmRepo/Makefile
new file mode 100644
index 00000000..f7a84548
--- /dev/null
+++ b/admin/Sources/Services/ogAdmRepo/Makefile
@@ -0,0 +1,43 @@
+# makefile
+
+# Nombre del proyecto
+PROYECTO := ogAdmRepo
+
+#Directorio de instalación
+INSTALL_DIR := /opt/opengnsys
+
+# Opciones de compilacion
+CFLAGS := -O0 -g -Wall -I../includes # Depuracion
+#CFLAGS := -O3 -Wall # Optimizacion
+CPPFLAGS := $(CFLAGS)
+
+# Opciones de linkado
+LDFLAGS := -L/usr/lib -L/usr/lib/mysql -lpthread -lmysqlclient
+
+# Ficheros objetos
+OBJS := ../includes/Database.o ../includes/encriptacion.o sources/ogAdmRepo.o
+
+
+all: $(PROYECTO)
+
+$(PROYECTO): $(OBJS)
+ g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO)
+# strip $(PROYECTO) # Optimizacion
+
+install: $(PROYECTO)
+ cp $(PROYECTO) $(INSTALL_DIR)/sbin
+ cp $(PROYECTO).cfg $(INSTALL_DIR)/etc
+
+clean:
+ rm -f $(PROYECTO) $(OBJS)
+
+uninstall: clean
+ rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg
+
+sources/%.o: sources/%.cpp
+ g++ $(CPPFLAGS) -c -o"$@" "$<"
+
+sources/%.o: sources/%.c
+ gcc $(CFLAGS) -c -o"$@" "$<"
+
+
diff --git a/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg b/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg
new file mode 100644
index 00000000..a3a9e903
--- /dev/null
+++ b/admin/Sources/Services/ogAdmRepo/ogAdmRepo.cfg
@@ -0,0 +1,3 @@
+IPlocal=SERVERIP
+IPhidra=SERVERIP
+Puerto=2008
diff --git a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp
new file mode 100644
index 00000000..067b6af0
--- /dev/null
+++ b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.cpp
@@ -0,0 +1,177 @@
+// ********************************************************************************************************
+// Servicio: ogAdmRepo
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmRepo.cpp
+// Descripción :Este fichero implementa el servicio de administración general del sistema
+// ********************************************************************************************************
+#include "ogAdmRepo.h"
+#include "ogAdmLib.c"
+//________________________________________________________________________________________________________
+// Función: tomaConfiguracion
+//
+// Descripción:
+// Lee el fichero de configuración del servicio
+// Parámetros:
+// filecfg : Ruta completa al fichero de configuración
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char* filecfg) {
+ char modulo[] = "tomaConfiguracion()";
+
+ if (filecfg == NULL || strlen(filecfg) == 0) {
+ errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
+ return (FALSE);
+ }
+ FILE *fcfg;
+ long lSize;
+ char * buffer, *lineas[MAXPRM], *dualparametro[2];
+ int i, numlin, resul;
+
+ fcfg = fopen(filecfg, "rt");
+ if (fcfg == NULL) {
+ errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
+ return (FALSE);
+ }
+
+ fseek(fcfg, 0, SEEK_END);
+ lSize = ftell(fcfg); // Obtiene tamaño del fichero.
+ rewind(fcfg);
+ buffer = (char*) reservaMemoria(lSize+1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
+ buffer[lSize]=(char) NULL;
+ fclose(fcfg);
+
+ iplocal[0] = (char) NULL; //inicializar variables globales
+ puerto[0] = (char) NULL;
+
+ numlin = splitCadena(lineas, buffer, '\n');
+ for (i = 0; i < numlin; i++) {
+ splitCadena(dualparametro, lineas[i], '=');
+ resul = strcmp(StrToUpper(dualparametro[0]), "IPLOCAL");
+ if (resul == 0)
+ strcpy(iplocal, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
+ if (resul == 0)
+ strcpy(puerto, dualparametro[1]);
+ }
+ if (iplocal[0] == (char) NULL) {
+ errorLog(modulo, 4, FALSE); // Falta parámetro IPLOCAL
+ return (FALSE);
+ }
+ if (puerto[0] == (char) NULL) {
+ errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: gestionaTrama
+//
+// Descripción:
+// Procesa las tramas recibidas .
+// Parametros:
+// - s : Socket usado para comunicaciones
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN gestionaTrama(SOCKET *socket_c)
+{
+ TRAMA* ptrTrama;
+ int i, res;
+ char *nfn;
+ char modulo[] = "gestionaTrama()";
+
+ ptrTrama=recibeTrama(socket_c);
+ if (ptrTrama){
+ INTROaFINCAD(ptrTrama);
+ nfn = copiaParametro("nfn",ptrTrama); // Toma dirección/es IP
+ for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas
+ res = strcmp(tbfuncionesRepo[i].nf, nfn);
+ if (res == 0) { // Encontrada la función que procesa el mensaje
+ return (tbfuncionesRepo[i].fptr(socket_c, ptrTrama)); // Invoca la función
+ }
+ }
+ }
+ else
+ errorLog(modulo, 17, FALSE); // Error en la recepción
+ return (TRUE);
+}
+// ********************************************************************************************************
+// PROGRAMA PRINCIPAL (SERVICIO)
+// ********************************************************************************************************
+int main(int argc, char *argv[])
+{
+ SOCKET socket_r; // Socket donde escucha el servidor
+ SOCKET socket_c; // Socket de los clientes que se conectan
+ socklen_t iAddrSize;
+ struct sockaddr_in local, cliente;
+ char modulo[] = "main()";
+
+ /*--------------------------------------------------------------------------------------------------------
+ Validación de parámetros de ejecución y lectura del fichero de configuración del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ if (!validacionParametros(argc, argv,1)) // Valida parámetros de ejecución
+ exit(EXIT_FAILURE);
+
+ if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
+ exit(EXIT_FAILURE);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Carga del catálogo de funciones que procesan las tramas (referencia directa por puntero a función)
+ ---------------------------------------------------------------------------------------------------------*/
+ int cf = 0;
+
+ cf++;
+
+
+ /*--------------------------------------------------------------------------------------------------------
+ Creación y configuración del socket del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ socket_r = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Crea socket del servicio
+ if (socket_r == SOCKET_ERROR) { // Error al crear el socket del servicio
+ errorLog(modulo, 13, TRUE);
+ exit(EXIT_FAILURE);
+ }
+
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // Configura el socket del servicio
+ local.sin_family = AF_INET;
+ local.sin_port = htons(atoi(puerto));
+
+ if (bind(socket_r, (struct sockaddr *) &local, sizeof(local))== SOCKET_ERROR) { // Enlaza socket
+ errorLog(modulo, 14, TRUE);
+ exit(EXIT_FAILURE);
+ }
+
+ listen(socket_r, 250); // Pone a escuchar al socket
+ iAddrSize = sizeof(cliente);
+ /*--------------------------------------------------------------------------------------------------------
+ Bucle para acceptar conexiones
+ ---------------------------------------------------------------------------------------------------------*/
+ infoLog(1); // Inicio de sesión
+ while(TRUE) {
+ socket_c = accept(socket_r, (struct sockaddr *) &cliente, &iAddrSize);
+ if (socket_c == INVALID_SOCKET) {
+ errorLog(modulo, 15, TRUE);
+ exit(EXIT_FAILURE);
+ }
+ if(!gestionaTrama(&socket_c)){
+ errorLog(modulo, 39, TRUE);
+ break;
+ }
+ close(socket_c);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Fin del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ close(socket_r);
+ exit(EXIT_SUCCESS);
+}
diff --git a/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h
new file mode 100644
index 00000000..8051f3f6
--- /dev/null
+++ b/admin/Sources/Services/ogAdmRepo/sources/ogAdmRepo.h
@@ -0,0 +1,41 @@
+// ********************************************************************************************************
+// Servicio: ogAdmRepo
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmRepo.h
+// Descripción: Este fichero implementa el servicio de repositorio de imágenes
+// ********************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include "ogAdmLib.h"
+// ________________________________________________________________________________________________________
+// Variables globales
+// ________________________________________________________________________________________________________
+char iplocal[LONPRM]; // Dirección IP del servidor de administración
+char puerto[LONPRM]; // Puerto de comunicación
+
+char servidoradm[LONIP]; // IP del servidor
+
+typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas
+ char nf[LONFUN]; // Nombre de la función
+ BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama
+}MSGFUN;
+
+MSGFUN tbfuncionesRepo[MAXIMAS_FUNCIONES];
+
+// ________________________________________________________________________________________________________
+// Prototipo de funciones
+// ________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char*);
+BOOLEAN gestionaTrama(SOCKET*);
+BOOLEAN tomaConfiguracion(char*);
diff --git a/admin/Sources/Services/ogAdmServer/Makefile b/admin/Sources/Services/ogAdmServer/Makefile
new file mode 100644
index 00000000..ace1d128
--- /dev/null
+++ b/admin/Sources/Services/ogAdmServer/Makefile
@@ -0,0 +1,43 @@
+# makefile
+
+# Nombre del proyecto
+PROYECTO := ogAdmServer
+
+# Directorio de instalación
+INSTALL_DIR := /opt/opengnsys
+
+# Opciones de compilacion
+CFLAGS := -O0 -g -Wall -I../../Includes # Depuracion
+#CFLAGS := -O3 -Wall # Optimizacion
+CPPFLAGS := $(CFLAGS)
+
+# Opciones de linkado
+LDFLAGS := -L/usr/lib -L/usr/lib/mysql -lpthread -lmysqlclient
+
+# Ficheros objetos
+OBJS := ../../Includes/Database.o sources/ogAdmServer.o
+
+
+all: $(PROYECTO)
+
+$(PROYECTO): $(OBJS)
+ g++ $(LDFLAGS) $(OBJS) -o $(PROYECTO)
+# strip $(PROYECTO) # Optimizacion
+
+install: $(PROYECTO)
+ cp $(PROYECTO) $(INSTALL_DIR)/sbin
+ cp $(PROYECTO).cfg $(INSTALL_DIR)/etc
+
+clean:
+ rm -f $(PROYECTO) $(OBJS)
+
+uninstall: clean
+ rm -f /usr/local/sbin/$(PROYECTO) /usr/local/etc/$(PROYECTO).cfg
+
+sources/%.o: sources/%.cpp
+ g++ $(CPPFLAGS) -c -o"$@" "$<"
+
+sources/%.o: sources/%.c
+ gcc $(CFLAGS) -c -o"$@" "$<"
+
+
diff --git a/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg b/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg
new file mode 100644
index 00000000..9d88328c
--- /dev/null
+++ b/admin/Sources/Services/ogAdmServer/ogAdmServer.cfg
@@ -0,0 +1,6 @@
+ServidorAdm=SERVERIP
+PUERTO=2008
+USUARIO=usuog
+PASSWORD=passusuog
+datasource=localhost
+CATALOG=ogAdmBD
diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp
new file mode 100644
index 00000000..25316dff
--- /dev/null
+++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.cpp
@@ -0,0 +1,3027 @@
+// ********************************************************************************************************
+// Servicio: ogAdmServer
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmServer.cpp
+// Descripción :Este fichero implementa el servicio de administración general del sistema
+// ********************************************************************************************************
+#include "ogAdmServer.h"
+#include "ogAdmLib.c"
+//________________________________________________________________________________________________________
+// Función: tomaConfiguracion
+//
+// Descripción:
+// Lee el fichero de configuración del servicio
+// Parámetros:
+// filecfg : Ruta completa al fichero de configuración
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________
+BOOLEAN tomaConfiguracion(char* filecfg) {
+ char modulo[] = "tomaConfiguracion()";
+
+ if (filecfg == NULL || strlen(filecfg) == 0) {
+ errorLog(modulo, 1, FALSE); // Fichero de configuración del servicio vacío
+ return (FALSE);
+ }
+ FILE *fcfg;
+ long lSize;
+ char * buffer, *lineas[MAXPRM], *dualparametro[2];
+ int i, numlin, resul;
+
+ fcfg = fopen(filecfg, "rt");
+ if (fcfg == NULL) {
+ errorLog(modulo, 2, FALSE); // No existe fichero de configuración del servicio
+ return (FALSE);
+ }
+
+ fseek(fcfg, 0, SEEK_END);
+ lSize = ftell(fcfg); // Obtiene tamaño del fichero.
+ rewind(fcfg);
+ buffer = (char*) reservaMemoria(lSize + 1); // Toma memoria para el buffer de lectura.
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ fread(buffer, 1, lSize, fcfg); // Lee contenido del fichero
+ buffer[lSize] = (char) NULL;
+ fclose(fcfg);
+
+ servidoradm[0] = (char) NULL; //inicializar variables globales
+ puerto[0] = (char) NULL;
+ usuario[0] = (char) NULL;
+ pasguor[0] = (char) NULL;
+ datasource[0] = (char) NULL;
+ catalog[0] = (char) NULL;
+ aulaup[0] = (char) NULL;
+
+ numlin = splitCadena(lineas, buffer, '\n');
+ for (i = 0; i < numlin; i++) {
+ splitCadena(dualparametro, lineas[i], '=');
+ resul = strcmp(StrToUpper(dualparametro[0]), "SERVIDORADM");
+ if (resul == 0)
+ strcpy(servidoradm, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PUERTO");
+ if (resul == 0)
+ strcpy(puerto, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "USUARIO");
+ if (resul == 0)
+ strcpy(usuario, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "PASSWORD");
+ if (resul == 0)
+ strcpy(pasguor, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "DATASOURCE");
+ if (resul == 0)
+ strcpy(datasource, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "CATALOG");
+ if (resul == 0)
+ strcpy(catalog, dualparametro[1]);
+ resul = strcmp(StrToUpper(dualparametro[0]), "AULAUP");
+ if (resul == 0)
+ strcpy(catalog, dualparametro[1]);
+ }
+ if (servidoradm[0] == (char) NULL) {
+ errorLog(modulo, 4, FALSE); // Falta parámetro SERVIDORADM
+ return (FALSE);
+ }
+ if (puerto[0] == (char) NULL) {
+ errorLog(modulo, 5, FALSE); // Falta parámetro PUERTO
+ return (FALSE);
+ }
+ if (usuario[0] == (char) NULL) {
+ errorLog(modulo, 6, FALSE); // Falta parámetro USUARIO
+ return (FALSE);
+ }
+ if (pasguor[0] == (char) NULL) {
+ errorLog(modulo, 7, FALSE); // Falta parámetro PASSWORD
+ return (FALSE);
+ }
+ if (datasource[0] == (char) NULL) {
+ errorLog(modulo, 8, FALSE); // Falta parámetro DATASOURCE
+ return (FALSE);
+ }
+ if (catalog[0] == (char) NULL) {
+ errorLog(modulo, 9, FALSE); // Falta parámetro CATALOG
+ return (FALSE);
+ }
+ if (aulaup[0] == (char) NULL) {
+ strcpy(aulaup, "0"); // Por defecto el conmutador de registro automático esta en off
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: gestionaTrama
+//
+// Descripción:
+// Procesa las tramas recibidas .
+// Parametros:
+// - s : Socket usado para comunicaciones
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN gestionaTrama(SOCKET *socket_c)
+{
+ TRAMA* ptrTrama;
+ int i, res;
+ char *nfn;
+ char modulo[] = "gestionaTrama()";
+
+ ptrTrama=recibeTrama(socket_c);
+ if (ptrTrama){
+ INTROaFINCAD(ptrTrama);
+ nfn = copiaParametro("nfn",ptrTrama); // Toma dirección/es IP
+ for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas
+ res = strcmp(tbfuncionesServer[i].nf, nfn);
+ if (res == 0) { // Encontrada la función que procesa el mensaje
+ return (tbfuncionesServer[i].fptr(socket_c, ptrTrama)); // Invoca la función
+ }
+ }
+ /* Sólo puede ser un comando personalizado o su notificación */
+ if (ptrTrama->tipo == MSG_COMANDO)
+ return (Comando(socket_c, ptrTrama));
+ else {
+ if (ptrTrama->tipo == MSG_NOTIFICACION)
+ return (RESPUESTA_Comando(socket_c, ptrTrama));
+ else
+ errorLog(modulo, 18, FALSE); // No se reconoce el mensaje
+ }
+ }
+ else
+ errorLog(modulo, 17, FALSE); // Error en la recepción
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Sondeo
+//
+// Descripción:
+// Solicita a los clientes su disponibiliad para recibir comandos interactivos
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Sondeo(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Sondeo()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: respuestaSondeo
+//
+// Descripción:
+// Recupera el estatus de los ordenadores solicitados leyendo la tabla de sockets
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN respuestaSondeo(SOCKET *socket_c, TRAMA* ptrTrama) {
+ int i;
+ long lSize;
+ char *iph, *Ipes;
+ char modulo[] = "respuestaSondeo()";
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP
+ lSize = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S
+ Ipes = (char*) reservaMemoria(lSize + 1);
+ if (Ipes == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ strcpy(Ipes, iph); // Copia cadena de IPES
+ initParametros(ptrTrama,0);
+ strcpy(ptrTrama->parametros, "tso="); // Compone retorno tso (sistemas operativos de los clientes )
+ for (i = 0; i < MAXIMOS_CLIENTES; i++) {
+ if (strncmp(tbsockets[i].ip, "\0", 1) != 0) { // Si es un cliente activo
+ if (contieneIP(Ipes, tbsockets[i].ip)) { // Si existe la IP en la cadena
+ strcat(ptrTrama->parametros, tbsockets[i].ip); // Compone retorno
+ strcat(ptrTrama->parametros, "/"); // "ip/sistema operativo;"
+ strcat(ptrTrama->parametros, tbsockets[i].estado);
+ strcat(ptrTrama->parametros, ";");
+ }
+ }
+ }
+ strcat(ptrTrama->parametros, "\r");
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Actualizar
+//
+// Descripción:
+// Obliga a los clientes a iniciar sesión en el sistema
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Actualizar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Actualizar()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Purgar
+//
+// Descripción:
+// Detiene la ejecución del browser en el cliente
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Purgar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Purgar()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_APAGADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: ConsolaRemota
+//
+// Descripción:
+// Envia un script al cliente, éste lo ejecuta y manda el archivo que genera la salida por pantalla
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN ConsolaRemota(SOCKET *socket_c, TRAMA* ptrTrama)
+{
+ char *iph,fileco[LONPRM],msglog[LONSTD],*ptrIpes[MAXIMOS_CLIENTES];;
+ FILE* f;
+ int i,lon;
+ char modulo[] = "ConsolaRemota()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ INTROaFINCAD(ptrTrama);
+ /* Destruye contenido del fichero de eco anterior */
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente
+ lon = splitCadena(ptrIpes,iph,';');
+ for (i = 0; i < lon; i++) {
+ sprintf(fileco,"/tmp/_Seconsola_%s",ptrIpes[i]); // Nombre que tendra el archivo en el Servidor
+ f = fopen(fileco, "wt");
+ fclose(f);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: EcoConsola
+//
+// Descripción:
+// Solicita el eco de una consola remota almacenado en un archivo de eco
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros del mensaje
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN EcoConsola(SOCKET *socket_c, TRAMA* ptrTrama)
+{
+ char *iph,fileco[LONPRM],*buffer;
+ int lSize;
+ char modulo[] = "EcoConsola()";
+
+ INTROaFINCAD(ptrTrama);
+ // Lee archivo de eco de consola
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente
+ sprintf(fileco,"/tmp/_Seconsola_%s",iph); // Nombre del archivo en el Servidor
+ lSize=lonArchivo(fileco);
+ if(lSize>0){ // Si el fichero tiene contenido...
+ initParametros(ptrTrama,lSize+LONGITUD_PARAMETROS);
+ buffer=leeArchivo(fileco);
+ sprintf(ptrTrama->parametros,"res=%s\r",buffer);
+ }
+ else{
+ initParametros(ptrTrama,0);
+ sprintf(ptrTrama->parametros,"res=\r");
+ }
+ ptrTrama->tipo=MSG_RESPUESTA; // Tipo de mensaje
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: clienteDisponible
+//
+// Descripción:
+// Comprueba la disponibilidad del cliente para recibir comandos interactivos
+// Parametros:
+// - ip : La ip del cliente a buscar
+// - idx: (Salida) Indice que ocupa el cliente, de estar ya registrado
+// Devuelve:
+// TRUE: Si el cliente está disponible
+// FALSE: En caso contrario
+// ________________________________________________________________________________________________________
+BOOLEAN clienteDisponible(char *ip, int* idx) {
+ int estado;
+
+ if (clienteExistente(ip, idx)) {
+ estado = strcmp(tbsockets[*idx].estado, CLIENTE_OCUPADO); // Cliente ocupado
+ if (estado == 0)
+ return (FALSE);
+
+ estado = strcmp(tbsockets[*idx].estado, CLIENTE_APAGADO); // Cliente apagado
+ if (estado == 0)
+ return (FALSE);
+
+ estado = strcmp(tbsockets[*idx].estado, CLIENTE_INICIANDO); // Cliente en proceso de inclusión
+ if (estado == 0)
+ return (FALSE);
+
+ return (TRUE); // En caso contrario el cliente está disponible
+ }
+ return (FALSE); // Cliente no está registrado en el sistema
+}
+// ________________________________________________________________________________________________________
+// Función: clienteExistente
+//
+// Descripción:
+// Comprueba si el cliente está registrado en la tabla de socket del sistema
+// Parametros:
+// - ip : La ip del cliente a buscar
+// - idx:(Salida) Indice que ocupa el cliente, de estar ya registrado
+// Devuelve:
+// TRUE: Si el cliente está registrado
+// FALSE: En caso contrario
+// ________________________________________________________________________________________________________
+BOOLEAN clienteExistente(char *ip, int* idx) {
+ int i;
+ for (i = 0; i < MAXIMOS_CLIENTES; i++) {
+ if (contieneIP(ip, tbsockets[i].ip)) { // Si existe la IP en la cadena
+ *idx = i;
+ return (TRUE);
+ }
+ }
+ return (FALSE);
+}
+// ________________________________________________________________________________________________________
+// Función: hayHueco
+//
+// Descripción:
+// Esta función devuelve TRUE o FALSE dependiendo de que haya hueco en la tabla de sockets para un nuevo cliente.
+// Parametros:
+// - idx: Primer indice libre que se podrn utilizar
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN hayHueco(int *idx) {
+ int i;
+
+ for (i = 0; i < MAXIMOS_CLIENTES; i++) {
+ if (strncmp(tbsockets[i].ip, "\0", 1) == 0) { // Hay un hueco
+ *idx = i;
+ return (TRUE);
+ }
+ }
+ return (FALSE);
+}
+// ________________________________________________________________________________________________________
+// Función: InclusionCliente
+//
+// Descripción:
+// Esta función incorpora el socket de un nuevo cliente a la tabla de clientes y le devuelve alguna de sus propiedades:
+// nombre, identificador, tamaño de la caché , etc ...
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN InclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char modulo[] = "InclusionCliente()";
+
+ if (!procesoInclusionCliente(socket_c, ptrTrama)) { // Ha habido algún error...
+ initParametros(ptrTrama,0);
+ strcpy(ptrTrama->parametros, "nfn=RESPUESTA_InclusionCliente\rres=0\r");
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: procesoInclusionCliente
+//
+// Descripción:
+// Implementa el proceso de inclusión en el sistema del Cliente
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN procesoInclusionCliente(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ Database db;
+ Table tbl;
+
+ char *iph, *cfg;
+ char nombreordenador[LONFIL];
+ int lon, resul, idordenador, idmenu, cache, idproautoexec, idaula, idcentro;
+ char modulo[] = "InclusionCliente()";
+
+ // Toma parámetros
+ iph = copiaParametro("iph",ptrTrama); // Toma ip
+ cfg = copiaParametro("cfg",ptrTrama); // Toma configuracion
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ // Recupera los datos del cliente
+ sprintf(sqlstr,
+ "SELECT ordenadores.*,aulas.idaula,centros.idcentro FROM ordenadores "
+ " INNER JOIN aulas ON aulas.idaula=ordenadores.idaula"
+ " INNER JOIN centros ON centros.idcentro=aulas.idcentro"
+ " WHERE ordenadores.ip = '%s'", iph);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if (tbl.ISEOF()) { // Si no existe el cliente
+ errorLog(modulo, 22, FALSE);
+ return (FALSE);
+ }
+
+ if (ndebug == DEBUG_ALTO) {
+ sprintf(msglog, "%s IP:%s", tbMensajes[2], iph);
+ infoDebug(msglog);
+ }
+ if (!tbl.Get("idordenador", idordenador)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("nombreordenador", nombreordenador)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idmenu", idmenu)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("cache", cache)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idproautoexec", idproautoexec)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idaula", idaula)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idcentro", idcentro)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ resul = actualizaConfiguracion(db, tbl, cfg, idordenador); // Actualiza la configuración del ordenador
+ db.Close();
+
+ if (!resul) {
+ errorLog(modulo, 29, FALSE);
+ return (FALSE);
+ }
+
+ if (!registraCliente(iph)) { // Incluyendo al cliente en la tabla de sokets
+ errorLog(modulo, 25, FALSE);
+ return (FALSE);
+ }
+
+ /*------------------------------------------------------------------------------------------------------------------------------
+ Prepara la trama de respuesta
+ -------------------------------------------------------------------------------------------------------------------------------*/
+ initParametros(ptrTrama,0);
+ ptrTrama->tipo=MSG_RESPUESTA;
+ lon = sprintf(ptrTrama->parametros, "nfn=RESPUESTA_InclusionCliente\r");
+ lon += sprintf(ptrTrama->parametros + lon, "ido=%d\r", idordenador);
+ lon += sprintf(ptrTrama->parametros + lon, "npc=%s\r", nombreordenador);
+ lon += sprintf(ptrTrama->parametros + lon, "che=%d\r", cache);
+ lon += sprintf(ptrTrama->parametros + lon, "exe=%d\r", idproautoexec);
+ lon += sprintf(ptrTrama->parametros + lon, "ida=%d\r", idaula);
+ lon += sprintf(ptrTrama->parametros + lon, "idc=%d\r", idcentro);
+ lon += sprintf(ptrTrama->parametros + lon, "res=%d\r", 1); // Confirmación proceso correcto
+
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: actualizaConfiguracion
+//
+// Descripción:
+// Esta función actualiza la base de datos con la configuracion de particiones de un cliente
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - cfg: cadena con una Configuración
+// - ido: Identificador del ordenador cliente
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// Especificaciones:
+// Los parametros de la configuración son:
+// par= Número de partición
+// cpt= Codigo o tipo de partición
+// sfi= Sistema de ficheros que está implementado en la partición
+// soi= Nombre del sistema de ficheros instalado en la partición
+// tam= Tamaño de la partición
+// ________________________________________________________________________________________________________
+BOOLEAN actualizaConfiguracion(Database db, Table tbl, char* cfg, int ido)
+{
+ char msglog[LONSTD], sqlstr[LONSQL];
+ int lon, p, c, i, dato, swu, idsoi, idsfi,k;
+ char *ptrPar[MAXPAR], *ptrCfg[5], *ptrDual[2], tbPar[LONSTD];
+ char *par, *cpt, *sfi, *soi, *tam; // Parametros que definen una partición
+ char modulo[] = "actualizaConfiguracion()";
+
+ lon = sprintf(tbPar, "(");
+ p = splitCadena(ptrPar, cfg, '\n');
+ for (i = 0; i < p; i++) {
+ c = splitCadena(ptrCfg, ptrPar[i], '\t');
+ par = cpt = sfi = soi = tam = NULL;
+ splitCadena(ptrDual, ptrCfg[0], '=');
+ par = ptrDual[1]; // Número de partición
+
+ splitCadena(ptrDual, ptrCfg[1], '=');
+ cpt = ptrDual[1]; // Código de partición
+
+ k=splitCadena(ptrDual, ptrCfg[2], '=');
+ if(k==2){
+ sfi = ptrDual[1]; // Sistema de ficheros
+ /* Comprueba existencia del sistema de ficheros instalado */
+ idsfi = checkDato(db, tbl, sfi, "sistemasficheros", "descripcion","idsistemafichero");
+ }
+ else
+ idsfi=0;
+
+ k=splitCadena(ptrDual, ptrCfg[3], '=');
+ if(k==2){ // Sistema operativo detecdtado
+ soi = ptrDual[1]; // Nombre del S.O. instalado
+ /* Comprueba existencia del sistema operativo instalado */
+ idsoi = checkDato(db, tbl, soi, "nombresos", "nombreso", "idnombreso");
+ }
+ else
+ idsoi=0;
+
+ splitCadena(ptrDual, ptrCfg[4], '=');
+ tam = ptrDual[1]; // Tamaño de la partición
+
+ lon += sprintf(tbPar + lon, "%s,", par);
+
+ sprintf(
+ sqlstr,
+ "SELECT numpar,codpar,tamano,idsistemafichero,idnombreso"
+ " FROM ordenadores_particiones WHERE idordenador=%d AND numpar=%s",
+ ido, par);
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (tbl.ISEOF()) { // Si no existe el registro
+ sprintf(
+ sqlstr,
+ "INSERT INTO ordenadores_particiones(idordenador,numpar,codpar,tamano,idsistemafichero,idnombreso,idimagen)"
+ " VALUES(%d,%s,0x%s,%s,%d,%d,0)", ido, par, cpt, tam,
+ idsfi, idsoi);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ } else { // Existe el registro
+ swu = TRUE; // Se supone que algún dato ha cambiado
+ if (!tbl.Get("codpar", dato)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (atoi(cpt) == dato) {// Parámetro tipo de partición igual al almacenado
+ if (!tbl.Get("tamano", dato)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (atoi(tam) == dato) {// Parámetro tamaño igual al almacenado
+ if (!tbl.Get("idsistemafichero", dato)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (idsfi == dato) {// Parámetro sistema de fichero igual al almacenado
+ if (!tbl.Get("idnombreso", dato)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (idsoi == dato) {// Parámetro sistema de fichero distinto al almacenado
+ swu = FALSE; // Todos los parámetros de la partición son iguales, no se actualiza
+ }
+ }
+ }
+ }
+ if (swu) { // Hay que actualizar los parámetros de la partición
+ sprintf(sqlstr, "UPDATE ordenadores_particiones SET "
+ " codpar=0x%s,"
+ " tamano=%s,"
+ " idsistemafichero=%d,"
+ " idnombreso=%d,"
+ " idimagen=%d,"
+ " idperfilsoft=%d"
+ " WHERE idordenador=%d AND numpar=%s"\
+, cpt, tam, idsfi,
+ idsoi, 0, 0, ido, par);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ }
+ }
+ lon += sprintf(tbPar + lon, "%d)", 0);
+ // Eliminar particiones almacenadas que ya no existen
+ sprintf(
+ sqlstr,
+ "DELETE FROM ordenadores_particiones WHERE idordenador=%d AND numpar NOT IN %s",
+ ido, tbPar);
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: checkDato
+//
+// Descripción:
+// Esta función comprueba si existe un dato en una tabla y si no es así lo incluye. devuelve en
+// cualquier caso el identificador del registro existenet o del insertado
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - dato: Dato
+// - tabla: Nombre de la tabla
+// - nomdato: Nombre del dato en la tabla
+// - nomidentificador: Nombre del identificador en la tabla
+// Devuelve:
+// El identificador del registro existente o el del insertado
+//
+// Especificaciones:
+// En caso de producirse algún error se devuelve el valor 0
+// ________________________________________________________________________________________________________
+
+int checkDato(Database db, Table tbl, char *dato, const char*tabla,
+ const char* nomdato, const char *nomidentificador) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ char modulo[] = "checkDato()";
+ int identificador;
+
+ if (strlen(dato) == 0)
+ return (0); // EL dato no tiene valor
+ sprintf(sqlstr, "SELECT %s FROM %s WHERE %s ='%s'", nomidentificador,
+ tabla, nomdato, dato);
+
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (0);
+ }
+ if (tbl.ISEOF()) { // Software NO existente
+ sprintf(sqlstr, "INSERT INTO %s (%s) VALUES('%s')", tabla, nomdato,
+ dato);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (0);
+ }
+ // Recupera el identificador del software
+ sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador");
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ db.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (0);
+ }
+ if (!tbl.ISEOF()) { // Si existe registro
+ if (!tbl.Get("identificador", identificador)) {
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (0);
+ }
+ }
+ } else {
+ if (!tbl.Get(nomidentificador, identificador)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (0);
+ }
+ }
+ return (identificador);
+}
+// ________________________________________________________________________________________________________
+// Función: registraCliente
+//
+// Descripción:
+// Incluye al cliente en la tabla de sokets
+// Parámetros:
+// - iph: Dirección ip del cliente
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN registraCliente(char *iph) {
+ int idx;
+
+ if (!clienteExistente(iph, &idx)) { // Si no existe la IP ...
+ if (!hayHueco(&idx)) { // Busca hueco para el nuevo cliente
+ return (FALSE); // No hay huecos
+ }
+ }
+ strcpy(tbsockets[idx].ip, iph); // Copia IP
+ strcpy(tbsockets[idx].estado, CLIENTE_INICIANDO); // Actualiza el estado del cliente
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: AutoexecCliente
+//
+// Descripción:
+// Envía archivo de autoexec al cliente
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN AutoexecCliente(SOCKET *socket_c, TRAMA *ptrTrama) {
+ int lon;
+ char *iph, *exe, msglog[LONSTD];
+ Database db;
+ FILE *fileexe;
+ char fileautoexec[LONPRM];
+ char parametros[LONGITUD_PARAMETROS];
+ char modulo[] = "AutoexecCliente()";
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección IP del cliente
+ exe = copiaParametro("exe",ptrTrama); // Toma identificador del procedimiento inicial
+
+ sprintf(fileautoexec, "/tmp/Sautoexec-%s", iph);
+ fileexe = fopen(fileautoexec, "wb"); // Abre fichero de script
+ if (fileexe == NULL) {
+ errorLog(modulo, 52, FALSE);
+ return (FALSE);
+ }
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ initParametros(ptrTrama,0);
+ if (recorreProcedimientos(db, parametros, fileexe, exe)) {
+ lon = sprintf(ptrTrama->parametros, "nfn=RESPUESTA_AutoexecCliente\r");
+ lon += sprintf(ptrTrama->parametros + lon, "nfl=%s\r", fileautoexec);
+ lon += sprintf(ptrTrama->parametros + lon, "res=1\r");
+ } else {
+ lon = sprintf(ptrTrama->parametros, "nfn=RESPUESTA_AutoexecCliente\r");
+ lon += sprintf(ptrTrama->parametros + lon, "res=0\r");
+ }
+
+ fclose(fileexe);
+
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: recorreProcedimientos
+//
+// Descripción:
+// Crea un archivo con el código de un procedimiento separando cada comando por un salto de linea
+// Parámetros:
+// Database db,char* parametros,FILE* fileexe,char* idp
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN recorreProcedimientos(Database db, char* parametros, FILE* fileexe,
+ char* idp) {
+ int procedimientoid, lsize;
+ char idprocedimiento[LONPRM], msglog[LONSTD], sqlstr[LONSQL];
+ Table tbl;
+ char modulo[] = "recorreProcedimientos()";
+
+ /* Busca procedimiento */
+ sprintf(sqlstr,
+ "SELECT procedimientoid,parametros FROM procedimientos_acciones"
+ " WHERE idprocedimiento=%s ORDER BY orden", idp);
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ while (!tbl.ISEOF()) { // Recorre procedimientos
+ if (!tbl.Get("procedimientoid", procedimientoid)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (procedimientoid > 0) { // Procedimiento recursivo
+ sprintf(idprocedimiento, "%d", procedimientoid);
+ if (!recorreProcedimientos(db, parametros, fileexe, idprocedimiento)) {
+ return (FALSE);
+ }
+ } else {
+ if (!tbl.Get("parametros", parametros)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ strcat(parametros, "@");
+ lsize = strlen(parametros);
+ fwrite(parametros, 1, lsize, fileexe); // Escribe el código a ejecutar
+ }
+ tbl.MoveNext();
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: ComandosPendientes
+//
+// Descripción:
+// Esta función busca en la base de datos,comandos pendientes de ejecutar por un ordenador concreto
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN ComandosPendientes(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char *ido, pids[LONPRM], iph[LONIP];
+ int ids, idx;
+ char modulo[] = "ComandosPendientes()";
+
+ strcpy(iph, copiaParametro("iph",ptrTrama)); // Toma direción IP
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!clienteExistente(iph, &idx)) { // Busca índice del cliente
+ errorLog(modulo, 47, FALSE);
+ return (FALSE);
+ }
+ if (buscaComandos(ido, ptrTrama, &ids)) { // Existen comandos pendientes
+ ptrTrama->tipo = MSG_COMANDO;
+ sprintf(pids, "\rids=%d\r", ids);
+ strcat(ptrTrama->parametros, pids);
+ strcpy(tbsockets[idx].estado, CLIENTE_OCUPADO);
+ } else {
+ initParametros(ptrTrama,0);
+ strcpy(ptrTrama->parametros, "nfn=NoComandosPtes\r");
+ }
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: buscaComandos
+//
+// Descripción:
+// Busca en la base de datos,comandos pendientes de ejecutar por el cliente
+// Parámetros:
+// - ido: Identificador del ordenador
+// - cmd: Parámetros del comando (Salida)
+// - ids: Identificador de la acción (Salida)
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN buscaComandos(char *ido, TRAMA *ptrTrama, int *ids)
+{
+ char msglog[LONSTD], sqlstr[LONSQL];
+ Database db;
+ Table tbl;
+ int lonprm;
+
+ char modulo[] = "buscaComandos()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexión con la BD
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ sprintf(sqlstr,"SELECT sesion,parametros,length( parametros) as lonprm"\
+ " FROM acciones WHERE idordenador=%s AND estado='%d' ORDER BY idaccion", ido, ACCION_INICIADA);
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (tbl.ISEOF()) {
+ db.Close();
+ return (FALSE); // No hay comandos pendientes
+ } else { // Busca entre todas las acciones de diversos ambitos
+ if (!tbl.Get("sesion", *ids)) { // Toma identificador de la acción
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("lonprm", lonprm)) { // Toma parámetros del comando
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(!initParametros(ptrTrama,lonprm+LONGITUD_PARAMETROS)){
+ db.Close();
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ if (!tbl.Get("parametros", ptrTrama->parametros)) { // Toma parámetros del comando
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ db.Close();
+ return (TRUE); // Hay comandos pendientes, se toma el primero de la cola
+}
+// ________________________________________________________________________________________________________
+// Función: DisponibilidadComandos
+//
+// Descripción:
+// Esta función habilita a un cliente para recibir comandos desde la consola
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN DisponibilidadComandos(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char *iph, *tpc;
+ int idx;
+ char modulo[] = "DisponibilidadComandos()";
+
+ iph = copiaParametro("iph",ptrTrama); // Toma ip
+ tpc = copiaParametro("tpc",ptrTrama); // Tipo de cliente (Plataforma y S.O.)
+
+ if (!clienteExistente(iph, &idx)) { // Busca índice del cliente
+ errorLog(modulo, 47, FALSE);
+ return (FALSE);
+ }
+ strcpy(tbsockets[idx].estado, tpc);
+ tbsockets[idx].sock = *socket_c;
+ swcSocket = TRUE; // El socket permanece abierto para recibir comandos desde el servidor
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: respuestaEstandar
+//
+// Descripción:
+// Esta función actualiza la base de datos con el resultado de la ejecución de un comando con seguimiento
+// Parámetros:
+// - res: resultado de la ejecución del comando
+// - der: Descripción del error si hubiese habido
+// - iph: Dirección IP
+// - ids: identificador de la acción notificada
+// - ido: Identificador del ordenador que notifica
+// - db: Objeto base de datos (operativo)
+// - tbl: Objeto tabla
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN respuestaEstandar(TRAMA *ptrTrama, char *iph, char *ido, Database db,
+ Table tbl) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ char *res, *ids, *der;
+ char fechafin[LONPRM];
+ struct tm* st;
+ char modulo[] = "respuestaEstandar()";
+
+ res = copiaParametro("res",ptrTrama); // Toma resultado
+ ids = copiaParametro("ids",ptrTrama); // Toma identificador de la sesión
+ der = copiaParametro("der",ptrTrama); // Toma descripción del error (si hubiera habido)
+
+ if (ids == NULL) // No existe seguimiento de la acción
+ return (TRUE);
+
+ sprintf(sqlstr,
+ "SELECT * FROM acciones WHERE idordenador=%s AND sesion=%s", ido,
+ ids);
+ if (!db.Execute(sqlstr, tbl)) { // Error al consultar
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (tbl.ISEOF()) { // No existe registro de acciones
+ errorLog(modulo, 31, FALSE);
+ return (TRUE);
+ }
+
+ st = tomaHora();
+ sprintf(fechafin, "%d/%d/%d %d:%d:%d", st->tm_year + 1900, st->tm_mon + 1,
+ st->tm_mday, st->tm_hour, st->tm_min, st->tm_sec);
+
+ sprintf(
+ sqlstr,
+ "UPDATE acciones SET resultado='%s',estado='%d',fechahorafin='%s',descrinotificacion='%s'"\
+ " WHERE idordenador=%s AND sesion=%s",
+ res, ACCION_FINALIZADA, fechafin, der, ido, ids);
+ if (!db.Execute(sqlstr, tbl)) { // Error al actualizar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if (atoi(res) == ACCION_FALLIDA)
+ return (FALSE); // Error en la ejecución del comando
+
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: enviaComando
+//
+// Descripción:
+// Envía un comando a los clientes
+// Parámetros:
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// - estado: Estado en el se deja al cliente mientras se ejecuta el comando
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN enviaComando(TRAMA* ptrTrama, const char *estado) {
+ char *iph, *Ipes, *ptrIpes[MAXIMOS_CLIENTES];
+ int i, idx, lon;
+ char modulo[] = "enviaComando()";
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección/es IP
+ lon = strlen(iph); // Calcula longitud de la cadena de direccion/es IPE/S
+ Ipes = (char*) reservaMemoria(lon + 1);
+ if (Ipes == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ strcpy(Ipes, iph); // Copia cadena de IPES
+ lon = splitCadena(ptrIpes, Ipes, ';');
+ FINCADaINTRO(ptrTrama);
+ for (i = 0; i < lon; i++) {
+ if (clienteDisponible(ptrIpes[i], &idx)) { // Si el cliente puede recibir comandos
+ strcpy(tbsockets[idx].estado, estado); // Actualiza el estado del cliente
+ if (!mandaTrama(&tbsockets[idx].sock, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ close(tbsockets[idx].sock); // Cierra el socket del cliente hasta nueva disponibilidad
+ }
+ }
+ return (TRUE);
+}
+//______________________________________________________________________________________________________
+// Función: respuestaConsola
+//
+// Descripción:
+// Envia una respuesta a la consola sobre el resultado de la ejecución de un comando
+// Parámetros:
+// - socket_c: (Salida) Socket utilizado para el envío
+// - res: Resultado del envío del comando
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN respuestaConsola(SOCKET *socket_c, TRAMA *ptrTrama, int res) {
+ char modulo[] = "respuestaConsola()";
+ initParametros(ptrTrama,0);
+ sprintf(ptrTrama->parametros, "res=%d\r", res);
+ if (!mandaTrama(socket_c, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Arrancar
+//
+// Descripción:
+// Procesa el comando Apagar
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char *mac, msglog[LONSTD];
+ char modulo[] = "Arrancar()";
+
+ mac = copiaParametro("mac",ptrTrama); // Toma dirección/es MAC
+ if (!Levanta(mac)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Levanta
+//
+// Descripción:
+// Enciende ordenadores a través de la red cuyas macs se pasan como parámetro
+// Parámetros:
+// - mac: Cadena de direcciones mac separadas por ";"
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Levanta(char *mac) {
+ char *ptrMacs[MAXIMOS_CLIENTES];
+ int i, lon, res;
+ SOCKET s;
+ BOOLEAN bOpt;
+ sockaddr_in local;
+ char modulo[] = "Levanta()";
+
+ /* Creación de socket para envío de magig packet */
+ s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ if (s == SOCKET_ERROR) { // Error al crear el socket del servicio
+ errorLog(modulo, 13, TRUE);
+ return (FALSE);
+ }
+ bOpt = TRUE; // Pone el socket en modo Broadcast
+ res = setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char *) &bOpt, sizeof(bOpt));
+ if (res == SOCKET_ERROR) {
+ errorLog(modulo, 48, TRUE);
+ return (FALSE);
+ }
+ local.sin_family = AF_INET;
+ local.sin_port = htons((short) PUERTO_WAKEUP);
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // cualquier interface
+ if (bind(s, (sockaddr *) &local, sizeof(local)) == SOCKET_ERROR) {
+ errorLog(modulo, 14, TRUE);
+ exit(EXIT_FAILURE);
+ }
+ /* fin creación de socket */
+ lon = splitCadena(ptrMacs, mac, ';');
+ for (i = 0; i < lon; i++) {
+ if (!WakeUp(&s, ptrMacs[i])) {
+ errorLog(modulo, 49, TRUE);
+ close(s);
+ return (FALSE);
+ }
+ }
+ close(s);
+ return (TRUE);
+}
+//_____________________________________________________________________________________________________________
+// Función: WakeUp
+//
+// Descripción:
+// Enciende el ordenador cuya MAC se pasa como parámetro
+// Parámetros:
+// - s : Socket para enviar trama magic packet
+// - mac : Cadena con la dirección mac en formato XXXXXXXXXXXX
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//_____________________________________________________________________________________________________________
+BOOLEAN WakeUp(SOCKET *s, char *mac) {
+ int i, res;
+ char HDaddress_bin[6];
+ struct {
+ BYTE secuencia_FF[6];
+ char macbin[16][6];
+ } Trama_WakeUp;
+ sockaddr_in WakeUpCliente;
+ char modulo[] = "WakeUp()";
+
+ for (i = 0; i < 6; i++) // Primera secuencia de la trama Wake Up (0xFFFFFFFFFFFF)
+ Trama_WakeUp.secuencia_FF[i] = 0xFF;
+
+ PasaHexBin(mac, HDaddress_bin); // Pasa a binario la MAC
+
+ for (i = 0; i < 16; i++) // Segunda secuencia de la trama Wake Up , repetir 16 veces su la MAC
+ memcpy(&Trama_WakeUp.macbin[i][0], &HDaddress_bin, 6);
+
+ /* 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
+
+ res = sendto(*s, (char *) &Trama_WakeUp, sizeof(Trama_WakeUp), 0,
+ (sockaddr *) &WakeUpCliente, sizeof(WakeUpCliente));
+ if (res == SOCKET_ERROR) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+//_____________________________________________________________________________________________________________
+// Función: PasaHexBin
+//
+// Descripción:
+// Convierte a binario una dirección mac desde una cadena con formato XXXXXXXXXXXX
+//
+// Parámetros de entrada:
+// - cadena : Cadena con el contenido de la mac
+// - numero : la dirección mac convertida a binario (6 bytes)
+//_____________________________________________________________________________________________________________
+void PasaHexBin(char *cadena, char *numero) {
+ int i, j, p;
+ char matrizHex[] = "0123456789ABCDEF";
+ char Ucadena[12], aux;
+
+ for (i = 0; i < 12; i++)
+ Ucadena[i] = toupper(cadena[i]);
+ p = 0;
+ for (i = 0; i < 12; i++) {
+ for (j = 0; j < 16; j++) {
+ if (Ucadena[i] == matrizHex[j]) {
+ if (i % 2) {
+ aux = numero[p];
+ aux = (aux << 4);
+ numero[p] = j;
+ numero[p] = numero[p] | aux;
+ p++;
+ } else
+ numero[p] = j;
+ break;
+ }
+ }
+ }
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_Arrancar
+//
+// Descripción:
+// Respuesta del cliente al comando Apagar
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_Arrancar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ int i;
+ char *iph, *ido;
+ char *tpc;
+ char modulo[] = "RESPUESTA_Arrancar()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ tpc = copiaParametro("tpc",ptrTrama); // Tipo de cliente (Plataforma y S.O.)
+ if (clienteExistente(iph, &i)) // Actualiza estado
+ strcpy(tbsockets[i].estado, tpc);
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Comando
+//
+// Descripción:
+// Procesa un comando personalizado
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Comando(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Comando()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_Comando
+//
+// Descripción:
+// Respuesta del cliente al un comando personalizado
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_Comando(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido;
+ char modulo[] = "RESPUESTA_Comando()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Apagar
+//
+// Descripción:
+// Procesa el comando Apagar
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Apagar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Apagar()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_Apagar
+//
+// Descripción:
+// Respuesta del cliente al comando Apagar
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_Apagar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ int i;
+ char *iph, *ido;
+ char modulo[] = "RESPUESTA_Apagar()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ if (clienteExistente(iph, &i)) // Actualiza estado
+ strcpy(tbsockets[i].estado, CLIENTE_APAGADO);
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Reiniciar
+//
+// Descripción:
+// Procesa el comando Reiniciar
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Reiniciar()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_Reiniciar
+//
+// Descripción:
+// Respuesta del cliente al comando Reiniciar
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_Reiniciar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ int i;
+ char *iph, *ido;
+ char modulo[] = "RESPUESTA_Reiniciar()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ if (clienteExistente(iph, &i)) // Actualiza estado
+ strcpy(tbsockets[i].estado, CLIENTE_APAGADO);
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: IniciarSesion
+//
+// Descripción:
+// Procesa el comando Iniciar Sesión
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "IniciarSesion()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_IniciarSesion
+//
+// Descripción:
+// Respuesta del cliente al comando Iniciar Sesión
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_IniciarSesion(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ int i;
+ char *iph, *ido;
+ char modulo[] = "RESPUESTA_IniciarSesion()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ if (clienteExistente(iph, &i)) // Actualiza estado
+ strcpy(tbsockets[i].estado, CLIENTE_APAGADO);
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: CrearImagen
+//
+// Descripción:
+// Crea una imagen de una partición de un disco y la guarda o bien en un repositorio
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "CrearImagen()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_CrearImagen
+//
+// Descripción:
+// Respuesta del cliente al comando CrearImagen
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_CrearImagen(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *par, *cpt, *ipr, *ido;
+ char *idi;
+ char modulo[] = "RESPUESTA_CrearImagen()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ // Acciones posteriores
+ idi = copiaParametro("idi",ptrTrama);
+ par = copiaParametro("par",ptrTrama);
+ cpt = copiaParametro("cpt",ptrTrama);
+ ipr = copiaParametro("ipr",ptrTrama);
+
+ if (!actualizaCreacionImagen(db, tbl, idi, par, cpt, ipr, ido)) {
+ errorLog(modulo, 53, FALSE);
+ db.Close(); // Cierra conexión
+ return (FALSE);
+ }
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: actualizaCreacionImagen
+//
+// Descripción:
+// Esta función actualiza la base de datos con el resultado de la creación de una imagen
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - idi: Identificador de la imagen
+// - par: Partición de donde se creó
+// - cpt: Código de partición
+// - ipr: Ip del repositorio
+// - ido: Identificador del ordenador modelo
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN actualizaCreacionImagen(Database db, Table tbl, char* idi, char* par,
+ char* cpt, char* ipr, char *ido) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ char modulo[] = "actualizaCreacionImagen()";
+ int idr,ifs;
+
+ /* Toma identificador del repositorio */
+ sprintf(sqlstr, "SELECT idrepositorio FROM repositorios WHERE ip='%s'", ipr);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idrepositorio", idr)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ /* Toma identificador del perfilsoftware */
+ sprintf(sqlstr, "SELECT idperfilsoft FROM ordenadores_particiones WHERE idordenador=%s AND numpar=%s", ido,par);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idperfilsoft", ifs)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ /* Actualizar los datos de la imagen */
+ sprintf(sqlstr,
+ "UPDATE imagenes SET numpar=%s,codpar=%s,idperfilsoft=%d,idrepositorio='%d'"
+ " WHERE idimagen=%s", par, cpt, ifs, idr, idi);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RestaurarImagen
+//
+// Descripción:
+// Restaura una imagen en una partición
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "RestaurarImagen()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_RestaurarImagen
+//
+// Descripción:
+// Respuesta del cliente al comando RestaurarImagen
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido, *idi, *par, *ifs;
+ char modulo[] = "RESPUESTA_RestaurarImagen()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ // Acciones posteriores
+ idi = copiaParametro("idi",ptrTrama); // Toma identificador de la imagen
+ par = copiaParametro("par",ptrTrama); // Número de partición
+ ifs = copiaParametro("ifs",ptrTrama); // Identificador del perfil software contenido
+ if (!actualizaRestauracionImagen(db, tbl, idi, par, ido, ifs)) {
+ errorLog(modulo, 53, FALSE);
+ db.Close(); // Cierra conexión
+ return (FALSE);
+ }
+
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: actualizaRestauracionImagen
+//
+// Descripción:
+// Esta función actualiza la base de datos con el resultado de la creación de una imagen
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - idi: Identificador de la imagen
+// - par: Partición de donde se restauró
+// - ido: Identificador del cliente donde se restauró
+// - ifs: Identificador del perfil software contenido en la imagen
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN actualizaRestauracionImagen(Database db, Table tbl, char* idi,
+ char* par, char* ido, char* ifs) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ char modulo[] = "actualizaRestauracionImagen()";
+
+ /* Actualizar los datos de la imagen */
+ sprintf(sqlstr,
+ "UPDATE ordenadores_particiones SET idimagen=%s,idperfilsoft=%s"
+ " WHERE idordenador=%s AND numpar=%s", idi, ifs, ido, par);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al recuperar los datos
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: Configurar
+//
+// Descripción:
+// Configura la tabla de particiones
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN Configurar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "Configurar()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_Configurar
+//
+// Descripción:
+// Respuesta del cliente al comando Configurar
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_Configurar(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido,*cfg;
+ char modulo[] = "RESPUESTA_Configurar()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ cfg = copiaParametro("cfg",ptrTrama); // Toma configuración de particiones
+ if(!actualizaConfiguracion(db, tbl, cfg, atoi(ido))){ // Actualiza la configuración del ordenador
+ errorLog(modulo, 24, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: EjecutarScript
+//
+// Descripción:
+// Ejecuta un script de código
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "EjecutarScript()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_EjecutarScript
+//
+// Descripción:
+// Respuesta del cliente al comando EjecutarScript
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_EjecutarScript(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido;
+
+ char modulo[] = "RESPUESTA_EjecutarScript()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+
+ // Acciones posteriores
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: InventarioHardware
+//
+// Descripción:
+// Solicita al cliente un inventario de su hardware
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "InventarioHardware()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_InventarioHardware
+//
+// Descripción:
+// Respuesta del cliente al comando InventarioHardware
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_InventarioHardware(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido, *idc, *npc, *hrd, *buffer;
+ char modulo[] = "RESPUESTA_InventarioHardware()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip del cliente
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del cliente
+ npc = copiaParametro("npc",ptrTrama); // Toma Nombre del cliente
+ idc = copiaParametro("idc",ptrTrama); // Toma identificador del Centro
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+ // Lee archivo de inventario enviado anteriormente
+ hrd = copiaParametro("hrd",ptrTrama);
+ buffer = rTrim(leeArchivo(hrd));
+
+ if (buffer) {
+ if (!actualizaHardware(db, tbl, buffer, ido, npc, idc)) {
+ errorLog(modulo, 53, FALSE);
+ return (FALSE);
+ }
+ }
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: actualizaHardware
+//
+// Descripción:
+// Actualiza la base de datos con la configuracion hardware del cliente
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - hrd: cadena con el inventario hardware
+// - ido: Identificador del ordenador
+// - npc: Nombre del ordenador
+// - idc: Identificador del centro o Unidad organizativa
+// ________________________________________________________________________________________________________
+BOOLEAN actualizaHardware(Database db, Table tbl, char* hrd, char*ido,
+ char* npc, char *idc) {
+ char msglog[LONSTD], sqlstr[LONSQL];
+ int idtipohardware, idperfilhard;
+ int lon, i, j, aux;
+ char *tbHardware[MAXHARDWARE];
+ int tbidhardware[MAXHARDWARE];
+ char *dualHardware[2], descripcion[250], strInt[LONINT], *idhardwares;
+ char modulo[] = "actualizaHardware()";
+
+ /* Toma Centro (Unidad Organizativa) */
+ sprintf(sqlstr, "SELECT * FROM ordenadores WHERE idordenador=%s", ido);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idperfilhard", idperfilhard)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ hrd=escaparCadena(hrd); // Codificar comillas simples
+ if(!hrd)
+ return (FALSE);
+ /* Recorre componentes hardware*/
+ lon = splitCadena(tbHardware, hrd, '\n');
+ if (lon > MAXHARDWARE)
+ lon = MAXHARDWARE; // Limita el número de componentes hardware
+ /*
+ for (i=0;i<lon;i++){
+ sprintf(msglog,"Linea de inventario: %s",tbHardware[i]);
+ RegistraLog(msglog,FALSE);
+ }
+ */
+ for (i = 0; i < lon; i++) {
+ splitCadena(dualHardware, rTrim(tbHardware[i]), '=');
+ //sprintf(msglog,"nemonico: %s",dualHardware[0]);
+ //RegistraLog(msglog,FALSE);
+ //sprintf(msglog,"valor: %s",dualHardware[1]);
+ //RegistraLog(msglog,FALSE);
+ sprintf(sqlstr, "SELECT idtipohardware,descripcion FROM tipohardwares "
+ " WHERE nemonico='%s'", dualHardware[0]);
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (tbl.ISEOF()) { // Tipo de Hardware NO existente
+ sprintf(msglog, "%s: %s)", tbErrores[54], dualHardware[0]);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ } else { // Tipo de Hardware Existe
+ if (!tbl.Get("idtipohardware", idtipohardware)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("descripcion", descripcion)) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ sprintf(sqlstr, "SELECT idhardware FROM hardwares "
+ " WHERE idtipohardware=%d AND descripcion='%s'",
+ idtipohardware, dualHardware[1]);
+
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if (tbl.ISEOF()) { // Hardware NO existente
+ sprintf(sqlstr,
+ "INSERT hardwares (idtipohardware,descripcion,idcentro,grupoid) "
+ " VALUES(%d,'%s',%s,0)", idtipohardware,
+ dualHardware[1], idc);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ // Recupera el identificador del hardware
+ sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador");
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.ISEOF()) { // Si existe registro
+ if (!tbl.Get("identificador", tbidhardware[i])) {
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ } else {
+ if (!tbl.Get("idhardware", tbidhardware[i])) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ }
+ }
+ // Ordena tabla de identificadores para cosultar si existe un pefil con esas especificaciones
+
+ for (i = 0; i < lon - 1; i++) {
+ for (j = i + 1; j < lon; j++) {
+ if (tbidhardware[i] > tbidhardware[j]) {
+ aux = tbidhardware[i];
+ tbidhardware[i] = tbidhardware[j];
+ tbidhardware[j] = aux;
+ }
+ }
+ }
+ /* Crea cadena de identificadores de componentes hardware separados por coma */
+ sprintf(strInt, "%d", tbidhardware[lon - 1]); // Pasa a cadena el último identificador que es de mayor longitud
+ aux = strlen(strInt); // Calcula longitud de cadena para reservar espacio a todos los perfiles
+ idhardwares = reservaMemoria(sizeof(aux) * lon + lon);
+ if (idhardwares == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ aux = sprintf(idhardwares, "%d", tbidhardware[0]);
+ for (i = 1; i < lon; i++)
+ aux += sprintf(idhardwares + aux, ",%d", tbidhardware[i]);
+
+ if (!cuestionPerfilHardware(db, tbl, idc, ido, idperfilhard, idhardwares,
+ npc, tbidhardware, lon)) {
+ errorLog(modulo, 55, FALSE);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: cuestionPerfilHardware
+//
+// Descripción:
+// Comprueba existencia de perfil hardware y actualización de éste para el ordenador
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - idc: Identificador de la Unidad organizativa donde se encuentra el cliente
+// - ido: Identificador del ordenador
+// - tbidhardware: Identificador del tipo de hardware
+// - con: Número de componentes detectados para configurar un el perfil hardware
+// - npc: Nombre del cliente
+// ________________________________________________________________________________________________________
+BOOLEAN cuestionPerfilHardware(Database db, Table tbl, char* idc, char* ido,
+ int idperfilhardware, char*idhardwares, char *npc, int *tbidhardware,
+ int lon)
+{
+ char msglog[LONSTD], *sqlstr;
+ int i;
+ int nwidperfilhard;
+ char modulo[] = "cuestionPerfilHardware()";
+
+ sqlstr = reservaMemoria(strlen(idhardwares)+LONSQL); // Reserva para escribir sentencia SQL
+ if (sqlstr == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ // Busca perfil hard del ordenador que contenga todos los componentes hardware encontrados
+ sprintf(sqlstr, "SELECT idperfilhard FROM"
+ " (SELECT perfileshard_hardwares.idperfilhard as idperfilhard,"
+ " group_concat(cast(perfileshard_hardwares.idhardware AS char( 11) )"
+ " ORDER BY perfileshard_hardwares.idhardware SEPARATOR ',' ) AS idhardwares"
+ " FROM perfileshard_hardwares"
+ " GROUP BY perfileshard_hardwares.idperfilhard) AS temp"
+ " WHERE idhardwares LIKE '%s'", idhardwares);
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ if (tbl.ISEOF()) { // No existe un perfil hardware con esos componentes de componentes hardware, lo crea
+ sprintf(sqlstr, "INSERT perfileshard (descripcion,idcentro,grupoid)"
+ " VALUES('Perfil hardware (%s) ',%s,0)", npc, idc);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ // Recupera el identificador del nuevo perfil hardware
+ sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador");
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ if (!tbl.ISEOF()) { // Si existe registro
+ if (!tbl.Get("identificador", nwidperfilhard)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ // Crea la relación entre perfiles y componenetes hardware
+ for (i = 0; i < lon; i++) {
+ sprintf(sqlstr,
+ "INSERT perfileshard_hardwares (idperfilhard,idhardware)"
+ " VALUES(%d,%d)", nwidperfilhard, tbidhardware[i]);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ } else { // Existe un perfil con todos esos componentes
+ if (!tbl.Get("idperfilhard", nwidperfilhard)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ if (idperfilhardware != nwidperfilhard) { // No coinciden los perfiles
+ // Actualiza el identificador del perfil hardware del ordenador
+ sprintf(sqlstr, "UPDATE ordenadores SET idperfilhard=%d"
+ " WHERE idordenador=%s", nwidperfilhard, ido);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ /* Eliminar Relación de hardwares con Perfiles hardware que quedan húerfanos */
+ sprintf(sqlstr, "DELETE FROM perfileshard_hardwares WHERE idperfilhard IN "
+ " (SELECT idperfilhard FROM perfileshard WHERE idperfilhard NOT IN"
+ " (SELECT DISTINCT idperfilhard from ordenadores))");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+
+ /* Eliminar Perfiles hardware que quedan húerfanos */
+ sprintf(sqlstr, "DELETE FROM perfileshard WHERE idperfilhard NOT IN"
+ " (SELECT DISTINCT idperfilhard from ordenadores)");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ /* Eliminar Relación de hardwares con Perfiles hardware que quedan húerfanos */
+ sprintf(sqlstr,
+ "DELETE FROM perfileshard_hardwares WHERE idperfilhard NOT IN"
+ " (SELECT idperfilhard from perfileshard)");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: InventarioSoftware
+//
+// Descripción:
+// Solicita al cliente un inventario de su software
+// Parámetros:
+// - socket_c: Socket de la consola al envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ char modulo[] = "InventarioSoftware()";
+
+ if (!enviaComando(ptrTrama, CLIENTE_OCUPADO)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ respuestaConsola(socket_c, ptrTrama, FALSE);
+ return (FALSE);
+ }
+ respuestaConsola(socket_c, ptrTrama, TRUE);
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: RESPUESTA_InventarioSoftware
+//
+// Descripción:
+// Respuesta del cliente al comando InventarioSoftware
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN RESPUESTA_InventarioSoftware(SOCKET *socket_c, TRAMA* ptrTrama) {
+ char msglog[LONSTD];
+ Database db;
+ Table tbl;
+ char *iph, *ido, *npc, *idc, *par, *sft, *buffer;
+ char modulo[] = "RESPUESTA_InventarioSoftware()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ iph = copiaParametro("iph",ptrTrama); // Toma dirección ip
+ ido = copiaParametro("ido",ptrTrama); // Toma identificador del ordenador
+ npc = copiaParametro("npc",ptrTrama); // Toma Nombre del cliente
+ idc = copiaParametro("idc",ptrTrama); // Toma identificador del Centro
+
+ if (!respuestaEstandar(ptrTrama, iph, ido, db, tbl)) {
+ errorLog(modulo, 30, FALSE);
+ return (FALSE); // Error al registrar notificacion
+ }
+ par = copiaParametro("par",ptrTrama);
+ // Lee archivo de inventario enviado anteriormente
+ sft = copiaParametro("sft",ptrTrama);
+
+ buffer = rTrim(leeArchivo(sft));
+ if (buffer) {
+ if (!actualizaSoftware(db, tbl, buffer, par, ido, npc, idc)) {
+ errorLog(modulo, 82, FALSE);
+ return (FALSE);
+ }
+ }
+ db.Close(); // Cierra conexión
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: actualizaSoftware
+//
+// Descripción:
+// Actualiza la base de datos con la configuración software del cliente
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - sft: cadena con el inventario software
+// - par: Número de la partición
+// - ido: Identificador del ordenador del cliente en la tabla
+// - npc: Nombre del ordenador
+// - idc: Identificador del centro o Unidad organizativa
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN actualizaSoftware(Database db, Table tbl, char* sft, char* par,
+ char* ido, char* npc, char* idc) {
+ int i, j, lon, aux, idperfilsoft;
+ char *tbSoftware[MAXSOFTWARE];
+ int tbidsoftware[MAXSOFTWARE];
+ char msglog[LONSTD], sqlstr[LONSQL], strInt[LONINT], *idsoftwares;
+ char modulo[] = "actualizaSoftware()";
+
+ /* Toma Centro (Unidad Organizativa) y perfil software */
+ sprintf(sqlstr, "SELECT idperfilsoft,numpar"
+ " FROM ordenadores_particiones"
+ " WHERE idordenador=%s", ido);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ idperfilsoft = 0; // Por defecto se supone que el ordenador no tiene aún detectado el perfil software
+ while (!tbl.ISEOF()) { // Recorre particiones
+ if (!tbl.Get("numpar", aux)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (aux == atoi(par)) { // Se encuentra la partición
+ if (!tbl.Get("idperfilsoft", idperfilsoft)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ break;
+ }
+ tbl.MoveNext();
+ }
+ sft=escaparCadena(sft); // Codificar comillas simples
+ if(!sft)
+ return (FALSE);
+
+ /* Recorre componentes software*/
+ lon = splitCadena(tbSoftware, sft, '\n');
+ if (lon == 0)
+ return (true); // No hay lineas que procesar
+ if (lon > MAXSOFTWARE)
+ lon = MAXSOFTWARE; // Limita el número de componentes software
+
+ for (i = 0; i < lon; i++) {
+ sprintf(sqlstr,
+ "SELECT idsoftware FROM softwares WHERE descripcion ='%s'",
+ rTrim(tbSoftware[i]));
+
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ if (tbl.ISEOF()) { // Software NO existente
+ sprintf(sqlstr,
+ "INSERT INTO softwares (idtiposoftware,descripcion,idcentro,grupoid)"
+ " VALUES(2,'%s',%s,0)", tbSoftware[i], idc);
+
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ // Recupera el identificador del software
+ sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador");
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ db.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.ISEOF()) { // Si existe registro
+ if (!tbl.Get("identificador", tbidsoftware[i])) {
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ } else {
+ if (!tbl.Get("idsoftware", tbidsoftware[i])) { // Toma dato
+ tbl.GetErrorErrStr(msglog); // Error al acceder al registro
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ }
+
+ // Ordena tabla de identificadores para cosultar si existe un pefil con esas especificaciones
+
+ for (i = 0; i < lon - 1; i++) {
+ for (j = i + 1; j < lon; j++) {
+ if (tbidsoftware[i] > tbidsoftware[j]) {
+ aux = tbidsoftware[i];
+ tbidsoftware[i] = tbidsoftware[j];
+ tbidsoftware[j] = aux;
+ }
+ }
+ }
+ /* Crea cadena de identificadores de componentes software separados por coma */
+ sprintf(strInt, "%d", tbidsoftware[lon - 1]); // Pasa a cadena el último identificador que es de mayor longitud
+ aux = strlen(strInt); // Calcula longitud de cadena para reservar espacio a todos los perfiles
+ idsoftwares = reservaMemoria((sizeof(aux)+1) * lon + lon);
+ if (idsoftwares == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ aux = sprintf(idsoftwares, "%d", tbidsoftware[0]);
+ for (i = 1; i < lon; i++)
+ aux += sprintf(idsoftwares + aux, ",%d", tbidsoftware[i]);
+
+ // Comprueba existencia de perfil software y actualización de éste para el ordenador
+ if (!cuestionPerfilSoftware(db, tbl, idc, ido, idperfilsoft, idsoftwares,
+ npc, par, tbidsoftware, lon)) {
+ errorLog(modulo, 83, FALSE);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: CuestionPerfilSoftware
+//
+// Parámetros:
+// - db: Objeto base de datos (ya operativo)
+// - tbl: Objeto tabla
+// - idcentro: Identificador del centro en la tabla
+// - ido: Identificador del ordenador del cliente en la tabla
+// - idsoftwares: Cadena con los identificadores de componentes software separados por comas
+// - npc: Nombre del ordenador del cliente
+// - particion: Número de la partición
+// - tbidsoftware: Array con los identificadores de componentes software
+// - lon: Número de componentes
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+//________________________________________________________________________________________________________/
+BOOLEAN cuestionPerfilSoftware(Database db, Table tbl, char* idc, char* ido,
+ int idperfilsoftware, char *idsoftwares, char *npc, char *par,
+ int *tbidsoftware, int lon) {
+ char *sqlstr, msglog[LONSTD];
+ int i, nwidperfilsoft;
+ char modulo[] = "cuestionPerfilSoftware()";
+
+ sqlstr = reservaMemoria(strlen(idsoftwares)+LONSQL); // Reserva para escribir sentencia SQL
+ if (sqlstr == NULL) {
+ errorLog(modulo, 3, FALSE);
+ return (FALSE);
+ }
+ // Busca perfil soft del ordenador que contenga todos los componentes software encontrados
+ sprintf(sqlstr, "SELECT idperfilsoft FROM"
+ " (SELECT perfilessoft_softwares.idperfilsoft as idperfilsoft,"
+ " group_concat(cast(perfilessoft_softwares.idsoftware AS char( 11) )"
+ " ORDER BY perfilessoft_softwares.idsoftware SEPARATOR ',' ) AS idsoftwares"
+ " FROM perfilessoft_softwares"
+ " GROUP BY perfilessoft_softwares.idperfilsoft) AS temp"
+ " WHERE idsoftwares LIKE '%s'", idsoftwares);
+ // Ejecuta consulta
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ if (tbl.ISEOF()) { // No existe un perfil software con esos componentes de componentes software, lo crea
+ sprintf(sqlstr, "INSERT perfilessoft (descripcion,idcentro,grupoid)"
+ " VALUES('Perfil Software (%s, Part:%s) ',%s,0)", npc, par, idc);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ // Recupera el identificador del nuevo perfil software
+ sprintf(sqlstr, "SELECT LAST_INSERT_ID() as identificador");
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ if (!tbl.ISEOF()) { // Si existe registro
+ if (!tbl.Get("identificador", nwidperfilsoft)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ // Crea la relación entre perfiles y componenetes software
+ for (i = 0; i < lon; i++) {
+ sprintf(sqlstr,
+ "INSERT perfilessoft_softwares (idperfilsoft,idsoftware)"
+ " VALUES(%d,%d)", nwidperfilsoft, tbidsoftware[i]);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+ } else { // Existe un perfil con todos esos componentes
+ if (!tbl.Get("idperfilsoft", nwidperfilsoft)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+
+ if (idperfilsoftware != nwidperfilsoft) { // No coinciden los perfiles
+ // Actualiza el identificador del perfil software del ordenador
+ sprintf(sqlstr,
+ "UPDATE ordenadores_particiones SET idperfilsoft=%d,idimagen=0"
+ " WHERE idordenador=%s AND numpar=%s", nwidperfilsoft, ido,
+ par);
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ }
+
+ /* DEPURACIÓN DE PERFILES SOFTWARE */
+
+ /* Eliminar Relación de softwares con Perfiles software que quedan húerfanos */
+ sprintf(sqlstr, "DELETE FROM perfilessoft_softwares WHERE idperfilsoft IN "\
+ " (SELECT idperfilsoft FROM perfilessoft WHERE idperfilsoft NOT IN"\
+ " (SELECT DISTINCT idperfilsoft from ordenadores_particiones) AND idperfilsoft NOT IN"\
+ " (SELECT DISTINCT idperfilsoft from imagenes))");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ /* Eliminar Perfiles software que quedan húerfanos */
+ sprintf(sqlstr, "DELETE FROM perfilessoft WHERE idperfilsoft NOT IN"
+ " (SELECT DISTINCT idperfilsoft from ordenadores_particiones)"\
+ " AND idperfilsoft NOT IN"\
+ " (SELECT DISTINCT idperfilsoft from imagenes)");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ /* Eliminar Relación de softwares con Perfiles software que quedan húerfanos */
+ sprintf(sqlstr,
+ "DELETE FROM perfilessoft_softwares WHERE idperfilsoft NOT IN"
+ " (SELECT idperfilsoft from perfilessoft)");
+ if (!db.Execute(sqlstr, tbl)) { // Error al insertar
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (false);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: enviaArchivo
+//
+// Descripción:
+// Envia un archivo por la red, por bloques
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN enviaArchivo(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char *nfl;
+ char modulo[] = "enviaArchivo()";
+
+ // Toma parámetros
+ nfl = copiaParametro("nfl",ptrTrama); // Toma nombre completo del archivo
+ if (!sendArchivo(socket_c, nfl)) {
+ errorLog(modulo, 57, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: enviaArchivo
+//
+// Descripción:
+// Envia un archivo por la red, por bloques
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN recibeArchivo(SOCKET *socket_c, TRAMA *ptrTrama) {
+ char *nfl;
+ char modulo[] = "recibeArchivo()";
+
+ // Toma parámetros
+ nfl = copiaParametro("nfl",ptrTrama); // Toma nombre completo del archivo
+ ptrTrama->tipo = MSG_NOTIFICACION;
+ enviaFlag(socket_c, ptrTrama);
+ if (!recArchivo(socket_c, nfl)) {
+ errorLog(modulo, 58, FALSE);
+ return (FALSE);
+ }
+ return (TRUE);
+}
+// ________________________________________________________________________________________________________
+// Función: envioProgramacion
+//
+// Descripción:
+// Envia un comando de actualización a todos los ordenadores que han sido programados con
+// alguna acción para que entren en el bucle de comandos pendientes y las ejecuten
+// Parámetros:
+// - socket_c: Socket del cliente que envió el mensaje
+// - ptrTrama: Trama recibida por el servidor con el contenido y los parámetros
+// Devuelve:
+// TRUE: Si el proceso es correcto
+// FALSE: En caso de ocurrir algún error
+// ________________________________________________________________________________________________________
+BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama)
+{
+ char sqlstr[LONSQL], msglog[LONSTD];
+ char *idp,iph[LONIP],mac[LONMAC];
+ Database db;
+ Table tbl;
+ int idx,idcomando;
+ char modulo[] = "envioProgramacion()";
+
+ if (!db.Open(usuario, pasguor, datasource, catalog)) { // Error de conexion
+ errorLog(modulo, 20, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+
+ idp = copiaParametro("idp",ptrTrama); // Toma identificador de laprogramación de la tabla acciones
+
+ sprintf(sqlstr, "SELECT ordenadores.ip,ordenadores.mac,acciones.idcomando FROM acciones "\
+ " INNER JOIN ordenadores ON ordenadores.ip=acciones.ip"\
+ " WHERE acciones.idprogramacion=%s",idp);
+ if (!db.Execute(sqlstr, tbl)) { // Error al leer
+ errorLog(modulo, 21, FALSE);
+ db.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(tbl.ISEOF())
+ return (TRUE); // No existen registros
+
+ /* Prepara la trama de actualizacion */
+
+ initParametros(ptrTrama,0);
+ ptrTrama->tipo=MSG_COMANDO;
+ sprintf(ptrTrama->parametros, "nfn=Actualizar\r");
+
+ while (!tbl.ISEOF()) { // Recorre particiones
+ if (!tbl.Get("ip", iph)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!tbl.Get("idcomando", idcomando)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if(idcomando==1){ // Arrancar
+ if (!tbl.Get("mac", mac)) {
+ tbl.GetErrorErrStr(msglog);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ if (!Levanta(mac)) {
+ sprintf(msglog, "%s:%s", tbErrores[32], modulo);
+ errorInfo(modulo, msglog);
+ return (FALSE);
+ }
+ }
+ if (clienteDisponible(iph, &idx)) { // Si el cliente puede recibir comandos
+ strcpy(tbsockets[idx].estado, CLIENTE_OCUPADO); // Actualiza el estado del cliente
+ if (!mandaTrama(&tbsockets[idx].sock, ptrTrama)) {
+ errorLog(modulo, 26, FALSE);
+ return (FALSE);
+ }
+ close(tbsockets[idx].sock); // Cierra el socket del cliente hasta nueva disponibilidad
+ }
+ tbl.MoveNext();
+ }
+ return (TRUE); // No existen registros
+}
+
+// ********************************************************************************************************
+// PROGRAMA PRINCIPAL (SERVICIO)
+// ********************************************************************************************************
+int main(int argc, char *argv[]) {
+ int i;
+ SOCKET socket_s; // Socket donde escucha el servidor
+ SOCKET socket_c; // Socket de los clientes que se conectan
+ socklen_t iAddrSize;
+ struct sockaddr_in local, cliente;
+ char modulo[] = "main()";
+
+ /*--------------------------------------------------------------------------------------------------------
+ Validación de parámetros de ejecución y lectura del fichero de configuración del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ if (!validacionParametros(argc, argv, 1)) // Valida parámetros de ejecución
+ exit(EXIT_FAILURE);
+
+ if (!tomaConfiguracion(szPathFileCfg)) { // Toma parametros de configuracion
+ exit(EXIT_FAILURE);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Carga del catálogo de funciones que procesan las tramas (referencia directa por puntero a función)
+ ---------------------------------------------------------------------------------------------------------*/
+ int cf = 0;
+
+ strcpy(tbfuncionesServer[cf].nf, "Sondeo");
+ tbfuncionesServer[cf++].fptr = &Sondeo;
+ strcpy(tbfuncionesServer[cf].nf, "respuestaSondeo");
+ tbfuncionesServer[cf++].fptr = &respuestaSondeo;
+
+ strcpy(tbfuncionesServer[cf].nf, "ConsolaRemota");
+ tbfuncionesServer[cf++].fptr = &ConsolaRemota;
+
+ strcpy(tbfuncionesServer[cf].nf, "EcoConsola");
+ tbfuncionesServer[cf++].fptr = &EcoConsola;
+
+ strcpy(tbfuncionesServer[cf].nf, "Actualizar");
+ tbfuncionesServer[cf++].fptr = &Actualizar;
+
+ strcpy(tbfuncionesServer[cf].nf, "Purgar");
+ tbfuncionesServer[cf++].fptr = &Purgar;
+
+ strcpy(tbfuncionesServer[cf].nf, "InclusionCliente");
+ tbfuncionesServer[cf++].fptr = &InclusionCliente;
+
+ strcpy(tbfuncionesServer[cf].nf, "AutoexecCliente");
+ tbfuncionesServer[cf++].fptr = &AutoexecCliente;
+
+ strcpy(tbfuncionesServer[cf].nf, "ComandosPendientes");
+ tbfuncionesServer[cf++].fptr = &ComandosPendientes;
+
+ strcpy(tbfuncionesServer[cf].nf, "DisponibilidadComandos");
+ tbfuncionesServer[cf++].fptr = &DisponibilidadComandos;
+
+ strcpy(tbfuncionesServer[cf].nf, "Arrancar");
+ tbfuncionesServer[cf++].fptr = &Arrancar;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Arrancar");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_Arrancar;
+
+ strcpy(tbfuncionesServer[cf].nf, "Apagar");
+ tbfuncionesServer[cf++].fptr = &Apagar;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Apagar");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_Apagar;
+
+ strcpy(tbfuncionesServer[cf].nf, "Reiniciar");
+ tbfuncionesServer[cf++].fptr = &Reiniciar;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Reiniciar");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_Reiniciar;
+
+ strcpy(tbfuncionesServer[cf].nf, "IniciarSesion");
+ tbfuncionesServer[cf++].fptr = &IniciarSesion;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_IniciarSesion");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_IniciarSesion;
+
+ strcpy(tbfuncionesServer[cf].nf, "CrearImagen");
+ tbfuncionesServer[cf++].fptr = &CrearImagen;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_CrearImagen");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_CrearImagen;
+
+ strcpy(tbfuncionesServer[cf].nf, "RestaurarImagen");
+ tbfuncionesServer[cf++].fptr = &RestaurarImagen;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_RestaurarImagen");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_RestaurarImagen;
+
+ strcpy(tbfuncionesServer[cf].nf, "Configurar");
+ tbfuncionesServer[cf++].fptr = &Configurar;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_Configurar");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_Configurar;
+
+ strcpy(tbfuncionesServer[cf].nf, "EjecutarScript");
+ tbfuncionesServer[cf++].fptr = &EjecutarScript;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_EjecutarScript");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_EjecutarScript;
+
+ strcpy(tbfuncionesServer[cf].nf, "InventarioHardware");
+ tbfuncionesServer[cf++].fptr = &InventarioHardware;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_InventarioHardware");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_InventarioHardware;
+
+ strcpy(tbfuncionesServer[cf].nf, "InventarioSoftware");
+ tbfuncionesServer[cf++].fptr = &InventarioSoftware;
+ strcpy(tbfuncionesServer[cf].nf, "RESPUESTA_InventarioSoftware");
+ tbfuncionesServer[cf++].fptr = &RESPUESTA_InventarioSoftware;
+
+ strcpy(tbfuncionesServer[cf].nf, "enviaArchivo");
+ tbfuncionesServer[cf++].fptr = &enviaArchivo;
+
+ strcpy(tbfuncionesServer[cf].nf, "recibeArchivo");
+ tbfuncionesServer[cf++].fptr = &recibeArchivo;
+
+ strcpy(tbfuncionesServer[cf].nf, "envioProgramacion");
+ tbfuncionesServer[cf++].fptr = &envioProgramacion;
+
+ /*--------------------------------------------------------------------------------------------------------
+ // Inicializa array de información de los clientes
+ ---------------------------------------------------------------------------------------------------------*/
+ for (i = 0; i < MAXIMOS_CLIENTES; i++) {
+ tbsockets[i].ip[0] = '\0';
+ tbsockets[i].sock = INVALID_SOCKET;
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Creación y configuración del socket del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ socket_s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // Crea socket del servicio
+ if (socket_s == SOCKET_ERROR) { // Error al crear el socket del servicio
+ errorLog(modulo, 13, TRUE);
+ exit(EXIT_FAILURE);
+ }
+
+ local.sin_addr.s_addr = htonl(INADDR_ANY); // Configura el socket del servicio
+ local.sin_family = AF_INET;
+ local.sin_port = htons(atoi(puerto));
+
+ if (bind(socket_s, (struct sockaddr *) &local, sizeof(local))
+ == SOCKET_ERROR) { // Enlaza socket
+ errorLog(modulo, 14, TRUE);
+ exit(EXIT_FAILURE);
+ }
+
+ listen(socket_s, 250); // Pone a escuchar al socket
+ iAddrSize = sizeof(cliente);
+ /*--------------------------------------------------------------------------------------------------------
+ Bucle para acceptar conexiones
+ ---------------------------------------------------------------------------------------------------------*/
+ infoLog(1); // Inicio de sesión
+ while (TRUE) {
+ socket_c = accept(socket_s, (struct sockaddr *) &cliente, &iAddrSize);
+ if (socket_c == INVALID_SOCKET) {
+ errorLog(modulo, 15, TRUE);
+ exit(EXIT_FAILURE);
+ }
+ swcSocket = FALSE; // Por defecto se cerrara el socket de cliente después del anális de la trama
+ if (!gestionaTrama(&socket_c)) {
+ errorLog(modulo, 39, TRUE);
+ //close(socket_c);
+ //break;
+ }
+ if (!swcSocket) // Sólo se cierra cuando el cliente NO espera comandos ineractivos
+ close(socket_c);
+ }
+ /*--------------------------------------------------------------------------------------------------------
+ Fin del servicio
+ ---------------------------------------------------------------------------------------------------------*/
+ close(socket_s);
+ exit(EXIT_SUCCESS);
+}
diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h
new file mode 100644
index 00000000..13a53570
--- /dev/null
+++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.h
@@ -0,0 +1,118 @@
+// ********************************************************************************************************
+// Servicio: ogAdmServer
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Marzo-2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ogAdmServer.h
+// Descripción: Este fichero implementa el servicio de administración general del sistema
+// ********************************************************************************************************
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <unistd.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include </usr/include/mysql/mysql.h>
+#include "Database.h"
+#include "ogAdmLib.h"
+// ________________________________________________________________________________________________________
+// Variables globales
+// ________________________________________________________________________________________________________
+char servidoradm[LONPRM]; // Dirección IP del servidor de administración
+char puerto[LONPRM]; // Puerto de comunicación
+char usuario[LONPRM]; // Usuario de acceso a la base de datos
+char pasguor[LONPRM]; // Password del usuario
+char datasource[LONPRM]; // Dirección IP del gestor de base de datos
+char catalog[LONPRM]; // Nombre de la base de datos
+char aulaup[LONPRM]; // Conmutador para registro automático de clientes
+
+typedef struct{ // Estructura usada para guardar información de los clientes
+ char ip[LONIP]; // IP del cliente
+ char estado[4]; // Tipo de Sistema Operativo en que se encuentra el cliente
+ SOCKET sock; // Socket por el que se comunica
+}SOCKETCL;
+SOCKETCL tbsockets[MAXIMOS_CLIENTES];
+
+BOOLEAN swcSocket; // Switch para indicar si se debe cerrar el socket del cliente
+
+typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas
+ char nf[LONFUN]; // Nombre de la función
+ BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama
+}MSGFUN;
+MSGFUN tbfuncionesServer[MAXIMAS_FUNCIONES];
+// ________________________________________________________________________________________________________
+// Prototipo de funciones
+// ________________________________________________________________________________________________________
+
+BOOLEAN tomaConfiguracion(char*);
+BOOLEAN gestionaTrama(SOCKET*);
+BOOLEAN Sondeo(SOCKET*,TRAMA*);
+BOOLEAN respuestaSondeo(SOCKET *,TRAMA*);
+BOOLEAN InclusionCliente(SOCKET*,TRAMA*);
+BOOLEAN registraCliente(char *);
+
+BOOLEAN procesoInclusionCliente(SOCKET*,TRAMA*);
+BOOLEAN clienteExistente(char *,int *);
+BOOLEAN clienteDisponible(char *,int *);
+BOOLEAN hayHueco(int *);
+BOOLEAN actualizaConfiguracion(Database , Table ,char* ,int);
+BOOLEAN AutoexecCliente(SOCKET *, TRAMA *);
+BOOLEAN recorreProcedimientos(Database ,char* ,FILE*,char*);
+
+BOOLEAN tomaRepositorio(Database ,Table ,char*,int*);
+BOOLEAN buscaComandos(char *,TRAMA *,int *);
+BOOLEAN DisponibilidadComandos(SOCKET*,TRAMA*);
+BOOLEAN respuestaEstandar(TRAMA *,char **,char **,char ** ,Database *,Table *);
+BOOLEAN respuestaConsola(SOCKET *,TRAMA *,int);
+BOOLEAN enviaComando(TRAMA *ptrTrama,const char*);
+
+BOOLEAN Actualizar(SOCKET *, TRAMA* );
+BOOLEAN Purgar(SOCKET *, TRAMA* );
+
+BOOLEAN ConsolaRemota(SOCKET *,TRAMA*);
+BOOLEAN RESPUESTA_ConsolaRemota(SOCKET *,TRAMA*);
+BOOLEAN EcoConsola(SOCKET *,TRAMA*);
+
+BOOLEAN Comando(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_Comando(SOCKET *,TRAMA *);
+
+BOOLEAN Arrancar(SOCKET *,TRAMA *);
+BOOLEAN Levanta(char*);
+BOOLEAN WakeUp(SOCKET *,char *);
+void PasaHexBin(char *,char *);
+BOOLEAN RESPUESTA_Arrancar(SOCKET *,TRAMA*);
+BOOLEAN Apagar(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_Apagar(SOCKET *,TRAMA *);
+BOOLEAN Reiniciar(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_Reiniciar(SOCKET *,TRAMA *);
+BOOLEAN IniciarSesion(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_IniciarSesion(SOCKET *,TRAMA *);
+BOOLEAN CrearImagen(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_CrearImagen(SOCKET *,TRAMA *);
+BOOLEAN actualizaCreacionImagen(Database,Table,char*,char*,char*,char*,char*);
+BOOLEAN RestaurarImagen(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_RestaurarImagen(SOCKET *,TRAMA *);
+BOOLEAN actualizaRestauracionImagen(Database,Table,char*,char*,char*,char*);
+BOOLEAN Configurar(SOCKET *,TRAMA* );
+BOOLEAN RESPUESTA_Configurar(SOCKET *,TRAMA* );
+BOOLEAN actualizaConfigurar(Database , Table , char* );
+BOOLEAN InventarioHardware(SOCKET *,TRAMA *);
+BOOLEAN RESPUESTA_InventarioHardware(SOCKET *,TRAMA *);
+BOOLEAN actualizaHardware(Database, Table,char* ,char*,char*,char*);
+BOOLEAN cuestionPerfilHardware(Database,Table,char*,char*,int,char*,char*,int *,int);
+BOOLEAN actualizaSoftware(Database , Table , char* , char* , char*,char*,char*);
+BOOLEAN cuestionPerfilSoftware(Database, Table, char*, char*,int,char*,char*,char*,int *,int);
+
+BOOLEAN enviaArchivo(SOCKET *, TRAMA *);
+BOOLEAN recibeArchivo(SOCKET *, TRAMA *);
+BOOLEAN envioProgramacion(SOCKET *, TRAMA *);
+
+int checkDato(Database,Table,char*,const char*,const char*,const char*);
+
+
+
diff --git a/admin/WebConsole/acceso.php b/admin/WebConsole/acceso.php
new file mode 100644
index 00000000..1fcb7206
--- /dev/null
+++ b/admin/WebConsole/acceso.php
@@ -0,0 +1,21 @@
+<?
+// ********************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Agosto-2010
+// Fecha ltima modificacin: Agosto-2010
+// Nombre del fichero: barramenu.php
+// Descripcin :Este fichero implementa el menu general de la Aplicacin
+// ********************************************************************************************************
+if(isset($_SESSION)){ // Si existe algua sesin ...
+ session_unset(); // Elimina variables
+ session_destroy(); // Destruye sesin
+}
+
+include_once("controlacceso.php");
+
+$herror=0;
+if (isset($_GET["herror"])) $herror=$_GET["herror"];
+if (isset($_POST["herror"])) $herror=$_POST["herror"];
+Header("Location: acceso_".$idi.".php?herror=".$herror); // Redireccionamiento a la pgina de inicio en el idioma por defecto
+?>
diff --git a/admin/WebConsole/acceso_esp.php b/admin/WebConsole/acceso_esp.php
new file mode 100644
index 00000000..050bb0d7
--- /dev/null
+++ b/admin/WebConsole/acceso_esp.php
@@ -0,0 +1,117 @@
+<?
+// *********************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: acceso.php
+// Descripción : Presenta la pantalla de login de la aplicación
+// ********************************************************************************************************
+include_once("controlacceso.php");
+include_once("./includes/CreaComando.php");
+include_once("./clases/AdoPhp.php");
+include_once("./includes/HTMLSELECT.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cnx); // Crea objeto comando
+if (!$cmd)
+ die("Error de acceso");
+//________________________________________________________________________________________________________
+$herror=0;
+if (isset($_GET["herror"])) $herror=$_GET["herror"];
+if (isset($_POST["herror"])) $herror=$_POST["herror"];
+
+$TbErr=array();
+$TbErr[0]="SIN ERRORES";
+$TbErr[1]="ATENCIÓN: Debe acceder a la aplicación a través de la pagina inicial";
+$TbErr[2]="ATENCIÓN: La Aplicación no tiene acceso al Servidor de Bases de Datos";
+$TbErr[3]="ATENCIÓN: Existen problemas para recuperar el registro, puede que haya sido eliminado";
+$TbErr[4]="ATENCIÓN: Usted no tiene acceso a esta aplicación";
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<SCRIPT LANGUAGE="JAVASCRIPT">
+//________________________________________________________________________________________________________
+function confirmar(){
+ if (comprobar_datos())
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.usu.value==""){
+ alert("Debe introducir un nombre de Usuario")
+ document.fdatos.usu.focus()
+ return(false)
+ }
+ if (document.fdatos.pss.value==""){
+ alert("Debe introducir una contraseña")
+ document.fdatos.pss.focus()
+ return(false)
+ }
+ var p=document.fdatos.idcentro.selectedIndex
+ if (p==0){
+ var res=confirm("ATENCIÓN: No ha introducido ninguna Unidad Organizativa. NO tendrá acceso al sistema a menos que sea adminstrador general de la Aplicación. ¿Desea acceder con este perfil?");
+ if(!res)
+ return(false)
+ }
+ return(true)
+}
+//______________________________________________________________________________________________________
+function PulsaEnter(oEvento){
+ var iAscii;
+ if (oEvento.keyCode)
+ iAscii = oEvento.keyCode;
+ else{
+ if (oEvento.which)
+ iAscii = oEvento.which;
+ else
+ return false;
+ }
+ if (iAscii == 13) confirmar();
+ return true;
+}
+//________________________________________________________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+<DIV style="POSITION:absolute;top:90;left:250">
+ <FORM action="controlpostacceso.php" name="fdatos" method="post">
+ <DIV align="center">
+ <IMG src="./images/login_esp.jpg" width=500 >
+ <INPUT onkeypress="PulsaEnter(event)" name="usu"
+ style="POSITION:absolute;top:125px;left:365px;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;">
+ <INPUT onkeypress="PulsaEnter(event)" name="pss" type="password"
+ style="POSITION:absolute;top:160px;left:365;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;">
+
+ <DIV style="POSITION:absolute;top:180px;left:265;COLOR: #F9F9F9; FONT-FAMILY: Verdana; FONT-SIZE: 12px;">
+ <P>Unidad Organizativa<BR>
+ <?
+
+ echo HTMLSELECT($cmd,0,'centros',$idcentro,'idcentro','nombrecentro',220);
+ ?>
+ </P></DIV>
+
+ <IMG onclick="confirmar()" src="./images/botonok.gif" style="POSITION:absolute;top:240;left:400;CURSOR: hand">
+ </DIV>
+ </FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+echo '<DIV style="POSITION: absolute;LEFT: 20px;TOP:300px;visibility:hidden" height=300 width=300>';
+echo '<IFRAME scrolling=yes height=300 width=310 id="iframes_comodin" src="./nada.php"></IFRAME>';
+echo '</DIV>';
+//________________________________________________________________________________________________________
+// Posiciona cursor en campo usuario y muestra mensaje de error si lo hubiera
+echo '<SCRIPT LANGUAGE="javascript">';
+if (!empty($herror))
+ echo " alert('".$TbErr[$herror]."');";
+echo 'document.fdatos.usu.focus()';
+echo '</SCRIPT>';
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/barramenu.php b/admin/WebConsole/barramenu.php
new file mode 100644
index 00000000..e7a2e187
--- /dev/null
+++ b/admin/WebConsole/barramenu.php
@@ -0,0 +1,175 @@
+<?
+// ********************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: barramenu.php
+// Descripción :Este fichero implementa el menu general de la Aplicación
+// ********************************************************************************************************
+include_once("./includes/ctrlacc.php");
+include_once("./includes/constantes.php");
+include_once("./idiomas/php/".$idioma."/barramenu_".$idioma.".php");
+//________________________________________________________________________________________________________
+?>
+<HTML>
+ <TITLE>Administración web de aulas</TITLE>
+ <HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
+ <LINK rel="stylesheet" type="text/css" href="estilos.css">
+ <SCRIPT language="javascript">
+ var currentOp=null;
+ //________________________________________________________________________________________________________
+ function resaltar(o){
+ if (o==currentOp) return
+ o.style.borderBottomColor="#808080"
+ o.style.borderRightColor="#808080"
+ o.style.borderTopColor="#ffffff"
+ o.style.borderLeftColor="#ffffff"
+ }
+ //________________________________________________________________________________________________________
+ function desresaltar(o){
+ if (o==currentOp) return
+ o.style.borderBottomColor="#d4d0c8"
+ o.style.borderRightColor="#d4d0c8"
+ o.style.borderTopColor="#d4d0c8"
+ o.style.borderLeftColor="#d4d0c8"
+ }
+ //________________________________________________________________________________________________________
+ function eleccion(o,op){
+ opadre=window.parent // Toma frame padre
+ opadre.frames["frame_contenidos"].document.location.href="nada.php"
+ var href;
+ var href2="nada.php"
+ var href3="./api/tree.html"
+ var href4="./api/main.html"
+ var href5="./api/index.html"
+
+ switch(op){
+ case 1:
+ href="./principal/aulas.php"
+ break;
+ case 2:
+ href="./principal/acciones.php"
+ break;
+ case 3:
+ href="./principal/imagenes.php"
+ break;
+ case 4:
+ href="./principal/hardwares.php"
+ break;
+ case 5:
+ href="./principal/softwares.php"
+ break;
+ case 6:
+ href="./principal/repositorios.php"
+ break;
+ case 7:
+ href="./principal/menus.php"
+ break;
+ case 8:
+ href="./principal/reservas.php"
+ break;
+ case 9:
+ href="./principal/administracion.php"
+ break;
+ case 10:
+ href="./images/L_Iconos.php"
+ href2="./images/M_Iconos.php"
+ break;
+ case 13:
+ href="./principal/usuarios.php"
+ break;
+ }
+ var oldOp=currentOp
+ currentOp=o;
+ if (oldOp) desresaltar(oldOp);
+ currentOp.style.borderBottomColor="#ffffff"
+ currentOp.style.borderRightColor="#ffffff"
+ currentOp.style.borderTopColor="#808080"
+ currentOp.style.borderLeftColor="#808080"
+ if(op<20){
+ opadre.frames["frame_arbol"].document.location.href=href
+ opadre.frames["frame_contenidos"].document.location.href=href2
+ }
+ else{
+ switch(op){
+ case 21:
+ window.top.location.href="acceso.php";
+ break;
+ case 22:
+ opadre.frames["frame_contenidos"].document.location.href=href4
+ break;
+ }
+ }
+ }
+ //________________________________________________________________________________________________________
+ </SCRIPT>
+ </HEAD>
+ <BODY bgcolor="#d4d0c8">
+ <FORM name=fdatos>
+ <TABLE border=0 width=100% style="POSITION:absolute;LEFT:0px;TOP:0px" cellPadding=2 cellSpacing=0>
+ <TR>
+ <TD align=left>
+ <TABLE class=menupral align=left cellPadding=1 cellSpacing=0 >
+ <TR valign=baseline>
+ <TD width=10><IMG src="./images/iconos/pomo.gif"></TD>
+ <? if($idtipousuario!=$SUPERADMINISTRADOR){?>
+ <TD onclick=eleccion(this,1) onmouseout=desresaltar(this) onmouseover=resaltar(this) >
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/centros.gif">&nbsp;<SPAN class="menupral"><?echo $TbMsg[0]?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,2) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/acciones.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[1]?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,3) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/imagenes.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[2]?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,4) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/confihard.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[3] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,5) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/confisoft.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[4] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,6) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/repositorio.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[5] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,7) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/menus.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[6] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+
+ <!--TD onclick=eleccion(this,8) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>
+ &nbsp;<A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/reservas.gif">&nbsp;<SPAN class=menupral ><?echo $TbMsg[7] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD-->
+
+ <? }
+ else{
+ if($idtipousuario==$SUPERADMINISTRADOR){?>
+ <TD onclick=eleccion(this,9) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>&nbsp;
+ <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/administracion.gif">
+ <SPAN class=menupral ><?echo $TbMsg[8] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+
+ <TD onclick=eleccion(this,10) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>&nbsp;
+ <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/iconos.gif">
+ <SPAN class=menupral ><?echo $TbMsg[9] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <?}?>
+ <?}?>
+
+ <TD onclick=eleccion(this,22) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>&nbsp;
+ <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/ayuda.gif">&nbsp;
+ <SPAN class=menupral ><?echo $TbMsg[11] ?></SPAN></A>&nbsp;</TD>
+ <TD width=4 align=middle><IMG src="./images/iconos/separitem.gif"></TD>
+ <TD onclick=eleccion(this,21) onmouseout=desresaltar(this) onmouseover=resaltar(this) align=middle>&nbsp;
+ <A href="#" style="text-decoration: none"><IMG border=0 src="./images/iconos/usuarioslog.gif">&nbsp;
+ <SPAN class=menupral ><?echo $TbMsg[10] ?></SPAN></A>&nbsp;</TD>
+
+
+ </TR>
+ </TABLE>
+ </TR>
+ </TABLE>
+ </FORM>
+ </BODY>
+</HTML>
diff --git a/admin/WebConsole/clases/AdoPhp.php b/admin/WebConsole/clases/AdoPhp.php
new file mode 100644
index 00000000..c291a8de
--- /dev/null
+++ b/admin/WebConsole/clases/AdoPhp.php
@@ -0,0 +1,676 @@
+<?php
+/*================================================================================
+Clase para conectar con una base de datos.
+
+Especificaciones:
+ - Estado de la conexión($estado)
+ 0: No conectado
+ 1: Conectado
+ 2: Se est�intentando conectar
+
+================================================================================*/
+
+class Conexion{
+ var $basedatos; // Base de datos
+ var $servidor; // Servidor de Base de datos
+ var $usuario; // Nombre de usuario
+ var $password; // Clave de usuario
+ var $controlador; // Controlador
+ var $estado; // Estado de la conexion
+ var $proveedor; // Proveedor de BD
+ var $error; // Colecci� de errores ocurridos durante el proceso (C�igo de error)
+ var $ultimoerror; // Ultimo error detectado
+ var $inderror; // Nmero de errores ocurridos durante el proceso
+ var $msgerrores=array(
+ "No se ha producido ningn error",
+ "001 : conexiónError - La conexion no se pudo establecer",
+ "002 : conexiónError - Se estableci� la conexióncon el servidor pero la base de datos no responde",
+ "003 : conexiónError - No se ha podido cerrar la actual conexi�",
+ "004 : conexiónError - El objeto est�ocupado intentando establecer una conexiónanterior",
+ "005 : conexiónError - La conexiónya est�cerrada",
+ "006 : conexiónError - No se ha especificado ningn servidor de base de datos",
+ "007 : conexiónError - No se ha especificado ningn usuario de la base de datos",
+ "008 : conexiónError - No se ha especificado password de usuario",
+ "009 : conexiónError - No se ha especificado ninguna base de datos",
+ "010 : conexiónError - No se ha especificado ningn proveedor de bases de datos",
+ );
+ /*--------------------------------------------------------------------------------------------*/
+ function Conexion(){ // Constructor de la clase
+ $this->inderror=0;
+ $this->ultimoerror=0;
+ $this->estado=0;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Adquiere o actualiza los datos necesarias para establecer conexiones
+
+ Par�etros de entrada:
+ servidor: Servidor donde se ubica la base de datos
+ usuario : Un usuario con acceso al servidor
+ passwor : Clave de usuario
+ basedato: Base de datos a la se quiere acceder
+ proveedor: Proveedor de Base de datos
+
+ Devuelve :
+ true : Si los datos aportadospara establecer conexiones son correctos
+ false: En caso contrario
+
+ En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
+ ----------------------------------------------------------------------------------------------*/
+ function CadenaConexion($servidor,$usuario,$password,$basedatos,$proveedor){
+ $this->servidor=$servidor;
+ $this->usuario=$usuario;
+ $this->password=$password;
+ $this->basedatos=$basedatos;
+ $this->proveedor=$proveedor;
+ if (!$this->_cadena_conexion()) return(false); else return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Abre una conexión
+
+ Devuelve :
+ true : Si la apertura de la conexiónha sido satisfactoria
+ false: En caso contrario
+
+ En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
+ ----------------------------------------------------------------------------------------------*/
+ function Abrir(){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ $MAXIMOS_INTENTOS_DE_CONECCION=10;
+ if (!$this->_cadena_conexion()) return(false); // Comprueba si los datos necesarios para conexiones se han aportado
+ switch ($this->estado) {
+ case 1: // Existe actualmente una conexiónabierta que se sustituir�por la nueva
+ if (mysql_close($this->controlador)){ // Se cierra la conexion actual
+ $this->estado=0;
+ $intentos_de_conexion=0;
+ while(true){
+ $intentos_de_conexion++;
+ $resul=($this->_nueva_conexion());
+ if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul);
+ sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo
+ }
+ }
+ else{ // Error al cerrar la conexi�
+ $this->error[$this->inderror++]=3;
+ $this->ultimoerror=3;
+ return(false);
+ }
+ break;
+ case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi�
+ $this->error[$this->inderror++]=4;
+ $this->ultimoerror=4;
+ return(false);
+ break;
+ default : // No existe actualmente ninguna conexiónabierta, se abrir�una nueva
+ $intentos_de_conexion=0;
+ while(true){
+ $intentos_de_conexion++;
+ $resul=($this->_nueva_conexion());
+ if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul);
+ sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo
+ }
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Cierra una conexión
+
+ Devuelve :
+ true : Si la conexiónse ha cerrado satisfactoriamente
+ false: En caso contrario
+
+ En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
+ ----------------------------------------------------------------------------------------------*/
+ function Cerrar(){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ switch ($this->estado) {
+ case 1: // Actualmente la conexion est�abierta
+ if (mysql_close($this->controlador)){ // Se cierra la conexion actual
+ $this->estado=0;
+ $this->error[$this->inderror++]=0;
+ $this->ultimoerror=0;
+ return(true);
+ }
+ else{ // Error al cerrar la conexi�
+ $this->error[$this->inderror++]=3;
+ $this->ultimoerror=3;
+ return(false);
+ }
+ break;
+ case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi�
+ $this->error[$this->inderror++]=4;
+ $this->ultimoerror=4;
+ return(false);
+ break;
+
+ default : // Actualmente la conexiónest�ya cerrada
+ $this->error[$this->inderror++]=5;
+ $this->ultimoerror=5;
+ return(false);
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece una nueva conexi�. Este m�odo es privado y s�o lo puede ejecutar la propia
+ clase desde el m�odo pblico Abrir.
+ ----------------------------------------------------------------------------------------------*/
+ function _nueva_conexion(){
+ $this->estado=2;// Intenta la conexion
+ if ($this->controlador=mysql_connect($this->servidor,$this->usuario,$this->password)){// Conexion O.K.
+ $this->estado=1; // La conexion con el servidor se estableci�
+ if (mysql_select_db($this->basedatos, $this->controlador)){// Base datos O.K.
+ $this->error[$this->inderror++]=0;
+ $this->ultimoerror=0;
+ return(true);
+ }
+ else{ // Problemas con la base de datos
+ $this->error[$this->inderror++]=2;
+ $this->ultimoerror=2;
+ if (mysql_close ($this->controlador)) $this->estado=0; // Se cierra la conexion
+ return(false);
+ }
+ }
+ else{ // Problemas con la conexion
+ $this->estado=0;
+ $this->error[$this->inderror++]=1;
+ $this->ultimoerror=1;
+ return(false);
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece una sistema UTF8 para las consultas
+ ----------------------------------------------------------------------------------------------*/
+ function SetUtf8(){
+ mysql_query("SET NAMES 'utf8'");
+ }
+ /* -------------------------------------------------------------------------------------------
+ Revisa y detecta las condiciones que deben cumplir los datos necesarios para establecer
+ conexiones
+
+ Devuelve :
+ true : Si los datos aportados son correctos
+ false: Si algn dato NO ha sido aportado o es incorrecto
+
+ Este m�odo es privado y s�o lo ejecutan m�odos pblicos de la propia clase
+ ----------------------------------------------------------------------------------------------*/
+ function _cadena_conexion(){
+
+ if ($this->servidor==null){
+ $this->error[$this->inderror++]=6; // Servidor no establecido
+ $this->ultimoerror=6;
+ return(false);
+ }
+ if ($this->usuario==null){
+ $this->error[$this->inderror++]=7;// usuario no establecido
+ $this->ultimoerror=7;
+ return(false);
+ }
+ if ($this->password==null){
+ $this->error[$this->inderror++]=8; // password no establecido
+ $this->ultimoerror=8;
+ return(false);
+ }
+ if ($this->basedatos==null){
+ $this->error[$this->inderror++]=9; // base de datos no establecido
+ $this->ultimoerror=9;
+ return(false);
+ }
+ if ($this->proveedor==null){
+ $this->error[$this->inderror++]=10; // proveedor no establecido
+ $this->ultimoerror=10;
+ return(false);
+ }
+ $this->error[$this->inderror++]=0; // Datos de conexióncorrectos
+ $this->ultimoerror=0;
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function UltimoError(){
+ return($this->ultimoerror);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function DescripUltimoError(){
+ return($this->msgerrores[$this->ultimoerror]);
+ }
+}
+/*=========================================================================================
+ Clase para usarla con la clase comando.
+
+ Especificaciones:
+
+ Esta clase tiene dos propiedades que definen su contenido
+ nombre=nombre del parametro
+ valor = valor de dicho par�etro
+ tipo = tipo de parametro:
+ 0: El valor del par�etro debe ir encerrado entre comillas simples
+ 1: El valor del par�etro no necesita ir entre comillas simples
+========================================================================================*/
+class parametro{
+ var $nombre;
+ var $valor;
+ var $tipo;
+ /*--------------------------------------------------------------------------------------------*/
+ function parametro($nombre="SinNombre",$valor="",$tipo="0"){ // Constructor de la clase
+ $this->SetParametro($nombre,$valor,$tipo);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Modifica los valores de las propiedades de la clase
+ ----------------------------------------------------------------------------------------------*/
+ function SetParametro($nombre,$valor,$tipo){
+ $this->nombre=$nombre;
+ $this->valor=$valor;
+ $this->tipo=$tipo;
+ if($tipo==1 && empty($valor)) $this->valor=0;
+ }
+}
+/*==========================================================================================
+ Clase para manipular bases de datos a traves de una conexiónprevia.
+
+ Especificaciones:
+
+ Las sentencias SQL pueden contener par�etros que pueden ser sustituidos por el valor
+ de los objetos par�etro. Estos par�etros tendr� la forma:@nombre_del_parametro
+==================================================================================================*/
+class Comando{
+ var $texto;
+ var $Conexion;
+ var $parametros=array();
+ var $Recordset;
+ var $resul;
+ var $error; // Error
+ var $ultimoerror; // Ultimo error detectado
+ var $inderror; // Contador de errores
+ var $msgerrores=array(
+ "No se ha producido ningn error",
+ "001 : Comando Error - No se ha establecido el texto del comando",
+ "002 : Comando Error - No se ha establecido la conexióndel comando",
+ "003 : Comando Error - No se ha abierto la conexi�",
+ "004 : Comando Error - La sentencia SQl del comando no es correcta",
+ "005 : Comando Error - No se ha podido recuperar el valor @@identity de la ltima clave insertada",
+ );
+ /*--------------------------------------------------------------------------------------------*/
+ function Comando(){ // Constructor de la clase
+ $this->inderror=0;
+ $this->ultimoerror=0;
+ $this->Recordset=new Recordset;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function UltimoError(){
+ return($this->ultimoerror);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function DescripUltimoError(){
+ return($this->msgerrores[$this->ultimoerror]);
+ }
+ /* -------------------------------------------------------------------------------------------
+ A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci�
+ es una matriz asociativa cuyo indice asociativo es el nombre del par�etro
+
+ Par�etros de entrada:
+ objparam: Un objeto parametro
+ ---------------------------------------------------------------------------------------------*/
+ function AddParametro($objparam){
+ $tbparametro["nombre"]=$objparam->nombre;
+ $tbparametro["valor"]=$objparam->valor;
+ $tbparametro["tipo"]=$objparam->tipo;
+ $this->parametros[]=$tbparametro;
+ }
+ /* -------------------------------------------------------------------------------------------
+ A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci�
+ es una matriz asociativa cuyo indice asociativo es el del par�etro
+
+ Par�etros de entrada:
+ nombre: El nombre del par�etro
+ valor : El valor del par�etro
+ tipo = tipo de parametro:
+ 0: El valor del par�etro debe ir encerrado entre comillas simples
+ 1: El valor del par�etro no necesita ir entre comillas simples
+
+
+ ---------------------------------------------------------------------------------------------*/
+ function CreaParametro($nombre,$valor,$tipo){
+ for($i=0;$i<sizeof($this->parametros);$i++){
+ if($this->parametros[$i]["nombre"]==$nombre){
+ $this->parametros[$i]["valor"]=$valor;
+ return;
+ }
+ }
+ $p = new parametro($nombre,$valor,$tipo);
+ $this->AddParametro($p);
+ }
+
+ /* -------------------------------------------------------------------------------------------
+ Sustituye el valor de un par�etro existente por otro
+ Par�etros de entrada:
+ nombre: El nombre del par�etro
+ valor : El nuevo valor del par�etro
+ ---------------------------------------------------------------------------------------------*/
+ function ParamSetValor($nombre,$valor){
+ for($i=0;$i<sizeof($this->parametros);$i++){
+ if($this->parametros[$i]["nombre"]==$nombre)
+ $this->parametros[$i]["valor"]=$valor;
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece la conexiónque se usar�para ejecutar las acciones pertinentes
+
+ Par�etros de entrada:
+ objconexion: Un objeto conexion
+ ---------------------------------------------------------------------------------------------*/
+ function EstableceConexion($objconexion){
+ $this->Conexion= $objconexion;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece la conexiónque se usar�para ejecutar las acciones pertinentes
+
+ Par�etros de entrada:
+ textocomando: Un texto con la sentencia SQL (Puede contener par�etros)
+ ---------------------------------------------------------------------------------------------*/
+ function EstableceTexto($textocomando){
+ $this->texto=$textocomando;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Sustituye el valor de los parametros en la expresi� que forma el texto del Comando
+ ---------------------------------------------------------------------------------------------*/
+ function Traduce(){
+ $execomando=$this->texto;
+ if (sizeof($this->parametros)>0){ // Hay par�etros que sustituir
+ foreach($this->parametros as $parametro){
+ if ($parametro["tipo"]==0) // Tipo alfanum�ico
+ $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando);
+ else
+ $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando);
+ }
+ }
+ $this->texto=$execomando;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Ejecuta la sentencia SQL contenida en la propiedad texto
+ ---------------------------------------------------------------------------------------------*/
+ function Ejecutar(){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ if ($this->texto==null){
+ $this->error[$this->inderror++]=1; // Texto no especificado
+ $this->ultimoerror=1;
+ return(false);
+ }
+ else{
+ if ($this->Conexion==null){
+ $this->error[$this->inderror++]=2; // conexiónNO establecida
+ $this->ultimoerror=2;
+ return(false);
+ }
+ else{
+ if ($this->Conexion->estado==0){
+ $this->error[$this->inderror++]=3; // conexiónNO abierta
+ $this->ultimoerror=3;
+ return(false);
+ }
+ }
+ }
+ $this->Traduce();
+ if (!$this->resul=mysql_query($this->texto,$this->Conexion->controlador)){
+ $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando
+ $this->ultimoerror=4;
+ return(false);
+ }
+ if (stristr($this->texto,"select")){
+ $this->Recordset->Inicializar();
+ $this->Recordset->filas=$this->resul;
+ $this->Recordset->numerodecampos=mysql_num_fields($this->Recordset->filas);
+ $this->Recordset->numeroderegistros=mysql_num_rows($this->Recordset->filas);
+ if ($this->Recordset->numeroderegistros>0){
+ $this->Recordset->BOF=false;
+ $this->Recordset->EOF=false;
+ $this->Recordset->campos=mysql_fetch_array($this->Recordset->filas);
+ }
+ }
+
+ $this->error[$this->inderror++]=0; // Comando ejecutado correctamante
+ $this->ultimoerror=0;
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funci� recupera el ltimo nmero asignado a una clave autonum�ica de una tabla
+ ---------------------------------------------------------------------------------------------*/
+ function Autonumerico(){
+ $ulreg=mysql_insert_id();
+ return($ulreg);
+ }
+}
+/*=========================================================================================
+ Clase para consultar tablas y vistas de una base de datos.
+
+ Especificaciones:
+ - Estado del recordset ($estado)
+ 0: Cerrado
+ 1: Abierto
+=========================================================================================*/
+class Recordset{
+ var $Comando;
+ var $filas= array();
+ var $BOF,$EOF,$estado;
+ var $campos;
+ var $numeroderegistros,$numerodecampos,$posicion;
+
+ var $error; // Error
+ var $ultimoerror; // Ultimo error detectado
+ var $inderror; // Contador de errores
+ var $msgerrores=array(
+ "No se ha producido ningn error",
+ "001 : Recordset Error - Comando no establecido",
+ "002 : Recordset Error - No se ha establecido la conexióndel comando",
+ "003 : Recordset Error - No se ha abierto la conexi�",
+ "004 : Recordset Error - No se pudo abrir la consulta",
+ "005 : Recordset Error - La sentencia SQl del comando no contiene la clausula SELECT",
+ "006 : Recordset Error - No se puede liberar la consulta",
+ );
+ /*--------------------------------------------------------------------------------------------*/
+ function Recordset(){ // Constructor de la clase
+ $this->Inicializar();
+ }
+ /* -------------------------------------------------------------------------------------------
+ Inicializa propiedades de las clase
+ ----------------------------------------------------------------------------------------------*/
+ function Inicializar(){
+ $this->BOF=true;
+ $this->EOF=true;
+ $this->posicion=0;
+ $this->numeroderegistros=0;
+ $this->numerodecampos=0;
+ $this->estado=0;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function UltimoError(){
+ return($this->ultimoerror);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
+ ----------------------------------------------------------------------------------------------*/
+ function DescripUltimoError(){
+ return($this->msgerrores[$this->ultimoerror]);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece el comando que se usar�para ejecutar las consultas pertinentes
+
+ Par�etros de entrada:
+ objcomando: Un objeto comando con la sentencia SQL (Puede contener par�etros)
+
+ Devuelve :
+ true : Si el texto del comando contiene la clausula SELECT
+ false: En caso contrario
+
+ En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido
+ ---------------------------------------------------------------------------------------------*/
+ function EstableceComando($objcomando){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ if (stristr($objcomando->texto,"select")){
+ $this->Comando=$objcomando;
+ $this->error[$this->inderror++]=0; // Comando v�ido, contiene "SELECT"
+ $this->ultimoerror=0;
+ return(true);
+ }
+ else{
+ $this->error[$this->inderror++]=5; // Comando no valido, NO contiene "SELECT"
+ $this->ultimoerror=5;
+ return(false);
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Sustituye el valor de los parametros en la expresi� que forma el texto del Comando
+ ---------------------------------------------------------------------------------------------*/
+ function Traduce(){
+ $execomando=$this->Comando->texto;
+ if (sizeof($this->Comando->parametros)>0){ // Hay par�etros que sustituir
+ foreach($this->Comando->parametros as $parametro){
+ if ($parametro["tipo"]==0) // Tipo alfanum�ico
+ $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando);
+ else
+ $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando);
+ }
+ }
+ $this->Comando->texto=$execomando;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera registros de la base de datos
+ ---------------------------------------------------------------------------------------------*/
+ function Abrir(){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ if ($this->Comando==null){
+ $this->error[$this->inderror++]=1; // Comando no especificado
+ $this->ultimoerror=1;
+ return(false);
+ }
+ else{
+ if ($this->Comando->Conexion==null){
+ $this->error[$this->inderror++]=2; // conexiónNO establecida
+ $this->ultimoerror=2;
+ return(false);
+ }
+ else{
+ if ($this->Comando->Conexion->estado==0){
+ $this->error[$this->inderror++]=3; // conexiónNO abierta
+ $this->ultimoerror=3;
+ return(false);
+ }
+ }
+ }
+ $this->Traduce();
+ $this->Inicializar();
+ if (!$this->filas=mysql_query($this->Comando->texto,$this->Comando->Conexion->controlador)){
+ $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando o al abrir la consula
+ $this->ultimoerror=4;
+ return(false);
+ }
+ $this->numeroderegistros=mysql_num_rows($this->filas); // La consulta se ha realizado con �ito
+ $this->numerodecampos=mysql_num_fields($this->filas);
+ if ($this->numeroderegistros>0){
+ $this->BOF=false;
+ $this->EOF=false;
+ $this->campos=mysql_fetch_array($this->filas);
+ }
+ $this->estado=1; // Recordset abierto
+ $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta
+ $this->ultimoerror=0;
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Libera los registros de una consulta de la base de datos
+ ---------------------------------------------------------------------------------------------*/
+ function Cerrar(){
+ $this->inderror=-1; // Inicializar contador de errores
+ $this->ultimoerror=-1;
+ if (!mysql_free_result($this->filas)){
+ $this->error[$this->inderror++]=6; // Error al cerrar la consulta (Al liberar memoria)
+ $this->ultimoerror=6;
+ return(false);
+ }
+ $this->Inicializar();
+ $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta
+ $this->ultimoerror=0;
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Mueve el puntero de lectura al siguiente registro del recordset
+ ---------------------------------------------------------------------------------------------*/
+ function Siguiente(){
+ if (!$this->EOF){
+ $this->posicion++;
+ if ($this->posicion==$this->numeroderegistros)
+ $this->EOF=true;
+ else{
+ if (mysql_data_seek($this->filas,$this->posicion))
+ $this->campos=mysql_fetch_array($this->filas);
+ }
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Mueve el puntero de lectura al anterior registro del recordset
+ ---------------------------------------------------------------------------------------------*/
+ function Anterior(){
+ if (!$this->BOF){
+ $this->posicion--;
+ if ($this->posicion<0)
+ $this->BOF=true;
+ else{
+ if (mysql_data_seek($this->filas,$this->posicion));
+ $this->campos=mysql_fetch_array($this->filas);
+ }
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Mueve el puntero de lectura al primer registro del recordset
+ ---------------------------------------------------------------------------------------------*/
+ function Primero(){
+ if ($this->numeroderegistros>0){
+ $this->posicion=0;
+ if (mysql_data_seek($this->filas,$this->posicion))
+ $this->campos=mysql_fetch_array($this->filas);
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Mueve el puntero de lectura al ltimo registro del recordset
+ ---------------------------------------------------------------------------------------------*/
+ function Ultimo(){
+ if ($this->numeroderegistros>0){
+ $this->posicion=$this->numeroderegistros-1;
+ if (mysql_data_seek($this->filas,$this->posicion))
+ $this->campos=mysql_fetch_array($this->filas);
+ }
+ }
+}
+ /* -------------------------------------------------------------------------------------------
+ Esta funci�n devuelve una matriz asociativa con el nombre de los campos del recordset
+ ---------------------------------------------------------------------------------------------*/
+ function DatosNombres(){
+ if (mysql_data_seek($this->filas,$this->posicion))
+ return(mysql_fetch_assoc($this->filas));
+ return("");
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funci�n devuelve informaci�n sobre los campos de la tabla
+ ---------------------------------------------------------------------------------------------*/
+ function InfoCampos(){
+ $infocampos= array ();
+ while ($row = mssql_fetch_field($this->filas)) {
+ $campo["name"]=$row->name;
+ $campo["column_source"]=$row->column_source;
+ $campo["maxlon"]=$row->max_length;
+ $campo["numeric"]=$row->numeric;
+ array_push($infocampos,$campo);
+ }
+ return($infocampos);
+ }
+?>
diff --git a/admin/WebConsole/clases/ArbolVistaXML.php b/admin/WebConsole/clases/ArbolVistaXML.php
new file mode 100644
index 00000000..c8529070
--- /dev/null
+++ b/admin/WebConsole/clases/ArbolVistaXML.php
@@ -0,0 +1,272 @@
+<?
+include_once("XmlPhp.php");
+/*===============================================================
+Esta clase implementa la apariencia y comportamiento de un treeview en código HTML y javascript.
+La clase utiliza la clase XmlPhp.php para acceder al documento XML.
+
+ Parámetros del constructor:
+ -fXML=Fichero XML
+ -fileocade=Indica si el dato anterior es un fichero o una variable con el contenido del árbol
+ 0: Es una cadena
+ 1: Es un fichero
+ -baseurlimg= Url base de las imágenes de los nodos de contracción-expansión
+ -clasedefault=Clase por defecto de los literales de los nodos
+ -nivelexp= Máximo nivel que aparecera expandido
+ -x= Posición x donde aparecerá la tabla
+ -y= Posición y donde aparecerá la tabla
+=================================================================*/
+class ArbolVistaXML{
+ var $baseurlimg; // Base de la URL de las imágenes de los nodos de contracción-expansión
+ var $clasedefault; // Clase por defecto de los literales de los nodos
+ var $gXML; // Objeto gestor del documento XML
+ var $nivelexp; // Nivel máximo que aprecerá visible
+ var $x; // Posición x donde aparecerá la tabla
+ var $y; // Posición y donde aparecerá la tabla
+ var $c_imgnivel=array(); // Imagenes de expansión y contracción para los distintos niveles
+ var $v_imgnivel=array(); // Valores de expansión y contracción para los distintos niveles
+ var $nodos_count; // Contador de nodo
+
+ Function ArbolVistaXML($fXML,$fileocade,$baseurlimg="/.images/",$clasedefault,$nivelexp=0,$x=0,$y=0,$tipotabla=0,$titulotabla=""){
+ // Constructor
+ $this->gXML=new XmlPhp($fXML,$fileocade);
+ $this->baseurlimg=$baseurlimg;
+ $this->clasedefault=$clasedefault;
+ $this->nivelexp=$nivelexp;
+ $this->x=$x;
+ $this->y=$y;
+ $this->tipotabla=$tipotabla;
+ $this->titulotabla=$titulotabla;
+
+ // Anchura de los distibtos tipos de tablas
+ if($this->tipotabla>0){
+ $this->anchoM=" width=100% ";
+ $this->ancho=" width=100% ";
+ }
+ else{
+ $this->anchoM=" width=1024 ";
+ $this->ancho="";
+ }
+ for($i=0;$i<=5;$i++){ // Inicializar
+ $this->c_imgnivel[$i]=$this->baseurlimg.'/nada.gif';
+ $this->v_imgnivel[$i]="nada";
+ }
+ $this->nodos_count=0;
+ }
+ /*------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el contenido de un treeview en código HTML
+ ------------------------------------------------------------------------------------------------*/
+ Function CreaArbolVistaXML(){
+ if (!$this->gXML->NodoRaiz()) return; // No existe documento XML que analizar
+ $arbol_total='<TABLE border=0 '.$this->anchoM.' class="'.$this->clasedefault. '" style="POSITION:absolute;TOP:'.$this->y.'px;LEFT:'.$this->x.'px" class=texto_arbol cellspacing=0 cellpadding=0 border=0>';
+ if($this->tipotabla>0) $arbol_total.='<TR><TH>'. $this->titulotabla .'</TH></TR>';
+ $arbol_total.='<TR style="display:block">';
+ $arbol_total.='<TD>';
+ $arbol_total.='<TABLE id=tablanivel-0 border=0 cellspacing=0 cellpadding="0">';
+ $arbol_total.=$this->_arbolXmlrecur(0);
+ $arbol_total.='</TABLE>';
+ $arbol_total.='</TD>';
+ $arbol_total.='</TR>';
+ $arbol_total.='</TABLE>';
+ return($arbol_total);
+ }
+ // -------------------------------------------------------------------------------------
+ // Recorrido recursivo del arbol XML
+ // Parámetros:
+ // nivel: nivel del nodo
+ // -------------------------------------------------------------------------------------
+ function _arbolXmlrecur($nivel){
+ $arbol_total="";
+ if ($nivel+1>$this->nivelexp) $displai="none"; else $displai="block";
+ do{
+ $gnptr=$this->gXML->nptr;
+ $arbol_total.='<TR style="display:block" id=TRNodo-'.$this->nodos_count.'>';
+ $arbol_total.='<TD>';
+ $arbol_total.=$this->_dibujo_nodo($this->gXML->Nodo(),$nivel,$this->gXML->NumerodeHijos(),$this->gXML->EsUltimoHermano());
+ $arbol_total.='</TD>';
+ $arbol_total.='</TR>';
+ $this->nodos_count++;
+ if ($this->gXML->PrimerNodoHijo()){
+ $arbol_total.='<TR id="TRNodoHijo-'.$this->nodos_count.'" style="display:'.$displai.'">';
+ $arbol_total.='<TD>';
+ $arbol_total.='<TABLE id="tablanivel-'.($nivel+1).'" border=0 cellspacing=0 cellpadding=0>';
+ $arbol_total.=$this->_arbolXmlrecur($nivel+1);
+ $arbol_total.='</TABLE>';
+ $arbol_total.='</TD>';
+ $arbol_total.='</TR>';
+ }
+ $this->gXML->nptr=$gnptr;
+ }while($this->gXML->SiguienteNodoHermano());
+ return($arbol_total);
+ }
+ // -------------------------------------------------------------------------------------
+ // Crea un nodo
+ // Parámetros:
+ // nivel: nivel del nodo
+ // -------------------------------------------------------------------------------------
+ function CreaNodo($nivel){
+ $nodo=$this->_dibujo_nodo($this->gXML->Nodo(),$nivel,0,true);
+ return($nodo);
+ }
+ /*------------------------------------------------------------------------------------------------
+ Dibuja los nodos del árbol
+ parámetros:
+ nodo: La información del nodo
+ nivel: Nivel del nodo
+ nhijos: numero de hijos
+ uhermano: Es true si el nodo es el último de sus hermanos
+
+ Especificaciones:
+ Los atributos de los nodos pueden ser HTML o especificos de
+ esta aplicación. Lso atributos del nodo propios de ésta son:
+
+ - clicksupimg: Función suplementaria de la imagen de signo
+ - imagenid: Identificador de la imagen de signo
+ - clickimg: La función que se ejecutará al hacer click sobre la imagen de nodo
+ - downimg: La función que se ejecutará al pulsar el ratón sobre la imagen de nodo
+ - clickcontextualimg: Función que se ejecutara al hacer click con el boton derecho sobre la imagen del nodo
+ - imagenodo: Es la url de la imagen de nodo
+ - infonodo: Es texto que se visualiza del nodo
+ - mouseovernodo: La función a ejecutar cuando se posa el ratón sobre el literal del nodo
+ - clicksupnodo: Función suplementaria del literal del nodo
+ - clickcontextualnodo: Función que se ejecutara al hacer click con el boton derecho sobre el nodo
+ - classnodo: Clase (style) a la que pertenece el nodo
+ - nodoid: identificador del nodo
+ - nodovalue: parametro value del nodo
+ ------------------------------------------------------------------------------------------------*/
+ function _dibujo_nodo($nodo,$nivel,$nhijos,$uhermano){
+ // Comprobar descendencia y posición dentro de los hermanos
+ $swu=false; // switch para saber si el nodo es el último hermano
+ $swh=false; // switch para saber si el nodo tiene hijos
+ if ($nhijos>0) $swh=true;
+ $swu=$uhermano;
+ if ($swh){ // Si tiene hijos ..
+ if ($swu){ // Si es el último de sus hermanos ..
+ if ($nivel<$this->nivelexp){
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_c.gif';
+ $this->v_imgnivel[$nivel]="menos_c";
+ }
+ else{
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_c.gif';
+ $this->v_imgnivel[$nivel]="mas_c";
+ }
+ }
+ else{ // Si NO lo es ..
+ if ($nivel<$this->nivelexp){
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_t.gif';
+ $this->v_imgnivel[$nivel]="menos_t";
+ }
+ else{
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_t.gif';
+ $this->v_imgnivel[$nivel]="mas_t";
+ }
+ }
+ if ($nivel==0){
+ if ($this->nivelexp>0)
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_root.gif';
+ else
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_root.gif';
+ }
+ }
+ else{ // Si NO tiene hijos ..
+ if ($swu){ // Si es el último de sus hermanos ..
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_c.gif';
+ $this->v_imgnivel[$nivel]="nada_c";
+ }
+ else{ // Si no lo es ..
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_t.gif';
+ $this->v_imgnivel[$nivel]="nada_t";
+ }
+ }
+ // Fin Comprobar descendencia y posición dentro de los hermanos
+ if($this->tipotabla==0)
+ $arbol='<TABLE border=0 cellspacing=0 cellpadding=0>';
+ else
+ $arbol='<TABLE style="BORDER-BOTTOM:#000000 1px solid;" border=0 cellspacing=0 cellpadding=0>';
+ $arbol.='<TR height="16px">';
+ $atributosHTML=" ";
+ $atributosHTML=$this->gXML->Atributos($nodo);
+ $colornodo="";
+ $fondonodo="";
+ $estilo="";
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("colornodo",$colornodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("fondonodo",$fondonodo,$atributosHTML);
+ if ($colornodo!="" ) $colornodo=' COLOR:'.$colornodo.";";
+ if ($fondonodo!="" ) $fondonodo=' BACKGROUND-COLOR:'.$fondonodo.";";
+ $estilo=$colornodo || $fondonodo;
+ if ($estilo!="" ) $estilo='style="'.$colornodo.$fondonodo.'"';
+
+ for ($i=0;$i<$nivel;$i++){ // Niveles previos
+ $arbol.='<TD '.$estilo.'width="3px"></TD>';
+ $arbol.='<TD '.$estilo.' width="16px"><IMG src="'.$this->c_imgnivel[$i].'" width="16px" height="16px" ></TD>';
+ }
+ $arbol.='<TD '.$estilo.' width="3px"></TD>'; // Desplazamiento de la imagen
+ $arbol.='<TD '.$estilo.' width="16px">';
+
+ $imagenid="";
+ $clicksupimg="";
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("imagenid",$imagenid,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("clicksupimg",$clicksupimg,$atributosHTML);
+ if ($clicksupimg!="") $clicksupimg.=';';
+ if ($swh){ // El nodo tiene hijos
+ $arbol.='<A href="#nodo"><IMG border=0 '.$estilo.' id="'.$imagenid.'" onclick="clickImagenSigno(this,' ."'".$this->baseurlimg."'".','.$nivel.');'.$clicksupimg.'" src="'.$this->c_imgnivel[$nivel].'" width="16px" height="16px" value="'.$this->v_imgnivel[$nivel].'"></A></TD>';
+ }
+ else
+ $arbol.='<SPAN><IMG '.$estilo.' id="'.$imagenid.'" src="'.$this->c_imgnivel[$nivel].'" width="16px" height="16px" value="'.$this->v_imgnivel[$nivel].'"></SPAN></TD>';
+
+ $imagenodo="";
+ $clickimg="";
+ $downimg="";
+ $clickcontextualimg="";
+ $styleimg="";
+
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("imagenodo",$imagenodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("clickimg",$clickimg,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("downimg",$downimg,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("clickcontextualimg",$clickcontextualimg,$atributosHTML);
+ if ($clickimg!="" ) $clickimg=' onclick="'.$clickimg.'" ';
+ if ($downimg!="" ) $downimg=' onmousedown="'.$downimg.'" ';
+ if ($clickcontextualimg!="" ) $clickcontextualimg=' oncontextmenu=" '.$clickcontextualimg.'" ';
+
+ if ($clickimg!="" || $downimg!="" || $clickcontextualimg!="" ) $styleimg=' style="cursor:hand"';
+
+ $arbol.='<TD '.$estilo.' width=16px><IMG '.$styleimg.' src="'.$imagenodo.'"'.$clickimg.$downimg.$clickcontextualimg.' width="16px" height="16px"></TD>';
+ $arbol.='<TD '.$estilo.' width="4px"></TD>';
+
+ $clicksupnodo="";
+ $clickcontextualnodo="";
+ $classnodo="";
+ $nodoid="";
+ $nodovalue="";
+ $mouseovernodo="";
+ $infonodo="";
+
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("clickcontextualnodo",$clickcontextualnodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("clicksupnodo",$clicksupnodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("classnodo",$classnodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("nodoid",$nodoid,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("nodovalue",$nodovalue,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("colornodo",$colornodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("fondonodo",$fondonodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("mouseovernodo",$mouseovernodo,$atributosHTML);
+ $atributosHTML=$this->gXML->TomaAtributoEspecial("infonodo",$infonodo,$atributosHTML);
+ if ($clickcontextualnodo!="" ) $clickcontextualnodo=' oncontextmenu="'.$clickcontextualnodo.'" ';
+ if ($mouseovernodo!="" ) $mouseovernodo=' onmouseover="'.$mouseovernodo.'" ';
+ if ($nodovalue!="" ) $nodovalue=' value="'.$nodovalue.'" ';
+ if (!$classnodo) $classnodo=$this->clasedefault;
+
+ $arbol.='<TD width="1024px" '.$estilo.' class="'.$classnodo.'">';
+ $arbol.='<A href="#nodo" class="'.$this->clasedefault. '" style="text-decoration: none"><SPAN id="'.$nodoid.'" ';
+ if($this->tipotabla<2){
+ $arbol.=' onclick="clickLiteralNodo(this ,' ."'".$this->baseurlimg."'".');';
+ $arbol.=" ".$clicksupnodo.'"'.$nodovalue.$mouseovernodo.$clickcontextualnodo;
+ }
+ $arbol.=' >'.$infonodo.'</SPAN></A></TD>';
+ $arbol.='</TR>';
+ $arbol.='</TABLE>';
+ if ($swu)
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada.gif';
+ else
+ $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_l.gif';
+ return($arbol);
+ }
+} // Fin de la clase \ No newline at end of file
diff --git a/admin/WebConsole/clases/EncripDescrip.php b/admin/WebConsole/clases/EncripDescrip.php
new file mode 100644
index 00000000..7d816e5d
--- /dev/null
+++ b/admin/WebConsole/clases/EncripDescrip.php
@@ -0,0 +1,55 @@
+<?php
+/*================================================================================
+ Clase para encriptar y desencriptar cadenas
+================================================================================*/
+class EncripDescrip{
+ var $cadena; // La cadena encriptada o desencriptada que ser�devuelta
+ var $clave; // La clave de la cadena encriptada o desencriptada que ser�devuelta
+ //________________________________________________________________________________________
+ //
+ // Constructor
+ //________________________________________________________________________________________
+ function EncripDescrip($clave=12){
+ $this->cadena="";
+ $this->clave=$clave;
+ }
+ // ____________________________________________________________________________
+ //
+ // Encripta una cadena
+ //_____________________________________________________________________________
+ function Encriptar($cadena){
+
+ return( $cadena);
+
+ $clave=(int)$this->clave;
+ $clave = (int)$clave & 0xFF;
+ $lon=strlen($cadena);
+ $this->cadena="";
+ for($i=0;$i<$lon;$i++){
+ $ch=(int)ord($cadena[$i]);
+ $pot=(int)$ch^(int)$clave;
+ $this->cadena.=chr($pot);
+ }
+ return( $this->cadena);
+ }
+ // ____________________________________________________________________________
+ //
+ // Desencripta una cadena
+ //_____________________________________________________________________________
+ function Desencriptar($cadena){
+
+ return( $cadena);
+
+ $clave=(int)$this->clave;
+ $clave = (int)$clave & 0xFF;
+ $lon=strlen($cadena);
+ $this->cadena="";
+ for($i=0;$i<$lon;$i++){
+ $ch=(int)ord($cadena[$i]);
+ $pot=(int)$ch^(int)$clave;
+ $this->cadena.=chr($pot);
+ }
+ return( $this->cadena);
+ }
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/clases/MenuContextual.php b/admin/WebConsole/clases/MenuContextual.php
new file mode 100644
index 00000000..e08c63f9
--- /dev/null
+++ b/admin/WebConsole/clases/MenuContextual.php
@@ -0,0 +1,164 @@
+<?php
+/*==================================================================================================
+Clase para trabajar con menús contextuales.
+
+ Especificaciones de las etiquetas XML:
+ - MENUCONTEXTUAL: Elemento raiz en el se especifican los atributos del <DIV>
+ - ITEM: Especificaciones de cada item.
+ - SEPARADOR: Indica una linea divisoria entre items
+
+ Especificaciones de atributos:
+ - idctx: Identificador del menu contextual (DIV)
+ - imgitem: La url de la imagen que acompañará al literal
+ - alignitem: La alineación del texto del item (por defecto left)
+ - textoitem: El literal del item
+ - subflotante: Si el item despliega otro menu contextual. El valor es el id de ése
+ - maxanchu: Máxima anchura del menu contextual
+ - swimg: Vale 1 si el menu tiene algún item con imagen y 0 en caso contrario
+ - alpulsar: Nombre de la función javascript que se ejecutará en respuesta al evento onclick
+ - clase: Estilo CSS que tendrán los item menu contextual
+ - origen_x: Posición de origen, coordenada x
+ - origen_y: Posición de origen, coordenada y
+
+
+ Especificaciones de eventos:
+ - Los eventos onmouseover y onmouseout están implicitos en la clase por defecto
+ Especificaciones de submenus:
+ - Si una opción lleva un submenu asociado el id de éste va en el atributo name del <TR>
+
+
+==================================================================================================*/
+class MenuContextual{
+ Function MenuContextual($urlImages="../images/flotantes"){
+ $this->urlImg=$urlImages;
+ }
+ /*---------------------------------------------------------------------------------------------
+ Devuelve una cadena en formato HTML de un layer para usarlo como menu contextual
+ Parametros:
+ - cadenaXML: Una cadena en formato XML con los atributos de cada item
+ ---------------------------------------------------------------------------------------------*/
+ function CreaMenuContextual($cadenaXML){
+ $idx=0;
+ $layer="";
+ $idctx="";
+ $maxanchu=100;
+ $swimg=0;
+ $imgitem="";
+ $alignitem="";
+ $textoitem="";
+ $clase="";
+ $subflotante="";
+ $origen_x="0";
+ $origen_y="0";
+
+ $gXML=new XmlPhp($cadenaXML,0);
+ $gXML->NodoRaiz();
+ $atributosHTML=$gXML->Atributos();
+ $atributosHTML=$gXML->TomaAtributoEspecial("maxanchu",$maxanchu,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("swimg",$swimg,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("clase",$clase,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("idctx",$idctx,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("origen_x",$origen_x,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("origen_y",$origen_y,$atributosHTML);
+ if(empty($origen_x)) $origen_x=0;
+ if(empty($origen_y)) $origen_y=0;
+ if (!$clase) $clase="menu_contextual";
+ $layer.='<DIV class="'.$clase.'" id="'.$idctx.'" width='.$maxanchu.' style="visibility:hidden;position:absolute;top:'.$origen_y.';left:'.$origen_x.'" >';
+ $nuitems=2;
+ if ($gXML->PrimerNodoHijo()){
+ $layer.='<TABLE border=0 width='.$maxanchu.' border=0 cellspacing=0 cellpadding=0>';
+ $layer.='<TR width='.$maxanchu.' height=3>'; // Primera linea
+ $layer.='<TD width=3 background="'.$this->urlImg.'/esi.gif"></TD>';
+ $layer.='<TD colspan=6 background="'.$this->urlImg.'/lsu.gif"></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/esd.gif"></TD>';
+ $layer.='</TR>';
+
+ $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno
+ $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD colspan=4></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>';
+ $layer.='</TR>';
+ do{
+ $nuitems++;
+ $atributosHTML=$gXML->Atributos();
+ $tiponodo=$gXML->NombreNodo();
+ if ($tiponodo=="ITEM"){
+ $atributosHTML=$gXML->TomaAtributoEspecial("imgitem",$imgitem,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("textoitem",$textoitem,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("subflotante",$subflotante,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("alpulsar",$alpulsar,$atributosHTML);
+ $atributosHTML=$gXML->TomaAtributoEspecial("alignitem",$alignitem,$atributosHTML);
+
+ if ($alignitem==null) $alignitem="left";
+
+ $clickcontextual=' onclick="'.$alpulsar.'" ';
+ $oncontextual=' onmouseover="sobre_contextual(this)" ';
+ $offcontextual="";
+
+ $idx++;
+ $layer.='<TR id='.$idx.' name="'.$subflotante.'" width='.$maxanchu.' '.$clickcontextual.' '.$oncontextual.' '.$offcontextual.' height=20>'; // Linea de item
+ $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>';
+ $layer.='<TD width=3></TD>';
+
+ if ($imgitem!=null){ // Item con imagen
+ $imgonclick="";
+ $layer.='<TD width=20 align=center id="TDimg-'.$idx .'"><IMG width=16 src="'.$imgitem.'"></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD align='.$alignitem.' id="TDLit-'.$idx .'" width='.($maxanchu-38).' '.$atributosHTML.'><A href="javascript:void(0)" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>';
+ }
+ else{
+ if ($swimg==1){ // Hay algún item con imagen
+ $layer.='<TD width=20></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD align='.$alignitem.' width='.($maxanchu-38).' '.$atributosHTML.'><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>';
+ }
+ else{
+ $layer.='<TD width=10></TD>';
+ $layer.='<TD colspan=2 align='.$alignitem.' width='.($maxanchu-25).' ' .$atributosHTML.' ><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>';
+ }
+ }
+ if ($subflotante!=null)
+ $layer.='<TD valign=middle><IMG width=3 name="swsbfn" align=left src="'.$this->urlImg.'/swsbfn.gif">';
+ else
+ $layer.='<TD width=3 >';
+ $layer.='</TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>';
+ $layer.='</TR>';
+ }
+ if ($tiponodo=="SEPARADOR"){ // Separadores
+ $layer.='<TR width='.$maxanchu.' height=16>'; // Linea de separación
+ $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD colspan=4 background="'.$this->urlImg.'/sep.gif"></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>';
+ $layer.='</TR>';
+ }
+
+ }while($gXML->SiguienteNodoHermano());
+
+ $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno
+ $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD colspan=4></TD>';
+ $layer.='<TD width=3></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>';
+ $layer.='</TR>';
+
+
+ $layer.='<TR width='.$maxanchu.' height=3>'; // Última linea
+ $layer.='<TD width=3 background="'.$this->urlImg.'/eii.gif"></TD>';
+ $layer.='<TD colspan=6 background="'.$this->urlImg.'/lin.gif"></TD>';
+ $layer.='<TD width=3 background="'.$this->urlImg.'/eid.gif"></TD>';
+ $layer.='</TR>';
+ $layer.='</TABLE>';
+ $layer.='<INPUT type=hidden value="-1">'; // Representará el índice seleccionado
+ $layer.='</DIV>';
+ }
+ return($layer);
+ }
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/clases/SockHidra.php b/admin/WebConsole/clases/SockHidra.php
new file mode 100644
index 00000000..ea467918
--- /dev/null
+++ b/admin/WebConsole/clases/SockHidra.php
@@ -0,0 +1,183 @@
+<?php
+
+include_once("EncripDescrip.php");
+
+/*================================================================================
+ Clase para conectarse con el servidor hidra y enviar comandos
+ Cualquier error producido en los procesos se puede recuperar con los m�odos
+================================================================================*/
+class SockHidra{
+ var $ultimoerror; // Ultimo error detectado
+ var $descripultimoerror; // Descripción del ltimo error detectado
+ var $socket; // Stream socket
+ var $servidor; // El servidor hidra
+ var $puerto; // El puerto odnde se conectar�
+ var $timeout; // El tiempo de espera para la conexi�
+ var $encripdescrip; // El encriptador
+ var $LONGITUD_TRAMA; // M�ima longitud de la trama
+
+ //________________________________________________________________________________________
+ //
+ // Constructor
+ // Parámetros:
+ // - servidor: El nombre o la IP del servidor
+ // - puerto: El puerto usado para las comunicaciones
+ // - timeout: El tiempo de espera para la conexi�
+ //________________________________________________________________________________________
+ function SockHidra($servidor,$puerto,$timeout=30){
+ $this->servidor=$servidor;
+ if (!$this->_esIP($this->servidor))
+ $this->servidor = gethostbyname ($servidor);
+ $this->puerto=$puerto;
+ $this->timeout=$timeout;
+ $this->LONGITUD_TRAMA=4048;
+
+ $this->encripdescrip=new EncripDescrip();
+ }
+ //________________________________________________________________________________________
+ //
+ // Averigua si el parametro pasado es una IP. devuelve true en caso afirmativo
+ //________________________________________________________________________________________
+ function _esIP(){
+ return(false);
+ }
+ //________________________________________________________________________________________
+ //
+ // Conecta con el servidor
+ // Devuelve:
+ // - false: Si falla la conexi�
+ // - true: En caso contrario
+ //________________________________________________________________________________________
+ function conectar(){
+ $this->socket = socket_create (AF_INET, SOCK_STREAM, 0);
+ if ($this->socket < 0) {
+ $this->ultimoerror=socket_strerror($socket);
+ $this->descripultimoerror="socket_create() fallo";
+ return(false);
+ }
+ $result = socket_connect ($this->socket,$this->servidor,$this->puerto);
+ if ($result < 0) {
+ $this->ultimoerror=socket_strerror($result);
+ $this->descripultimoerror="socket_connect() fallo";
+ return(false);
+ }
+ return(true);
+ }
+ //________________________________________________________________________________________
+ //
+ // Cerrar la conexióncon el servidor
+ // Devuelve:
+ // - false: Si falla la conexi�
+ // - true: En caso contrario
+ //________________________________________________________________________________________
+ function desconectar(){
+ socket_close ($this->socket);
+ }
+ //________________________________________________________________________________________
+ //
+ // Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior.
+ //________________________________________________________________________________________
+ function UltimoError(){
+ return($this->ultimoerror);
+ }
+ //________________________________________________________________________________________
+ //
+ // Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior.
+ //________________________________________________________________________________________
+ function DescripUltimoError(){
+ return($this->descripultimoerror);
+ }
+ //________________________________________________________________________________________
+ //
+ // Envia una petición de comando al servidor
+ // Parámetros:
+ // - Parámetros: Parámetros del mensaje
+ //________________________________________________________________________________________
+ function envia_comando($parametros)
+ {
+ global $MSG_COMANDO;
+
+ $tipo=$MSG_COMANDO;
+ return($this->envia_trama($parametros,$tipo));
+ }
+ //________________________________________________________________________________________
+ //
+ // Envia una petición de información al servidor
+ // Parámetros:
+ // - Parámetros: Parámetros del mensaje
+ //________________________________________________________________________________________
+ function envia_peticion($parametros)
+ {
+ global $MSG_PETICION;
+
+ $tipo=$MSG_PETICION;
+ return($this->envia_trama($parametros,$tipo));
+ }
+ //________________________________________________________________________________________
+ //
+ // Envia un mensaje al servidor
+ // Parámetros:
+ // - trama: Trama a enviar
+ // - tipo: Tipo de mensaje
+ //________________________________________________________________________________________
+ function envia_trama($parametros,$tipo)
+ {
+ global $LONHEXPRM;
+ global $LONCABECERA;
+
+ $arroba="@";
+ $identificador="JMMLCAMDJ_MCDJ";
+
+ $lonprm=strlen($parametros);
+ /* Encripta los parámetros */
+ $parametros=$this->encripdescrip->Encriptar($parametros,&$lonprm);
+ /* Pasa a hexadecimal la longitud de los parámetros ya encriptados para incluirla dentro de la cabecera */
+ $hlonprm=str_pad(dechex($LONCABECERA+$LONHEXPRM+$lonprm),$LONHEXPRM,"0",STR_PAD_LEFT); // Rellena con ceros
+
+ $trama=$arroba.$identificador.$tipo.$hlonprm.$parametros;
+ $resul=socket_write($this->socket,$trama,$LONCABECERA+$LONHEXPRM+$lonprm);
+ if (!$resul) {
+ $this->ultimoerror=socket_strerror($resul);
+ $this->descripultimoerror="socket_write() fallo";
+ return(false);
+ }
+ return(true);
+ }
+ //________________________________________________________________________________________
+ //
+ // Recibe una trama del servidor
+ // Parámetros:
+ // - lon: Longitud de la trama
+ // Devuelve:
+ // La trama recibida
+ //________________________________________________________________________________________
+ function recibe_respuesta()
+ {
+ global $LONHEXPRM;
+ global $LONCABECERA;
+ global $LONBLK;
+
+ $lon=$lSize=0;
+ $buffer="";
+ $cadenaret="";
+ do{
+ $bloque = socket_read ($this->socket,$LONBLK);// Lee bloque
+ $buffer.=$bloque; // Añade bloque
+ $lon+=strlen($bloque);
+ if($lSize==0){ // Comprueba tipo de trama y longitud total de los parámetros
+ if (substr($buffer,0,15)!="@JMMLCAMDJ_MCDJ")
+ return($cadenaret); // No se reconoce la trama
+ $hlonprm=hexdec(substr($buffer,$LONCABECERA,$LONHEXPRM));
+ $lSize=$hlonprm; // Longitud total de la trama con los parametros encriptados
+ }
+ }while($lon<$lSize);
+
+ $lon=$lSize-($LONCABECERA+$LONHEXPRM); // Longitud de los parametros aún encriptados
+ $parametros=substr($buffer,$LONCABECERA+$LONHEXPRM,$lon); // Parametros encriptados
+ $parametros=$this->encripdescrip->Desencriptar($parametros,&$lonprm); // Parametros sin encriptar
+ $hlonprm=str_pad(dechex($lon),$LONHEXPRM,"0",STR_PAD_LEFT); // Rellena con ceros
+ $cadenaret=substr($buffer,0,$LONCABECERA).$hlonprm.$parametros;
+ return($cadenaret);
+ }
+ }
+?>
diff --git a/admin/WebConsole/clases/XmlPhp.php b/admin/WebConsole/clases/XmlPhp.php
new file mode 100644
index 00000000..a45d1c90
--- /dev/null
+++ b/admin/WebConsole/clases/XmlPhp.php
@@ -0,0 +1,285 @@
+<?
+/*================================================================================
+Esta clase implementa funciones de utilidad para tratar ficheros XML
+
+ Parametros del constructor:
+ fxml=Fichero XML que contiene los atributos de los nodos
+ fileocade=Indica si el dato anterior es un fichero o una variable con el contenido del rbol:
+ 0: Es una cadena
+ 1: Es un fichero
+
+ Especificaciones:
+ Se le llama informacin del nodo al nombre del nodo + sus atributos eliminando los marcadores
+ de comienzo:"<" y fin:">"
+================================================================================*/
+class XmlPhp{
+ var $buffer;
+ var $nptr;
+
+ function XmlPhp($fxml,$fileocade){ // Constructor
+ if ($fileocade==0){
+ $this->nptr=1;
+ $this->buffer=trim($fxml);
+ }
+ else{
+ $tbuffer=filesize($fxml); // Calcula tamao del fichero
+ if ($tbuffer>0){ // EL fichero tiene contenido
+ $fd=fopen($fxml, "r");
+ $this->buffer=fread ($fd,$tbuffer);
+ fclose ($fd);
+ $this->nptr=1;
+ $this->buffer=trim($this->buffer);
+ }
+ }
+ $this->buffer=ereg_replace( "[\n\r\t]"," ", $this->buffer );
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera la informacin del primer nodo (nodo raiz) del arbol.Devuelve false en caso de que
+ no tenga hijos o bien no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function InfoNodoRaiz(){
+ if (!$this->NodoRaiz()) // No existe documento XML
+ return(false);
+ return($this->Infonodo());
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece el puntero de nodos al primer nodo del rbol (nodo raiz). Devuelve false en caso
+ de que no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function NodoRaiz(){
+ if ($this->buffer==null) return(false); // No existe documento XML
+ $this->nptr=0;
+ while ($this->nptr<strlen($this->buffer))
+ if ('<'==substr($this->buffer,$this->nptr++,1)) return(true);
+ return(false);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera la informacin del primer nodo hijo del nodo actual. Devuelve false en caso de que
+ no tenga hijos o bien no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function InfoPrimerNodoHijo(){
+ if (!$this->PrimerNodoHijo()) // No tiene hijos o no existe documento XML
+ return(false);
+ return($this->Infonodo());
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece el puntero de nodos al primer nodo hijo del nodo actual. Devuelve false en caso
+ de que no tenga hijos o bien no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function PrimerNodoHijo(){
+ if ($this->buffer==null) return(false); // No existe documento XML
+ $gnptr=$this->nptr;
+ while ($this->nptr<strlen($this->buffer))
+ if ('<'==substr($this->buffer,$this->nptr++,1)) break;
+ $lon=$this->nptr;
+ if ('/'==substr($this->buffer,$lon,1)){ // No tiene hijos
+ $this->nptr=$gnptr;
+ return(false);
+ }
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera la informacin del siguiente nodo hermano del actual. Devuelve false en caso de que
+ el nodo actual sea el ltimo de sus hermanos o bien no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function InfoSiguienteNodoHermano(){
+ if (!$this->SiguienteNodoHermano()) // No tiene hermanos o no existe documento XML
+ return(false);
+ return($this->Infonodo());
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece el puntero de nodos al siguiente nodo hermano del nodo actual. Devuelve false en
+ caso de que el nodo actual sea el ltimo de los hermanos o bien no exista documento XML que analizar.
+ ---------------------------------------------------------------------------------------------*/
+ function SiguienteNodoHermano(){
+ if ($this->buffer==null) return(false); // No existe documento XML
+ $gnptr=$this->nptr;
+ $resul=$this->_siguiente_hermano();
+ if (!$resul){
+ $this->nptr=$gnptr; // Es el ltimo hermano
+ return(false);
+ }
+ return(true);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Establece el puntero de nodos al siguiente nodo hermano del actual
+ ---------------------------------------------------------------------------------------------*/
+ function _siguiente_hermano(){
+ $lon=$this->nptr;
+ $sw=1;
+ $nombrenodo=$this->NombreNodo();
+ while (1){
+ $lon = strpos($this->buffer,'<',++$lon);
+ if (substr($this->buffer,++$lon,1)=='/')
+ $sw--;
+ else
+ $sw++;
+ if ($sw==0){
+ while ($lon<strlen($this->buffer)){
+ if (substr($this->buffer,$lon++,1)=='<'){
+ if (substr($this->buffer,$lon,1)=='/')
+ return(false); // Es el ltimo hermano
+ else{
+ $this->nptr=$lon;
+ return(true);
+ }
+ }
+ }
+ return(false); // Se trata del nodo raiz
+ }
+ }
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera el nmero de hijos del nodo actual
+ ---------------------------------------------------------------------------------------------*/
+ function NumerodeHijos(){
+ $gnptr=$this->nptr;
+ $nh=0;
+ if ($this->PrimerNodoHijo()){
+ $nh++;
+ while ($this->SiguienteNodoHermano()) $nh++;
+ }
+ $this->nptr=$gnptr;
+ return($nh);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve true si el nodo es el ltimo de sus hermanos
+ ---------------------------------------------------------------------------------------------*/
+ function EsUltimoHermano(){
+ $gnptr=$this->nptr;
+ if (!$this->SiguienteNodoHermano()){
+ $this->nptr=$gnptr;
+ return(true);
+ }
+ $this->nptr=$gnptr;
+ return(false);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve los atributos del nodo.
+ Prmetros:
+ Si se aporta el puntero del nodo se devolvern los atributos del nodo apuntado
+ pero si no se especifican argumentos se devuelven los atributos del nodo actual.
+ ---------------------------------------------------------------------------------------------*/
+ function Atributos($ptrnodo=-1){
+ if ($ptrnodo!=-1)
+ $this->_setnodo($ptrnodo);
+ $atributosHTML="";
+ $info=$this->Infonodo();
+ $pos=strpos($info," ");
+ if ($pos) // El nodo tiene atributos
+ $atributosHTML=" ".substr($info,$pos);
+ return($atributosHTML);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Posiciona el puntero de nodos
+ ---------------------------------------------------------------------------------------------*/
+ function _setnodo($ptrnodo){
+ $this->nptr=$ptrnodo;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Devuelve el puntero del nodo actual
+ ---------------------------------------------------------------------------------------------*/
+ function Nodo(){
+ return($this->nptr);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera el nombre del nodo
+ ---------------------------------------------------------------------------------------------*/
+ function NombreNodo(){
+ $infonodo=$this->Infonodo();
+ $trozos=split(" ",$infonodo);
+ return ($trozos[0]);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recupera la informacin del nodo actual
+ ---------------------------------------------------------------------------------------------*/
+ function Infonodo(){
+ if ($this->buffer==null) return(false); // No existe documento XML
+ $lon=$this->nptr;
+ while ($lon<strlen($this->buffer))
+ if ('>'==substr($this->buffer,++$lon,1)) break;
+ $info=trim(substr($this->buffer,$this->nptr,$lon-$this->nptr));
+ $info=str_replace("[","<",$info);
+ $info=str_replace("]",">",$info);
+ return $info;
+ }
+ /* -------------------------------------------------------------------------------------------
+ Recorre el arbol de nodos del documento XML y para cada nodo genera un evento que se
+ puede capturar a travs de una funcion que tiene esta forma:
+ fNodoXML(nivel,infonodo) donde:
+ - nivel es el nivel de profundidad del nodo (en base 0)
+ - infonodo es toda la informacin contenida en el nodo.
+ ---------------------------------------------------------------------------------------------*/
+ function RecorreArboXML(){
+ if (!$this->NodoRaiz()) return; // No existe documento XML que analizar
+ $this->_arbolXmlrecur(0);
+ }
+ // -------------------------------------------------------------------------------------
+ // Recorrido recursivo del arbol XML
+ // -------------------------------------------------------------------------------------
+ function _arbolXmlrecur($nivel){
+ do{
+ $infonodo=$this->Infonodo();
+ fNodoXML($nivel,$infonodo);
+ $gnptr=$this->nptr;
+ if ($this->PrimerNodoHijo())
+ $this->_arbolXmlrecur($nivel+1);
+ $this->nptr=$gnptr;
+ }while($this->SiguienteNodoHermano());
+ }
+ /*------------------------------------------------------------------------------------------------
+ Elimina un atributo de la informacin del nodo
+ Parametros:
+ - nombreatributo:El nombre del atributo
+ - info: La informacin del Nodo
+ ------------------------------------------------------------------------------------------------*/
+ function EliminaAtributo($nombreatributo,$info){
+ $nada="";
+ return($this->TomaAtributo($nombreatributo,&$nada,$info,true));
+ }
+ /*------------------------------------------------------------------------------------------------
+ Recupera el valor del atributo y lo elimina de la informacin del nodo
+ Parametros:
+ - nombreatributo:El nombre del atributo
+ - puntero: Referencia a la variable que contendr el valor del atributo
+ - info: La informacin del Nodo
+ ------------------------------------------------------------------------------------------------*/
+ function TomaAtributoEspecial($nombreatributo,&$puntero,$info){
+ return($this->TomaAtributo($nombreatributo,&$puntero,$info,true));
+ }
+ /*------------------------------------------------------------------------------------------------
+ Recupera el valor del atributo
+ Parametros:
+ - nombreatributo:El nombre del atributo
+ - puntero: Referencia a la variable que contendr el valor del atributo
+ - info: La informacin del Nodo
+ - sw: Si vale true el atributo se eliminar de la informacin del nodo
+ ------------------------------------------------------------------------------------------------*/
+ function TomaAtributo($nombreatributo,&$puntero,$info,$swkill=false){
+ $doblescomillas='"';
+ $strAtributo=" ".$nombreatributo."=";
+ $pos=strpos($info,$strAtributo);
+ if (!$pos){
+ $puntero=null;
+ return($info);
+ }
+ $pos+=strlen($strAtributo); // Avanza hasta el signo igual
+ $posa=$pos; // Primera posicin del valor del atributo
+ $swcomillas=false;
+ while ($pos<strlen($info)){
+ if ($doblescomillas==substr($info,$pos,1)) $swcomillas=!$swcomillas;
+ if (' '==substr($info,$pos,1) || '> '==substr($info,$pos,1))
+ if (!$swcomillas) break;
+ $pos++;
+ }
+ $posb=$pos;
+ $valoratributo=substr($info,$posa,$posb-$posa);
+ if ($swkill) // Eliminar el atributo de la la cadena
+ $info=str_replace($strAtributo.$valoratributo,"",$info); // Elimina el atributo de la informacin
+ if ($doblescomillas==substr($valoratributo,0,1)) // Elimina las comillas
+ $valoratributo=str_replace($doblescomillas,"",$valoratributo);
+ $puntero=$valoratributo;
+ return($info);
+ }
+} // Fin de la clase
+?>
diff --git a/admin/WebConsole/clases/jscripts/ArbolVistaXML.js b/admin/WebConsole/clases/jscripts/ArbolVistaXML.js
new file mode 100644
index 00000000..e5f5d282
--- /dev/null
+++ b/admin/WebConsole/clases/jscripts/ArbolVistaXML.js
@@ -0,0 +1,574 @@
+// ************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: ArbolVistaXML.js
+// Este fichero implementa las funciones javascript de la clase ArbolVistaXML.php
+// *************************************************************************************************
+var botonraton=null; // Botón presionado
+var currentNodo=""; // Nodo actual
+var currentpathimg=""; // Path por defecto de las imágenes de signo
+var gLiteralcolor; // Color nodo vista para restablecer
+var gLiteralbackground; // Fondo color nodo vista para restablecer
+//________________________________________________________________________________________________________
+// definicion dela clase triada
+//________________________________________________________________________________________________________
+ function NodoVista(){
+ this.nivel=0; // Profundidad del nodo
+ this.imgsigno=null; // Objeto IMG (Imagen de signo de la celda vista) O SPAN si el nodo vista no tiene hijos
+ this.literal=null; // Objeto SPAN (Literal de la celda vista)
+
+ this.CeldaVista=null; // El objeto TABLE que contiene la imagen de signo y el literal)
+ this.Nodo=null; // El nodo en si (Objeto TR que contiene el objeto TABLE celda vista final)
+ this.ArbolHijos=null; // El arbol conteniendo todos los nodos hijos ( Si nulo no tiene hijos)(Objeto TR)
+ this.NodoPadre=null; // El nodo padre (Objeto TR que contiene el objeto TABLE celda vista final, del padre)
+ this.ArbolHijosNodoPadre=null; // El arbol del padre conteniendo los nodos hijos(Objeto TR)
+ this.siguienteHermano=null; // El nodo hermano siguiente ( Si nulo es el último hermano)(Objeto TR)
+ //____________________________________________________________________________
+ //
+ // Devuelve el estado del nodo 0: Contraido 1:Desplegado
+ //____________________________________________________________________________
+ this.estadoNodo= function(){
+ var signoimg=this.imgsigno.getAttribute("value");
+ var estado;
+ switch(signoimg){
+ case "menos_t" :
+ case "menos_c" :
+ estado=1;
+ break;
+ case "mas_t" :
+ case "mas_c" :
+ estado=0;
+ break;
+ default:
+ estado=-1;
+ }
+ return(estado);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista
+ //____________________________________________________________________________
+ this.toma_identificador= function(){
+ if(this.literal==null) return(null);
+ var cadena=this.literal.getAttribute("id");
+ var iditem=cadena.split("-") // Toma el identificador
+ return(iditem[1]);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el primer dato de una cadena con formato xxxxx-xxx que es sufijo del nodo vista
+ //____________________________________________________________________________
+ this.toma_sufijo= function(){
+ if(this.literal==null) return(null);
+ var cadena=this.literal.getAttribute("id");
+ var iditem=cadena.split("-") // Toma el identificador
+ return(iditem[0]);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el literal de un nodo vista
+ //____________________________________________________________________________
+ this.toma_infonodo= function(){
+ if(this.literal==null) return(null);
+ return(this.literal.innerHTML);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el literal de un nodo vista
+ //____________________________________________________________________________
+ this.pone_infonodo= function(lit){
+ this.literal.innerHTML=lit;
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista
+ //____________________________________________________________________________
+ this.toma_atributoNodo= function(atr){
+ if(atr=="") return(null);
+ if(this.literal==null) return(null);
+ var atributo=this.literal.getAttribute(atr);
+ return(atributo);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve true si el nodo tiene hijos,false en caso contrario
+ //____________________________________________________________________________
+ this.TieneHijos= function(){
+ return(this.ArbolHijos!=null);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve true si el nodo es el último, false en caso contrario
+ //____________________________________________________________________________
+ this.UltimoHermano= function(){
+ return(this.siguienteHermano==null);
+ }
+ //____________________________________________________________________________
+ //
+ // Devuelve el nodo vista padre
+ //____________________________________________________________________________
+ this.PapaNodo= function(){
+ if(this.NodoPadre==null) return(null);
+ var oTABLE=this.NodoPadre.getElementsByTagName('TABLE')[0];
+ return(TomaDatosNodo(oTABLE));
+ }
+ // Fin de la clase
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve un nodo vista
+// Parametro:
+// o: Objeto que puede ser la imagen de signo o el literal de una de las lineas del arbolVista
+//________________________________________________________________________________________________________
+ function TomaDatosNodo(o){
+ var nodo=new NodoVista();
+
+ while(o.tagName!="TABLE" )
+ o=o.parentNode;
+ nodo.CeldaVista=o;
+ var TAnchor=nodo.CeldaVista.getElementsByTagName('A');
+ if(TAnchor.length==2){ // Imagen de signo pulsable
+ nodo.imgsigno=TAnchor[0].childNodes[0];
+ nodo.literal=TAnchor[1].childNodes[0];
+ }
+ else{
+ var TSpan=nodo.CeldaVista.getElementsByTagName('SPAN');
+ nodo.imgsigno=TSpan[0].childNodes[0];
+ nodo.literal=TAnchor[0].childNodes[0];
+ }
+ while(o.tagName!="TR" )
+ o=o.parentNode;
+ nodo.Nodo=o;
+
+ while(o.tagName!="TABLE" )
+ o=o.parentNode;
+ var Mnivel=o.getAttribute("id").split("-")
+ nodo.nivel=Mnivel[1]
+
+ while(o.tagName!="TR" )
+ o=o.parentNode;
+ nodo.ArbolHijosNodoPadre=o;
+
+ if(parseInt(nodo.nivel)>0){
+ o=o.previousSibling;
+ while(o.nodeType!=1 )
+ o=o.previousSibling
+ nodo.NodoPadre=o;
+ }
+ else
+ nodo.NodoPadre=null; // Es el primer nodo
+ var o=nodo.Nodo;
+ var auxsplit=o.getAttribute("id");
+ var idTR=auxsplit.split("-") [0];
+ o=o.nextSibling
+ while(o!=null && o.nodeType!=1 )
+ o=o.nextSibling
+ if(o==null){ // Es el último hermano y no tiene hijos
+ nodo.ArbolHijos=null;
+ nodo.siguienteHermano=null;
+ return(nodo);
+ }
+ var auxsplit=o.getAttribute("id");
+ var idTRhijo=auxsplit.split("-") [0];
+ if(idTR==idTRhijo) { // El nodo no tiene hiijos y no es último hermano
+ nodo.ArbolHijos=null;
+ nodo.siguienteHermano=o;
+ return(nodo);
+ }
+ nodo.ArbolHijos=o;
+ o=o.nextSibling
+ while(o!=null && o.nodeType!=1)
+ o=o.nextSibling
+ if(o==null){ // El nodo tiene hijos y es ultimo hermano
+ nodo.siguienteHermano=null;
+ return(nodo);
+ }
+ nodo.siguienteHermano=o; // El nodo tiene hijos y no es último hermano
+ return(nodo);
+ }
+//-----------------------------------------------------------------------------------------------------------------------
+// Gestiona el despliegue y contracción de nodovs
+//-----------------------------------------------------------------------------------------------------------------------
+function clickNodo(nodov,pathimg){
+ var signoimg=nodov.imgsigno.getAttribute("value");
+ switch(signoimg){
+ case "menos_t" :
+ nodov.imgsigno.setAttribute("value","mas_t",null);
+ nodov.imgsigno.setAttribute("src",pathimg+"/mas_t.gif",null);
+ nodov.ArbolHijos.style.display="none"
+ break;
+ case "menos_c" :
+ nodov.imgsigno.setAttribute("value","mas_c",null);
+ nodov.imgsigno.setAttribute("src",pathimg+"/mas_c.gif",null);
+ if (nodov.nivel==0)
+ nodov.imgsigno.setAttribute("src",pathimg+"/mas_root.gif",null);
+ nodov.ArbolHijos.style.display="none"
+ break;
+ case "mas_t" :
+ nodov.imgsigno.setAttribute("value","menos_t",null);
+ nodov.imgsigno.setAttribute("src",pathimg+"/menos_t.gif",null);
+ nodov.ArbolHijos.style.display="block"
+ break;
+ case "mas_c" :
+ nodov.imgsigno.setAttribute("value","menos_c",null);
+ nodov.imgsigno.setAttribute("src",pathimg+"/menos_c.gif",null);
+ if (nodov.nivel==0)
+ nodov.imgsigno.setAttribute("src",pathimg+"/menos_root.gif",null);
+ nodov.ArbolHijos.style.display="block"
+ break;
+ }
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Gestiona el despliegue y contracción de nodos a través de la imagen del nodo
+//-----------------------------------------------------------------------------------------------------------------------
+function clickImagenSigno(oIMG,pathimg){
+ currentpathimg=pathimg;
+ var nodov=TomaDatosNodo(oIMG);
+ clickNodo(nodov,pathimg);
+ if (EsAncestro(nodov,currentNodo))
+ resalta(nodov);
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Gestiona el despliegue y contracción de nodos a través del literal del nodo
+//-----------------------------------------------------------------------------------------------------------------------
+function clickLiteralNodo(oLIT,pathimg){
+ var nodov=TomaDatosNodo(oLIT);
+ resalta(nodov);
+ if(nodov.imgsigno==null) return;
+
+ if(pathimg==null){
+ var signoimg=nodov.imgsigno.getAttribute("src");
+ var p=signoimg.lastIndexOf("/");
+ var pathimg=signoimg.substring(0,p);
+ currentpathimg=pathimg;
+ }
+ var signoimg=nodov.imgsigno.getAttribute("value");
+ var signo=signoimg.split("_")
+ if(botonraton==1){
+ if (signo[0]=="mas" || signo[0]=="menos" ) clickNodo(nodov,pathimg);
+ }
+ else{
+ if (signo[0]=="mas" ) clickNodo(nodov,pathimg);
+ }
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Resalta el nodo vista seleccionado y lo pone como nodo vista actual
+//-----------------------------------------------------------------------------------------------------------------------
+function resalta(nodov){
+ if(currentNodo==nodov) return;
+ if (currentNodo){
+ currentNodo.literal.style.color=gLiteralcolor;
+ currentNodo.literal.style.backgroundColor=gLiteralbackground;
+ }
+ gLiteralcolor=nodov.literal.style.color; // Guarda el color del nodo
+ gLiteralbackground=nodov.literal.style.backgroundColor; // Guarda el background del nodo
+
+ nodov.literal.style.color="#FFFFFF"; // Blanco
+ nodov.literal.style.backgroundColor="#0a266a"; // Azul marino
+ currentNodo=nodov;
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Deja de resaltar un nodo vista
+//____________________________________________________________________________
+function desresalta(nodov){
+ nodov.literal.style.color=nodov.Literalcolor;
+ nodov.literal.style.backgroundColor=nodov.Literalbackground;
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Averigua si el primer nodo vista es ancestro del segundo
+//____________________________________________________________________________
+function EsAncestro(nodoA,nodoH){
+ if(nodoH==null) return(false);
+ var NodoAncestro=nodoA.ArbolHijos;
+ var NodoHijo=nodoH.Nodo;
+ while(NodoHijo!=null){
+ if(NodoHijo==NodoAncestro) return(true);
+ NodoHijo=NodoHijo.parentNode;
+ }
+ return(false);
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Despliega un nivel el nodo indicado
+//-----------------------------------------------------------------------------------------------------------------------
+function despliega(o,pathimg){
+ var nodov=TomaDatosNodo(o);
+ clickNodo(nodov,pathimg);
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Despliega el nodo indicado ( desde la pagina
+//-----------------------------------------------------------------------------------------------------------------------
+function DespliegaNodo(lit,id){
+ var o=document.getElementById(lit+"-"+id);
+ if(o!=null){
+ var ancestro= TomaDatosNodo(o);
+ resalta(ancestro);
+ while(ancestro!=null){
+ if(ancestro.estadoNodo()==0) // Nodo contraido
+ clickNodo(ancestro,currentpathimg);
+ ancestro=ancestro.PapaNodo();
+ }
+ }
+}
+//____________________________________________________________________________
+//
+// Inserta un nodo en el árbol
+// Especificaciones:
+// Los parámetros recibidos son:
+// - nodov: Nodo vista
+// - tablanodo: Tabla nodo generada para la nueva celda vista
+//____________________________________________________________________________
+function InsertaNodo(nodov,tablanodo){
+ var nwceldavista=CreaCeldaVista(nodov,tablanodo);
+ var nwTR = document.createElement('TR');
+ nwTR.id="TRNodo-0";
+ var nwTD = document.createElement('TD');
+ nwTD.innerHTML=nwceldavista;
+ nwTR.appendChild(nwTD);
+
+ if(!nodov.TieneHijos()){
+ CreaNodoHijo(nodov);
+ if(parseInt(nodov.nivel)==0){ // Nodo raiz
+ nodov.imgsigno.setAttribute("value","menos_c",null);
+ nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_root.gif",null);
+ }
+ else{
+ if(nodov.UltimoHermano()){
+ nodov.imgsigno.setAttribute("value","menos_c",null);
+ nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null);
+ }
+ else{
+ nodov.imgsigno.setAttribute("value","menos_t",null);
+ nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_t.gif",null);
+ }
+ }
+ var ATTonclick='clickImagenSigno(this,' + "'"+currentpathimg+"'"+','+nodov.nivel+');';
+ nodov.imgsigno.setAttribute("onclick",ATTonclick,null);
+ nodov.imgsigno.setAttribute("border","0",null);
+ var oSPAN=nodov.imgsigno.parentNode;
+ var htmlIMG=oSPAN.innerHTML;
+ TDpadre=oSPAN.parentNode;
+ TDpadre.innerHTML='<A href="#">'+htmlIMG+'</A>';
+ }
+ var pivoteNodo=nodov.ArbolHijos;
+ var nodoTD = pivoteNodo.childNodes[0];;
+ var nodoTABLE=nodoTD.childNodes[0];
+ var nodoTBODY=nodoTABLE.childNodes[0];
+ var nodoTR=nodoTBODY.childNodes[0];
+ if(nodoTR!=null)
+ nodoTBODY.insertBefore(nwTR,nodoTR);
+ else
+ nodoTBODY.appendChild(nwTR);
+}
+//____________________________________________________________________________
+//
+// Monta y devuelve el código HTML de la estructura de una celda vista
+// Los parámetros recibidos son:
+// - pivoteNodo: Nodo vista
+// - tablanodo: Tabla nodo generada para la nueva celda vista
+//____________________________________________________________________________
+function CreaCeldaVista(nodov,tablanodo){
+ var nodoTD = document.createElement('TD');
+ nodoTD.innerHTML=tablanodo;
+ var nodoTABLE=nodoTD.childNodes[0];
+ var nodoTBODY=nodoTABLE.childNodes[0];
+ var nodoTBODYTR=nodoTBODY.childNodes[0];
+ var oIMG=nodoTBODYTR.getElementsByTagName('IMG')[0];
+ var HTMLinner=nodoTBODYTR.innerHTML;
+
+ if(nodov.TieneHijos()){
+ var patron = new RegExp("nada_c","gi")
+ HTMLinner=HTMLinner.replace(patron,"nada_t");
+ }
+ else{
+ var patron = new RegExp("nada_t","gi")
+ HTMLinner=HTMLinner.replace(patron,"nada_c");
+ }
+ var auxnodo=nodov;
+ var nwHTMLinner="";
+ var img="";
+ while(auxnodo!=null){
+ (auxnodo.UltimoHermano())? img="nada.gif" : img="nada_l.gif";
+ nwHTMLinner='<TD width="3px"></TD><TD width="16px"><IMG src="../images/signos/'+img+'" width="16px" height="16px" ></TD>'+nwHTMLinner;
+ auxnodo=auxnodo.PapaNodo();
+ }
+ nwHTMLinner='<TABLE border=0 cellspacing=0 cellpadding=0><TR height="16px">'+nwHTMLinner+HTMLinner+"</TR></TABLE>"; // Contenido de la tabla del nodo literal
+ return(nwHTMLinner);
+}
+//____________________________________________________________________________
+//
+// Crea un nuevo nodo Hijo (objeto TABLE)
+// Parámetros:
+// - nodov: Un nodo vista
+//____________________________________________________________________________
+function CreaNodoHijo(nodov){
+ var nivel=parseInt(nodov.nivel)+1;
+ var nTR=document.createElement('TR');
+ nTR.id="TRNodoHijo-0";
+ var nTD=document.createElement('TD');
+ nTD.innerHTML='<TABLE with="100%"id="tablanivel-'+nivel+'" border="0" cellspacing="0" cellpadding="0"><TBODY></TBODY></TABLE>';
+ nTR.appendChild(nTD);
+
+ var pivoteNodo=nodov.Nodo.parentNode;
+ if(nodov.UltimoHermano()){
+ pivoteNodo.appendChild(nTR); // Para insertar al final
+ }
+ else{
+ pivoteNodo.insertBefore(nTR,nodov.siguienteHermano)
+ }
+ nodov.ArbolHijos=nTR;
+}
+//____________________________________________________________________________
+//
+// Inserta un nodo en el árbol
+// Especificaciones:
+// Los parámetros recibidos son:
+// - nodov: Nodo vista
+//____________________________________________________________________________
+function EliminaNodo(nodov){
+ var swuh=nodov.UltimoHermano();
+ var pn=nodov.Nodo.parentNode; // Nodo padre
+ var papa=nodov.PapaNodo(); // Nodo vista padre
+
+ if(nodov.TieneHijos())
+ pn.removeChild(nodov.ArbolHijos); // Elimina arbol hijo
+ pn.removeChild(nodov.Nodo); // Elimina Nodo
+
+ var antHermano=pn.lastChild
+ if(antHermano==null){ // El nodo padre no tiene más hijos
+ var pn=papa.ArbolHijos.parentNode; // Nodo padre
+ pn.removeChild(papa.ArbolHijos); // Elimina arbol hijo
+ ChgSignoPadreEliminaNodo(papa.imgsigno);
+ }
+ else{
+ if(swuh){ // Si era el último hermano ...
+ var auxsplit=antHermano.getAttribute("id");
+ var idTR=auxsplit.split("-") [0];
+ if(idTR=="TRNodoHijo"){
+ antHermano=antHermano.previousSibling;
+ while(antHermano.nodeType!=1 )
+ antHermano=antHermano.previousSibling
+ var TAnchor=antHermano.getElementsByTagName('A');
+ if(TAnchor.length==2) // Imagen de signo pulsable
+ var oIMG=TAnchor[0].childNodes[0];
+ }
+ else{
+ var TSpan=antHermano.getElementsByTagName('SPAN');
+ var oIMG=TSpan[0].childNodes[0];
+ }
+ var nh=TomaDatosNodo(oIMG);
+ ChgSignoEliminaNodo(oIMG);
+ if(nh.TieneHijos())
+ ChgSignoNivel(nh.ArbolHijos,nh.nivel);
+ }
+ }
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Cambia la imagen de signo del hermano anterior de un nodo eliminado
+//-----------------------------------------------------------------------------------------------------------------------
+function ChgSignoEliminaNodo(imgsigno){
+ var signoimg=imgsigno.getAttribute("value");
+ switch(signoimg){
+ case "menos_t" :
+ imgsigno.setAttribute("value","menos_c",null);
+ imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null);
+ break;
+ case "mas_t" :
+ imgsigno.setAttribute("value","mas_c",null);
+ imgsigno.setAttribute("src",currentpathimg+"/mas_c.gif",null);
+ break;
+ case "nada_t" :
+ imgsigno.setAttribute("value","nada_c",null);
+ imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
+ break;
+ }
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Cambia la imagen de signo del nodo padre de un nodo eliminado ( unico hijo)
+//-----------------------------------------------------------------------------------------------------------------------
+function ChgSignoPadreEliminaNodo(imgsigno){
+ var signoimg=imgsigno.getAttribute("value");
+ switch(signoimg){
+ case "menos_t" :
+ imgsigno.setAttribute("value","nada_t",null);
+ imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null);
+ QuitaANCHOR(imgsigno);
+ break;
+ case "menos_c" :
+ imgsigno.setAttribute("value","nada_c",null);
+ imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
+ QuitaANCHOR(imgsigno);
+ break;
+ case "mas_t" :
+ imgsigno.setAttribute("value","nada_t",null);
+ imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null);
+ QuitaANCHOR(imgsigno);
+ break;
+ case "mas_c" :
+ imgsigno.setAttribute("value","nada_c",null);
+ imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
+ QuitaANCHOR(imgsigno);
+ break;
+ }
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Cambia la imagen de un determinado nivel
+//-----------------------------------------------------------------------------------------------------------------------
+function QuitaANCHOR(oIMG){
+ var TAnchor=oIMG.parentNode;
+ var oHTML=TAnchor.innerHTML;
+ var oTD=TAnchor.parentNode;
+ oTD.innerHTML="<SPAN>"+oHTML+"</SPAN>";
+}
+//-----------------------------------------------------------------------------------------------------------------------
+// Cambia la imagen de un determinado nivel
+//-----------------------------------------------------------------------------------------------------------------------
+function ChgSignoNivel(arbolv,n){
+ if(arbolv==null) return
+ var nodoTD =arbolv.childNodes[0];
+ var nodoTABLE=nodoTD.childNodes[0];
+ var nodoTBODY=nodoTABLE.childNodes[0];
+ var oTRs=nodoTBODY.childNodes;
+ for(var i=0;i<oTRs.length;i++){
+ var auxsplit=oTRs[i].getAttribute("id");
+ var idTR=auxsplit.split("-") [0];
+ if(idTR=="TRNodoHijo"){
+ ChgSignoNivel(oTRs[i],n)
+ }
+ else{
+ var oTABLE=oTRs[i].getElementsByTagName('TABLE');
+ var oIMGs=oTABLE[0].getElementsByTagName('IMG');
+ oIMGs[n].setAttribute("src",currentpathimg+"/nada.gif",null);
+ }
+ }
+}
+//____________________________________________________________________________
+//
+// Se ejecuta cada vez que se mueve el puntero del ratón. Se usa para desmarca
+// cualquier item de menu contextual que estuviese activo
+//____________________________________________________________________________
+function click_de_raton_prov(e){
+ if(IE){
+ botonraton=event.button
+ event.returnValue=true;
+ return;
+ }
+ if(NS){
+ botonraton=e.which;
+ e.returnValue=true;
+ return;
+ }
+}
+//____________________________________________________________________________
+//
+// Recupera el navegador utilizado
+//____________________________________________________________________________
+var IE=(navigator.appName=="Microsoft Internet Explorer");
+var NS=(navigator.appName=="Netscape");
+//____________________________________________________________________________
+//
+// Redirecciona el evento onmousedown a la función de usuario especificada.
+//____________________________________________________________________________
+document.onmousedown = click_de_raton_prov; // Redefine el evento onmousedown
+ if(NS) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
+
+
diff --git a/admin/WebConsole/clases/jscripts/HttpLib.js b/admin/WebConsole/clases/jscripts/HttpLib.js
new file mode 100644
index 00000000..953c7ea9
--- /dev/null
+++ b/admin/WebConsole/clases/jscripts/HttpLib.js
@@ -0,0 +1,59 @@
+// ********************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2009-2010
+// Fecha ltima modificacin: Agosto-2010
+// Nombre del fichero: consolaremota.php
+// Descripcin : Clase para llamar pginas web usando metodologa AJAX
+// ********************************************************************************
+var _url;
+var _fun;
+var oXMLHttpRequest;
+//____________________________________________________________________________
+//
+// LLama a la pgina
+//
+// Parmetros:
+//
+// url // Url de la pgina a la que se llama
+// fun // Funcin a la que se llama despues de descargarse la pgina
+//____________________________________________________________________________
+function CallPage(url,prm,fun,met){
+ _url=url;
+ _fun=fun;
+
+ if (window.XMLHttpRequest) {
+ oXMLHttpRequest= new XMLHttpRequest();
+ oXMLHttpRequest.onreadystatechange = procesaoXMLHttpRequest;
+ oXMLHttpRequest.open("POST",_url, true);
+ oXMLHttpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
+ oXMLHttpRequest.send(prm);
+ } else if (window.ActiveXObject) {
+ isIE = true;
+ try {
+ oXMLHttpRequest= new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ oXMLHttpRequest= new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ oXMLHttpRequest= false;
+ }
+ }
+ if (oXMLHttpRequest) {
+ oXMLHttpRequest.onreadystatechange =procesaoXMLHttpRequest;
+ oXMLHttpRequest.open("POST",_url, true);
+ oXMLHttpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
+ oXMLHttpRequest.send(prm);
+ }
+ }
+}
+ //_____________________________________________________________________________________
+ function procesaoXMLHttpRequest(){
+ if (oXMLHttpRequest.readyState == 4) {
+ if (oXMLHttpRequest.status == 200) {
+ var fcbk=_fun+"(oXMLHttpRequest.responseText)";
+ eval(fcbk)
+ }
+ }
+}
+
diff --git a/admin/WebConsole/clases/jscripts/MenuContextual.js b/admin/WebConsole/clases/jscripts/MenuContextual.js
new file mode 100644
index 00000000..a39358db
--- /dev/null
+++ b/admin/WebConsole/clases/jscripts/MenuContextual.js
@@ -0,0 +1,394 @@
+// ***************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: menucontextual.js
+// Este fichero implementa las funciones javascript de la clase MenuContextual
+// ***************************************************************************
+var ctx_grissistema="#d4d0c8"
+var ctx_azulmarino="#0a266a";
+var ctx_blanco="#ffffff";
+var ctx_negro="#000000";
+var ctx_grissombra="#808080";
+
+gmenuctx=new Array(); // Guarda el último menu flotante
+var idxmnu=0 // Indice de los menus flotantes
+var currentItem=null;
+var currentPadresubmenu;
+var currentPadreY;
+
+var ClickX=null // Coordenada x del evento click del boton derecho
+var ClickY=null // Coordenada y del evento click del boton derecho
+var botonraton=null;
+//____________________________________________________________________________
+//
+// Esta función muestra un menu contextual
+// Parámetros:
+// - x: Coordenada x de referencia
+// - y: Coordenada y de referencia
+// - menuctx: Objeto DIV contenedor del menu contextual
+//____________________________________________________________________________
+function muestra_contextual(x,y,menuctx){
+ var margen=0
+ dpzx=16
+ dpzy=16
+ wtop=calculatop_ctx(y,dpzy,margen,menuctx) // Calcula posición del menu contextual
+ wleft=calculaleft_ctx(x,dpzx,margen,menuctx)
+ ftop=wtop+parseInt(document.body.scrollTop) // Tiene en cuenta el scrolling
+ fleft=wleft+parseInt(document.body.scrollLeft)
+ menuctx.style.top=ftop
+ menuctx.style.left=fleft
+ menuctx.style.visibility="visible"
+ menuctxSetSelectedIndex(menuctx,-1) // Coloca el nuevo indice
+ gmenuctx[idxmnu++]=menuctx;
+}
+//____________________________________________________________________________
+//
+// Calcula coordenada top para el menu contextual que se mostrará.
+// Parametros:
+// - oriy : Coordenada Y del objeto que provoca el evento
+// - dpzy : Desplazamiento sobre el eje y
+// - margen : Margen para que el menu aparezca un poco separado del ese objeto
+// - menuctx: El menu (objeto DIV) que se mostrará
+//____________________________________________________________________________
+function calculatop_ctx(oriy,dpzy,margen,menuctx){ // Calcula Y del menu contextual
+ largodiv=parseInt(menuctx.offsetHeight);
+ var wtop=oriy+dpzy+margen
+ if (wtop+largodiv>parseInt(document.body.clientHeight)){
+ var nwtop=oriy-dpzy-margen-largodiv
+ if (nwtop>0) wtop=nwtop
+ }
+ return(wtop)
+}
+//____________________________________________________________________________
+//
+// Calcula coordenada left para el menu contextual que se mostrará.
+// Parametros:
+// - orix : Coordenada X del objeto que provoca el evento
+// - dpzx : Desplazamiento sobre el eje x
+// - margen : Margen para que el menu aparezca un poco separado del ese objeto
+// - menuctx: El menu (objeto DIV) que se mostrará
+//____________________________________________________________________________
+function calculaleft_ctx(orix,dpzx,margen,menuctx){ // Calcula Y del menu contextual
+ anchodiv=parseInt(menuctx.offsetWidth)
+ var wleft=orix+dpzx+margen
+ var maximodpl=parseInt(document.body.clientWidth)
+ if (wleft+anchodiv>maximodpl){ // Si no cabe a la derecha
+ var nwleft=orix-dpzx-margen-anchodiv // lo intenta a la izda.
+ if (nwleft>0) wleft=nwleft
+ else{
+ wleft=maximodpl-dpzx-margen-anchodiv;
+ if(wleft<document.body.scrollLeft) wleft=document.body.scrollLeft+16
+ }
+ }
+ return(wleft)
+}
+//____________________________________________________________________________
+//
+// Esta función devuelve el objeto DIV al que pertenece el item <TR>
+// Parametros:
+// - o: El objeto <TR>
+//____________________________________________________________________________
+function contextual(o){
+ while(o.tagName!="DIV")
+ o=o.parentNode
+ return(o)
+}
+//____________________________________________________________________________
+//
+// Esta función devuelve el objeto <TR> apuntado por el indice
+// Parametros:
+// - o: El objeto TR
+// - idx: el indice del item, si es nulo se devuelve el item(objeto TR), seleccionado
+//____________________________________________________________________________
+function menuctxSelectedItem(o,idx){
+ var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV
+ var oTABLE=oDIV.childNodes[0]; // objeto TABLE
+ var oINPUT=oDIV.childNodes[1]; // objeto INPUT
+ var oTBODY=oTABLE.getElementsByTagName('TBODY')[0];
+ if(idx==null) // No se especificó indice, devuelve el item seleccionado
+ idx=oINPUT.getAttribute("value");
+ var oTRS=oTBODY.getElementsByTagName('TR');
+ for (var i=0;i<oTRS.length;i++){
+ var oTR=oTRS[i];
+ if(oTR.getAttribute("id")==idx) return(oTR);
+ }
+ return(null);
+}
+//____________________________________________________________________________
+//
+// Esta función actualiza el nuevo el indice del item seleccionado
+// Parametros:
+// - o: El objeto DIV que contiene el menu contextual o un item(objeto TR) de él
+// - i: El valor del indice
+//____________________________________________________________________________
+function menuctxSetSelectedIndex(o,idx){
+ var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV
+ var oINPUT=oDIV.childNodes[1];
+ oINPUT.value=idx;
+}
+//____________________________________________________________________________
+//
+// Esta función devuelve el indice del item seleccionado
+// Parametros:
+// -o : El objeto DIV que contiene el menu contextual o un item(objeto TR) de él
+//____________________________________________________________________________
+function menuctxSelectedIndex(o){
+ var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV
+ var oINPUT=oDIV.childNodes[1];
+ return(oINPUT.value);
+}
+//____________________________________________________________________________
+// Se ejecuta cuando se posiciona el cursor dentro de un item de algún menú contextual.
+// Parámetros:
+// - o: El item (objeto TR) donde se ha colocado el ratón
+//____________________________________________________________________________
+function sobre_contextual(o){
+ var oDIV=contextual(o) // Se asegura que el objeto de inicio es DIV
+ var idx=menuctxSelectedIndex(oDIV) // Indice del Item anterior seleccionado
+ var nwid=o.getAttribute("id");
+ if (parseInt(idx)!=parseInt(nwid)){ // Si cambio de item
+ if(idx>0){ // Si existía item anterior seleccionado
+ desmarcar_item(oDIV,idx) // Desmarca item anterior
+ }
+ marcar_item(o); // Marca el actual item
+ currentItem=o;
+ }
+}
+//____________________________________________________________________________
+//
+// Hace resaltar el item del menu contextual donde se coloca el cursor.
+// Si este item tuviese un submenu contextual,éste también aparecería.
+// Además, inicializa el campo oculto de cada DIV donde se guarda el índice
+// del item selecionado.
+//
+// Parametros:
+// - item: El objeto <TR>
+//____________________________________________________________________________
+function marcar_item(item){
+ marca_desmarca(item,true) // Marca el item
+ if (item.getAttribute("name")!=""){ // Existe submenu contextual
+ currentPadresubmenu=item
+ currentPadreY=ClickY
+ setTimeout ("muestra_submenu();", 300);
+ }
+ menuctxSetSelectedIndex(contextual(item),item.getAttribute("id")); // Coloca el nuevo indice
+}
+//____________________________________________________________________________
+//
+// Quita el resalte de un item y oculta los posibles submenus que tuviera
+// Parametros:
+// -o : El objeto DIV que contiene el menu contextual
+// - idx: el indice del item, si es nulo desmarca el item(objeto TR), seleccionado
+//____________________________________________________________________________
+function desmarcar_item(o,idx){
+ var oDIV=contextual(o) // Se asegura que el objeto de inicio es DIV
+ if(idx==null) // No se especificó indice
+ idx=menuctxSelectedIndex(oDIV) // Indice del Item seleccionado
+ var item=menuctxSelectedItem(oDIV,idx)
+ if(item==null) return // No hay item seleccionado
+ marca_desmarca(item,false);
+ var nomsub=item.getAttribute("name");
+ if (nomsub!=null &&nomsub!=""){ // Tiene submenu
+ var submenuctx=document.getElementById(nomsub);
+ desmarcar_item(submenuctx); // Desmarca submenu
+ submenuctx.style.visibility="hidden";
+ }
+}
+//____________________________________________________________________________
+//
+// Marca o desmarca items dependiendo del parametro sw.
+// Parámetros:
+// - o: El item (objeto TR)
+// Si sw=true marca, si sw=false demarca
+//____________________________________________________________________________
+function marca_desmarca(o,sw){
+ if(sw){ // Marca
+ var wfondo=ctx_azulmarino;
+ var wcolor=ctx_blanco;
+ }
+ else{ // Desmarca
+ var wfondo=ctx_grissistema;
+ var wcolor=ctx_negro;
+ }
+ (MenuconImagen(contextual(o)) ? i0=2:i0=1);
+ var nh=o.childNodes.length;
+ for (var i=i0;i<nh-1;i++){
+ var oTD=o.childNodes[i];
+ var oIMGS=oTD.getElementsByTagName('IMG');
+ if (oIMGS.length>0){
+ var oIMG=oIMGS[0];
+ if (oIMG.getAttribute("name")=="swsbfn"){ // imagen switch submenu
+ oTD.style.backgroundColor=wfondo
+ oTD.style.color=wcolor
+ if (sw)
+ oIMG.setAttribute("src","../images/flotantes/swsbfb.gif",null);
+ else
+ oIMG.setAttribute("src","../images/flotantes/swsbfn.gif",null);
+ }
+ else{ // imagen del item
+ if (sw){ // Marcar
+ oIMG.style.border="1px";
+ oIMG.style.borderStyle="outset";
+
+ }
+ else{ // Desmarcar
+ oIMG.style.borderStyle="none";
+ }
+ }
+ }
+ else{
+ oTD.style.backgroundColor=wfondo
+ var oSPAN=oTD.getElementsByTagName('SPAN');
+ if (oSPAN.length>0)
+ oSPAN[0].style.color=wcolor
+ }
+ }
+}
+//____________________________________________________________________________
+//
+// Detecta si el menu contextual tiene items con imágenes asociadas
+// Devuelve true en caso afirmativo y false en caso contrario.
+//____________________________________________________________________________
+function MenuconImagen(o){
+ var oDIV=contextual(o);
+ var oIMGS=oDIV.getElementsByTagName('IMG');
+ return(oIMGS.length>0);
+}
+//____________________________________________________________________________
+function reset_contextual(x,y){
+ var swm=false;
+ for (var i=0;i<idxmnu;i++ ){
+ if (gmenuctx[i].style.visibility=="visible")
+ swm=swm || EnContextual(x,y,gmenuctx[i])
+ }
+ if (!swm){ // No se ha hecho click en ningún menu contextual
+ for (var i=0;i<idxmnu;i++ ){
+ desmarcar_item(gmenuctx[i]);
+ gmenuctx[i].style.visibility="hidden";
+ gmenuctx[i]=null
+ }
+ idxmnu=0;
+ }
+}
+//____________________________________________________________________________
+//
+// Detecta si ha hecho fuera del menu contextual pasado como parametro
+// Parametros:
+// - x : Coordenada X de la pantalla donde se hizo click
+// - y : Coordenada Y de la pantalla donde se hizo click
+// - menuctx: El submenu (objeto DIV)
+//____________________________________________________________________________
+function EnContextual(x,y,menuctx){
+ origen_x=parseInt(menuctx.offsetLeft)-parseInt(document.body.scrollLeft)
+ origen_y=parseInt(menuctx.offsetTop)-parseInt(document.body.scrollTop)
+ anchodiv=parseInt(menuctx.offsetWidth)
+ largodiv=parseInt(menuctx.offsetHeight)
+
+ if ( x>=origen_x && x<=origen_x+anchodiv && y>=origen_y && y<=origen_y+largodiv ) return true
+ return(false)
+}
+//____________________________________________________________________________
+//
+// Muestra un submenu
+// Parametros:
+// - item: El objeto <TR> padre del submenu
+//____________________________________________________________________________
+function muestra_submenu(){
+ if(currentPadresubmenu==currentItem){
+ var objdiv=contextual(currentPadresubmenu)
+ var menuctx=document.getElementById(currentPadresubmenu.getAttribute("name")); // Obtiene el submenu
+ //desmarcar_item(menuctx) // Desmarca el submenu por si se ha usado anteriormente
+ wleft=subcalculaleft_ctx(objdiv,menuctx) // La x en función del padre
+ wtop=subcalculatop_ctx(currentPadreY,menuctx) // La y depende de la longitud del submenu
+ menuctx.style.top=wtop
+ menuctx.style.left=wleft
+ menuctx.style.visibility="visible";
+ menuctxSetSelectedIndex(menuctx,-1) // Coloca el nuevo indice
+ gmenuctx[idxmnu++]=menuctx;
+ }
+}
+//____________________________________________________________________________
+//
+// Calcula coordenada top para el submenu contextual que se mostrará.
+// Parametros:
+// - y : Coordenada Y de la pantalla donde se hizo click
+// - menuctx: El submenu (objeto DIV) que se mostrará
+//____________________________________________________________________________
+function subcalculatop_ctx(y,menuctx){ // Calcula el posicionamiento (y) del DIV ( SUBmenu contextual)
+ var dpl=0
+ largodiv=parseInt(menuctx.offsetHeight)
+ var wtop=y+dpl+parseInt(document.body.scrollTop)
+ if (parseInt(wtop+largodiv)>parseInt(document.body.clientHeight+parseInt(document.body.scrollTop))){
+ var nwtop=y+parseInt(document.body.scrollTop)-16-largodiv
+ if (nwtop>0) wtop=nwtop
+ }
+ return(wtop)
+}
+//____________________________________________________________________________
+//
+// Calcula coordenada left para el submenu contextual que se mostrará.
+// Parametros:
+// - padrediv : Objeto DIV padre del submenu a mostrar
+// - menuctx: El submenu (objeto DIV) que se mostrará
+//____________________________________________________________________________
+function subcalculaleft_ctx(padrediv,menuctx){ // Calcula el posicionamiento (x) del DIV ( SUBmenu contextual)
+ anchopadrediv=parseInt(padrediv.offsetWidth) // Ancho del div padre
+ anchomenuctx=parseInt(menuctx.offsetWidth) // Ancho del div
+ if(IE)
+ leftpadrediv=padrediv.style.pixelLeft // Coordenada x del div padre
+ else
+ if(NS)
+ leftpadrediv=parseInt(padrediv.style.left) // Coordenada x del div padre
+ desplazamiento=leftpadrediv+anchopadrediv-4 // Desplazamiento
+ var wleft=parseInt(desplazamiento)
+ var maximodpl=parseInt(document.body.clientWidth)+parseInt(document.body.scrollLeft)
+ if (wleft+anchomenuctx>maximodpl){
+ var nwleft=leftpadrediv-anchomenuctx
+ if (nwleft>0) wleft=nwleft
+ else{
+ wleft=maximodpl-anchomenuctx;
+ if(wleft<document.body.scrollLeft) wleft=document.body.scrollLeft+18
+ }
+ }
+ return(wleft)
+}
+//____________________________________________________________________________
+//
+// Se ejecuta cada vez que se hace click con el puntero del ratón. Se usa para desmarca
+// cualquier item de menu contextual que estuviese activo
+//____________________________________________________________________________
+function click_de_raton(e){
+ if(IE){
+ botonraton=event.button
+ event.returnValue=true;
+ }
+ if(NS){
+ botonraton=e.which;
+ e.returnValue=true;
+ }
+ if (gmenuctx.length>0){
+ reset_contextual(ClickX,ClickY);
+ }
+}
+//____________________________________________________________________________
+//
+// Se ejecuta cada vez que se mueve el puntero del ratón. Se usa para capturar coordenadas
+//____________________________________________________________________________
+function move_de_raton(e){
+ if(IE){
+ ClickX=event.clientX
+ ClickY=event.clientY
+ event.returnValue=true;
+ }
+ if(NS){
+ ClickX=e.clientX
+ ClickY=e.clientY
+ e.returnValue=true;
+ }
+}
+//____________________________________________________________________________
+//
+// Redirecciona el evento onmousedown a la función de usuario especificada.
+//____________________________________________________________________________
+document.onmousedown = click_de_raton; // Redefine el evento onmousedown
+document.onmousemove = move_de_raton; // Redefine el evento onmousedown
diff --git a/admin/WebConsole/comandos/Apagar.php b/admin/WebConsole/comandos/Apagar.php
new file mode 100644
index 00000000..3ddb8f1a
--- /dev/null
+++ b/admin/WebConsole/comandos/Apagar.php
@@ -0,0 +1,72 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Apagar.php
+// Descripción :
+// Implementación del comando "Apagar"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/apagar_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/Apagar.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+
diff --git a/admin/WebConsole/comandos/Arrancar.php b/admin/WebConsole/comandos/Arrancar.php
new file mode 100644
index 00000000..68489a20
--- /dev/null
+++ b/admin/WebConsole/comandos/Arrancar.php
@@ -0,0 +1,71 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Arrancar.php
+// Descripción :
+// Implementación del comando "Arrancar"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/arrancar_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/Arrancar.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+
diff --git a/admin/WebConsole/comandos/Comando.php b/admin/WebConsole/comandos/Comando.php
new file mode 100644
index 00000000..50a1e28c
--- /dev/null
+++ b/admin/WebConsole/comandos/Comando.php
@@ -0,0 +1,72 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Comando.php
+// Descripción :
+// Implementación de cualquier comando que no necesite parametros adicionales
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/comando_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/Comando.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$descricomando.'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+
diff --git a/admin/WebConsole/comandos/Configurar.php b/admin/WebConsole/comandos/Configurar.php
new file mode 100644
index 00000000..a5e645b8
--- /dev/null
+++ b/admin/WebConsole/comandos/Configurar.php
@@ -0,0 +1,260 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Configurar.php
+// Descripción :
+// Implementación del comando "Configurar"
+// *************************************************************************************************************************************************
+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/configurar_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+//
+// Captura parámetros
+//________________________________________________________________________________________________________
+
+$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>Administración 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/Configurar.js"></SCRIPT>
+<SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/configurar_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'</span><br>'; // Cabecera
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>'; // Subcebecera
+ 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="Configurar.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 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 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 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>
+ <TR>
+ <TD height=20 align="center" colspan=14>
+ <A href=#>
+ <IMG border=0 src="../images/boton_confirmar.gif" onclick="document.fdatos.submit()"></A></TD>
+ </TR>
+ </TABLE>
+ </FORM>
+<?
+ }
+ $sws=$fk_sysFi | $fk_tamano | $fk_nombreSO;
+ pintaConfiguraciones($cmd,$idambito,$ambito,7,$sws,true);
+
+ /* Dibuja tabla patron !OJO! no insertar caracteres entre las etiquetas*/
+
+ echo '<TABLE style="visibility:hidden"><TR id="TR_patron">';
+ echo '<TD align=center><input id="CHK_patron" type="checkbox"></TD>';
+ echo '<TD align=center>'.HTMLSELECT_particiones(0).'</TD>';
+ echo '<TD align=center>'.HTMLSELECT_tipospar($cmd,0).'</TD>';
+ echo '<TD align=center>'.HTMLSELECT_sistemasficheros($cmd,0).'</TD>';
+ echo '<TD align=center><INPUT type="text" style="width:100" value="0"></TD>';
+ echo '<TD align=center>&nbsp;</TD>';
+ echo '<TD align=center>'.HTMLSELECT_operaciones().'</TD></TR></TABlE>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ $swb=true; // Este switch hace que se muestren o se oculten los botonotes de confirmación
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+/*________________________________________________________________________________________________________
+
+ Descripción:
+ (Esta función 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
+ sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
+ Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
+ $idordenadores: cadena con los identificadores de los ordenadores que forman parte del bloque
+ $cc: Identificador de la configuración
+ Devuelve:
+ El código html de la tabla
+________________________________________________________________________________________________________*/
+function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
+ global $TbMsg;
+
+ $colums=7;
+ echo '<TR id="TR_'.$cc.'">';
+ echo '<TH align=center><IMG src="../images/iconos/eliminar.gif"></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[27].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[22].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[21].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[12].'&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 partición
+ if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
+ $icp=$cc."_".$k; // Identificador de la configuración-partición
+ echo '<TR id="TR_'.$icp.'">';
+ echo '<TD align=center><input type=checkbox onclick="eliminaParticion(\''.$icp.'\',this)"></TD>';
+
+ echo '<TD align=center>'.HTMLSELECT_particiones($tbKeys[$k]["numpar"]).'</TD>';
+ echo '<TD align=center>'.HTMLSELECT_tipospar($cmd,$tbKeys[$k]["codpar"]).'</TD>';
+
+ $sf=tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores,true);
+ echo'<TD align=center>'.HTMLSELECT_sistemasficheros($cmd,$sf).'</TD>';
+
+ $tm=tomaTamano($tbKeys[$k]["numpar"],$idordenadores);
+ echo'<TD align=center><INPUT type="text" style="width:100" value="'.$tm.'"></TD>';
+
+ echo '<TD align=center>'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'</TD>';
+
+ echo '<TD align=center>'.HTMLSELECT_operaciones().'</TD>';
+ echo '</TR>';
+ }
+ }
+ }
+ /* Botones de añadir y confirmar */
+ echo '<TR id="TRIMG_'.$cc.'" height=5><TD colspan='.$colums.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+ echo '<TR height=30><TD style="BACKGROUND-COLOR: #FFFFFF;" colspan='.$colums.' align=center>';
+ echo ' <A href="#add" style="text-decoration:none">
+ <IMG id="IMG_'.$icp.'" border=0 src="../images/boton_insertar.gif"
+ value="'.$k.'" onclick="addParticion(this,'.$cc.')"></A>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <A href="#add" style="text-decoration:none">
+ <IMG border=0 src="../images/boton_aceptar.gif" onclick="Confirmar('.$cc.')"></A></TD>
+ </TR>';
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los número de particiones
+________________________________________________________________________________________________________*/
+function HTMLSELECT_particiones($p)
+{
+ global $TbMsg;
+
+ $SelectHtml="";
+ $opciones="";
+ for($i=0;$i<8;$i++)
+ $opciones.="$i=$i".chr(13);
+ $opciones.="$i=$i";
+ $SelectHtml.=HTMLCTESELECT($opciones,"particiones","estilodesple","",$p,40,"");
+ return($SelectHtml);
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de las operaciones
+________________________________________________________________________________________________________*/
+function HTMLSELECT_operaciones()
+{
+ global $TbMsg;
+
+ $SelectHtml="";
+ $opciones="1=".$TbMsg[14]."".chr(13);
+ $opciones.="2=".$TbMsg[15]."".chr(13);
+ $opciones.="3=".$TbMsg[16]."";
+ $SelectHtml.=HTMLCTESELECT($opciones,"operaciones","estilodesple",$TbMsg[13],0,100,"");
+ return($SelectHtml);
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los tipos de particiones
+________________________________________________________________________________________________________*/
+function HTMLSELECT_tipospar($cmd,$codpar)
+{
+ return(HTMLSELECT($cmd,0,"tipospar",$codpar,"codpar","tipopar",150,"","formulariodatos"));
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los sistemas de ficheros
+________________________________________________________________________________________________________*/
+function HTMLSELECT_sistemasficheros($cmd,$idsistemafichero)
+{
+ return(HTMLSELECT($cmd,0,"sistemasficheros",$idsistemafichero,"idsistemafichero","descripcion",150,"","formulariodatos"));
+}
+?>
diff --git a/admin/WebConsole/comandos/CrearImagen.php b/admin/WebConsole/comandos/CrearImagen.php
new file mode 100644
index 00000000..00e404b5
--- /dev/null
+++ b/admin/WebConsole/comandos/CrearImagen.php
@@ -0,0 +1,212 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: CrearImagen.php
+// Descripción :
+// Implementación del comando "CrearImagen.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/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/comandos/crearimagen_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+$resul=tomaPropiedades($cmd,$idambito);
+if (!$resul){
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/CrearImagen.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/crearimagen_'.$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>
+<?
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[15];
+
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[0].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[14].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+?>
+<P align=center><SPAN align=center class=subcabeceras><? echo $TbMsg[6] ?></SPAN></P>
+
+<FORM align=center name="fdatos">
+ <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;<? echo $TbMsg[8] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[13] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[10] ?>&nbsp;</TD>
+ <TH align=center>&nbsp;<? echo $TbMsg[11] ?>&nbsp;</TD>
+ </TR>
+ <?
+ echo tablaConfiguraciones($cmd,$idambito,$idrepositorio);
+ ?>
+ </TABLE>
+</FORM>
+
+<?
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Recupera los datos de un ordenador
+ Parametros:
+ - cmd: Una comando ya operativo (con conexiónabierta)
+ - ido: El identificador del ordenador
+________________________________________________________________________________________________________*/
+function tomaPropiedades($cmd,$ido){
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $idperfilhard;
+ global $idrepositorio;
+ $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"];
+ $idperfilhard=$rs->campos["idperfilhard"];
+ $idrepositorio=$rs->campos["idrepositorio"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los perfiles softwares
+________________________________________________________________________________________________________*/
+function HTMLSELECT_imagenes($cmd,$idperfilsoft,$particion)
+{
+ $SelectHtml="";
+ $cmd->texto="SELECT imagenes.idimagen,imagenes.descripcion,imagenes.nombreca,imagenes.idperfilsoft FROM imagenes";
+// WHERE imagenes.idperfilsoft=".$idperfilsoft;
+ // echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ $SelectHtml.= '<SELECT class="formulariodatos" id="despleimagen_'.$particion.'" style="WIDTH: 300">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos["idimagen"]."_".$rs->campos["nombreca"]."_".$rs->campos["nombreca"].'"';
+ if($idperfilsoft==$rs->campos["idperfilsoft"]) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcion"].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ }
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los repositorios
+________________________________________________________________________________________________________*/
+function HTMLSELECT_repositorios($cmd,$idcentro,$idrepositorio,$particion){
+ $SelectHtml="";
+ $rs=new Recordset;
+
+ $cmd->texto="SELECT nombrerepositorio,ip FROM repositorios";
+ $rs->Comando=&$cmd;
+
+ if (!$rs->Abrir()) return($SelectHtml); // Error al abrir recordset
+ $SelectHtml.= '<SELECT class="formulariodatos" id="desplerepositorios_'.$particion.'" style="WIDTH: 250">';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos["ip"].'"';
+ if($rs->campos["idrepositorio"]==$idrepositorio) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["nombrerepositorio"];
+ $SelectHtml.='</OPTION>';
+ $rs->Siguiente();
+ }
+ $SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+}
+/*________________________________________________________________________________________________________
+ Crea la tabla de configuraciones y perfiles a crear
+________________________________________________________________________________________________________*/
+function tablaConfiguraciones($cmd,$idordenador,$idrepositorio)
+{
+ global $idcentro;
+ global $TbMsg;
+ $tablaHtml="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT ordenadores_particiones.numpar,ordenadores_particiones.codpar,ordenadores_particiones.tamano,
+ ordenadores_particiones.idnombreso,nombresos.nombreso,tipospar.tipopar,tipospar.clonable,
+ imagenes.nombreca,imagenes.descripcion as imagen,perfilessoft.idperfilsoft,
+ perfilessoft.descripcion as perfilsoft,sistemasficheros.descripcion as sistemafichero
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero
+ WHERE ordenadores.idordenador=$idordenador ORDER BY ordenadores_particiones.numpar";
+ //echo $cmd->texto;
+ $rs->Comando=&$cmd;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $swcc=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]);
+ $swc=$rs->campos["idperfilsoft"]>0; // Una partición es clonable si posee un identificador de perfil software
+ $swccc=$swcc && $swcc;
+ $tablaHtml.='<TR>'.chr(13);
+ if($swccc){
+ $tablaHtml.='<TD><input type=radio name="particion" value="'.$rs->campos["numpar"]."_".$rs->campos["codpar"].'"></TD>'.chr(13);
+ $tablaHtml.='<TD align=center>&nbsp;'.$rs->campos["numpar"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='<TD align=center>&nbsp;'.$rs->campos["tipopar"].'&nbsp;</TD>'.chr(13);
+ if(empty($rs->campos["nombreso"]) && !empty($rs->campos["idnombreso"])) // Si el identificador del S.O. no es nulo pero no hay descripción
+ $tablaHtml.='<TD align=center>&nbsp;'.'<span style="FONT-SIZE:10px; COLOR: red;" >'.$TbMsg[12].'</span></TD>'.chr(13);
+ else
+ $tablaHtml.='<TD>&nbsp;'.$rs->campos["nombreso"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='<TD>'.HTMLSELECT_imagenes($cmd,$rs->campos["idperfilsoft"],$rs->campos["numpar"]).'</TD>';
+ $tablaHtml.='<TD>'.HTMLSELECT_repositorios($cmd,$idcentro,$idrepositorio,$rs->campos["numpar"]).'</TD>';
+ $tablaHtml.='<TD>&nbsp;</TD>';
+ }
+ $tablaHtml.='</TR>'.chr(13);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($tablaHtml);
+}
+?>
diff --git a/admin/WebConsole/comandos/EjecutarScripts.php b/admin/WebConsole/comandos/EjecutarScripts.php
new file mode 100644
index 00000000..b256daf9
--- /dev/null
+++ b/admin/WebConsole/comandos/EjecutarScripts.php
@@ -0,0 +1,81 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Comando.php
+// Descripción :
+// Implementación del comando "EjecutarScripts"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/ejecutarscripts_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/EjecutarScripts.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/ejecutarscripts_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$descricomando.'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ ?>
+ <form align=center name="fdatos">
+ <table align=center class=tabla_datos border="0" cellpadding="0" cellspacing="1">
+ <tr>
+ <th>&nbsp;<? echo $TbMsg[9]?>&nbsp;</th>
+ <td><textarea class="cajatexto" name="codigo" cols="70" rows="18"></textarea></td></tr>
+ </table>
+ </form>
+ <?
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/comandos/IniciarSesion.php b/admin/WebConsole/comandos/IniciarSesion.php
new file mode 100644
index 00000000..caa8da45
--- /dev/null
+++ b/admin/WebConsole/comandos/IniciarSesion.php
@@ -0,0 +1,153 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: IniciarSesion.php
+// Descripción :
+// Implementación� del comando "Iniciar Sesión"
+// *************************************************************************************************************************************************
+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/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/comandos/iniciarsesion_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//___________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/IniciarSesion.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/iniciarsesion_'.$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>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+?>
+ <P align=center>
+ <SPAN align=center class=subcabeceras><? echo $TbMsg[7] ?></SPAN>
+ </BR>
+<form align=center name="fdatos">
+ <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;<? echo $TbMsg[8] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
+ </TR>
+ <?
+ echo tabla_configuraciones($cmd,$idambito);
+ ?>
+ </TABLE>
+</FORM>
+<?
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Recupera los datos de un ordenador
+ Parametros:
+ - cmd: Una comando ya operativo (con conexiónabierta)
+ - ido: El identificador del ordenador
+________________________________________________________________________________________________________*/
+function toma_propiedades($cmd,$idordenador){
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $idperfilhard;
+ global $idservidordhcp;
+ global $idservidorrembo;
+ $rs=new Recordset;
+ $cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard FROM ordenadores WHERE idordenador='".$idordenador."'";
+ $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"];
+ $idperfilhard=$rs->campos["idperfilhard"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+/*________________________________________________________________________________________________________
+ Crea la tabla de configuraciones y perfiles a crear
+________________________________________________________________________________________________________*/
+function tabla_configuraciones($cmd,$idordenador){
+ global $idcentro;
+ $tablaHtml="";
+ $cmd->texto="SELECT ordenadores_particiones.idnombreso,ordenadores_particiones.numpar,ordenadores_particiones.tamano,nombresos.nombreso,tipospar.tipopar,
+ imagenes.descripcion as imagen,perfilessoft.descripcion as perfilsoft,sistemasficheros.descripcion as sistemafichero
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero
+ WHERE ordenadores.idordenador=$idordenador ORDER BY ordenadores_particiones.numpar";
+ $rs->Comando=&$cmd;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ if(!empty($rs->campos["idnombreso"])){
+ $tablaHtml.='<TR>'.chr(13);
+ $tablaHtml.='<TD ><input type="radio" name="particion" value='.$rs->campos["numpar"].'></TD>'.chr(13);
+ $tablaHtml.='<TD align=center>&nbsp;'.$rs->campos["numpar"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='<TD>&nbsp;'.$rs->campos["nombreso"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='</TR>'.chr(13);
+ }
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($tablaHtml);
+}
+?>
diff --git a/admin/WebConsole/comandos/InventarioHardware.php b/admin/WebConsole/comandos/InventarioHardware.php
new file mode 100644
index 00000000..64e896d9
--- /dev/null
+++ b/admin/WebConsole/comandos/InventarioHardware.php
@@ -0,0 +1,72 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: InventarioHardware.php
+// Descripción :
+// Implementación del comando "Inventario Hardware"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/inventariohardware_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/InventarioHardware.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+
diff --git a/admin/WebConsole/comandos/InventarioSoftware.php b/admin/WebConsole/comandos/InventarioSoftware.php
new file mode 100644
index 00000000..35772002
--- /dev/null
+++ b/admin/WebConsole/comandos/InventarioSoftware.php
@@ -0,0 +1,122 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: InventarioSoftware.php
+// Descripción :
+// Implementación del comando "Inventario Software"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/inventariosoftware_".$idioma.".php");
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/InventarioSoftware.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/inventariosoftware_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+?>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <P align=center>
+ <SPAN align=center class=subcabeceras><? echo $TbMsg[7] ?></SPAN>
+ </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;<? echo $TbMsg[8] ?>&nbsp;</TH>
+ <TH align=center>&nbsp;<? echo $TbMsg[9] ?>&nbsp;</TH>
+ </TR>
+ <?
+ echo tabla_configuraciones($cmd,$idambito);
+ ?>
+ </TABLE>
+
+<BR>
+<?
+//________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+/*________________________________________________________________________________________________________
+ Particiones
+________________________________________________________________________________________________________*/
+function tabla_configuraciones($cmd,$idordenador)
+{
+ global $idcentro;
+ $tablaHtml="";
+ $rs=new Recordset;
+ $rsp=new Recordset;
+ $cmd->texto="SELECT ordenadores_particiones.numpar,nombresos.nombreso
+ FROM ordenadores_particiones
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ INNER JOIN nombresos ON ordenadores_particiones.idnombreso=nombresos.idnombreso
+ WHERE ordenadores_particiones.idordenador=$idordenador
+ AND tipospar.clonable>0 AND ordenadores_particiones.idnombreso>0
+ ORDER BY ordenadores_particiones.numpar";
+ $rs->Comando=&$cmd;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $tablaHtml.='<TR>'.chr(13);
+ $tablaHtml.='<TD ><input type="radio" name="particion" value='.$rs->campos["numpar"].'></TD>'.chr(13);
+ $tablaHtml.='<TD align=center>&nbsp;'.$rs->campos["numpar"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='<TD>&nbsp;'.$rs->campos["nombreso"].'&nbsp;</TD>'.chr(13);
+ $tablaHtml.='</TR>'.chr(13);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($tablaHtml);
+}
+?>
diff --git a/admin/WebConsole/comandos/Reiniciar.php b/admin/WebConsole/comandos/Reiniciar.php
new file mode 100644
index 00000000..4c95ef52
--- /dev/null
+++ b/admin/WebConsole/comandos/Reiniciar.php
@@ -0,0 +1,71 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: Reiniciar.php
+// Descripción :
+// Implementación del comando "Reiniciar"
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/comandos/reiniciar_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/Reiniciar.js"></SCRIPT>
+ <SCRIPT language="javascript" src="./jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+
diff --git a/admin/WebConsole/comandos/RestaurarImagen.php b/admin/WebConsole/comandos/RestaurarImagen.php
new file mode 100644
index 00000000..580302d7
--- /dev/null
+++ b/admin/WebConsole/comandos/RestaurarImagen.php
@@ -0,0 +1,269 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: RestaurarImagenOrdenador.php
+// Descripción :
+// Implementación del comando "RestaurarImagen" (Ordenadores)
+// *************************************************************************************************************************************************
+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/restaurarimagen_".$idioma.".php");
+//________________________________________________________________________________________________________
+include_once("./includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+//
+// Captura parámetros
+//________________________________________________________________________________________________________
+
+$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>Administración 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/RestaurarImagen.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/restaurarimagen_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'</span><br>'; // Cabecera
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras>
+ <U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>'; // Subcebecera
+ 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="RestaurarImagen.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 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 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 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>
+ <TR>
+ <TD height=20 align="center" colspan=14>
+ <A href=#>
+ <IMG border=0 src="../images/boton_confirmar.gif" onclick="document.fdatos.submit()"></A></TD>
+ </TR>
+ </TABLE>
+ </FORM>
+<?
+ }
+ $sws=$fk_sysFi | $fk_tamano | $fk_nombreSO;
+ pintaConfiguraciones($cmd,$idambito,$ambito,9,$sws,false);
+ //________________________________________________________________________________________________________
+ include_once("./includes/formularioacciones.php");
+ //________________________________________________________________________________________________________
+ //________________________________________________________________________________________________________
+ include_once("./includes/opcionesacciones.php");
+ //________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+//
+// Descripción:
+// (Esta función 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
+// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
+// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
+// Devuelve:
+// El código html de la tabla
+//________________________________________________________________________________________________________
+function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
+ 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[11].'&nbsp;</TH>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[9].'&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 partición
+ 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 configuración-partición
+ echo '<TD ><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>&nbsp;'.$tbKeys[$k]["nombreso"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo'<TD align=center>&nbsp;'.$tbKeys[$k]["sistemafichero"].'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo'<TD align=rigth>&nbsp;'.formatomiles($tbKeys[$k]["tamano"]).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,true).'</TD>';
+ echo '<TD>'.HTMLSELECT_imagenes($cmd,$tbKeys[$k]["idimagen"],$tbKeys[$k]["numpar"],$tbKeys[$k]["codpar"],$icp,false).'</TD>';
+ //Clonación
+ $metodos="1=UNICAST".chr(13);
+ $metodos.="2=MULTICAST".chr(13);
+ $metodos.="3=TORRENT";
+
+ $TBmetodos["UNICAST"]=1;
+ $TBmetodos["MULTICAST"]=2;
+ $TBmetodos["TORRENT"]=3;
+ $idxc=$_SESSION["protclonacion"];
+ echo '<TD>'.HTMLCTESELECT($metodos,"protoclonacion_".$icp,"estilodesple","",$TBmetodos[$idxc],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 los perfiles softwares
+________________________________________________________________________________________________________*/
+function HTMLSELECT_imagenes($cmd,$idimagen,$numpar,$codpar,$icp,$sw)
+{
+ $SelectHtml="";
+ $cmd->texto="SELECT *,repositorios.ip as iprepositorio FROM imagenes
+ INNER JOIN repositorios ON repositorios.idrepositorio=imagenes.idrepositorio";
+ if($sw) // Imágenes con el mismo tipo de partición
+ $cmd->texto.= " WHERE imagenes.codpar=".$codpar;
+ else
+ $cmd->texto.= " WHERE imagenes.codpar<>".$codpar;
+
+ $cmd->texto.=" AND imagenes.numpar>0 AND imagenes.codpar>0 AND imagenes.idrepositorio>0"; // La imagene debe existir y estar creada
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if($sw) $des=1; else $des=0;
+ $SelectHtml.= '<SELECT class="formulariodatos" id="despleimagen_'.$icp.'_'.$des.'" style="WIDTH:220">';
+ $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"].'"';
+ if($idimagen==$rs->campos["idimagen"]) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["descripcion"].'</OPTION>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ }
+ $SelectHtml.= '</SELECT>';
+ return($SelectHtml);
+}
+/*________________________________________________________________________________________________________
+ Crea la etiqueta html <SELECT> de los repositorios
+________________________________________________________________________________________________________*/
+function HTMLSELECT_repositorios($cmd,$idcentro,$idrepositorio,$particion){
+ $SelectHtml="";
+ $rs=new Recordset;
+
+ $cmd->texto="SELECT nombrerepositorio,ip FROM repositorios";
+ $rs->Comando=&$cmd;
+
+ if (!$rs->Abrir()) return($SelectHtml); // Error al abrir recordset
+ $SelectHtml.= '<SELECT class="formulariodatos" id="desplerepositorios_'.$particion.'" style="WIDTH: 200">';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos["ip"].'"';
+ if($rs->campos["idrepositorio"]==$idrepositorio) $SelectHtml.=" selected ";
+ $SelectHtml.='>';
+ $SelectHtml.= $rs->campos["nombrerepositorio"];
+ $SelectHtml.='</OPTION>';
+ $rs->Siguiente();
+ }
+ $SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+}
+?>
diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
new file mode 100644
index 00000000..5425ea81
--- /dev/null
+++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
@@ -0,0 +1,285 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_Comandos.php
+// Descripción :
+// Gestor de todos los comandos
+// *************************************************************************************************************************************************
+include_once("../../includes/ctrlacc.php");
+include_once("../../clases/AdoPhp.php");
+include_once("../../clases/SockHidra.php");
+include_once("../../includes/constantes.php");
+include_once("../../includes/comunes.php");
+include_once("../../includes/cuestionacciones.php");
+include_once("../../includes/CreaComando.php");
+include_once("../../includes/RecopilaIpesMacs.php");
+//________________________________________________________________________________________________________
+include_once("../includes/capturaacciones.php");
+//________________________________________________________________________________________________________
+
+ // Recoge parametros de seguimiento
+$sw_ejya="";
+$sw_seguimiento="";
+
+$sw_mkprocedimiento="";
+$nombreprocedimiento="";
+$idprocedimiento="";
+$ordprocedimiento=0;
+
+$sw_mktarea="";
+$nombretarea="";
+$idtarea="";
+$ordtarea=0;
+
+if (isset($_POST["sw_ejya"])) $sw_ejya=$_POST["sw_ejya"];
+if (isset($_POST["sw_seguimiento"])) $sw_seguimiento=$_POST["sw_seguimiento"];
+
+if (isset($_POST["sw_ejprg"])) $sw_ejprg=$_POST["sw_ejprg"];
+
+if (isset($_POST["sw_mkprocedimiento"])) $sw_mkprocedimiento=$_POST["sw_mkprocedimiento"];
+if (isset($_POST["nombreprocedimiento"])) $nombreprocedimiento=$_POST["nombreprocedimiento"];
+if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
+if (isset($_POST["ordprocedimiento"])) $ordprocedimiento=$_POST["ordprocedimiento"];
+if(empty($ordprocedimiento)) $ordprocedimiento=0;
+
+if (isset($_POST["sw_mktarea"])) $sw_mktarea=$_POST["sw_mktarea"];
+if (isset($_POST["nombretarea"])) $nombretarea=$_POST["nombretarea"];
+if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
+if (isset($_POST["ordtarea"])) $ordtarea=$_POST["ordtarea"];
+if(empty($ordtarea)) $ordtarea=0;
+
+//__________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//__________________________________________________________________
+$funcion="nfn=".$funcion.chr(13); // Nombre de la función que procesa el comando y el script que lo implementa
+$aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
+$acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
+
+$atributos=str_replace('@',chr(13),$atributos); // Reemplaza caracters
+$atributos=str_replace('#',chr(10),$atributos);
+$atributos=str_replace('$',chr(9),$atributos);
+
+//__________________________________________________________________
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/comunescomandos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../../idiomas/javascripts/'.$idioma.'/comandos/comunescomandos_'.$idioma.'.js"></SCRIPT>'?>
+<?
+
+/* Recopila identificadore ,ipes y macs para envío de comandos */
+$cadenaid="";
+$cadenaip="";
+$cadenamac="";
+RecopilaIpesMacs($cmd,$ambito,$idambito);
+
+/*--------------------------------------------------------------------------------------------------------------------
+ Creación de parametros para sentencias SQL
+--------------------------------------------------------------------------------------------------------------------*/
+$cmd->CreaParametro("@tipoaccion",0,1);
+$cmd->CreaParametro("@idtipoaccion",0,1);
+$cmd->CreaParametro("@descriaccion","",0);
+$cmd->CreaParametro("@idordenador",0,1);
+$cmd->CreaParametro("@ip","",0);
+$cmd->CreaParametro("@sesion",0,1);
+$cmd->CreaParametro("@parametros","",0);
+$cmd->CreaParametro("@fechahorareg","",0);
+$cmd->CreaParametro("@estado",0,1);
+$cmd->CreaParametro("@resultado",0,1);
+$cmd->CreaParametro("@idcentro",0,1);
+$cmd->CreaParametro("@idprocedimiento",0,1);
+$cmd->CreaParametro("@descripcion","",0);
+$cmd->CreaParametro("@idcomando",0,1);
+$cmd->CreaParametro("@idtarea",0,1);
+$cmd->CreaParametro("@ambito",0,1);
+$cmd->CreaParametro("@idambito",0,1);
+$cmd->CreaParametro("@restrambito","",0);
+$cmd->CreaParametro("@ordprocedimiento",0,1);
+$cmd->CreaParametro("@ordtarea",0,1);
+
+if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
+ $cmd->ParamSetValor("@restrambito",$idambito);
+ $idambito=0;
+}
+$resul=true;
+/*--------------------------------------------------------------------------------------------------------------------
+ Switch de ejecución inmediata y de seguimiento
+--------------------------------------------------------------------------------------------------------------------*/
+if($sw_ejya=='on' || $sw_ejprg=="on" ){
+ $parametros=$funcion.$atributos;
+ $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
+ if($sw_seguimiento==1 || $sw_ejprg=="on"){ // Switch de ejecución con seguimiento o comando programado
+ $sesion=time();
+ $cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO);
+ $cmd->ParamSetValor("@idtipoaccion",$idcomando);
+ $cmd->ParamSetValor("@descriaccion",$descricomando);
+ $cmd->ParamSetValor("@sesion",$sesion);
+ $cmd->ParamSetValor("@idcomando",$idcomando);
+ $cmd->ParamSetValor("@parametros",$parametros);
+ $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
+ if($sw_ejprg=="on") // Switch de ejecución con programación (se para el comando tarea para lanzarlo posteriormente)
+ $cmd->ParamSetValor("@estado",$ACCION_DETENIDA);
+ else
+ $cmd->ParamSetValor("@estado",$ACCION_INICIADA);
+ $cmd->ParamSetValor("@resultado",$ACCION_SINRESULTADO);
+ $cmd->ParamSetValor("@ambito",$ambito);
+ $cmd->ParamSetValor("@idambito",$idambito);
+ $cmd->ParamSetValor("@idcentro",$idcentro);
+ $auxID=split(",",$cadenaid);
+ $auxIP=split(";",$cadenaip);
+
+ for ($i=0;$i<sizeof($auxID);$i++){
+ $cmd->ParamSetValor("@idordenador",$auxID[$i]);
+ $cmd->ParamSetValor("@ip",$auxIP[$i]);
+ $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,
+ sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idcentro)
+ VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,
+ @sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ //echo "<br>".$cmd->texto;
+ }
+ $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
+ }
+ if (!$resul){
+ echo '<SCRIPT language="javascript">';
+ echo 'resultado_comando(7);'.chr(13);
+ echo '</SCRIPT>';
+ }
+ else{
+ if($sw_ejya=='on'){
+ // Envio al servidor
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros.=$aplicacion;
+ $parametros.=$acciones;
+ //echo $parametros;
+ $resul=$shidra->envia_comando($parametros);
+ if($resul)
+ $trama=$shidra->recibe_respuesta();
+ if($resul){
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $resul=$ValorParametros["res"];
+ }
+ $shidra->desconectar();
+ }
+ if (!$resul){
+ echo '<SCRIPT language="javascript">';
+ echo 'resultado_comando(1);'.chr(13);
+ echo '</SCRIPT>';
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'resultado_comando(2);'.chr(13);
+ echo '</SCRIPT>'.chr(13);
+ }
+ }
+ }
+}
+/*--------------------------------------------------------------------------------------------------------------------
+ Switch de creación o inclusión en procedimiento
+--------------------------------------------------------------------------------------------------------------------*/
+if($sw_mkprocedimiento=='on' || $sw_mktarea=='on'){
+ $resul=false;
+ if($idprocedimiento==0 || $sw_mktarea=='on'){ // Nuevo procedimiento o Tarea
+ if($sw_mktarea=='on' && empty($nombreprocedimiento)){ // Si tarea con inclusión de procedimiento...
+ if(!empty($nombretarea))
+ $nombreprocedimiento="Proc($nombretarea)"; // .. tarea nueva
+ else
+ $nombreprocedimiento="Proc($idtarea)"; // .. inclusión en tarea
+ }
+ $cmd->ParamSetValor("@descripcion",$nombreprocedimiento);
+ $cmd->ParamSetValor("@idcentro",$idcentro);
+ $cmd->texto="INSERT INTO procedimientos(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ if($resul){
+ if($idprocedimiento==0) // Cambia el identificador sólo si es nuevo procedimiento
+ $idprocedimiento=$cmd->Autonumerico();
+ if($sw_mktarea=='on')
+ $idprocedimientotarea=$cmd->Autonumerico(); // Identificador para la tarea;
+ }
+ }
+ if( $idprocedimiento>0 || $sw_mktarea=='on'){ // inclusión en procedimiento existente
+ $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
+ $cmd->ParamSetValor("@idcomando",$idcomando);
+ $cmd->ParamSetValor("@ordprocedimiento",$ordprocedimiento);
+ $parametros=$funcion.$atributos;
+ $cmd->ParamSetValor("@parametros",$parametros);
+ $cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)";
+ $resul=$cmd->Ejecutar();
+ if($sw_mktarea=='on' && $idprocedimiento!=$idprocedimientotarea){ // Si es tarea se graba para su procedimiento independiente aunque los parametros sean los mismos
+ $cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea);
+ $cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)";
+ $resul=$cmd->Ejecutar();
+ }
+ }
+ if (!$resul){
+ echo '<SCRIPT language="javascript">';
+ echo 'resultado_comando(3);'.chr(13);
+ echo '</SCRIPT>';
+ }
+ else{
+ if($sw_mkprocedimiento=='on'){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'resultado_comando(4);'.chr(13);
+ echo '</SCRIPT>'.chr(13);
+ }
+ }
+}
+/*--------------------------------------------------------------------------------------------------------------------
+ Switch de creación o inclusión en tarea
+--------------------------------------------------------------------------------------------------------------------*/
+if($sw_mktarea=='on'){
+ $resul=false;
+ if($idtarea==0){ // Nueva tarea
+ $cmd->ParamSetValor("@descripcion",$nombretarea);
+ $cmd->ParamSetValor("@idcentro",$idcentro);
+ $cmd->ParamSetValor("@ambito",$ambito);
+ $cmd->ParamSetValor("@idambito",$idambito);
+ $cmd->texto="INSERT INTO tareas(descripcion,idcentro,ambito,idambito,restrambito)
+ VALUES (@descripcion,@idcentro,@ambito,@idambito,@restrambito)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $idtarea=$cmd->Autonumerico();
+ }
+ if($idtarea>0){ // inclusión en tarea existente
+ $cmd->ParamSetValor("@idtarea",$idtarea);
+ $cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea);
+ $cmd->ParamSetValor("@ordtarea",$ordtarea);
+ $cmd->texto="INSERT INTO tareas_acciones(idtarea,orden,idprocedimiento)
+ VALUES (@idtarea,@ordtarea,@idprocedimiento)";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ }
+ if (!$resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'resultado_comando(5);'.chr(13);
+ echo '</SCRIPT>'.chr(13);
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'resultado_comando(6);'.chr(13);
+ echo '</SCRIPT>'.chr(13);
+ }
+}
+/* Programación del comando */
+if ($resul){
+ if($sw_ejprg=="on" ){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var whref="../../varios/programaciones.php?idcomando='.$idcomando.'";'.chr(13);
+ echo 'whref+="&sesion='.$sesion.'&descripcioncomando='.UrlEncode($descricomando).'&tipoaccion='.$EJECUCION_COMANDO.'";'.chr(13);
+ echo 'location.href=whref;';
+ echo '</SCRIPT>';
+ }
+}
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/comandos/includes/capturaacciones.php b/admin/WebConsole/comandos/includes/capturaacciones.php
new file mode 100644
index 00000000..e26e38e6
--- /dev/null
+++ b/admin/WebConsole/comandos/includes/capturaacciones.php
@@ -0,0 +1,31 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Abril-2010
+// Nombre del fichero: opcionesacciones.php
+// Descripción :
+// Captura de parámetros comunes para la ejecución de comandos
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+// Captura parámetros
+//________________________________________________________________________________________________________
+$idcomando=0;
+$ambito=0;
+$idambito=0;
+$nombreambito="";
+$funcion="";
+$atributos="";
+$gestor="";
+
+if (isset($_POST["idcomando"])) $idcomando=$_POST["idcomando"];
+if (isset($_POST["descricomando"])) $descricomando=$_POST["descricomando"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"];
+if (isset($_POST["funcion"])) $funcion=$_POST["funcion"];
+if (isset($_POST["atributos"])) $atributos=$_POST["atributos"];
+if (isset($_POST["gestor"])) $gestor=$_POST["gestor"];
+?>
+
diff --git a/admin/WebConsole/comandos/includes/formularioacciones.php b/admin/WebConsole/comandos/includes/formularioacciones.php
new file mode 100644
index 00000000..4f8d401e
--- /dev/null
+++ b/admin/WebConsole/comandos/includes/formularioacciones.php
@@ -0,0 +1,20 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Abril-2010
+// Nombre del fichero: opcionesacciones.php
+// Descripción :
+// Formulario para paso de parametros comunes para la ejecución de comandos
+// *************************************************************************************************************************************************
+?>
+<FORM align=center name="fdatosejecucion" action="<? echo $gestor?>" method="post">
+ <INPUT type="hidden" name="idcomando" value="<? echo $idcomando?>">
+ <INPUT type="hidden" name="descricomando" value="<? echo $descricomando?>">
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+ <INPUT type="hidden" name="idambito" value="<? echo $idambito?>">
+ <INPUT type="hidden" name="funcion" value="<? echo $funcion?>">
+ <INPUT type="hidden" name="atributos" value="<? echo $atributos?>">
+ <INPUT type="hidden" name="gestor" value="<? echo $gestor?>">
+
diff --git a/admin/WebConsole/comandos/includes/opcionesacciones.php b/admin/WebConsole/comandos/includes/opcionesacciones.php
new file mode 100644
index 00000000..36672783
--- /dev/null
+++ b/admin/WebConsole/comandos/includes/opcionesacciones.php
@@ -0,0 +1,93 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Abril-2010
+// Nombre del fichero: opcionesacciones.php
+// Descripción :
+// Opciones comunes para la ejecución de comandos
+// *************************************************************************************************************************************************
+?>
+<P align=center><span align=center class=subcabeceras><? echo "Opciones de Ejecución"?></span></P>
+
+<?if($idcomando!=10){?>
+ <TABLE align=center>
+ <TR>
+ <TD><IMG border=0 style="cursor:pointer" src="../images/boton_aceptar.gif" onclick="confirmar()" ></TD>
+ </TR>
+ </TABLE>
+ <BR>
+<?}?>
+<TABLE align=center class=opciones_ejecucion BORDER=0>
+ <TR>
+ <TD><INPUT name=sw_ejya type=checkbox checked></TD>
+ <TD colspan=3>Ejecutar inmediatamente</TD>
+ </TR>
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT name=sw_seguimiento type=radio value=1></TD><TD>Ejecutar con seguimiento&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT checked name=sw_seguimiento type=radio value=0></TD><TD>Sin seguimiento&nbsp;</TD>
+ </TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR HEIGHT=5><TD colspan=4><HR></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TD><INPUT name=sw_ejprg type=checkbox></TD>
+ <TD colspan=3>Programar comando</TD>
+ </TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR HEIGHT=5><TD colspan=4><HR></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TD><INPUT onclick="clic_mkprocedimiento(this)" name=sw_mkprocedimiento type=checkbox></TD>
+ <TD colspan=3>Guardar como procedimiento</TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT onclick="clic_nwprocedimiento(this)" name=sw_procedimiento type=radio value=0></TD>
+ <TD>Guardar como nuevo procedimiento&nbsp;</TD>
+ <TD><INPUT onclick="clic_nomprocedimiento(this)" style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px" name=nombreprocedimiento style="HEIGHT: 22px; WIDTH: 275px"></TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT onclick="clic_exprocedimiento(this)" name=sw_procedimiento type=radio value=1></TD>
+ <TD>Incluir en un procedimiento existente&nbsp;</TD>
+ <TD><?echo HTMLSELECT($cmd,$idcentro,'procedimientos',0,'idprocedimiento','descripcion',275,"procedimientoexistente");?></TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD>&nbsp; </TD>
+ <TD>Orden de ejecución&nbsp;</TD>
+ <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordprocedimiento type=text value=""></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR HEIGHT=10><TD colspan=4>&nbsp; <HR></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TD><INPUT onclick="clic_mktarea(this)" name=sw_mktarea type=checkbox></TD>
+ <TD colspan=3>Guardar como tarea</TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT onclick="clic_nwtarea(this)" name=sw_tarea type=radio value=0></TD>
+ <TD>Guardar como una tarea nueva&nbsp;</TD>
+ <TD><INPUT onclick="clic_nomtarea(this)" style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px" name=nombretarea style="HEIGHT: 22px; WIDTH: 275px"></TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD><INPUT onclick="clic_extarea(this)" name=sw_tarea type=radio value=1></TD>
+ <TD>Incluir en una tarea existente&nbsp;</TD>
+ <TD><?echo HTMLSELECT($cmd,$idcentro,'tareas',0,'idtarea','descripcion',275,"tareaexistente");?></TD></TR>
+
+ <TR>
+ <TD>&nbsp; </TD>
+ <TD>&nbsp; </TD>
+ <TD>Orden de ejecución&nbsp;</TD>
+ <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30" name=ordtarea type=text value=""></TD></TR>
+ <!-------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+
diff --git a/admin/WebConsole/comandos/jscripts/Apagar.js b/admin/WebConsole/comandos/jscripts/Apagar.js
new file mode 100644
index 00000000..44106958
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/Apagar.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: Apagar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero Apagar.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+ function comprobar_datos(){
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/Arrancar.js b/admin/WebConsole/comandos/jscripts/Arrancar.js
new file mode 100644
index 00000000..acd04a7e
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/Arrancar.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: Arrancar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero Arrancar.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+}
+//________________________________________________________________________________________________________
+ function comprobar_datos(){
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/Comando.js b/admin/WebConsole/comandos/jscripts/Comando.js
new file mode 100644
index 00000000..a81f9a92
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/Comando.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: Apagar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero Comando.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+ function comprobar_datos(){
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/Configurar.js b/admin/WebConsole/comandos/jscripts/Configurar.js
new file mode 100644
index 00000000..cc7eba86
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/Configurar.js
@@ -0,0 +1,174 @@
+// *************************************************************************************************************************************************
+// 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: Configurar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero Configurar.php (Comandos)
+// *************************************************************************************************************************************************
+
+var atributos; // Variable global
+
+//________________________________________________________________________________________________________
+//
+// Elimina una fila de una tabla de configuraciones perteneciente a las propiedades de una partición
+// Parametros:
+// icp: Identificador de la configuración-partición
+// o: Objeto checkbox que invoca la función
+//________________________________________________________________________________________________________
+
+function eliminaParticion(icp,o)
+{
+ var res=confirm(TbMsg[4]); // Pide confirmación
+ if(!res){
+ o.checked=false;
+ return;
+ }
+ var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto <TABLE>
+ var trCfg = document.getElementById("TR_"+icp); // Recupera <TR> de la fila a eliminar
+ var tbodyObj=tbCfg.firstChild; // Recupera hijo <TBODY> del objeto <TABLE>
+ tbodyObj.removeChild(trCfg); // Elimina nodo <TR> completo
+}
+//________________________________________________________________________________________________________
+
+function addParticion(objImg,cc)
+{
+ var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto <TABLE>
+ var tbodyObj=tbCfg.firstChild; // Recupera hijo <TBODY> del objeto <TABLE>
+
+ var trImg=document.getElementById("TRIMG_"+cc); // Recupera <TR> de los botones para insertar antes
+
+ var k=objImg.getAttribute('value'); // Toma siguiente identificador de nodo
+ var icp=cc+"_"+k; // Identificador de la configuración-partición
+
+ /* Crea objeto TR y lo añade al TBODY de la tabla*/
+ var nwTR = document.createElement('TR');
+ nwTR.setAttribute("id","TR_"+icp);
+ tbodyObj.insertBefore(nwTR,trImg); // Inserta nodo <TR> completo
+ var patron = document.getElementById("TR_patron"); // Recupera <TR> patron
+ nwTR.innerHTML=patron.innerHTML;
+ /* Actualiza objeto checkbox nuevo para que actue como los demás */
+ var nwCHK = document.getElementById("CHK_patron"); // Recupera reciente chekcbox
+ var fclbk="eliminaParticion('"+icp+"');";
+ nwCHK.setAttribute("onclick",fclbk);
+ nwCHK.removeAttribute("id");
+ /* Incrementa para siguiente identificador de nodo */
+ k++;
+ objImg.setAttribute('value',k);
+}
+//________________________________________________________________________________________________________
+//
+// Confirma un bloque de configuración de particiones
+// Parametros:
+// idordenadores: Identificadores de los ordenadores a los que se aplicará el comando
+// cc: Identificador de la configuración (bloque de particiones)
+// Especificaciones:
+// Cuando un comando se va a aplicar a un conjunto aleatorio de ordenaores, el código del
+// ámbito será cero y la variable idambito contendrá la cadena con los identificadores de
+// los oordenadores separados por coma (este dato aparece en esta función como promer parámetro)
+//________________________________________________________________________________________________________
+
+function Confirmar(cc)
+{
+ if(comprobarDatos(cc)){
+ var RC="@";
+ var disco=1; // Siempre disco 1
+ atributos+=RC+"dsk="+disco+RC; // Le añade a la variable global el parámetro disco
+ //alert(atributos)
+ if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){
+ var tbOrd= document.getElementById("tbOrd_"+cc); // Recupera tabla de ordenadores de la configuración
+ 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){ // Si no son iguales es que el ámbito de aplicación es restringido
+ document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido
+ document.fdatosejecucion.idambito.value=idordenadores;
+ }
+ }
+ document.fdatosejecucion.atributos.value=atributos;
+ document.fdatosejecucion.submit();
+ }
+}
+//________________________________________________________________________________________________________
+//
+// Confirma un bloque de configuración de particiones
+// Parametros:
+// cc: Identificador de la configuración (bloque de particiones)
+//________________________________________________________________________________________________________
+
+function comprobarDatos(cc)
+{
+ // Indices de campos a recuperar
+ var ipar=1;
+ var icodpar=2;
+ var isysfi=3;
+ var itama=4;
+ var iope=6;
+
+ var SL="#";
+ var TB="$";
+
+ var tbpar=new Array(); // Para control de particiones duplicadas
+ atributos="cfg="; // Inicializa variable global de parámetros del comando
+
+ var trCfg = document.getElementById("TR_"+cc); // Recupera primer <TR> de la configuración
+ trCfg=trCfg.nextSibling; // Primera fila de particiones
+ while(trCfg.id!="TRIMG_"+cc){
+ var par=tomavalorDesple(trCfg.childNodes[ipar].childNodes[0]); // Partición
+ if(par==0){
+ alert(TbMsg[1]);
+ trCfg.childNodes[ipar].childNodes[0].focus();
+ return(false);
+ }
+ if(tbpar[par]==1){ // Existe ya una partición con ese número
+ alert(TbMsg[0]);
+ trCfg.childNodes[ipar].childNodes[0].focus();
+ return(false);
+ }
+ tbpar[par]=1;
+ var codpar=tomavalorDesple(trCfg.childNodes[icodpar].childNodes[0]); // Tipo de partición
+ if(codpar==0){
+ alert(TbMsg[2]);
+ trCfg.childNodes[icodpar].childNodes[0].focus();
+ return(false);
+ }
+
+ var sysfi=tomatextDesple(trCfg.childNodes[isysfi].childNodes[0]); // Sistema de ficheros
+
+ var tama=trCfg.childNodes[itama].childNodes[0].value; // Tamaño de partición
+ if(tama==0){
+ alert(TbMsg[3]);
+ trCfg.childNodes[itama].childNodes[0].focus();
+ return(false);
+ }
+ var ope=tomavalorDesple(trCfg.childNodes[iope].childNodes[0]); // Operación a realizar
+
+ trCfg=trCfg.nextSibling; // Primera fila de particiones
+ /* Compone formato del comando */
+ atributos+="par="+par+TB+"cpt="+codpar+TB+"sfi="+sysfi+TB+"tam="+tama+TB+"ope="+ope+SL;
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el valor seleccionado de un desplegable cualquiera
+//________________________________________________________________________________________________________
+
+function tomavalorDesple(desplegable)
+{
+ var idx=desplegable.selectedIndex; // Indice seleccionado en el desplegable
+ var val=desplegable.options[idx].value; // Valor seleccionado en el desplegable
+ return(val);
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el valor seleccionado de un desplegable cualquiera
+//________________________________________________________________________________________________________
+
+function tomatextDesple(desplegable)
+{
+ var idx=desplegable.selectedIndex; // Indice seleccionado en el desplegable
+ var txt=desplegable.options[idx].text; // Valor seleccionado en el desplegable
+ return(txt);
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/CrearImagen.js b/admin/WebConsole/comandos/jscripts/CrearImagen.js
new file mode 100644
index 00000000..ebf37155
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/CrearImagen.js
@@ -0,0 +1,70 @@
+// *************************************************************************************************************************************************
+// 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: CrearImagen.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero CrearImagen.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar()
+ {
+ if (!comprobar_datos()) return;
+
+ 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 parcod=ochecks[i].value.split("_");
+ atributos+="par="+parcod[0]+RC; // Número de partición
+ atributos+="cpt="+parcod[1]+RC; // Código de partición
+
+ var despleimagen=document.getElementById("despleimagen_"+parcod[0]);
+ var imgcan=despleimagen.value.split("_");
+ atributos+="idi="+imgcan[0]+RC; // Identificador de la imagen
+ atributos+="nci="+imgcan[1]+RC; // Nonbre canónico
+
+ var desplerepositorios=document.getElementById("desplerepositorios_"+parcod[0]);
+ var idx=desplerepositorios.selectedIndex;
+ atributos+="ipr="+desplerepositorios.options[idx].value+RC;
+ break;
+ }
+ }
+ document.fdatosejecucion.atributos.value=atributos;
+ document.fdatosejecucion.submit();
+}
+//________________________________________________________________________________________________________
+ 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 particion=ochecks[i].value.split("_")[0];
+ despleimagen=document.getElementById("despleimagen_"+particion);
+ var p=despleimagen.selectedIndex
+ if (p==0){
+ alert(TbMsg[0])
+ despleimagen.focus()
+ return(false)
+ }
+ }
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/EjecutarScripts.js b/admin/WebConsole/comandos/jscripts/EjecutarScripts.js
new file mode 100644
index 00000000..e17411c0
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/EjecutarScripts.js
@@ -0,0 +1,34 @@
+// ***********************************************************************************************************
+// 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: EjecutarScripts.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero EjecutarScripts.php (Comandos)
+// ***********************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ var RC='@';
+ document.fdatosejecucion.atributos.value="scp="+escape(document.fdatos.codigo.value)+RC;
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+
+ function cancelar()
+{
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+
+ function comprobar_datos()
+{
+ if (document.fdatos.codigo.value=="") {
+ alert(TbMsg[1]);
+ document.fdatos.codigo.focus();
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
diff --git a/admin/WebConsole/comandos/jscripts/IniciarSesion.js b/admin/WebConsole/comandos/jscripts/IniciarSesion.js
new file mode 100644
index 00000000..05dcc52c
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/IniciarSesion.js
@@ -0,0 +1,47 @@
+// *************************************************************************************************************************************************
+// 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: IniciarSesion.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero IniciarSesion.php (Comandos)
+// *************************************************************************************************************************************************
+function confirmar(){
+ if (comprobar_datos()){
+ // Compone atributos del comando
+ tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ var particion;
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ particion=ochecks[i].value
+ }
+ }
+ var RC='@';
+ document.fdatosejecucion.atributos.value="par="+particion+RC;
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ 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++;
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/InventarioHardware.js b/admin/WebConsole/comandos/jscripts/InventarioHardware.js
new file mode 100644
index 00000000..903b02a0
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/InventarioHardware.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: InventarioHardware.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero InventarioHardware.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+ }
+//________________________________________________________________________________________________________
+ function comprobar_datos(){
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/InventarioSoftware.js b/admin/WebConsole/comandos/jscripts/InventarioSoftware.js
new file mode 100644
index 00000000..aeb8437e
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/InventarioSoftware.js
@@ -0,0 +1,44 @@
+// *************************************************************************************************************************************************
+// 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: InventarioHardware.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero InventarioHardware.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ tb_conf=document.getElementById("tabla_conf");
+ var ochecks=tb_conf.getElementsByTagName('INPUT')
+ var particion;
+ for(var i=0;i<ochecks.length;i++){
+ if(ochecks[i].checked){
+ particion=ochecks[i].value
+ }
+ }
+ var RC="@";
+ var disco=1; // Siempre disco 1
+ document.fdatosejecucion.atributos.value="dsk="+disco+RC+"par="+particion+RC;
+ document.fdatosejecucion.submit();
+ }
+ }
+//________________________________________________________________________________________________________
+ 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++;
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion());
+}
diff --git a/admin/WebConsole/comandos/jscripts/Reiniciar.js b/admin/WebConsole/comandos/jscripts/Reiniciar.js
new file mode 100644
index 00000000..579ccdb5
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/Reiniciar.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: Reiniciar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero Reiniciar.php (Comandos)
+// *************************************************************************************************************************************************
+ function confirmar(){
+ if (comprobar_datos()){
+ document.fdatosejecucion.submit();
+ }
+ }
+//__________________________________________________________________________________________________
+ function cancelar(){
+ alert(CTbMsg[0]);
+ location.href="../nada.php"
+}
+//__________________________________________________________________________________________________
+ function comprobar_datos(){
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/RestaurarImagen.js b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js
new file mode 100644
index 00000000..eb436aeb
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/RestaurarImagen.js
@@ -0,0 +1,95 @@
+// *************************************************************************************************************************************************
+// 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: RestaurarImagen.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero RestaurarImagen.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 despleimagendrcha=document.getElementById("despleimagen_"+idradio+"_0");
+ var despleimagen;
+
+ var protoclonacion=document.getElementById("protoclonacion_"+idradio);
+
+ if(despleimagenizda.selectedIndex>0) despleimagen=despleimagenizda;
+ if(despleimagendrcha.selectedIndex>0) despleimagen=despleimagendrcha;
+ 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; // Ip del repositorio donde está alojada
+ atributos+="ifs="+imgcanrepo[3]+RC; // Identificador del perfil soft contenido en la imagen
+ atributos+="ptc="+protoclonacion.value+RC; // Identificador del protocolo de clonación
+
+ 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;
+ }
+ }
+ document.fdatosejecucion.atributos.value=atributos;
+ 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.
+ despleimagendcha=document.getElementById("despleimagen_"+idradio+"_0"); // Desplegable derecha.
+
+ var p1=despleimagenizda.selectedIndex // Toma índice seleccionado
+ var p2=despleimagendcha.selectedIndex // Toma índice seleccionado
+
+ if (p1==0 && p2==0){
+ alert(TbMsg[0])
+ despleimagenizda.focus()
+ return(false)
+ }
+ if (p1==p2){
+ alert(TbMsg[6])
+ despleimagenizda.focus()
+ return(false)
+ }
+ }
+ }
+ if(op==0){
+ alert(TbMsg[1])
+ return(false);
+ }
+ return(comprobar_datosejecucion())
+}
+
diff --git a/admin/WebConsole/comandos/jscripts/comunescomandos.js b/admin/WebConsole/comandos/jscripts/comunescomandos.js
new file mode 100644
index 00000000..b82bfa29
--- /dev/null
+++ b/admin/WebConsole/comandos/jscripts/comunescomandos.js
@@ -0,0 +1,190 @@
+// *************************************************************************************************************************************************
+// 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: comunescomandos.js
+// Descripción :
+// Este fichero implementa las funciones javascript comunes a todos los comandos
+// *************************************************************************************************************************************************
+ function comprobar_datosejecucion(){
+ /* Comprobación de las opciones de ejecución */
+ var sw_ejya=document.fdatosejecucion.sw_ejya.checked;
+ var sw_ejprg=document.fdatosejecucion.sw_ejprg.checked;
+
+ var sw_seguimientocon=document.fdatosejecucion.sw_seguimiento[0].checked;
+ var sw_seguimientosin=document.fdatosejecucion.sw_seguimiento[1].checked;
+
+ var sw_mkprocedimiento=document.fdatosejecucion.sw_mkprocedimiento.checked;
+ var sw_nuevaprocedimiento=document.fdatosejecucion.sw_procedimiento[0].checked;
+ var descripcion_nuevaprocedimiento=document.fdatosejecucion.nombreprocedimiento.value;
+ var sw_procedimientoexistente=document.fdatosejecucion.sw_procedimiento[1].checked;
+
+ var sw_mktarea=document.fdatosejecucion.sw_mktarea.checked;
+ var sw_nuevatarea=document.fdatosejecucion.sw_tarea[0].checked;
+ var descripcion_nuevatarea=document.fdatosejecucion.nombretarea.value;
+ var sw_tareaexistente=document.fdatosejecucion.sw_tarea[1].checked;
+
+ var pprocedimiento=document.fdatosejecucion.idprocedimiento.selectedIndex
+ var ptarea=document.fdatosejecucion.idtarea.selectedIndex
+
+ if(!sw_ejya && !sw_ejprg && !sw_mkprocedimiento && !sw_mktarea ){
+ alert("ATENCIÓN.- Debe elegir al menos un modo de ejecución");
+ return(false);
+ }
+
+ // Cuestión procedimiento ---------------------------------------------------------------------
+
+ if(sw_ejya){
+ if(!sw_seguimientocon && !sw_seguimientosin){
+ alert("ATENCIÓN.- Debe elegir un modo de ejecución inmediata");
+ return(false);
+ }
+ }
+ // Cuestión procedimiento -----------------------------------------------------------------------
+ if(sw_mkprocedimiento){
+ if(!sw_nuevaprocedimiento && !sw_procedimientoexistente){
+ alert("ATENCIÓN.- Debe elegir un modo de inclusión en procedimiento de este comando");
+ return(false);
+ }
+ if(sw_nuevaprocedimiento && descripcion_nuevaprocedimiento==""){
+ alert("ATENCIÓN.- Debe especificar el nombre del nuevo procedimiento que se creará y al que se añadirá este comando");
+ document.fdatosejecucion.nombreprocedimiento.focus();
+ return(false);
+ }
+ if(sw_procedimientoexistente && pprocedimiento==0){
+ alert("ATENCIÓN.- Debe elegir el procedimiento al que se añadirá este comando");
+ document.fdatosejecucion.idprocedimiento.focus();
+ return(false);
+ }
+ }
+
+ // Cuestión tarea ------------------------------------------------------------------------------------------------------------------------------
+ if(sw_mktarea){
+ if(!sw_nuevatarea && !sw_tareaexistente){
+ alert("ATENCIÓN.- Debe elegir un modo de inclusión en tarea ejecutable, de este comando");
+ return(false);
+ }
+ if(sw_nuevatarea && descripcion_nuevatarea==""){
+ alert("ATENCIÓN.- Debe especificar el nombre de la nueva tarea ejecutable que se creará y a la que se añadirá este comando");
+ document.fdatosejecucion.nombretarea.focus();
+ return(false);
+ }
+ if(sw_tareaexistente && ptarea==0){
+ alert("ATENCIÓN.- Debe elegir la tarea a la que se añadirá este comando");
+ document.fdatosejecucion.idtarea.focus();
+ return(false);
+ }
+ }
+ //-----------------------------------------------------------------------------------------------------------------------------------------------------
+ return(true)
+}
+//____________________________________________________________________________
+function clic_mktarea(o){
+ if(!o.checked){
+ document.fdatosejecucion.sw_tarea[0].checked=false;
+ document.fdatosejecucion.nombretarea.value="";
+ document.fdatosejecucion.sw_tarea[1].checked=false;
+ document.fdatosejecucion.idtarea.selectedIndex=0;
+ }
+}
+function clic_nwtarea(o){
+ if(o.checked){
+ document.fdatosejecucion.sw_mktarea.checked=true;
+ document.fdatosejecucion.sw_tarea[1].checked=false;
+ document.fdatosejecucion.idtarea.selectedIndex=0;
+ }
+}
+function clic_extarea(o){
+ if(o.checked){
+ document.fdatosejecucion.sw_mktarea.checked=true;
+ document.fdatosejecucion.sw_tarea[0].checked=false;
+ document.fdatosejecucion.nombretarea.value="";
+ }
+}
+function clic_nomtarea(o){
+ document.fdatosejecucion.sw_mktarea.checked=true;
+ document.fdatosejecucion.sw_tarea[0].checked=true;
+ document.fdatosejecucion.idtarea.selectedIndex=0;
+}
+function clic_mkprocedimiento(o){
+ if(!o.checked){
+ document.fdatosejecucion.sw_procedimiento[0].checked=false;
+ document.fdatosejecucion.nombreprocedimiento.value="";
+ document.fdatosejecucion.sw_procedimiento[1].checked=false;
+ document.fdatosejecucion.idprocedimiento.selectedIndex=0;
+ }
+}
+function clic_nwprocedimiento(o){
+ if(o.checked){
+ document.fdatosejecucion.sw_mkprocedimiento.checked=true;
+ document.fdatosejecucion.sw_procedimiento[1].checked=false;
+ document.fdatosejecucion.idprocedimiento.selectedIndex=0;
+ }
+}
+function clic_exprocedimiento(o){
+ if(o.checked){
+ document.fdatosejecucion.sw_mkprocedimiento.checked=true;
+ document.fdatosejecucion.sw_procedimiento[0].checked=false;
+ document.fdatosejecucion.nombreprocedimiento.value="";
+ }
+}
+function clic_nomprocedimiento(o){
+ document.fdatosejecucion.sw_mkprocedimiento.checked=true;
+ document.fdatosejecucion.sw_procedimiento[0].checked=true;
+ document.fdatosejecucion.idprocedimiento.selectedIndex=0;
+}
+
+function procedimientoexistente(o){
+ document.fdatosejecucion.sw_mkprocedimiento.checked=true;
+ document.fdatosejecucion.sw_procedimiento[1].checked=true;
+ document.fdatosejecucion.nombreprocedimiento.value="";
+}
+
+function tareaexistente(o){
+ document.fdatosejecucion.sw_mktarea.checked=true;
+ document.fdatosejecucion.sw_tarea[1].checked=true;
+ document.fdatosejecucion.nombretarea.value="";
+}
+//____________________________________________________________________________
+function compone_urlejecucion(){
+
+ var wurl=""
+
+ var sw_ejya=document.fdatosejecucion.sw_ejya.checked;
+ var sw_seguimiento=document.fdatosejecucion.sw_seguimiento[0].checked;
+
+ var sw_ejprg=document.fdatosejecucion.sw_ejprg.checked;
+
+ var sw_mkprocedimiento=document.fdatosejecucion.sw_mkprocedimiento.checked;
+ if (document.fdatosejecucion.sw_procedimiento[0].checked){
+ var nwidprocedimiento=0
+ var nwdescriprocedimiento=document.fdatosejecucion.nombreprocedimiento.value;
+ }
+ else{
+ var p=document.fdatosejecucion.idprocedimiento.selectedIndex
+ var nwidprocedimiento=document.fdatosejecucion.idprocedimiento.options[p].value
+ var nwdescriprocedimiento=document.fdatosejecucion.idprocedimiento.options[p].text
+ }
+
+ var sw_mktarea=document.fdatosejecucion.sw_mktarea.checked;
+ if (document.fdatosejecucion.sw_tarea[0].checked){
+ var nwidtarea=0
+ var nwdescritarea=document.fdatosejecucion.nombretarea.value;
+ }
+ else{
+ var p=document.fdatosejecucion.idtarea.selectedIndex
+ var nwidtarea=document.fdatosejecucion.idtarea.options[p].value
+ var nwdescritarea=document.fdatosejecucion.idtarea.options[p].text
+ }
+ wurl+="sw_ejya="+sw_ejya +"&sw_seguimiento="+sw_seguimiento+"sw_ejprg="+sw_ejprg+"&sw_mktarea="+sw_mktarea+"&nwidtarea="+nwidtarea+"&nwdescritarea="+nwdescritarea
+ wurl+="&sw_mkprocedimiento="+sw_mkprocedimiento+"&nwidprocedimiento="+nwidprocedimiento+"&nwdescriprocedimiento="+nwdescriprocedimiento
+ return(wurl)
+}
+//________________________________________________________________________________________________________
+//
+// Resultado ejecución de un comando
+//________________________________________________________________________________________________________
+function resultado_comando(resul){
+ alert(CTbMsg[resul]);
+}
diff --git a/admin/WebConsole/controlacceso.php b/admin/WebConsole/controlacceso.php
new file mode 100644
index 00000000..f829c3f8
--- /dev/null
+++ b/admin/WebConsole/controlacceso.php
@@ -0,0 +1,19 @@
+<?
+// *********************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero aporta los datos de acceso a la aplicación
+// *********************************************************************************
+
+
+ //========================================================================================================
+ // Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global)
+ $cnx="localhost;usuog;passusuog;ogAdmBD;mysql"; // Cadena de conexión a la base de datos
+ $wer="OPENGNSYSURL/pagerror.php"; // Página de redireccionamiento de errores
+ $wac="OPENGNSYSURL/acceso.php"; // Página de login de la aplicación
+ $idi="esp"; // Idioma por defecto
+ //========================================================================================================
+?>
diff --git a/admin/WebConsole/controlpostacceso.php b/admin/WebConsole/controlpostacceso.php
new file mode 100644
index 00000000..aa68c1da
--- /dev/null
+++ b/admin/WebConsole/controlpostacceso.php
@@ -0,0 +1,185 @@
+<?
+// ********************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Diciembre-2003
+// Fecha Última modificación: Febrero-2005
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero implementa el control de acceso a la aplicación
+// *********************************************************************
+include_once("controlacceso.php");
+include_once("./includes/CreaComando.php");
+include_once("./clases/AdoPhp.php");
+//________________________________________________________________________________________________________
+ $usu="";
+ $pss="";
+ $idc=0;
+ $iph=""; // Switch menu cliente
+
+ if (isset($_POST["usu"])) $usu=$_POST["usu"];
+ if (isset($_POST["pss"])) $pss=$_POST["pss"];
+ if (isset($_POST["idcentro"])) $idc=$_POST["idcentro"];
+
+ if (isset($_GET["iph"])) $iph=$_GET["iph"];
+//________________________________________________________________________________________________________
+ $cmd=CreaComando($cnx); // Crea objeto comando
+ if (!$cmd)
+ die("Error de acceso");
+//________________________________________________________________________________________________________
+
+ $nmc="";
+ $idi="";
+
+ if(!empty($iph)){ // LLamada del browser del cliente
+ list($wip,$wusu,$wpwd,$wbd,$tbd)=split(";",$cnx);
+ $usu=$wusu;
+ $pss=$wpwd;
+ }
+
+ $resul=toma_datos($cmd,$idc,&$nmc,&$idi,$usu,&$tsu,$pss);
+ if(!$resul)
+ Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
+
+ if(!empty($iph)){
+ $wurl="./varios/menucliente.php";
+ Header("Location:".$wurl); // Accede a la página de menus
+ }
+
+
+ session_start(); // Activa variables de sesión
+
+ $_SESSION["widcentro"]=$idc;
+ $_SESSION["wnombrecentro"]=$nmc;
+ $_SESSION["wusuario"]=$usu;
+ $_SESSION["widtipousuario"]=$tsu;
+ $_SESSION["widioma"]=$idi;
+ $_SESSION["wcadenaconexion"]=$cnx;
+ $_SESSION["wpagerror"]=$wer;
+ $_SESSION["wurlacceso"]=$wac;
+
+// Variables de entorno
+ $resul=toma_entorno($cmd,&$ips,&$prt,&$pclo,&$rep);
+ if(!$resul)
+ Header("Location: ".$wac."?herror=4"); // Error de conexión con servidor B.D.
+
+ $_SESSION["wservidorhidra"]=$ips;
+ $_SESSION["whidraport"]=$prt;
+ $_SESSION["protclonacion"]=$pclo;
+ $_SESSION["repcentralizado"]=$rep;
+
+/*
+echo "<BR>Cadena=".$_SESSION["wcadenaconexion"];
+echo "<BR>servidorhidra=".$_SESSION["wservidorhidra"];
+echo "<BR>hidraport=".$_SESSION["whidraport"];
+echo "<BR>usuario=".$_SESSION["wusuario"];
+echo "<BR>idtipousuario=".$_SESSION["widtipousuario"];
+*/
+
+ //________________________________________________________________________________________________________
+ // Busca datos del usuario que intenta acceder a la aplicación
+ // Parametros:
+ // - cmd:Una comando ya operativo (con conexión abierta)
+ // - usuario: Nombre del usuario
+ // - pasguor: Password del uuario
+ //
+ // Devuelve el identificador del centro, el nombre y el idioma utilizado por el usuario
+ //_______________________________________________________________________________________________________
+ function toma_datos($cmd,$idcentro,$nombrecentro,$idioma,$usuario,$idtipousuario,$pasguor){
+ $rs=new Recordset;
+ if(!empty($idcentro)){
+ $cmd->texto="SELECT usuarios.idtipousuario,centros.nombrecentro,idiomas.nemonico AS idioma FROM usuarios";
+ $cmd->texto.=" INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario";
+ $cmd->texto.=" INNER JOIN centros ON centros.idcentro=administradores_centros.idcentro";
+ $cmd->texto.=" INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma";
+ $cmd->texto.=" WHERE idtipousuario<>3
+ AND usuarios.usuario='".$usuario."'
+ AND usuarios.pasguor='".$pasguor."'
+ AND administradores_centros.idcentro=".$idcentro;
+ }
+ else{
+ $cmd->texto="SELECT usuarios.idtipousuario,idiomas.nemonico AS idioma FROM usuarios";
+ $cmd->texto.=" INNER JOIN idiomas ON usuarios.ididioma=idiomas.ididioma";
+ $cmd->texto.=" WHERE idtipousuario<>3
+ AND usuarios.usuario='".$usuario."'
+ AND usuarios.pasguor='".$pasguor."'";
+
+ }
+ $rs->Comando=&$cmd;
+ //echo $cmd->texto;
+ if (!$rs->Abrir()) return($false); // Error al abrir recordset
+ if(!$rs->EOF){
+ $idtipousuario=$rs->campos["idtipousuario"];
+ $idioma=$rs->campos["idioma"];
+ $usuario=$rs->campos["usuario"];
+ if(!empty($idcentro)){
+ $nombrecentro=$rs->campos["nombrecentro"];
+ $idtipousuario=2; // Fuerza al acceso como administrador de UNidad organizativa
+ return(true);
+ }
+ else{
+ $nombrecentro="";
+ if($idtipousuario<>1) // Si NO es superadminsitrador
+ return(false);
+ else
+ return(true);
+ }
+ }
+ return(false);
+ }
+//________________________________________________________________________________________________________
+ // Busca datos de configuración del sistema
+ // Parametros:
+ // - cmd:Una comando ya operativo (con conexión abierta)
+ // - ips: Dirección IP del servidor de administración
+ // - prt: Puerto de comunicaciones
+ // - pclo: Protocolo de clonación
+ // - rep: Uso de repositorio centralizado
+ //
+ // Devuelve datos generales de configuración del sistema
+ //_______________________________________________________________________________________________________
+ function toma_entorno($cmd,$ips,$prt,$pclo,$rep){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM entornos";
+ $rs->Comando=&$cmd;
+ //echo $cmd->texto;
+ if (!$rs->Abrir()) return($false); // Error al abrir recordset
+ if(!$rs->EOF){
+ $ips=$rs->campos["ipserveradm"];
+ $prt=$rs->campos["portserveradm"];
+ $pclo=$rs->campos["protoclonacion"];
+ $rep=$rs->campos["repositorio"];
+
+ }
+ return(true);
+ }
+ //_______________________________________________________________________________________________________
+?>
+ <HTML>
+ <TITLE> Administración 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">
+ </HEAD>
+ <BODY>
+ <DIV id="mensaje" style="Position:absolute;TOP:250;LEFT:330; visibility:visible">
+ <SPAN align=center class=subcabeceras>Acceso permitido. Espere por favor ...</SPAN></P>
+ <SCRIPT LANGUAGE="JAVASCRIPT">
+ var vez=0;
+ setTimeout("acceso();",300);
+ function acceso(){
+ o=document.getElementById("mensaje");
+ var s=o.style.visibility;
+ if(s=="hidden")
+ o.style.visibility="visible";
+ else
+ o.style.visibility="hidden";
+ if(vez>5){
+ var w=window.top;
+ w.location="frames.php";
+ }
+ vez++;
+ setTimeout("acceso();",300);
+ }
+ </SCRIPT>
+ </BODY>
+ </HTML>
diff --git a/admin/WebConsole/dirphp.php b/admin/WebConsole/dirphp.php
new file mode 100644
index 00000000..73dfb3a0
--- /dev/null
+++ b/admin/WebConsole/dirphp.php
@@ -0,0 +1,63 @@
+<?php
+listar_directorios_ruta("./");
+function listar_directorios_ruta($ruta){
+ // abrir un directorio y listarlo recursivo
+ if (is_dir($ruta)) {
+ if ($dh = opendir($ruta)) {
+ while (($file = readdir($dh)) !== false) {
+ if($file !=".svn" && $file!="." && $file!=".."){
+ //esta lnea la utilizaramos si queremos listar todo lo que hay en el directorio
+ //mostrara tanto archivos como directorios
+ //echo "<br>Nombre de archivo: $file : Es un: " . filetype($ruta . $file);
+ if (is_dir($ruta . $file) && $file!="." && $file!=".."){
+ //solo si el archivo es un directorio, distinto que "." y ".."
+ echo "<br>Directorio: $ruta$file";
+ listar_directorios_ruta($ruta . $file . "/");
+ }
+ else{
+ //echo "<br>Archivp:$file";
+ //if($file=="aulas.php")
+ procesaarchivo($ruta,$file);
+ }
+ }
+ }
+ closedir($dh);
+ }
+ }else
+ echo "<br>No es ruta valida";
+}
+ function procesaarchivo($ruta,$file){
+ $meta='<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ $archivo=realpath($ruta.$file);
+ echo "<br>Procesando Archivo:".$file;
+
+ $tam=filesize($archivo);
+ $fp = fopen($archivo, "rb");
+ $buffer = fread($fp, $tam);
+ fclose($fp);
+
+ $pos = strpos($buffer,'<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">');
+ if($pos==0)
+ $pos = strpos($buffer,'<head>');
+ if($pos==0)
+ return;
+
+ $dpl=strlen('<HEAD>');
+ $prebuffer=substr($buffer,0,$pos+$dpl);
+ $posbuffer=substr($buffer,$pos+$dpl);
+
+ $buffer=$prebuffer."\n\t".$meta.$posbuffer;
+
+ /*
+ $buffer=ereg_replace( "<"," ",$buffer);
+ $buffer=ereg_replace( ">"," ",$buffer);
+ $buffer=ereg_replace( "[\n\r]","<BR>",$buffer);
+ echo $buffer;
+ */
+
+ $fp = fopen($archivo,"w");
+ fwrite($fp, $buffer,strlen($buffer));
+ fclose($fp);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/estilos.css b/admin/WebConsole/estilos.css
new file mode 100644
index 00000000..fe836968
--- /dev/null
+++ b/admin/WebConsole/estilos.css
@@ -0,0 +1,395 @@
+.textos{
+ COLOR: #A53B2D;
+ FONT-FAMILY:MS Sans Serif;
+ FONT-SIZE: 8pt;
+}
+
+.texto_arbol{
+ COLOR: #000000;
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+}
+
+.menu_contextual TABLE{
+ BACKGROUND-COLOR: #d4d0c8;
+}
+
+.menu_contextual TD{
+ COLOR: #000000;
+ FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ LETTER-SPACING: -1px;
+}
+.menu_contextual SPAN{
+ COLOR: #000000;
+ FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ LETTER-SPACING: -1px;
+}
+.tabla_standar TD{
+ COLOR: #000000;
+ FONT-FAMILY: Verdana;
+ FONT-SIZE: 11px;
+}
+
+.tabla_lista TD{
+ COLOR: #000000;
+ FONT-FAMILY: Verdana;
+ FONT-SIZE: 11px;
+ LETTER-SPACING: -1px;
+}
+
+.input_nodo{
+ BORDER-BOTTOM: 1px solid;
+ BORDER-LEFT: 1px solid;
+ BORDER-RIGHT: 1px solid;
+ BORDER-TOP: 1px solid;
+ COLOR: #000000;
+ FONT-SIZE: 11px;
+ HEIGHT: 14px;
+}
+.marcorelieve{
+ BORDER-BOTTOM: #808080 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #808080 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+}
+.marco{
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #999999 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #999999 1px solid;
+ COLOR: #000000;
+ FONT-FAMILY: Verdana,Arial, Helvetica, sans-serif;
+ FONT-SIZE: 13px;
+}
+.menupral{
+ BACKGROUND-COLOR: #d4d0c8;
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+}
+.menupral TD{
+ BORDER-BOTTOM: #d4d0c8 1px solid;
+ BORDER-LEFT: #d4d0c8 1px solid;
+ BORDER-RIGHT: #d4d0c8 1px solid;
+ BORDER-TOP: #d4d0c8 1px solid;
+}
+
+.menupral SPAN{
+ COLOR: #000000;
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+}
+
+.filtros{
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #999999 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #999999 1px solid;
+}
+
+.filtros TD{
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+ COLOR:#999999;
+}
+.supercabeceras {
+ COLOR:#FE6C65;
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 30px;
+ FONT-WEIGHT: 600;
+}
+.sobrecabeceras {
+ COLOR:#7575DD;
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 24px;
+ FONT-WEIGHT: 400;
+}
+.cabeceras{
+ COLOR: #999999;
+ FONT-FAMILY: Verdana;
+ FONT-SIZE: 24px;
+ FONT-WEIGHT: 600;
+}
+.subcabeceras{
+ COLOR: #D6A621;
+ FONT-FAMILY: Verdana;
+ FONT-SIZE: 20px;
+}
+
+.presentaciones{
+ COLOR: #999999;
+ FONT-FAMILY: Verdana,Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+}
+
+
+.notas{
+ COLOR: #999999;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 10px;
+}
+
+.tabla_datos{
+}
+
+.tabla_datos TH{
+ BACKGROUND-COLOR: #63676b;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM:#999999 1px solid ;
+}
+
+.tabla_datos TD{
+ BACKGROUND-COLOR: #d4d0c8;
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ BORDER-BOTTOM:#999999 1px solid;
+}
+
+.formulariodatos{
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px
+}
+
+.tabla_listados{
+}
+
+.tabla_listados TH{
+ BACKGROUND-COLOR: #63676b;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM:#999999 1px solid ;
+}
+.tabla_listados TD{
+ BACKGROUND-COLOR: #EEEECC;
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ BORDER-BOTTOM:#999999 1px solid;
+}
+
+.tabla_listados_sin {
+}
+
+.tabla_listados_sin TH{
+ BACKGROUND-COLOR: #63676b;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM:#4f4f4f 1px solid;
+ BORDER-RIGHT:#4f4f4f 1px solid;
+}
+
+.tabla_listados_sin TD{
+ BACKGROUND-COLOR: #EEEECC;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11;
+}
+
+A.tabla_listados_sin:visited{
+ COLOR: #000000;
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+}
+A.tabla_listados_sin:link{
+ COLOR: #000000;
+ FONT-FAMILY: sans-serif;
+ FONT-SIZE: 11px;
+}
+
+.recuadros{
+ BACKGROUND-COLOR: lightseagreen;
+ BORDER-BOTTOM: teal solid;
+ BORDER-LEFT: #b4e0d2 solid;
+ BORDER-RIGHT: teal solid;
+ BORDER-TOP: #b4e0d2 solid;
+ COLOR: white;
+ FONT-STYLE: italic
+}
+
+.tabla_meses{
+}
+
+.tabla_meses TH{
+ BACKGROUND-COLOR: #b5daad;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #999999 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #999999 1px solid;
+}
+
+.tabla_meses TD{
+ BACKGROUND-COLOR: #EEEECC;
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ BORDER-BOTTOM: #d4d4d4 1px solid;
+ BORDER-LEFT: #d4d4d4 1px solid;
+
+}
+
+.tabla_reservas{
+}
+
+.tabla_reservas TH{
+ BACKGROUND-COLOR: #B5DAAD;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 10px;
+ FONT-WEIGHT: 700;
+}
+
+.tabla_reservas TD{
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 10px;
+
+}
+.tabla_busquedas{
+}
+
+.tabla_busquedas TH{
+ BACKGROUND-COLOR: #5a86b5;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM:#000000 1px solid ;
+}
+
+.tabla_busquedas TD{
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+}
+
+.tablaipes{
+ BACKGROUND-COLOR: #b5daad;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 9px
+}
+
+.estilodesple{
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px
+}
+
+.cajatexto{
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px
+}
+
+.cajacomandos{
+ BACKGROUND-COLOR: #ffffff;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px
+}
+.salidacomandos{
+ BACKGROUND-COLOR: #000000;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px
+}
+
+.tabla_parametros{
+}
+
+.tabla_parametros TH{
+ BACKGROUND-COLOR: #D4D4D4;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ FONT-WEIGHT: 700;
+ BORDER-BOTTOM:#000000 1px solid ;
+
+}
+.tabla_parametros TD{
+ BACKGROUND-COLOR: #B5DAAD;
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ BORDER-BOTTOM:#000000 1px solid;
+
+}
+.opciones_ejecucion{
+ BORDER-TOP: silver thin solid;
+ BORDER-BOTTOM: silver thin solid;
+ BORDER-LEFT: silver thin solid;
+ BORDER-RIGHT: silver thin solid;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+}
+
+.tablaprogramacion TABLE{
+}
+
+.tablaprogramacion TH{
+ FONT-WEIGHT: bold;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ BORDER-LEFT: medium none;
+ COLOR: white;
+ BACKGROUND-COLOR: lightseagreen;
+ TEXT-ALIGN: left;
+}
+
+.tablaprogramacion TD{
+ FONT-SIZE: 9pt;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ COLOR: #000000;
+
+}
+
+.botonprogramacion{
+ BORDER-BOTTOM: #666666 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #666666 1px solid;
+ BACKGROUND-COLOR: #EEEECC;
+ FONT-SIZE: 9pt;
+ COLOR: #000000;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+}
+
+.tabla_accesos{
+}
+
+.tabla_accesos TH{
+ BACKGROUND-COLOR: lightseagreen;
+ COLOR: #ffffff;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+ FONT-WEIGHT: 500;
+ BORDER-BOTTOM:#000000 1px solid ;
+}
+
+.tabla_accesos TD{
+ COLOR: #003300;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;
+}
+.mensajebrowser{
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #999999 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #999999 1px solid;
+ BACKGROUND-COLOR: #FFFFFF;
+ COLOR: #999999;
+ FONT-FAMILY: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 14px;
+ FONT-WEIGHT: 300;
+}
+
diff --git a/admin/WebConsole/frames.php b/admin/WebConsole/frames.php
new file mode 100644
index 00000000..ebcaad57
--- /dev/null
+++ b/admin/WebConsole/frames.php
@@ -0,0 +1,34 @@
+<?
+// *******************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: frames.php
+// Descripción :Este fichero implementa la distribución en frames de la aplicación
+// *******************************************************************************************************
+include_once("./includes/ctrlacc.php");
+include_once("./includes/constantes.php");
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<TITLE> Administración web de aulas</TITLE>
+</HEAD>
+<FRAMESET rows="25,*">
+ <FRAME SRC="barramenu.php" frameborder=0 scrolling=no NAME="frame_menus" >
+ <FRAMESET cols="30%,*">
+ <?
+ if($idtipousuario!=$SUPERADMINISTRADOR)
+ echo '<FRAME SRC="./principal/aulas.php" frameborder=1 scrolling=auto NAME="frame_arbol" >';
+ else{
+ if($idtipousuario==$SUPERADMINISTRADOR)
+ echo '<FRAME SRC="./principal/administracion.php" frameborder=1 scrolling=auto NAME="frame_arbol" >';
+ }
+ ?>
+ <FRAME SRC="nada.php" frameborder=1 NAME="frame_contenidos">
+ </FRAMESET>
+ </FRAMESET>
+</FRAMESET>
+</HTML>
diff --git a/admin/WebConsole/gestores/gestor_accionmenu.php b/admin/WebConsole/gestores/gestor_accionmenu.php
new file mode 100644
index 00000000..41a7a213
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_accionmenu.php
@@ -0,0 +1,145 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_accionmenu.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de acciones_menus
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+
+$altas="";
+$bajas="";
+$modificaciones="";
+
+if (isset($_POST["altas"])) $altas=$_POST["altas"]; // Recoge parametros
+if (isset($_POST["bajas"])) $bajas=$_POST["bajas"];
+if (isset($_POST["modificaciones"])) $modificaciones=$_POST["modificaciones"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="resultado_gestion_accionmenu";
+
+if ($resul)
+ echo $literal."(1,'".$cmd->DescripUltimoError()."');";
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."');";
+
+// *************************************************************************************************************************************************
+function Gestiona()
+{
+ global $cmd;
+ global $altas;
+ global $bajas;
+ global $modificaciones;
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+
+ $cmd->CreaParametro("@idtipoaccion",0,1);
+ $cmd->CreaParametro("@idmenu",0,1);
+ $cmd->CreaParametro("@tipoaccion",0,1);
+ $cmd->CreaParametro("@tipoitem",0,1);
+ $cmd->CreaParametro("@idurlimg","",1);
+ $cmd->CreaParametro("@descripitem","",0);
+ $cmd->CreaParametro("@orden",0,1);
+
+ /* Altas */
+ if(!empty($altas)){
+ $altas=substr($altas,0,strlen($altas)-1); // Quita el último ";"
+ $tbAltas=split(";",$altas);
+ for($i=0;$i<sizeof($tbAltas);$i++){
+ $tbAlta=split(",",$tbAltas[$i]);
+ /* Toma datos altas */
+ $idmenu=$tbAlta[0];
+ $idtipoaccion=$tbAlta[1];
+ $tipoaccion=$tbAlta[2];
+ $tipoitem=$tbAlta[3];
+ $idurlimg=$tbAlta[4];
+ $descripitem=$tbAlta[5];
+ $orden=$tbAlta[6];
+
+ $cmd->ParamSetValor("@idtipoaccion",$idtipoaccion);
+ $cmd->ParamSetValor("@idmenu",$idmenu);
+ $cmd->ParamSetValor("@tipoaccion",$tipoaccion);
+ $cmd->ParamSetValor("@tipoitem",$tipoitem);
+ $cmd->ParamSetValor("@idurlimg",$idurlimg);
+ $cmd->ParamSetValor("@descripitem",$descripitem);
+ $cmd->ParamSetValor("@orden",$orden);
+
+ $cmd->texto="INSERT INTO acciones_menus (idmenu,idtipoaccion,tipoaccion,tipoitem,idurlimg,descripitem,orden)
+ VALUES (@idmenu,@idtipoaccion,@tipoaccion,@tipoitem,@idurlimg,@descripitem,@orden)";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+
+ /* Bajas */
+ if(!empty($bajas)){
+ $bajas=substr($bajas,0,strlen($bajas)-1); // Quita el último ";"
+ $tbBajas=split(";",$bajas);
+ for($i=0;$i<sizeof($tbBajas);$i++){
+ $tbBaja=split(",",$tbBajas[$i]);
+ /* Toma datos bajas */
+ $idmenu=$tbBaja[0];
+ $idtipoaccion=$tbBaja[1];
+ $tipoaccion=$tbBaja[2];
+
+ $cmd->ParamSetValor("@idtipoaccion",$idtipoaccion);
+ $cmd->ParamSetValor("@idmenu",$idmenu);
+ $cmd->ParamSetValor("@tipoaccion",$tipoaccion);
+
+ $cmd->texto="DELETE FROM acciones_menus
+ WHERE idmenu=@idmenu AND idtipoaccion=@idtipoaccion AND tipoaccion=@tipoaccion";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+/* Modificaciones */
+ if(!empty($modificaciones)){
+ $modificaciones=substr($modificaciones,0,strlen($modificaciones)-1); // Quita el último ";"
+ $tbModificaciones=split(";",$modificaciones);
+ for($i=0;$i<sizeof($tbModificaciones);$i++){
+ $tbtbModificacion=split(",",$tbModificaciones[$i]);
+ /* Toma datos modificaciones */
+ $idmenu=$tbtbModificacion[0];
+ $idtipoaccion=$tbtbModificacion[1];
+ $tipoaccion=$tbtbModificacion[2];
+ $tipoitem=$tbtbModificacion[3];
+ $idurlimg=$tbtbModificacion[4];
+ $descripitem=$tbtbModificacion[5];
+ $orden=$tbtbModificacion[6];
+
+ $cmd->ParamSetValor("@idtipoaccion",$idtipoaccion);
+ $cmd->ParamSetValor("@idmenu",$idmenu);
+ $cmd->ParamSetValor("@tipoaccion",$tipoaccion);
+ $cmd->ParamSetValor("@tipoitem",$tipoitem);
+ $cmd->ParamSetValor("@idurlimg",$idurlimg);
+ $cmd->ParamSetValor("@descripitem",$descripitem);
+ $cmd->ParamSetValor("@orden",$orden);
+
+ $cmd->texto="UPDATE acciones_menus set tipoitem=@tipoitem,idurlimg=@idurlimg,descripitem=@descripitem,orden=@orden
+ WHERE idmenu=@idmenu AND idtipoaccion=@idtipoaccion AND tipoaccion=@tipoaccion";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_administradores_centros.php b/admin/WebConsole/gestores/gestor_administradores_centros.php
new file mode 100644
index 00000000..f21988ca
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_administradores_centros.php
@@ -0,0 +1,77 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_dministradores_centros.php
+// Descripción :
+// Gestiona la asignación de administradores a las Unidades organizativas
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idcentro=0;
+$idusuario=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["idcentro"])) $idcentro=$_POST["idcentro"];
+if (isset($_POST["idusuario"])) $idusuario=$_POST["idusuario"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_administradores_centros";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_administradores_centros";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idusuario.");".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idusuario.");".chr(13);
+}
+else{
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idusuario.")";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idusuario;
+ global $idcentro;
+ global $urlimgth;
+ global $op_alta;
+ global $op_eliminacion;
+
+ $cmd->CreaParametro("@idusuario",$idusuario,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO administradores_centros(idusuario,idcentro) VALUES (@idusuario,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM administradores_centros WHERE idusuario='.$idusuario.' AND idcentro='.$idcentro;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_administradores_usuarios.php b/admin/WebConsole/gestores/gestor_administradores_usuarios.php
new file mode 100644
index 00000000..319503ad
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_administradores_usuarios.php
@@ -0,0 +1,80 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_dministradores_centros.php
+// Descripción :
+// Gestiona la asignación de administradores a las Unidades organizativas
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idcentro=0;
+$idusuario=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idusuario"])) $idusuario=$_POST["idusuario"];
+if (isset($_POST["idcentro"])) $idcentro=$_POST["idcentro"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_centros_administradores";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_centros_administradores";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idcentro.");".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idcentro.");".chr(13);
+}
+else{
+ echo " window.parent.".$literal."(0,'".$cmd->DescripUltimoError()."',".$idcentro.")";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idusuario;
+ global $idcentro;
+ global $urlimgth;
+ global $op_alta;
+ global $op_eliminacion;
+
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idusuario",$idusuario,1);
+
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO administradores_centros(idusuario,idcentro) VALUES (@idusuario,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM administradores_centros WHERE idusuario='.$idusuario.' AND idcentro='.$idcentro;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_aulas.php b/admin/WebConsole/gestores/gestor_aulas.php
new file mode 100644
index 00000000..27447ac5
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_aulas.php
@@ -0,0 +1,264 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_aulas.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de aulas
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/aulas_eliminacion.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/gruposordenadores_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idaula=0;
+$nombreaula="";
+$grupoid=0;
+$urlfoto="";
+$cagnon=false;
+$pizarra=false;
+$ubicacion="";
+$comentarios="";
+$puestos=0;
+$horaresevini=0;
+$horaresevfin=0;
+$idmenu=0;
+$idproautoexec=0;
+$idrepositorio=0;
+$idperfilhard=0;
+$cache=0;
+$modomul=0;
+$ipmul="";
+$pormul=0;
+$velmul=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
+if (isset($_POST["identificador"])) $idaula=$_POST["identificador"];
+
+if (isset($_POST["nombreaula"])) $nombreaula=$_POST["nombreaula"];
+if (isset($_POST["urlfoto"])) $urlfoto=$_POST["urlfoto"];
+if (isset($_POST["cagnon"])) $cagnon=$_POST["cagnon"];
+if (isset($_POST["pizarra"])) $pizarra=$_POST["pizarra"];
+if (isset($_POST["ubicacion"])) $ubicacion=$_POST["ubicacion"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["puestos"])) $puestos=$_POST["puestos"];
+if (isset($_POST["horaresevini"])) $horaresevini=$_POST["horaresevini"];
+if (isset($_POST["horaresevfin"])) $horaresevfin=$_POST["horaresevfin"];
+if (isset($_POST["idmenu"])) $idmenu=$_POST["idmenu"];
+if (isset($_POST["idprocedimiento"])) $idproautoexec=$_POST["idprocedimiento"];
+if (isset($_POST["idrepositorio"])) $idrepositorio=$_POST["idrepositorio"];
+if (isset($_POST["idperfilhard"])) $idperfilhard=$_POST["idperfilhard"];
+if (isset($_POST["cache"])) $cache=$_POST["cache"];
+if (isset($_POST["modomul"])) $modomul=$_POST["modomul"];
+if (isset($_POST["ipmul"])) $ipmul=$_POST["ipmul"];
+if (isset($_POST["pormul"])) $pormul=$_POST["pormul"];
+if (isset($_POST["velmul"])) $velmul=$_POST["velmul"];
+
+$gidmenu=0;
+$gidproautoexec=0;
+$gidrepositorio=0;
+$gidperfilhard=0;
+$gcache=0;
+
+if (isset($_POST["gidmenu"])) $gidmenu=$_POST["gidmenu"];
+if (isset($_POST["gidprocedimiento"])) $gidproautoexec=$_POST["gidprocedimiento"];
+if (isset($_POST["gidrepositorio"])) $gidrepositorio=$_POST["gidrepositorio"];
+if (isset($_POST["gidperfilhard"])) $gidperfilhard=$_POST["gidperfilhard"];
+if (isset($_POST["gcache"])) $gcache=$_POST["gcache"];
+
+$tablanodo=""; // Arbol para nodos insertados
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_aulas.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_aulas";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_aulas";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_aulas";
+ break;
+ default:
+ break;
+ }
+echo '<p><span style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</span></p>';
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idaula.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreaula."');".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idaula.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla aulas
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $grupoid;
+
+ global $idaula;
+ global $nombreaula;
+ global $urlfoto;
+ global $cagnon;
+ global $pizarra;
+ global $ubicacion;
+ global $comentarios;
+ global $puestos;
+ global $horaresevini;
+ global $horaresevfin;
+
+ global $idmenu;
+ global $idproautoexec;
+ global $idrepositorio;
+ global $idperfilhard;
+ global $cache;
+
+ global $gidmenu;
+ global $gidproautoexec;
+ global $gidrepositorio;
+ global $gidperfilhard;
+ global $gcache;
+
+ global $modomul;
+ global $ipmul;
+ global $pormul;
+ global $velmul;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@nombreaula",$nombreaula,0);
+ $cmd->CreaParametro("@urlfoto",$urlfoto,0);
+ $cmd->CreaParametro("@cagnon",$cagnon,1);
+ $cmd->CreaParametro("@pizarra",$pizarra,1);
+ $cmd->CreaParametro("@ubicacion",$ubicacion,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@puestos",$puestos,1);
+ $cmd->CreaParametro("@horaresevini",$horaresevini,1);
+ $cmd->CreaParametro("@horaresevfin",$horaresevfin,1);
+ $cmd->CreaParametro("@idmenu",$idmenu,1);
+ $cmd->CreaParametro("@idproautoexec",$idproautoexec,1);
+ $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@cache",$cache,1);
+ $cmd->CreaParametro("@modomul",$modomul,1);
+ $cmd->CreaParametro("@ipmul",$ipmul,0);
+ $cmd->CreaParametro("@pormul",$pormul,1);
+ $cmd->CreaParametro("@velmul",$velmul,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO aulas(idcentro,grupoid,nombreaula,urlfoto,cagnon,pizarra,ubicacion,comentarios,
+ puestos,horaresevini,horaresevfin,modomul,ipmul,pormul,velmul)
+ VALUES (@idcentro,@grupoid,@nombreaula,@urlfoto,@cagnon,@pizarra,@ubicacion,@comentarios,
+ @puestos,@horaresevini,@horaresevfin,@modomul,@ipmul,@pormul,@velmul)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idaula=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_aulas($idaula,$nombreaula);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE aulas SET nombreaula=@nombreaula,urlfoto=@urlfoto,cagnon=@cagnon,pizarra=@pizarra,
+ ubicacion=@ubicacion,comentarios=@comentarios,puestos=@puestos,horaresevini=@horaresevini,
+ horaresevfin=@horaresevfin,modomul=@modomul,ipmul=@ipmul,pormul=@pormul,velmul=@velmul WHERE idaula=@idaula";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $clsUpdate="";
+ if($idmenu>0 || $gidmenu>0)
+ $clsUpdate.="idmenu=@idmenu,";
+ if($idproautoexec>0 || $gidproautoexec>0)
+ $clsUpdate.="idproautoexec=@idproautoexec,";
+ if($idrepositorio>0 || $gidrepositorio>0)
+ $clsUpdate.="idrepositorio=@idrepositorio,";
+ if($idperfilhard>0 || $gidperfilhard>0)
+ $clsUpdate.="idperfilhard=@idperfilhard,";
+ if($cache!=0 || $gcache>0)
+ $clsUpdate.="cache=@cache,";
+
+ if(!empty($clsUpdate)){
+ $clsUpdate=substr($clsUpdate,0,strlen($clsUpdate)-1); // Quita última coma
+ $cmd->texto="UPDATE ordenadores SET ".$clsUpdate." WHERE idaula=@idaula";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ }
+ }
+ break;
+ case $op_eliminacion :
+ $resul=EliminaAulas($cmd,$idaula,"idaula");// Eliminación en cascada
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_aulas($idaula,$nombreaula){
+ global $LITAMBITO_AULAS;
+ $cadenaXML='<AULAS ';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_AULAS."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$nombreaula.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_AULAS.'-'.$idaula;
+ $cadenaXML.='>';
+ $cadenaXML.='</AULAS>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_centros.php b/admin/WebConsole/gestores/gestor_centros.php
new file mode 100644
index 00000000..e758d066
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_centros.php
@@ -0,0 +1,160 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_centros.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de centros
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/centros_eliminacion.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/centros_eliminacion.php");
+include_once("./relaciones/aulas_eliminacion.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("./relaciones/gruposordenadores_eliminacion.php");
+
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$identidad=0;
+$idcentro=0;
+$nombrecentro="";
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["identidad"])) $identidad=$_POST["identidad"];
+if (isset($_POST["idcentro"])) $idcentro=$_POST["idcentro"];
+if (isset($_POST["identificador"])) $idcentro=$_POST["identificador"];
+if (isset($_POST["nombrecentro"])) $nombrecentro=$_POST["nombrecentro"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_centros.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_centros";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_centros";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_centros";
+ break;
+ case $op_movida :
+ $literal="resultado_cambiar_centros";
+ break;
+ default:
+ break;
+ }
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idcentro.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombrecentro."');".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idcentro.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/*________________________________________________________________________________________________________
+ Inserta, modifica o elimina datos en la tabla centros
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $nombrecentro;
+ global $comentarios;
+ global $identidad;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@identidad",$identidad,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@nombrecentro",$nombrecentro,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO centros(nombrecentro,comentarios,identidad) VALUES (@nombrecentro,@comentarios,@identidad)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idcentro=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_centros($idcentro,$nombrecentro);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE centros SET nombrecentro=@nombrecentro,comentarios=@comentarios WHERE idcentro=@idcentro";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaCentros($cmd,$idcentro,"idcentro");// Eliminación en cascada
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE centros SET identidad=@identidad WHERE idcentro=@idcentro";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_centros($idcentro,$nombrecentro){
+ global $LITAMBITO_CENTROS;
+ $cadenaXML='<CENTRO';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_CENTROS."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/centros.gif"';
+ $cadenaXML.=' infonodo="'.$nombrecentro.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS.'-'.$idcentro;
+ $cadenaXML.='></CENTRO>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_colasacciones.php b/admin/WebConsole/gestores/gestor_colasacciones.php
new file mode 100644
index 00000000..ed27d232
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_colasacciones.php
@@ -0,0 +1,178 @@
+<?php
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: colasacciones.php
+// Descripción :
+// Gestiona las operaciones realizadas sobre las acciones registradas
+// *************************************************************************************************************************************************
+
+include_once("../includes/ctrlacc.php");
+include_once("../includes/TomanDatos.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/SockHidra.php");
+//________________________________________________________________________________________________________
+
+$opcion=0; // Inicializa parametros
+$acciones="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
+if (isset($_POST["acciones"])) $acciones=$_POST["acciones"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=gestiona($cmd,$opcion,$acciones);
+ $cmd->Conexion->Cerrar();
+}
+if($resul)
+ echo $opcion; // Proceso con éxito, devuelve la opción
+else
+ echo 0; // Proceso con algún error, devuelve cero
+//
+// *****************************************************************************************************************
+//
+function gestiona($cmd,$opcion,$acciones){
+
+ global $ACCION_EXITOSA;
+ global $ACCION_FALLIDA;
+ global $ACCION_SINRESULTADO;
+
+ global $LITACCION_EXITOSA;
+ global $LITACCION_FALLIDA;
+
+ global $ACCION_DETENIDA;
+ global $ACCION_INICIADA;
+ global $ACCION_FINALIZADA;
+
+ $tbAcciones=split(";",$acciones);
+ for($i=0;$i<sizeof($tbAcciones)-1;$i++){
+ list($tipoaccion,$idtipoaccion,$sesion,$idaccion)=split(",",$tbAcciones[$i]);
+ switch($opcion){
+
+ case 1: // Eliminar ============================================================
+ $cmd->texto="DELETE FROM acciones ";
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion;
+ $resul=$cmd->Ejecutar();
+ break;
+
+ case 2: // Reiniciar ============================================================
+ /* Recordset para envío de comando actualizar */
+ $cmd->texto="SELECT count(*) as con,
+ group_concat(cast(ordenadores.idordenador AS char( 11 ) ) SEPARATOR ',' ) AS cadenaid,
+ group_concat(ordenadores.ip SEPARATOR ';' ) AS cadenaip
+ FROM acciones
+ INNER JOIN ordenadores ON ordenadores.idordenador=acciones.idordenador";
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion."
+ AND sesion=".$sesion;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->EOF) return(true); // No existen registros
+ $aplicacion="ido=".$rs->campos["cadenaid"].chr(13)."iph=".$rs->campos["cadenaip"].chr(13);
+
+ /* Update de la tabla */
+ $cmd->texto="UPDATE acciones
+ SET estado=".$ACCION_INICIADA.",resultado=".$ACCION_SINRESULTADO.",descrinotificacion='',fechahorafin=''";
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion;
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $resul=enviaComandoActualizar($aplicacion);
+ break;
+
+ case 3: // Para acciones ============================================================
+ $cmd->texto="UPDATE acciones SET estado=".$ACCION_DETENIDA;
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
+ $resul=$cmd->Ejecutar();
+ break;
+
+ case 4: // Reanuda acciones ============================================================
+ $cmd->texto="UPDATE acciones SET estado=".$ACCION_INICIADA;
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_DETENIDA;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_DETENIDA;
+ $resul=$cmd->Ejecutar();
+ break;
+
+ case 5: // Finalizar sin errores ============================================================
+ $ahora=date("y/m/d H:i:s");
+ $cmd->texto="UPDATE acciones SET estado=".$ACCION_FINALIZADA.",resultado=".$ACCION_EXITOSA.",
+ fechahorafin='".$ahora."'".",descrinotificacion='".$LITACCION_EXITOSA."'";
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
+ $resul=$cmd->Ejecutar();
+ break;
+
+ case 6: // Finalizar con errores ============================================================
+ $ahora=date("y/m/d H:i:s");
+ $cmd->texto="UPDATE acciones SET estado=".$ACCION_FINALIZADA.",resultado=".$ACCION_FALLIDA.",
+ fechahorafin='".$ahora."'".",descrinotificacion='".$LITACCION_FALLIDA."'";
+ if(!empty($idaccion))
+ $cmd->texto.=" WHERE idaccion=".$idaccion." AND estado=".$ACCION_INICIADA;
+ else
+ $cmd->texto.=" WHERE tipoaccion=".$tipoaccion." AND idtipoaccion=".$idtipoaccion." AND sesion=".$sesion." AND estado=".$ACCION_INICIADA;
+ $resul=$cmd->Ejecutar();
+ break;
+ }
+ //echo $cmd->texto;
+ }
+ return($resul);
+}
+// _________________________________________________________________________
+//
+// Envía un comando de actualizar a los ordenadores tras reinicio de acción
+// _________________________________________________________________________
+
+function enviaComandoActualizar($aplicacion)
+{
+ global $servidorhidra;
+ global $hidraport;
+ global $LONCABECERA;
+ global $LONHEXPRM;
+
+ $funcion="Actualizar"; // Nombre de la función que procesa la petición
+ //________________________________________________________________________________________________________
+ //
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $trama="";
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros="nfn=".$funcion.chr(13);
+ $parametros.=$aplicacion;
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ }
+ else
+ return(false); // Error de actualización
+
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["res"];
+ if($trama_notificacion==1) return(true); // Devuelve respuesta
+ return(false); // Error de actualización
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_componentehardwares.php b/admin/WebConsole/gestores/gestor_componentehardwares.php
new file mode 100644
index 00000000..5710f5f3
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_componentehardwares.php
@@ -0,0 +1,169 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_componentehardwares.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de hardwares
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/hardwares_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idhardware=0;
+$descripcion="";
+$idtipohardware=0;
+$grupoid=0;
+
+$urlimgth=""; // Url de la imagen del tipo de hardware al que pertenece el componente
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idhardware"])) $idhardware=$_POST["idhardware"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["idtipohardware"])) $idtipohardware=$_POST["idtipohardware"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["identificador"])) $idhardware=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_componentehardwares.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_componentehardwares";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_componentehardwares";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_componentehardwares";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idhardware.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idhardware.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla hardwares
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idhardware;
+ global $descripcion;
+ global $idtipohardware;
+ global $grupoid;
+
+ global $urlimgth;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idhardware",$idhardware,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@idtipohardware",$idtipohardware,1);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO hardwares (descripcion,idtipohardware,idcentro,grupoid) VALUES (@descripcion,@idtipohardware,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idhardware=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_ComponenteHardwares($cmd,$idhardware,$descripcion,$idtipohardware);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE hardwares SET descripcion=@descripcion,idtipohardware=@idtipohardware WHERE idhardware=@idhardware";
+ $resul=$cmd->Ejecutar();
+ if ($resul) // Toma la imagen del tipo de componente hardware
+ $urlimgth=TomaDato($cmd,0,'tipohardwares',$idtipohardware,'idtipohardware','urlimg');
+ break;
+ case $op_eliminacion :
+ $resul=EliminaHardwares($cmd,$idhardware,"idhardware");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE hardwares SET grupoid=@grupoid WHERE idhardware=@idhardware";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_ComponenteHardwares($cmd,$idhardware,$descripcion,$idtipohardware){
+ global $LITAMBITO_COMPONENTESHARD;
+ $urlimg=TomaDato($cmd,0,'tipohardwares',$idtipohardware,'idtipohardware','urlimg');
+ $cadenaXML='<COMPONENTEHARDWARES';
+ // Atributos
+ if (!empty($urlimg))
+ $cadenaXML.=' imagenodo="'.$urlimg.'"';
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_COMPONENTESHARD.'-'.$idhardware;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_COMPONENTESHARD."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</COMPONENTEHARDWARES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_componentesoftwares.php b/admin/WebConsole/gestores/gestor_componentesoftwares.php
new file mode 100644
index 00000000..bb6c1c95
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_componentesoftwares.php
@@ -0,0 +1,173 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_componentesoftwares.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de softwares
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/softwares_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idsoftware=0;
+$descripcion="";
+$idtiposoftware=0;
+$idtiposo=0;
+$grupoid=0;
+
+$urlimgth=""; // Url de la imagen del tipo de software al que pertenece el componente
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idsoftware"])) $idsoftware=$_POST["idsoftware"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["idtiposoftware"])) $idtiposoftware=$_POST["idtiposoftware"];
+if (isset($_POST["idtiposo"])) $idtiposo=$_POST["idtiposo"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["identificador"])) $idsoftware=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_componentesoftwares.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_componentesoftwares";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_componentesoftwares";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_componentesoftwares";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idsoftware.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idsoftware.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla softwares
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idsoftware;
+ global $descripcion;
+ global $idtiposoftware;
+ global $idtiposo;
+ global $grupoid;
+
+ global $urlimgth;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idsoftware",$idsoftware,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@idtiposoftware",$idtiposoftware,1);
+ $cmd->CreaParametro("@idtiposo",$idtiposo,1);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO softwares (descripcion,idtiposoftware,idtiposo,idcentro,grupoid) VALUES (@descripcion,@idtiposoftware,@idtiposo,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idsoftware=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_Componentesoftwares($cmd,$idsoftware,$descripcion,$idtiposoftware);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE softwares SET descripcion=@descripcion,idtiposoftware=@idtiposoftware,idtiposo=@idtiposo WHERE idsoftware=@idsoftware";
+ $resul=$cmd->Ejecutar();
+ if ($resul) // Toma la imagen del tipo de componente software
+ $urlimgth=TomaDato($cmd,0,'tiposoftwares',$idtiposoftware,'idtiposoftware','urlimg');
+ break;
+ case $op_eliminacion :
+ $resul=EliminaSoftwares($cmd,$idsoftware,"idsoftware");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE softwares SET grupoid=@grupoid WHERE idsoftware=@idsoftware";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_Componentesoftwares($cmd,$idsoftware,$descripcion,$idtiposoftware){
+ global $LITAMBITO_COMPONENTESSOFT;
+ $urlimg=TomaDato($cmd,0,'tiposoftwares',$idtiposoftware,'idtiposoftware','urlimg');
+ $cadenaXML='<COMPONENTESOFTWARES';
+ // Atributos
+ if (!empty($urlimg))
+ $cadenaXML.=' imagenodo="'.$urlimg.'"';
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confisoft.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_COMPONENTESSOFT.'-'.$idsoftware;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_COMPONENTESSOFT."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</COMPONENTESOFTWARES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_ejecutaracciones.php b/admin/WebConsole/gestores/gestor_ejecutaracciones.php
new file mode 100644
index 00000000..30aa8c7d
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_ejecutaracciones.php
@@ -0,0 +1,300 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Mayo-2005
+// Nombre del fichero: gestor_procedimientos.php
+// Descripción :
+// Gestiona la ejecución de procedimientos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/RecopilaIpesMacs.php");
+//________________________________________________________________________________________________________
+
+$opcion=0; // Inicializa parametros
+
+$idprocedimiento=0;
+$idtarea=0;
+$ambito=0;
+$idambito=0;
+$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
+if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
+if (isset($_POST["descriprocedimiento"])) $descriprocedimiento=$_POST["descriprocedimiento"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
+if (isset($_POST["descritarea"])) $descritarea=$_POST["descritarea"];
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
+if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"];
+if (isset($_GET["descriprocedimiento"]))$descriprocedimiento=$_GET["descriprocedimiento"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
+if (isset($_GET["descritarea"])) $descritarea=$_GET["descritarea"];
+
+if (isset($_GET["swc"])) $swc=$_GET["swc"]; // Switch que indica que la página la solicita un cliente a través del browser
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ $sesion=0;
+ $vez=0;
+ if(opcion!=$EJECUCION_TAREA)
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
+ if(opcion!=$EJECUCION_AUTOEXEC){
+ //Creación parametros para inserción en tabla acciones
+ $sesion=time();
+ $cmd->CreaParametro("@tipoaccion",$opcion,1);
+ $cmd->CreaParametro("@idtipoaccion",0,1);
+ $cmd->CreaParametro("@descriaccion","",0);
+ $cmd->CreaParametro("@idordenador",0,1);
+ $cmd->CreaParametro("@ip","",0);
+ $cmd->CreaParametro("@sesion",$sesion,1);
+ $cmd->CreaParametro("@idcomando",0,1);
+ $cmd->CreaParametro("@parametros","",0);
+ $cmd->CreaParametro("@fechahorareg","",0);
+ $cmd->CreaParametro("@fechahorafin","",0);
+ $cmd->CreaParametro("@estado",$ACCION_INICIADA,1);
+ $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,1);
+ $cmd->CreaParametro("@descrinotificacion","",0);
+ $cmd->CreaParametro("@idprocedimiento",0,1);
+ $cmd->CreaParametro("@idtarea",0,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@ambito",0,1);
+ $cmd->CreaParametro("@idambito",0,1);
+ $cmd->CreaParametro("@restrambito","",0);
+ }
+ switch($opcion){
+ case $EJECUCION_AUTOEXEC:
+ $resul=actualizaAutoexec($idprocedimiento);
+ $literal="resultado_gestion_procedimiento";
+ break;
+ case $EJECUCION_PROCEDIMIENTO:
+ $cmd->ParamSetValor("@idtipoaccion",$idprocedimiento);
+ $cmd->ParamSetValor("@descriaccion",$descriprocedimiento);
+ $resul=ejecucionProcedimiento($idprocedimiento,$ambito,$idambito);
+ $literal="resultado_gestion_procedimiento";
+ break;
+ case $EJECUCION_TAREA:
+ $cmd->ParamSetValor("@idtipoaccion",$idtarea);
+ $cmd->ParamSetValor("@descriaccion",$descritarea);
+ $cmd->ParamSetValor("@idtarea",$idtarea);
+ $resul=ejecucionTarea($idtarea);
+ $literal="resultado_ejecutar_tareas";
+ break;
+ }
+ $cmd->Conexion->Cerrar();
+}
+if ($resul){
+ if(empty($swc)){
+ echo $literal."(1,'".$cmd->DescripUltimoError()."');".chr(13);
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("El item se ha ejecutado correctamente");'.chr(13);
+ echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
+ echo 'history.back();';
+ echo '</SCRIPT>';
+ }
+}
+else{
+ if(empty($swc)){
+ echo $literal."(0,'".$cmd->DescripUltimoError()."')";
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13);
+ echo 'var wurl="../varios/menucliente.php?iph='.trim($_SESSION["ogCliente"]).'";';
+ echo 'location.href=wurl;';
+ echo '</SCRIPT>';
+ }
+}
+//********************************************************************************************************
+//
+// Incorpora un procedimiento como autoexec
+//________________________________________________________________________________________________________
+function actualizaAutoexec($idprocedimiento)
+{
+ global $cadenaid;
+ global $cmd;
+
+ $cmd->texto="UPDATE ordenadores SET idproautoexec=".$idprocedimiento." WHERE idordenador IN (".$cadenaid.")";
+ $resul=$cmd->Ejecutar();
+ return(resul);
+}
+//________________________________________________________________________________________________________
+//
+// Ejecuta un procedimiento: lo registra en acciones y lo envía por la red
+//________________________________________________________________________________________________________
+function ejecucionProcedimiento($idprocedimiento,$ambito,$idambito)
+{
+ return(recorreProcedimientos($idprocedimiento,$ambito,$idambito));
+}
+//________________________________________________________________________________________________________
+//
+// Ejecuta una tarea: la registra en acciones y la envía por la red
+//________________________________________________________________________________________________________
+function ejecucionTarea($idtarea)
+{
+ return(recorreTareas($idtarea));
+}
+//________________________________________________________________________________________________________
+function recorreProcedimientos($idprocedimiento,$ambito,$idambito)
+{
+ global $cmd;
+
+ $cmd->texto="SELECT idcomando,procedimientoid,parametros
+ FROM procedimientos_acciones
+ WHERE idprocedimiento=".$idprocedimiento."
+ ORDER BY orden";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ while (!$rs->EOF){
+ $procedimientoid=$rs->campos["procedimientoid"];
+ if($procedimientoid>0){ // Procedimiento recursivo
+ if(!recorreProcedimientos($procedimientoid,$ambito,$idambito)){
+ return(false);
+ }
+ }
+ else{
+ $parametros=$rs->campos["parametros"];
+ $idcomando=$rs->campos["idcomando"];
+ if(!insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito))
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+function recorreTareas($idtarea)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ global $cmd;
+
+ $cmd->texto="SELECT tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,
+ tareas.ambito,tareas.idambito,tareas.restrambito
+ FROM tareas
+ INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
+ WHERE tareas_acciones.idtarea=".$idtarea."
+ ORDER BY tareas_acciones.orden";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ while (!$rs->EOF){
+ $tareaid=$rs->campos["tareaid"];
+ if($tareaid>0){ // Tarea recursiva
+ if(!recorreTareas($tareaid)){
+ return(false);
+ }
+ }
+ else{
+ $ambito=$rs->campos["ambito"];
+ $idambito=$rs->campos["idambito"];
+ if($ambito==0 && $idambito==0){ // Ámbito restringido
+ $idambito=$rs->campos["restrambito"];
+ }
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
+ $idprocedimiento=$rs->campos["idprocedimiento"];
+ if(!recorreProcedimientos($idprocedimiento,$ambito,$idambito))
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Registra un procedimiento para un ambito concreto
+//________________________________________________________________________________________________________
+function insertaComando($idcomando,$parametros,$idprocedimiento,$ambito,$idambito)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cmd;
+ global $vez;
+
+ if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
+ $cmd->ParamSetValor("@restrambito",$idambito);
+ $idambito=0;
+ }
+
+ $cmd->ParamSetValor("@idcomando",$idcomando);
+ $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
+ $cmd->ParamSetValor("@parametros",$parametros);
+ $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
+ $cmd->ParamSetValor("@ambito",$ambito);
+ $cmd->ParamSetValor("@idambito",$idambito);
+
+ if(strlen($cadenaip)==0) return(true);
+
+ $auxID=split(",",$cadenaid);
+ $auxIP=split(";",$cadenaip);
+
+ for ($i=0;$i<sizeof($auxID);$i++){
+ $cmd->ParamSetValor("@idordenador",$auxID[$i]);
+ $cmd->ParamSetValor("@ip",$auxIP[$i]);
+ $cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idprocedimiento,idtarea,idcentro)
+ VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idprocedimiento,@idtarea,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul) return(false);
+
+ /* Sólo envía por la red el primer comando, el resto, si hubiera,
+ lo encontrará el cliente a través de los comandos pendientes */
+ if(empty($vez))
+ if(!enviaComando($parametros)) return(false);
+ $vez++;
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Envia un procedimiento a un grupo de ordenadores a través de la red
+//________________________________________________________________________________________________________
+function enviaComando($parametros)
+{
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ global $sesion;
+ global $servidorhidra;
+ global $hidraport;
+ global $LONCABECERA;
+ global $shidra;
+
+ // Envio al servidor
+
+ $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
+ $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
+
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros.=$aplicacion;
+ $parametros.=$acciones;
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ }
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_entidades.php b/admin/WebConsole/gestores/gestor_entidades.php
new file mode 100644
index 00000000..93584b11
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_entidades.php
@@ -0,0 +1,163 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_entidades.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de entidades
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/entidades_eliminacion.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/centros_eliminacion.php");
+include_once("./relaciones/aulas_eliminacion.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("./relaciones/gruposordenadores_eliminacion.php");
+
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$grupoid=0;
+$iduniversidad=0;
+$identidad=0;
+$nombreentidad="";
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["iduniversidad"])) $iduniversidad=$_POST["iduniversidad"];
+if (isset($_POST["identidad"])) $identidad=$_POST["identidad"];
+if (isset($_POST["identificador"])) $identidad=$_POST["identificador"];
+if (isset($_POST["nombreentidad"])) $nombreentidad=$_POST["nombreentidad"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_entidades.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_entidades";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_entidades";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_entidades";
+ break;
+ case $op_movida :
+ $literal="resultado_cambiar_entidades";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$identidad.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreentidad."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$identidad.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/*________________________________________________________________________________________________________
+ Inserta, modifica o elimina datos en la tabla entidades
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $identidad;
+ global $nombreentidad;
+ global $comentarios;
+ global $grupoid;
+ global $iduniversidad;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@iduniversidad",$iduniversidad,1);
+ $cmd->CreaParametro("@identidad",$identidad,1);
+ $cmd->CreaParametro("@nombreentidad",$nombreentidad,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO entidades(nombreentidad,comentarios,iduniversidad,grupoid) VALUES (@nombreentidad,@comentarios,@iduniversidad,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $identidad=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_entidades($identidad,$nombreentidad);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE entidades SET nombreentidad=@nombreentidad,comentarios=@comentarios WHERE identidad=@identidad";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaEntidad($cmd,$identidad,"identidad");// Eliminación en cascada
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE entidades SET iduniversidad=@iduniversidad, grupoid=@grupoid WHERE identidad=@identidad";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_entidades($identidad,$nombreentidad){
+ global $LITAMBITO_ENTIDADES;
+ $cadenaXML='<ENTIDAD';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_ENTIDADES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/entidades.gif"';
+ $cadenaXML.=' infonodo="'.$nombreentidad.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_ENTIDADES.'-'.$identidad;
+ $cadenaXML.='></ENTIDAD>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_entornos.php b/admin/WebConsole/gestores/gestor_entornos.php
new file mode 100644
index 00000000..6836db45
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_entornos.php
@@ -0,0 +1,86 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_entornos.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de entornos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+
+$identorno=0;
+
+$ipserveradm="";
+$portserveradm=0;
+$protoclonacion="";
+
+
+if (isset($_POST["ipserveradm"])) $ipserveradm=$_POST["ipserveradm"];
+if (isset($_POST["portserveradm"])) $portserveradm=$_POST["portserveradm"];
+if (isset($_POST["protoclonacion"])) $protoclonacion=$_POST["protoclonacion"];
+
+$tablanodo=""; // Arbol para nodos insertados
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_entornos.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+
+<?
+
+$literal="resultado_modificar_entornos";
+
+
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$identorno.");".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$identorno.")";
+ echo '</SCRIPT>';
+}
+
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla entornos
+________________________________________________________________________________________________________*/
+function Gestiona()
+{
+ global $cmd;
+
+ global $identorno;
+ global $ipserveradm;
+ global $portserveradm;
+ global $protoclonacion;
+
+
+ $cmd->CreaParametro("@identorno",$identorno,1);
+ $cmd->CreaParametro("@ipserveradm",$ipserveradm,0);
+ $cmd->CreaParametro("@portserveradm",$portserveradm,1);
+ $cmd->CreaParametro("@protoclonacion",$protoclonacion,0);
+
+ $cmd->texto="UPDATE entornos SET ipserveradm=@ipserveradm,portserveradm=@portserveradm,protoclonacion=@protoclonacion";
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_grupos.php b/admin/WebConsole/gestores/gestor_grupos.php
new file mode 100644
index 00000000..b20ed22e
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_grupos.php
@@ -0,0 +1,273 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_grupos.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de grupos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/aulas_eliminacion.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("./relaciones/gruposordenadores_eliminacion.php");
+include_once("./relaciones/procedimientos_eliminacion.php");
+include_once("./relaciones/tareas_eliminacion.php");
+include_once("./relaciones/trabajos_eliminacion.php");
+include_once("./relaciones/imagenes_eliminacion.php");
+include_once("./relaciones/hardwares_eliminacion.php");
+include_once("./relaciones/perfileshard_eliminacion.php");
+include_once("./relaciones/softwares_eliminacion.php");
+include_once("./relaciones/perfilessoft_eliminacion.php");
+include_once("./relaciones/incrementales_eliminacion.php");
+include_once("./relaciones/repositorios_eliminacion.php");
+include_once("./relaciones/menus_eliminacion.php");
+include_once("./relaciones/reservas_eliminacion.php");
+include_once("./relaciones/entidades_eliminacion.php");
+include_once("./relaciones/centros_eliminacion.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$nombregrupo="";
+$grupoid=0;
+$idgrupo=0;
+$tipo=0;
+$literaltipo="";
+$iduniversidad=0;
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["nombregrupo"])) $nombregrupo=$_POST["nombregrupo"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idgrupo"])) $idgrupo=$_POST["idgrupo"];
+if (isset($_POST["tipo"])) $tipo=$_POST["tipo"];
+if (isset($_POST["literaltipo"])) $literaltipo=$_POST["literaltipo"];
+if (isset($_POST["iduniversidad"])) $iduniversidad=$_POST["iduniversidad"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_grupos.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_grupos";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_grupos";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_grupos";
+ break;
+ default:
+ break;
+ }
+echo '<p><span id="arbol_nodo">'.$tablanodo.'</span></p>';
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var o=document.getElementById("arbol_nodo");'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idgrupo.",o.innerHTML);";
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombregrupo."');";
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idgrupo.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla grupos
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idcentro;
+ global $nombregrupo;
+ global $grupoid;
+ global $idgrupo;
+ global $tipo;
+ global $literaltipo;
+ global $iduniversidad;
+ global $comentarios;
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $tablanodo;
+
+ if($iduniversidad) $idcentro=0; // Administración
+
+ $cmd->CreaParametro("@nombregrupo",$nombregrupo,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idgrupo",$idgrupo,1);
+ $cmd->CreaParametro("@tipo",$tipo,1);
+ $cmd->CreaParametro("@iduniversidad",$iduniversidad,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO grupos(nombregrupo,idcentro,grupoid,tipo,iduniversidad,comentarios) VALUES (@nombregrupo,@idcentro,@grupoid,@tipo,@iduniversidad,@comentarios)";
+ $resul=$cmd->Ejecutar();
+
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idgrupo=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_grupos($idgrupo,$nombregrupo,$literaltipo);
+ $baseurlimg="../images/signos";
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaNodo(0);
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE grupos SET nombregrupo=@nombregrupo,comentarios=@comentarios WHERE idgrupo=@idgrupo";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaGrupos($cmd,$idgrupo,"idgrupo",$literaltipo);// Eliminación en cascada
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_grupos($idgrupo,$nombregrupo,$literaltipo){
+
+ $cadenaXML='<GRUPOS';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$literaltipo."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$nombregrupo.'"';
+ $cadenaXML.=' nodoid='.$literaltipo.'-'.$idgrupo;
+ $cadenaXML.='>';
+ $cadenaXML.='</GRUPOS>';
+ return($cadenaXML);
+}
+/*________________________________________________________________________________________________________
+ Elimina en cascada grupos
+ Parametros:
+ - cmd: Un comando ya operativo (con conexión abierta)
+ - idgrupo: El identificador del grupo
+ - literaltipo: El literal del grupo
+ - literaltipo: El literal del grupo
+ - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+________________________________________________________________________________________________________*/
+function EliminaGrupos($cmd,$identificador,$nombreid,$literaltipo,$swid=1){
+ if (empty($identificador)) return(true);
+
+ global $LITAMBITO_GRUPOSAULAS ;
+ global $LITAMBITO_GRUPOSIMAGENES ;
+ global $LITAMBITO_GRUPOSPROCEDIMIENTOS ;
+ global $LITAMBITO_GRUPOSTAREAS ;
+ global $LITAMBITO_GRUPOSTRABAJOS ;
+ global $LITAMBITO_GRUPOSCOMPONENTESHARD ;
+ global $LITAMBITO_GRUPOSCOMPONENTESSOFT ;
+ global $LITAMBITO_GRUPOSPERFILESHARD ;
+ global $LITAMBITO_GRUPOSPERFILESSOFT ;
+ global $LITAMBITO_GRUPOSSOFTINCREMENTAL ;
+ global $LITAMBITO_GRUPOSMENUS ;
+ global $LITAMBITO_GRUPOSREPOSITORIOS ;
+ global $LITAMBITO_GRUPOSRESERVAS ;
+ global $LITAMBITO_GRUPOSENTIDADES ;
+
+ if($swid==0)
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idgrupo FROM grupos WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $resul=EliminaGrupos($cmd,$rs->campos["idgrupo"],"grupoid",$literaltipo);
+ if ($resul){
+ switch($literaltipo){
+ case $LITAMBITO_GRUPOSAULAS :
+ $resul=EliminaAulas($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSPROCEDIMIENTOS :
+ $resul=EliminaProcedimientos($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSTAREAS :
+ $resul=EliminaTareas($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSTRABAJOS :
+ $resul=EliminaTrabajos($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSIMAGENES :
+ $resul=EliminaImagenes($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSCOMPONENTESHARD :
+ $resul=EliminaHardwares($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSCOMPONENTESSOFT :
+ $resul=EliminaSoftwares($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSPERFILESHARD :
+ $resul=EliminaPerfileshard($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSPERFILESSOFT :
+ $resul=EliminaPerfilessoft($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSSOFTINCREMENTAL :
+ $resul=EliminaSoftincremental($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSREPOSITORIOS :
+ $resul=Eliminarepositorios($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSMENUS :
+ $resul=EliminaMenus($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSRESERVAS :
+ $resul=EliminaReservas($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ case $LITAMBITO_GRUPOSENTIDADES :
+ $resul=EliminaEntidad($cmd,$rs->campos["idgrupo"],"grupoid");
+ break;
+ default:
+ $resul=false;
+ }
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM grupos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM grupos WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_gruposordenadores.php b/admin/WebConsole/gestores/gestor_gruposordenadores.php
new file mode 100644
index 00000000..f301f283
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_gruposordenadores.php
@@ -0,0 +1,165 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_gruposordenadores.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de gruposordenadores
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/gruposordenadores_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$nombregrupoordenador="";
+$grupoid=0;
+$idgrupo=0;
+$idaula=0;
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["nombregrupo"])) $nombregrupoordenador=$_POST["nombregrupo"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idgrupo"])) $idgrupo=$_POST["idgrupo"];
+if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ if ($idaula==0)
+ $idaula=toma_aula($cmd,$grupoid);
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_grupos.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_grupos";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_grupos";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_grupos";
+ break;
+ default:
+ break;
+ }
+echo '<p><span id="arbol_nodo">'.$tablanodo.'</span></p>';
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idgrupo.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombregrupoordenador."');".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idgrupo.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Busca identificador del aula cuando el grupo a crear está pertenece a otro grupo
+________________________________________________________________________________________________________*/
+function toma_aula($cmd,$idgrupo){
+ $rs=new Recordset;
+ $cmd->texto="SELECT idaula FROM gruposordenadores WHERE idgrupo=".$idgrupo;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF)
+ return($rs->campos["idaula"]);
+ else
+ return(0);
+}
+/*________________________________________________________________________________________________________
+ Inserta, modifica o elimina datos en la tabla gruposordenadores
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idaula;
+ global $nombregrupoordenador;
+ global $grupoid;
+ global $idgrupo;
+ global $comentarios;
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@nombregrupoordenador",$nombregrupoordenador,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@idgrupo",$idgrupo,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO gruposordenadores(nombregrupoordenador,idaula,grupoid,comentarios) VALUES (@nombregrupoordenador,@idaula,@grupoid,@comentarios)";
+ $resul=$cmd->Ejecutar();
+echo $cmd->texto;
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idgrupo=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_grupos_ordenadores($idgrupo,$nombregrupoordenador);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE gruposordenadores SET nombregrupoordenador=@nombregrupoordenador,comentarios=@comentarios WHERE idgrupo=@idgrupo";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaGruposOrdenadores($cmd,$idgrupo,"idgrupo");
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo grupo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_grupos_ordenadores($idgrupo,$nombregrupoordenador){
+ global $LITAMBITO_GRUPOSORDENADORES;
+ $cadenaXML='<GRUPOSORDENADORES ';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_GRUPOSORDENADORES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$nombregrupoordenador.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSORDENADORES.'-'.$idgrupo;
+ $cadenaXML.='>';
+ $cadenaXML.='</GRUPOSORDENADORES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_imagenes.php b/admin/WebConsole/gestores/gestor_imagenes.php
new file mode 100644
index 00000000..bbffd63a
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_imagenes.php
@@ -0,0 +1,182 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_imagenes.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de imagenes
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/imagenes_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idimagen=0;
+$nombreca="";
+$descripcion="";
+$grupoid=0;
+$idperfilsoft=0;
+$comentarios="";
+$numpar=0;
+$codpar=0;
+$idrepositorio=0;
+
+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["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idperfilsoft"])) $idperfilsoft=$_POST["idperfilsoft"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+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"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_imagenes.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_imagenes";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_imagenes";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_imagenes";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idimagen.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idimagen.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla imagenes
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idimagen;
+ global $nombreca;
+ global $descripcion;
+ global $grupoid;
+ global $comentarios;
+ global $numpar;
+ global $codpar;
+ global $idrepositorio;
+ global $idperfilsoft;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+
+ $cmd->CreaParametro("@idimagen",$idimagen,1);
+ $cmd->CreaParametro("@nombreca",$nombreca,0);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idperfilsoft",$idperfilsoft,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@numpar",$numpar,1);
+ $cmd->CreaParametro("@codpar",$codpar,1);
+ $cmd->CreaParametro("@idrepositorio",$idrepositorio,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)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idimagen=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_imagenes($idimagen,$descripcion);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ 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";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaImagenes($cmd,$idimagen,"idimagen");// Eliminación en cascada
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE imagenes SET grupoid=@grupoid WHERE idimagen=@idimagen";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_imagenes($idimagen,$descripcion){
+ global $LITAMBITO_IMAGENES;
+ $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.='>';
+ $cadenaXML.='</IMAGEN>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_inclusionacciones.php b/admin/WebConsole/gestores/gestor_inclusionacciones.php
new file mode 100644
index 00000000..6d28f513
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_inclusionacciones.php
@@ -0,0 +1,175 @@
+<?
+// *********************************************************************************************************
+// 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
+// Nombre del fichero: gestor_inclusionacciones.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de procedimientos_acciones y tareas_acciones
+// ********************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+//________________________________________________________________________________________________________
+
+$tipoaccion=0;
+$idtipoaccion=0;
+$altas="";
+$bajas="";
+$modificaciones="";
+
+if (isset($_POST["tipoaccion"])) $tipoaccion=$_POST["tipoaccion"];
+if (isset($_POST["idtipoaccion"])) $idtipoaccion=$_POST["idtipoaccion"];
+
+if (isset($_POST["altas"])) $altas=$_POST["altas"]; // Recoge parametros
+if (isset($_POST["bajas"])) $bajas=$_POST["bajas"];
+if (isset($_POST["modificaciones"])) $modificaciones=$_POST["modificaciones"];
+
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="resultado_gestion_inclusionacciones";
+
+if ($resul)
+ echo $literal."(1,'".$cmd->DescripUltimoError()."');";
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."');";
+
+// *************************************************************************************************************************************************
+function Gestiona()
+{
+ global $cmd;
+ global $tipoaccion;
+ global $idtipoaccion;
+ global $altas;
+ global $bajas;
+ global $modificaciones;
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_TAREAS;
+
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ $cmd->CreaParametro("@idprocedimientoaccion",0,1);
+ $cmd->CreaParametro("@idprocedimiento",0,1);
+ $cmd->CreaParametro("@orden",0,1);
+ $cmd->CreaParametro("@idcomando",0,1);
+ $cmd->CreaParametro("@parametros","",0);
+ $cmd->CreaParametro("@procedimientoid",0,1);
+ break;
+ case $AMBITO_TAREAS:
+ $cmd->CreaParametro("@idtareaaccion",0,1);
+ $cmd->CreaParametro("@idtarea",0,1);
+ $cmd->CreaParametro("@orden",0,1);
+ $cmd->CreaParametro("@idprocedimiento",0,1);
+ $cmd->CreaParametro("@tareaid",0,1);
+ break;
+ }
+
+ /* Altas */
+ if(!empty($altas)){
+ $altas=substr($altas,0,strlen($altas)-1); // Quita el último ";"
+ $tbAltas=split(";",$altas);
+ for($i=0;$i<sizeof($tbAltas);$i++){
+ /* Toma datos altas */
+ list($identificador,$orden,$ambito)=split(",",$tbAltas[$i]);
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ $cmd->ParamSetValor("@idprocedimiento",$idtipoaccion);
+ $cmd->ParamSetValor("@orden",$orden);
+ $cmd->ParamSetValor("@procedimientoid",$identificador);
+ $cmd->texto="INSERT INTO procedimientos_acciones
+ (idprocedimiento,orden,idcomando,parametros,procedimientoid)
+ VALUES (@idprocedimiento,@orden,@idcomando,@parametros,@procedimientoid)";
+ break;
+ case $AMBITO_TAREAS:
+ switch($ambito){
+ case $AMBITO_TAREAS:
+ $cmd->ParamSetValor("@idtarea",$idtipoaccion);
+ $cmd->ParamSetValor("@orden",$orden);
+ $cmd->ParamSetValor("@tareaid",$identificador);
+ $cmd->ParamSetValor("@idprocedimiento",0);
+ $cmd->texto="INSERT INTO tareas_acciones
+ (idtarea,orden,idprocedimiento,tareaid)
+ VALUES (@idtarea,@orden,@idprocedimiento,@tareaid)";
+ break;
+ case $AMBITO_PROCEDIMIENTOS:
+ $cmd->ParamSetValor("@idtarea",$idtipoaccion);
+ $cmd->ParamSetValor("@orden",$orden);
+ $cmd->ParamSetValor("@tareaid",0);
+ $cmd->ParamSetValor("@idprocedimiento",$identificador);
+ $cmd->texto="INSERT INTO tareas_acciones
+ (idtarea,orden,idprocedimiento,tareaid)
+ VALUES (@idtarea,@orden,@idprocedimiento,@tareaid)";
+ break;
+ }
+ break;
+ }
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+
+ /* Bajas */
+ if(!empty($bajas)){
+ $bajas=substr($bajas,0,strlen($bajas)-1); // Quita el último ";"
+ $tbBajas=split(";",$bajas);
+ for($i=0;$i<sizeof($tbBajas);$i++){
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ list($idprocedimientoaccion)=split(",",$tbBajas[$i]);
+ $cmd->ParamSetValor("@idprocedimientoaccion",$idprocedimientoaccion);
+ $cmd->texto="DELETE FROM procedimientos_acciones
+ WHERE idprocedimientoaccion=@idprocedimientoaccion";
+ break;
+ case $AMBITO_TAREAS:
+ list($idtareaaccion)=split(",",$tbBajas[$i]);
+ $cmd->ParamSetValor("@idtareaaccion",$idtareaaccion);
+ $cmd->texto="DELETE FROM tareas_acciones
+ WHERE idtareaaccion=@idtareaaccion";
+ break;
+ }
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+
+ /* Modificaciones */
+ if(!empty($modificaciones)){
+ $modificaciones=substr($modificaciones,0,strlen($modificaciones)-1); // Quita el último ";"
+ $tbModificaciones=split(";",$modificaciones);
+ for($i=0;$i<sizeof($tbModificaciones);$i++){
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ list($idprocedimientoaccion,$orden)=split(",",$tbModificaciones[$i]);
+ $cmd->ParamSetValor("@idprocedimientoaccion",$idprocedimientoaccion);
+ $cmd->ParamSetValor("@orden",$orden);
+ $cmd->texto="UPDATE procedimientos_acciones SET orden=@orden
+ WHERE idprocedimientoaccion=@idprocedimientoaccion";
+ break;
+ case $AMBITO_TAREAS:
+ list($idtareaaccion,$orden)=split(",",$tbModificaciones[$i]);
+ $cmd->ParamSetValor("@idtareaaccion",$idtareaaccion);
+ $cmd->ParamSetValor("@orden",$orden);
+ $cmd->texto="UPDATE tareas_acciones SET orden=@orden
+ WHERE idtareaaccion=@idtareaaccion";
+ break;
+ }
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if(!$resul)
+ return(false);
+ }
+ }
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_menus.php b/admin/WebConsole/gestores/gestor_menus.php
new file mode 100644
index 00000000..36e90920
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_menus.php
@@ -0,0 +1,209 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_menus.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de menus
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/menus_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idmenu=0;
+$descripcion="";
+$titulo="";
+$coorx=0;
+$coory=0;
+$modalidad=0;
+$scoorx=0;
+$scoory=0;
+$smodalidad=0;
+$comentarios="";
+$grupoid=0;
+$htmlmenupub="";
+$htmlmenupri="";
+$resolucion=0;
+$idurlimg=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idmenu"])) $idmenu=$_POST["idmenu"];
+if (isset($_POST["identificador"])) $idmenu=$_POST["identificador"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["titulo"])) $titulo=$_POST["titulo"];
+if (isset($_POST["coorx"])) $coorx=$_POST["coorx"];
+if (isset($_POST["coory"])) $coory=$_POST["coory"];
+if (isset($_POST["modalidad"])) $modalidad=$_POST["modalidad"];
+
+if (isset($_POST["scoorx"])) $scoorx=$_POST["scoorx"];
+if (isset($_POST["scoory"])) $scoory=$_POST["scoory"];
+if (isset($_POST["smodalidad"])) $smodalidad=$_POST["smodalidad"];
+
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["htmlmenupub"])) $htmlmenupub=$_POST["htmlmenupub"];
+if (isset($_POST["htmlmenupri"])) $htmlmenupri=$_POST["htmlmenupri"];
+if (isset($_POST["resolucion"])) $resolucion=$_POST["resolucion"];
+if (isset($_POST["idicono"])) $idurlimg=$_POST["idicono"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_menus.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_menus";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_menus";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_menus";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idmenu.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idmenu.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla menus
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idmenu;
+ global $descripcion;
+ global $titulo;
+ global $coorx;
+ global $coory;
+ global $modalidad;
+ global $scoorx;
+ global $scoory;
+ global $smodalidad;
+ global $comentarios;
+ global $grupoid;
+ global $htmlmenupub;
+ global $htmlmenupri;
+ global $resolucion;
+ global $idurlimg;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idmenu",$idmenu,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@titulo",$titulo,0);
+ $cmd->CreaParametro("@coorx",$coorx,1);
+ $cmd->CreaParametro("@coory",$coory,1);
+ $cmd->CreaParametro("@modalidad",$modalidad,1);
+ $cmd->CreaParametro("@scoorx",$scoorx,1);
+ $cmd->CreaParametro("@scoory",$scoory,1);
+ $cmd->CreaParametro("@smodalidad",$smodalidad,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@htmlmenupub",$htmlmenupub,0);
+ $cmd->CreaParametro("@htmlmenupri",$htmlmenupri,0);
+ $cmd->CreaParametro("@resolucion",$resolucion,1);
+ $cmd->CreaParametro("@idurlimg",$idurlimg,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO menus (descripcion,titulo,coorx,coory,modalidad,scoorx,scoory,smodalidad,
+ comentarios,idcentro,grupoid,htmlmenupub,htmlmenupri,resolucion,idurlimg)
+ VALUES (@descripcion,@titulo,@coorx,@coory,@modalidad,@scoorx,@scoory,@smodalidad,
+ @comentarios,@idcentro,@grupoid,@htmlmenupub,@htmlmenupri,@resolucion,@idurlimg)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idmenu=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_menus($idmenu,$descripcion);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE menus SET descripcion=@descripcion,titulo=@titulo,coorx=@coorx,coory=@coory,modalidad=@modalidad,scoorx=@scoorx,scoory=@scoory,smodalidad=@smodalidad,
+ comentarios=@comentarios,htmlmenupub=@htmlmenupub ,htmlmenupri=@htmlmenupri,resolucion=@resolucion,idurlimg=@idurlimg
+ WHERE idmenu=@idmenu";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaMenus($cmd,$idmenu,"idmenu");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE menus SET grupoid=@grupoid WHERE idmenu=@idmenu";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_menus($idmenu,$descripcion){
+ global $LITAMBITO_MENUS;
+ $cadenaXML.='<MENU';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/menu.gif"';
+ $cadenaXML.=' infonodo="' .$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_MENUS.'-'.$idmenu;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_MENUS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</MENU>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_ordenadores.php b/admin/WebConsole/gestores/gestor_ordenadores.php
new file mode 100644
index 00000000..3316c428
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_ordenadores.php
@@ -0,0 +1,210 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_ordenadores.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de ordenadores
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/ordenadores_eliminacion.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$grupoid=0;
+$idaula=0;
+$idordenador=0;
+$nombreordenador="";
+$ip="";
+$mac="";
+$idperfilhard=0;
+$idrepositorio=0;
+$idmenu=0;
+$idprocedimiento=0;
+$idimagen=0;
+$cache=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
+if (isset($_POST["idordenador"])) $idordenador=$_POST["idordenador"];
+if (isset($_POST["identificador"])) $idordenador=$_POST["identificador"];
+if (isset($_POST["nombreordenador"])) $nombreordenador=$_POST["nombreordenador"];
+if (isset($_POST["ip"])) $ip=$_POST["ip"];
+if (isset($_POST["mac"])) $mac=$_POST["mac"];
+if (isset($_POST["idperfilhard"])) $idperfilhard=$_POST["idperfilhard"];
+if (isset($_POST["idrepositorio"])) $idrepositorio=$_POST["idrepositorio"];
+if (isset($_POST["idmenu"])) $idmenu=$_POST["idmenu"];
+if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
+if (isset($_POST["cache"])) $cache=$_POST["cache"];
+
+if(empty($cache)) $cache=0;
+
+$tablanodo=""; // Arbol para nodos insertados
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ if ($idaula==0)
+ $idaula=toma_aula($cmd,$grupoid);
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_ordenadores.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+//________________________________________________________________________________________________________
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_ordenadores";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_ordenadores";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_ordenadores";
+ break;
+ case $op_movida :
+ $literal="resultado_cambiar_ordenadores";
+ break;
+ default:
+ break;
+ }
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idordenador.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreordenador."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idordenador.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Busca identificador del aula de un grupo de ordenador .Devuelve el identificador del aula a la que pertenece el grupo
+ Parametros:
+ - cmd:Una comando ya operativo (con conexión abierta)
+________________________________________________________________________________________________________*/
+function toma_aula($cmd,$idgrupo){
+ $rs=new Recordset;
+ $cmd->texto="SELECT idaula FROM gruposordenadores WHERE idgrupo=".$idgrupo;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF)
+ return($rs->campos["idaula"]);
+ else
+ return(0);
+}
+/*________________________________________________________________________________________________________
+ Inserta, modifica o elimina datos en la tabla ordenadores
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $grupoid;
+ global $idordenador;
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $idaula;
+ global $idperfilhard;
+ global $idrepositorio;
+ global $idmenu;
+ global $idprocedimiento;
+ global $cache;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@idordenador",$idordenador,1);
+ $cmd->CreaParametro("@nombreordenador",$nombreordenador,0);
+ $cmd->CreaParametro("@ip",$ip,0);
+ $cmd->CreaParametro("@mac",$mac,0);
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
+ $cmd->CreaParametro("@idmenu",$idmenu,1);
+ $cmd->CreaParametro("@idprocedimiento",$idprocedimiento,1);
+ $cmd->CreaParametro("@cache",$cache,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO ordenadores(nombreordenador,ip,mac,idperfilhard,idrepositorio,
+ idmenu,idproautoexec,idaula,grupoid,cache) VALUES (@nombreordenador,@ip,@mac,@idperfilhard,@idrepositorio,
+ @idmenu,@idprocedimiento,@idaula,@grupoid,@cache)";
+
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idordenador=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_ordenadores($idordenador,$nombreordenador);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE ordenadores SET nombreordenador=@nombreordenador,ip=@ip,mac=@mac,idperfilhard=@idperfilhard,
+ idrepositorio=@idrepositorio,idmenu=@idmenu,idproautoexec=@idprocedimiento,cache=@cache
+ WHERE idordenador=@idordenador";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ break;
+ case $op_eliminacion :
+ $resul=EliminaOrdenadores($cmd,$idordenador,"idordenador");// Eliminación en cascada
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE ordenadores SET idaula=@idaula, grupoid=@grupoid WHERE idordenador=@idordenador";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_ordenadores($idordenador,$nombreordenador){
+ global $LITAMBITO_ORDENADORES;
+ $cadenaXML='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_ORDENADORES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$nombreordenador.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_ORDENADORES.'-'.$idordenador;
+ $cadenaXML.='></ORDENADOR>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_ordenadorestandar.php b/admin/WebConsole/gestores/gestor_ordenadorestandar.php
new file mode 100644
index 00000000..ddefd72e
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_ordenadorestandar.php
@@ -0,0 +1,136 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_ordenadorestandar.php
+// Descripción :
+// Gestiona la actualización de los ordenadores de un aula a través de la plantilla
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+//________________________________________________________________________________________________________
+$idaula=0;
+$nombreordenador="";
+$ip="";
+$mac="";
+$cache=0;
+$idperfilhard=0;
+$idservidordhcp=0;
+$idservidorrembo=0;
+$numorde=0;
+
+if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
+if (isset($_GET["nombreordenador"])) $nombreordenador=$_GET["nombreordenador"];
+if (isset($_GET["ip"])) $ip=$_GET["ip"];
+if (isset($_GET["mac"])) $mac=$_GET["mac"];
+if (isset($_GET["cache"])) $cache=$_GET["cache"];
+if (isset($_GET["idperfilhard"])) $idperfilhard=$_GET["idperfilhard"];
+if (isset($_GET["idservidordhcp"])) $idservidordhcp=$_GET["idservidordhcp"];
+if (isset($_GET["idservidorrembo"])) $idservidorrembo=$_GET["idservidorrembo"];
+if (isset($_GET["numorde"])) $numorde=$_GET["numorde"];
+
+if(empty($cache)) $cache=0;
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+<?
+$literal="resultado_ordenadorestandar";
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ echo 'window.parent.'.$literal."(1,'".$cmd->DescripUltimoError()."');".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo " window.parent.".$literal."(0,'".$cmd->DescripUltimoError()."')";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $idaula;
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $cache;
+ global $idaula;
+ global $idperfilhard;
+ global $idservidordhcp;
+ global $idservidorrembo;
+ global $numorde;
+
+ if($numorde>0){
+ $auxIP=split("[.]",$ip);
+ $swip=false;
+ $litnwip="";
+ $nwip=0;
+ if(isset($auxIP[3])){
+ $nwip=$auxIP[3];
+ if(empty($nwip)) $nwip=0;
+ $litnwip=$auxIP[0].".".$auxIP[1].".".$auxIP[2].".";
+ $swip=true;
+ }
+ $swnom=false;
+ if(substr($nombreordenador,strlen($nombreordenador)-1,1)=="$"){
+ $swnom=true;
+ $nombreordenador=substr($nombreordenador,0,strlen($nombreordenador)-1);
+ }
+ $cmd->CreaParametro("@grupoid",0,1);
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@nombreordenador",$nombreordenador,0);
+ $cmd->CreaParametro("@ip",$ip,0);
+ $cmd->CreaParametro("@mac",$mac,0);
+ $cmd->CreaParametro("@cache",$cache,1);
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@idservidordhcp",$idservidordhcp,1);
+ $cmd->CreaParametro("@idservidorrembo",$idservidorrembo,1);
+
+ for($i=0;$i<$numorde;$i++){
+ if($swip)
+ $cmd->ParamSetValor("@ip",$litnwip.$nwip);
+ if($swnom && $swip)
+ $cmd->ParamSetValor("@nombreordenador",$nombreordenador.$nwip);
+ $cmd->texto="INSERT INTO ordenadores(nombreordenador,ip,mac,cache,idperfilhard,idservidordhcp,idservidorrembo,idaula,grupoid,idconfiguracion) VALUES (@nombreordenador,@ip,@mac,@cache,@idperfilhard,@idservidordhcp,@idservidorrembo,@idaula,@grupoid,0)";
+ if($swip) $nwip++;
+ $resul=$cmd->Ejecutar();
+ if (!$resul) return(false);
+ }
+ }
+ else{
+ $strsql="UPDATE ordenadores SET ";
+ if (!empty($nombreordenador)) $strsql.=" nombreordenador='".$nombreordenador."',";
+ if (!empty($ip)) $strsql.=" ip='".$ip."',";
+ if (!empty($mac)) $strsql.=" mac='".$mac."',";
+ $strsql.=" cache='".$cache."',";
+ if ($idperfilhard>0) $strsql.=" idperfilhard=".$idperfilhard.",";
+ if ($idservidordhcp>0) $strsql.=" idservidordhcp=".$idservidordhcp.",";
+ if ($idservidorrembo>0) $strsql.=" idservidorrembo=".$idservidorrembo.",";
+ $strsql=substr($strsql,0,strlen($strsql)-1); // Quita la coma final
+ $strsql.=" WHERE idaula=".$idaula;
+ $cmd->texto=$strsql;
+ $resul=$cmd->Ejecutar();
+ }
+ return($resul);
+}
+?>z \ No newline at end of file
diff --git a/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php b/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php
new file mode 100644
index 00000000..e4e5bdd2
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_perfilcomponente_hard.php
@@ -0,0 +1,77 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_perfilcomponente_hard.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de perfileshard_hardwares
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idperfilhard=0;
+$idhardware=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["idperfilhard"])) $idperfilhard=$_POST["idperfilhard"];
+if (isset($_POST["idhardware"])) $idhardware=$_POST["idhardware"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_perfilcomponente_hard";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_perfilcomponente_hard";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idhardware.");".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idhardware.");".chr(13);
+}
+else{
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idhardware.")";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idperfilhard;
+ global $idhardware;
+ global $urlimgth;
+ global $op_alta;
+ global $op_eliminacion;
+
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@idhardware",$idhardware,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO perfileshard_hardwares (idperfilhard,idhardware) VALUES (@idperfilhard,@idhardware)";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM perfileshard_hardwares WHERE idperfilhard='.$idperfilhard.' AND idhardware='.$idhardware;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php b/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php
new file mode 100644
index 00000000..389d5df2
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_perfilcomponente_soft.php
@@ -0,0 +1,77 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_perfilcomponente_soft.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de perfilessoft_softwares
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idperfilsoft=0;
+$idsoftware=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["idperfilsoft"])) $idperfilsoft=$_POST["idperfilsoft"];
+if (isset($_POST["idsoftware"])) $idsoftware=$_POST["idsoftware"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_perfilcomponente_soft";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_perfilcomponente_soft";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idsoftware.");".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idsoftware.");".chr(13);
+}
+else{
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idsoftware.")";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $idperfilsoft;
+ global $idsoftware;
+ global $urlimgth;
+ global $op_alta;
+ global $op_eliminacion;
+
+ $cmd->CreaParametro("@idperfilsoft",$idperfilsoft,1);
+ $cmd->CreaParametro("@idsoftware",$idsoftware,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO perfilessoft_softwares (idperfilsoft,idsoftware) VALUES (@idperfilsoft,@idsoftware)";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM perfilessoft_softwares WHERE idperfilsoft='.$idperfilsoft.' AND idsoftware='.$idsoftware;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_perfilhardwares.php b/admin/WebConsole/gestores/gestor_perfilhardwares.php
new file mode 100644
index 00000000..ec932b6b
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_perfilhardwares.php
@@ -0,0 +1,163 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_perfilhardwares.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de perfileshard
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/perfileshard_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idperfilhard=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+
+$urlimgth=""; // Url de la imagen del tipo de hardware al que pertenece el perfil
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idperfilhard"])) $idperfilhard=$_POST["idperfilhard"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["identificador"])) $idperfilhard=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_perfilhardwares.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_perfilhardwares";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_perfilhardwares";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_perfilhardwares";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+ }
+
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idperfilhard.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idperfilhard.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla perfileshard
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idperfilhard;
+ global $descripcion;
+ global $comentarios;
+ global $grupoid;
+
+ global $urlimgth;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO perfileshard (descripcion,comentarios,idcentro,grupoid) VALUES (@descripcion,@comentarios,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idperfilhard=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_perfileshard($idperfilhard,$descripcion);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE perfileshard SET descripcion=@descripcion,comentarios=@comentarios WHERE idperfilhard=@idperfilhard";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaPerfileshard($cmd,$idperfilhard,"idperfilhard");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE perfileshard SET grupoid=@grupoid WHERE idperfilhard=@idperfilhard";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_perfileshard($idperfilhard,$descripcion){
+ global $LITAMBITO_PERFILESHARD;
+ $cadenaXML='<PERFILESHARDWARES ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilhardware.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PERFILESHARD.'-'.$idperfilhard;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PERFILESHARD."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILESHARDWARES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_perfilsoftwares.php b/admin/WebConsole/gestores/gestor_perfilsoftwares.php
new file mode 100644
index 00000000..a5155287
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_perfilsoftwares.php
@@ -0,0 +1,159 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_perfilsoftwares.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de perfilessoft
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/perfilessoft_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idperfilsoft=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idperfilsoft"])) $idperfilsoft=$_POST["idperfilsoft"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["identificador"])) $idperfilsoft=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_perfilsoftwares.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_perfilsoftwares";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_perfilsoftwares";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_perfilsoftwares";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idperfilsoft.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idperfilsoft.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla perfilessoft
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idperfilsoft;
+ global $descripcion;
+ global $comentarios;
+ global $grupoid;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idperfilsoft",$idperfilsoft,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO perfilessoft (descripcion,comentarios,idcentro,grupoid) VALUES (@descripcion,@comentarios,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idperfilsoft=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_perfilessoft($idperfilsoft,$descripcion);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE perfilessoft SET descripcion=@descripcion,comentarios=@comentarios WHERE idperfilsoft=@idperfilsoft";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaPerfilessoft($cmd,$idperfilsoft,"idperfilsoft");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE perfilessoft SET grupoid=@grupoid WHERE idperfilsoft=@idperfilsoft";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_perfilessoft($idperfilsoft,$descripcion){
+ global $LITAMBITO_PERFILESSOFT;
+ $cadenaXML='<PERFILESSOFTWARES ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilsoftware.gif"';
+ $cadenaXML.=' infonodo="' .$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PERFILESSOFT.'-'.$idperfilsoft;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PERFILESSOFT."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILESSOFTWARES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_procedimientos.php b/admin/WebConsole/gestores/gestor_procedimientos.php
new file mode 100644
index 00000000..5e5d93c0
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_procedimientos.php
@@ -0,0 +1,159 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_procedimientos.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de procedimientos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/procedimientos_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idprocedimiento=0;
+$descripcion="";
+$grupoid=0;
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idprocedimiento"])) $idprocedimiento=$_POST["idprocedimiento"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["identificador"])) $idprocedimiento=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_procedimientos.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_procedimientos";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_procedimientos";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_procedimientos";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+ }
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idprocedimiento.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idprocedimiento.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla procedimientos
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $EJECUCION_PROCEDIMIENTO;
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idprocedimiento;
+ global $descripcion;
+ global $grupoid;
+ global $comentarios;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idprocedimiento",$idprocedimiento,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO procedimientos (descripcion,comentarios,idcentro,grupoid) VALUES (@descripcion,@comentarios,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idprocedimiento=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_procedimientos($idprocedimiento,$descripcion);
+ $baseurlimg="../images/signos"; // Url de las procedimientos de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE procedimientos SET descripcion=@descripcion, comentarios=@comentarios WHERE idprocedimiento=@idprocedimiento";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaProcedimientos($cmd,$idprocedimiento,"idprocedimiento");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE procedimientos SET grupoid=@grupoid WHERE idprocedimiento=@idprocedimiento";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_procedimientos($idprocedimiento,$descripcion){
+ global $LITAMBITO_PROCEDIMIENTOS;
+ $cadenaXML='<PROCEDIMIENTO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/procedimiento.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PROCEDIMIENTOS.'-'.$idprocedimiento;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PROCEDIMIENTOS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROCEDIMIENTO>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_procedimientoscomandos.php b/admin/WebConsole/gestores/gestor_procedimientoscomandos.php
new file mode 100644
index 00000000..71eae65b
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_procedimientoscomandos.php
@@ -0,0 +1,71 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_procedimientoscomandos.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de procedimientos_comandos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idprocedimientocomando=0;
+$orden=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["idprocedimientocomando"])) $idprocedimientocomando=$_POST["idprocedimientocomando"];
+if (isset($_POST["orden"])) $orden=$_POST["orden"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_eliminacion :
+ $literal="resultado_eliminar_procedimientocomando";
+ break;
+ case $op_modificacion :
+ $literal="resultado_modificar_procedimientocomando";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idprocedimientocomando.");";
+}
+else{
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idprocedimientocomando.");";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $idprocedimientocomando;
+ global$orden;
+
+ $cmd->CreaParametro("@orden",$orden,1);
+ switch($opcion){
+ case $op_modificacion :
+ $cmd->texto='UPDATE procedimientos_comandos set orden=@orden WHERE idprocedimientocomando='.$idprocedimientocomando;
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM procedimientos_comandos WHERE idprocedimientocomando='.$idprocedimientocomando;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_programaciones.php b/admin/WebConsole/gestores/gestor_programaciones.php
new file mode 100644
index 00000000..2fc91cb8
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_programaciones.php
@@ -0,0 +1,210 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: gestor_programaciones.php
+// Descripción :
+// Gestiona las programaciones de tareas y trabajos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/comunes.php");
+//________________________________________________________________________________________________________
+$op_alta=1;
+$op_modificacion=2;
+$op_eliminacion=3;
+$op_suspension=4;
+
+$pswop=0; // opcion alta,modificación o eliminación
+$pidprogramacion=0; // Identificador de la programación si se trata de mofdificación o eliminación
+$pidentificador=0; // Identificador de la tarea o el trabajo que se está programando
+$ptipoaccion=0; // Tipo de acción:tarea o trabajo
+$pnombrebloque=""; // Nombre del bloque de programación
+$pannos=""; // Valor hexadecimal que indica los años elegidos
+$pmeses=""; // Valor hexadecimal que indica los meses elegidos
+$pdiario=""; // Valor hexadecimal que indica los dias elegidos en modalidad simple ( un sólo mes )
+$pdias=""; // Valor hexadecimal que indica los días elegidos
+$psemanas=""; // Valor hexadecimal que indica las semanas elegidas
+$phoras=""; // Valor hexadecimal que indica las horas elegidas
+$pampm=0; // Valor que indica la modalidad a.m.=0 p.m.= 1
+$pminutos=0; // Valor decimal que indica los minutos
+$psegundos=0; // Valor decimal que indica los segundos
+$phorasini=""; // Valor hexadecimal que indica las horas hasta elegidas
+$pampmini=0; // Valor que indica la modalidad a.m.=0 p.m.= 1 hora hasta
+$pminutosini=0; // Valor decimal que indica los minutos hasa
+$phorasfin=""; // Valor hexadecimal que indica las horas hasta elegidas
+$pampmfin=0; // Valor que indica la modalidad a.m.=0 p.m.= 1 hora hasta
+$pminutosfin=0; // Valor decimal que indica los minutos hasa
+
+$wsw_sus=""; // programación suspendida
+$psesion=0; // Sesión de un comando programado
+
+if (isset($_POST["wswop"])) $pswop=$_POST["wswop"];
+if (isset($_POST["widprogramacion"])) $pidprogramacion=$_POST["widprogramacion"];
+if (isset($_POST["widentificador"])) $pidentificador=$_POST["widentificador"];
+if (isset($_POST["wtipoaccion"])) $ptipoaccion=$_POST["wtipoaccion"];
+if (isset($_POST["wnombrebloque"])) $pnombrebloque=$_POST["wnombrebloque"];
+if (isset($_POST["wannos"])) $pannos=$_POST["wannos"];
+if (isset($_POST["wmeses"])) $pmeses=$_POST["wmeses"];
+if (isset($_POST["wdiario"])) $pdiario=$_POST["wdiario"];
+if (isset($_POST["wdias"])) $pdias=$_POST["wdias"];
+if (isset($_POST["wsemanas"])) $psemanas=$_POST["wsemanas"];
+if (isset($_POST["whoras"])) $phoras=$_POST["whoras"];
+if (isset($_POST["wampm"])) $pampm=$_POST["wampm"];
+if (isset($_POST["wminutos"])) $pminutos=$_POST["wminutos"];
+if (isset($_POST["wsegundos"])) $psegundos=$_POST["wsegundos"];
+if (isset($_POST["whorasini"])) $phorasini=$_POST["whorasini"];
+if (isset($_POST["wampmini"])) $pampmini=$_POST["wampmini"];
+if (isset($_POST["wminutosini"])) $pminutosini=$_POST["wminutosini"];
+if (isset($_POST["whorasfin"])) $phorasfin=$_POST["whorasfin"];
+if (isset($_POST["wampmfin"])) $pampmfin=$_POST["wampmfin"];
+if (isset($_POST["wminutosfin"])) $pminutosfin=$_POST["wminutosfin"];
+
+if (isset($_POST["wsw_sus"])) $wsw_sus=$_POST["wsw_sus"];
+if (isset($_POST["wsesion"])) $psesion=$_POST["wsesion"];
+
+if(empty($pminutos)) $pminutos=0;
+if(empty($psegundos)) $psegundos=0;
+if(empty($pminutosini)) $pminutosini=0;
+if(empty($pminutosfin)) $pminutosfin=0;
+
+if($wsw_sus=='true')
+ $psw_sus=1;
+else
+ $psw_sus=0 ;
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($pswop!=$op_suspension){
+ if (!$resul){ // Ha ocurrido algún error
+ $reporerr=$cmd->UltimoError();
+ $repordes=$cmd->DescripUltimoError();
+ echo "error_programacion()";
+ }
+ else{ // programacion registrada correctamente
+ switch($pswop){
+ case $op_modificacion :
+ $idr=$pidprogramacion; // Identificador de la programacion modificada
+ $swop=$op_modificacion;
+ break;
+ case $op_alta:
+ $idr=$pidprogramacion; // Identificador de la programacion nueva
+ $swop=$op_alta;
+ break;
+ case $op_eliminacion :
+ $idr=$pidprogramacion; // Identificador de la programacion eliminada
+ $swop=$op_eliminacion;
+ break;
+ default:
+ break;
+ }
+ echo 'registro_programacion('.$idr.',"'.$pnombrebloque.'",'.$swop.')';
+ }
+}
+else{
+ if (!$resul){ // Ha ocurrido algún error
+ $reporerr=0;
+ $repordes="Error al suspender la programación";
+ echo 'error_programacion()';
+ }
+ else{ // programacion registrada correctamente
+ echo 'resultado_suspender_programacion()';
+ }
+}
+// ***************************************************************************************************
+function Gestiona()
+{
+ global $cmd;
+ global $pswop;
+ global $pidprogramacion;
+ global $pidentificador;
+ global $ptipoaccion;
+ global $pnombrebloque;
+ global $pannos;
+ global $pmeses;
+ global $pdiario;
+ global $pdias;
+ global $psemanas;
+ global $phoras;
+ global $pampm;
+ global $pminutos;
+ global $psegundos;
+ global $phorasini;
+ global $pampmini;
+ global $pminutosini;
+ global $phorasfin;
+ global $pampmfin;
+ global $pminutosfin;
+ global $psw_sus;
+ global $psesion;
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_suspension;
+
+ $cmd->CreaParametro("@idprogramacion",$pidprogramacion,1);
+
+ $cmd->CreaParametro("@tipoaccion",$ptipoaccion,1);
+ $cmd->CreaParametro("@identificador",$pidentificador,1);
+ $cmd->CreaParametro("@nombrebloque",$pnombrebloque,0);
+ $cmd->CreaParametro("@annos",$pannos,1);
+ $cmd->CreaParametro("@meses",$pmeses,1);
+ $cmd->CreaParametro("@diario",$pdiario,1);
+ $cmd->CreaParametro("@dias",$pdias,1);
+ $cmd->CreaParametro("@semanas",$psemanas,1);
+ $cmd->CreaParametro("@horas",$phoras,1);
+ $cmd->CreaParametro("@ampm",$pampm,1);
+ $cmd->CreaParametro("@minutos",$pminutos,1);
+ $cmd->CreaParametro("@segundos",$psegundos,1);
+ $cmd->CreaParametro("@inihoras",$phorasini,1);
+ $cmd->CreaParametro("@iniampm",$pampmini,1);
+ $cmd->CreaParametro("@iniminutos",$pminutosini,1);
+ $cmd->CreaParametro("@finhoras",$phorasfin,1);
+ $cmd->CreaParametro("@finampm",$pampmfin,1);
+ $cmd->CreaParametro("@finminutos",$pminutosfin,1);
+ $cmd->CreaParametro("@suspendida",$psw_sus,1);
+ $cmd->CreaParametro("@sesion",$psesion,1);
+ switch($pswop){
+ case $op_alta :
+ $cmd->texto="INSERT INTO programaciones(tipoaccion,identificador,nombrebloque,annos,meses,diario,
+ dias,semanas,horas,ampm,minutos,segundos,horasini,ampmini,minutosini,horasfin,
+ ampmfin,minutosfin,suspendida,sesion)
+ VALUES (@tipoaccion,@identificador,@nombrebloque,@annos,@meses,@diario,@dias,
+ @semanas,@horas,@ampm,@minutos,@segundos,@inihoras,@iniampm,@iniminutos,@finhoras,
+ @finampm,@finminutos,@suspendida,@sesion)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $pidprogramacion=$cmd->Autonumerico();
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE programaciones SET nombrebloque=@nombrebloque,annos=@annos,meses=@meses,diario=@diario,
+ dias=@dias,semanas=@semanas,horas=@horas,ampm=@ampm,minutos=@minutos,segundos=@segundos,
+ horasini=@inihoras,ampmini=@iniampm,minutosini=@iniminutos,horasfin=@finhoras,ampmfin=@finampm,
+ minutosfin=@finminutos,suspendida=@suspendida WHERE idprogramacion=@idprogramacion";
+ $cmd->Traduce();
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto="DELETE FROM programaciones WHERE idprogramacion=".$pidprogramacion;
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_suspension :
+ $cmd->texto="UPDATE programaciones SET suspendida=@suspendida
+ WHERE identificador=@identificador AND tipoaccion=@tipoaccion";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
+
+
diff --git a/admin/WebConsole/gestores/gestor_repositorios.php b/admin/WebConsole/gestores/gestor_repositorios.php
new file mode 100644
index 00000000..c8eb14a2
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_repositorios.php
@@ -0,0 +1,187 @@
+<?
+// ******************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creaciónn: Año 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: gestor_repositorios.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de repositorios
+// ******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/repositorios_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idrepositorio=0;
+$nombrerepositorio="";
+$ip="";
+$passguor="";
+$pathrepoconf="";
+$pathrepod="";
+$pathpxe="";
+
+$grupoid=0;
+$puertorepo="";
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["idrepositorio"])) $idrepositorio=$_POST["idrepositorio"];
+if (isset($_POST["identificador"])) $idrepositorio=$_POST["identificador"];
+
+if (isset($_POST["nombrerepositorio"])) $nombrerepositorio=$_POST["nombrerepositorio"];
+if (isset($_POST["ip"])) $ip=$_POST["ip"];
+if (isset($_POST["passguor"])) $passguor=$_POST["passguor"];
+if (isset($_POST["pathrepoconf"])) $pathrepoconf=$_POST["pathrepoconf"];
+if (isset($_POST["pathrepod"])) $pathrepod=$_POST["pathrepod"];
+if (isset($_POST["pathpxe"])) $pathpxe=$_POST["pathpxe"];
+if (isset($_POST["puertorepo"])) $puertorepo=$_POST["puertorepo"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_repositorios.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_repositorios";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_repositorios";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_repositorios";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idrepositorio.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombrerepositorio."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idrepositorio.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla repositorios
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $grupoid;
+
+ global $idrepositorio;
+ global $nombrerepositorio;
+ global $ip;
+ global $passguor;
+ global $pathrepoconf;
+ global $pathrepod;
+ global $pathpxe;
+ global $puertorepo;
+ global $comentarios;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+
+ $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
+ $cmd->CreaParametro("@nombrerepositorio",$nombrerepositorio,0);
+ $cmd->CreaParametro("@ip",$ip,0);
+ $cmd->CreaParametro("@passguor",$passguor,0);
+ $cmd->CreaParametro("@pathrepoconf",$pathrepoconf,0);
+ $cmd->CreaParametro("@pathrepod",$pathrepod,0);
+ $cmd->CreaParametro("@pathpxe",$pathpxe,0);
+ $cmd->CreaParametro("@puertorepo",$puertorepo,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO repositorios(idcentro,grupoid,nombrerepositorio,ip,passguor,pathrepoconf,pathrepod,pathpxe,puertorepo,comentarios) VALUES (@idcentro,@grupoid,@nombrerepositorio,@ip,@passguor,@pathrepoconf,@pathrepod,@pathpxe,@puertorepo,@comentarios)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la p�gina que llam� �sta
+ $idrepositorio=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_repositorios($idrepositorio,$nombrerepositorio);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del �rbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE repositorios SET nombrerepositorio=@nombrerepositorio,ip=@ip,passguor=@passguor,pathrepoconf=@pathrepoconf,pathrepod=@pathrepod,pathpxe=@pathpxe,puertorepo=@puertorepo,comentarios=@comentarios WHERE idrepositorio=@idrepositorio";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=Eliminarepositorios($cmd,$idrepositorio,"idrepositorio");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE repositorios SET grupoid=@grupoid WHERE idrepositorio=@idrepositorio";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+//________________________________________________________________________________________________________
+// Crea un arbol XML para el nuevo grupo insertado
+//________________________________________________________________________________________________________
+function SubarbolXML_repositorios($idrepositorio,$nombrerepositorio){
+ global $LITAMBITO_REPOSITORIOS;
+ $cadenaXML='<REPOSITORIO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/repositorio.gif" ';
+ $cadenaXML.=' infonodo="'.$nombrerepositorio.'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_REPOSITORIOS."'" .')"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_REPOSITORIOS.'-'.$idrepositorio;
+ $cadenaXML.='>';
+ $cadenaXML.='</REPOSITORIO>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_reservas.php b/admin/WebConsole/gestores/gestor_reservas.php
new file mode 100644
index 00000000..5150a42b
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_reservas.php
@@ -0,0 +1,200 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_reservas.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de reservas
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/reservas_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idreserva=0;
+$descripcion="";
+$grupoid=0;
+$solicitante="";
+$email="";
+$idestatus=0;
+$idaula=0;
+$idimagen=0;
+$idtarea=0;
+$idtrabajo=0;
+$estado=0;
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idreserva"])) $idreserva=$_POST["idreserva"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["solicitante"])) $solicitante=$_POST["solicitante"];
+if (isset($_POST["email"])) $email=$_POST["email"];
+if (isset($_POST["idestatus"])) $idestatus=$_POST["idestatus"];
+if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
+if (isset($_POST["idimagen"])) $idimagen=$_POST["idimagen"];
+if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
+if (isset($_POST["idtrabajo"])) $idtrabajo=$_POST["idtrabajo"];
+if (isset($_POST["estado"])) $estado=$_POST["estado"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["identificador"])) $idreserva=$_POST["identificador"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_reservas.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_reservas";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_reservas";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_reservas";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idreserva.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idreserva.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla reservas
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idreserva;
+ global $descripcion;
+ global $grupoid;
+ global $solicitante;
+ global $email;
+ global $idestatus;
+ global $idaula;
+ global $idimagen;
+ global $idtarea;
+ global $idtrabajo;
+ global $estado;
+ global $comentarios;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+
+ $cmd->CreaParametro("@idreserva",$idreserva,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@solicitante",$solicitante,0);
+ $cmd->CreaParametro("@email",$email,0);
+ $cmd->CreaParametro("@idestatus",$idestatus,1);
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@idimagen",$idimagen,1);
+ $cmd->CreaParametro("@idtarea",$idtarea,1);
+ $cmd->CreaParametro("@idtrabajo",$idtrabajo,1);
+ $cmd->CreaParametro("@estado",$estado,1);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO reservas (descripcion,solicitante,email,idestatus,idaula,idimagen,idtarea,idtrabajo,estado,comentarios,idcentro,grupoid) VALUES (@descripcion,@solicitante,@email,@idestatus,@idaula,@idimagen,@idtarea,@idtrabajo,@estado,@comentarios,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idreserva=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_reservas($idreserva,$descripcion,$estado);
+ $baseurlimg="../images/signos"; // Url de las reservas de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE reservas SET descripcion=@descripcion,solicitante=@solicitante, email=@email,idestatus=@idestatus,idaula=@idaula,idimagen=@idimagen,idtarea=@idtarea,idtrabajo=@idtrabajo,estado=@estado,comentarios=@comentarios WHERE idreserva=@idreserva";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaReservas($cmd,$idreserva,"idreserva");// Eliminación en cascada
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE reservas SET grupoid=@grupoid WHERE idreserva=@idreserva";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_reservas($idreserva,$descripcion,$estado){
+ global $LITAMBITO_RESERVAS;
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+
+ $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+ $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+ $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+
+ $cadenaXML='<RESERVA';
+ // Atributos
+ $cadenaXML.=' imagenodo="'.$tbimg[$estado].'"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_RESERVAS."'" .')"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_RESERVAS.'-'.$idreserva;
+ $cadenaXML.='>';
+ $cadenaXML.='</RESERVA>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_tareas.php b/admin/WebConsole/gestores/gestor_tareas.php
new file mode 100644
index 00000000..d13e7259
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_tareas.php
@@ -0,0 +1,312 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_tareas.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de tareas
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("./relaciones/tareas_eliminacion.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idtarea=0;
+$descripcion="";
+$comentarios="";
+$ambito="";
+$idambito="";
+
+
+$grupoid=0;
+$swc=0; // switch de cliente, esta pagina la llama el cliente a través del browser
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idtarea"])) $idtarea=$_POST["idtarea"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
+if (isset($_POST["identificador"])) $idtarea=$_POST["identificador"];
+if (isset($_POST["swc"])) $swc=$_POST["swc"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+
+$literal="";
+switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_tareas";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_tareas";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_tareas";
+ break;
+ case $op_movida :
+ $literal="resultado_mover";
+ break;
+ case $op_ejecucion :
+ $literal="resultado_ejecutar_tareas";
+ break;
+ default:
+ break;
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_tareas.js"></SCRIPT>';
+ echo '<p><span style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</span></p>';
+ if ($resul){
+ if(empty($swc)){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idtarea.",o.innerHTML);".chr(13);
+ else{
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+ }
+ echo '</SCRIPT>';
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("El item se ha ejecutado correctamente");'.chr(13);
+ echo 'location.href="../varios/menucliente.php?iph='.$_SESSION["ogCliente"].'";'.chr(13);
+ echo '</SCRIPT>';
+ }
+ }
+ else{
+ if(empty($swc)){
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idtarea.")";
+ echo '</SCRIPT>';
+ }
+ else{
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'alert("***ATENCIÓN:El item NO se ha podido ejecutar");'.chr(13);
+ echo 'location.href="../varios/menucliente.php?iph='.$_SESSION["ogCliente"].'";'.chr(13);
+ echo '</SCRIPT>';
+ }
+ }
+ echo '</BODY>';
+ echo '</HTML>';
+}
+else{
+ if ($resul)
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+ else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idtarea.")";
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla tareas
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $EJECUCION_TAREA;
+
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $idtarea;
+ global $descripcion;
+ global $comentarios;
+ global $ambito;
+ global $idambito;
+ global $grupoid;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+ global $op_ejecucion;
+
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@idtarea",$idtarea,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+ $cmd->CreaParametro("@ambito",$ambito,1);
+ $cmd->CreaParametro("@idambito",$idambito,1);
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO tareas (descripcion,comentarios,ambito,idambito,idcentro,grupoid)
+ VALUES (@descripcion,@comentarios,@ambito,@idambito,@idcentro,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idtarea=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_tareas($idtarea,$descripcion,"");
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE tareas SET descripcion=@descripcion,comentarios=@comentarios,
+ ambito=@ambito,idambito=@idambito
+ WHERE idtarea=@idtarea";
+ $resul=$cmd->Ejecutar();
+ //echo $cmd->texto;
+ break;
+ case $op_eliminacion :
+ $resul=EliminaTareas($cmd,$idtarea,"idtarea");
+ break;
+ case $op_movida :
+ $cmd->texto="UPDATE tareas SET grupoid=@grupoid WHERE idtarea=@idtarea";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_ejecucion :
+ $resul=EjecutandoTareas();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_tareas($idtarea,$descripcion,$urlimg){
+ global $LITAMBITO_TAREAS;
+ $cadenaXML='<TAREA';
+ // Atributos`
+ if ($urlimg!="")
+ $cadenaXML.=' imagenodo="'.$urlimg;
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion;
+ $cadenaXML.=' nodoid='.$LITAMBITO_TAREAS.'-'.$idtarea;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_TAREAS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</TAREA>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function EjecutandoTareas(){
+
+ global $EJECUCION_COMANDO;
+ global $EJECUCION_TAREA;
+ global $PROCESOS;
+ global $ACCION_INICIADA;
+ global $ACCION_SINERRORES;
+ global $idcentro;
+ global $servidorhidra;
+ global $hidraport;
+ global $idtarea;
+ global $cmd;
+
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+
+ $ambitarea="";
+ $paramtarea="cmd=";
+
+ $tbComandos="";
+ $tabla_comandos="";
+ $cont_comandos=0;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM tareas_comandos WHERE idtarea=".$idtarea;
+ $cmd->texto.=" ORDER by tareas_comandos.orden";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ // Recorre tareas-comandos
+ while (!$rs->EOF){
+ $tbComandos["idcomando"]=$rs->campos["idcomando"];
+ $tbComandos["ambito"]=$rs->campos["ambito"];
+ $tbComandos["idambito"]=$rs->campos["idambito"];
+ $tbComandos["parametros"]=$rs->campos["parametros"];
+ $tbComandos["idnotificador"]=$rs->campos["idtareacomando"];
+ $tabla_comandos[$cont_comandos]=$tbComandos;
+ $cont_comandos++;
+
+ $ambitarea.=$rs->campos["ambito"].":".$rs->campos["idambito"].";";
+ $paramtarea.=$rs->campos["idtareacomando"].";";
+
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+
+ $ambitarea=substr($ambitarea,0,strlen($ambitarea)-1); // Quita la coma final
+ $paramtarea=substr($paramtarea,0,strlen($paramtarea)-1); // Quita la coma final
+
+ //Creación parametros para inserción
+ $cmd->CreaParametro("@tipoaccion","",1);
+ $cmd->CreaParametro("@idtipoaccion",0,1);
+ $cmd->CreaParametro("@cateaccion",$PROCESOS,1);
+ $cmd->CreaParametro("@ambito",0,1);
+ $cmd->CreaParametro("@idambito",0,1);
+ $cmd->CreaParametro("@ambitskwrk","",0);
+ $cmd->CreaParametro("@fechahorareg","",0);
+ $cmd->CreaParametro("@estado",$ACCION_INICIADA,0);
+ $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,0);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@parametros","",0);
+ $cmd->CreaParametro("@accionid",0,1);
+ $cmd->CreaParametro("@idnotificador",0,1);
+
+ // Insertar accion:tarea --------------------------------------------------------------------
+ $cmd->ParamSetValor("@tipoaccion",$EJECUCION_TAREA);
+ $cmd->ParamSetValor("@idtipoaccion",$idtarea);
+ $cmd->ParamSetValor("@ambito",0);
+ $cmd->ParamSetValor("@idambito",0);
+ $cmd->ParamSetValor("@ambitskwrk",$ambitarea);
+ $cmd->ParamSetValor("@fechahorareg",date("d/m/y H:i:s"));
+ $cmd->ParamSetValor("@parametros",$paramtarea);
+ $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,0,0)";
+ $resul=$cmd->Ejecutar();
+ if(!$resul) return(false);
+
+ $accionid=$cmd->Autonumerico(); // Toma identificador dela acción
+
+ // Insertar acciones:comandos
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ for ($i=0;$i<$cont_comandos;$i++){
+ $tbComandos=$tabla_comandos[$i];
+ $cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO);
+ $cmd->ParamSetValor("@idtipoaccion",$tbComandos["idcomando"]);
+ $cmd->ParamSetValor("@ambito",$tbComandos["ambito"]);
+ $cmd->ParamSetValor("@idambito",$tbComandos["idambito"]);
+ $cmd->ParamSetValor("@ambitskwrk","");
+ $cmd->ParamSetValor("@fechahorareg",date("d/m/y H:i:s"));
+ $cmd->ParamSetValor("@parametros",$tbComandos["parametros"]);
+ $cmd->ParamSetValor("@accionid",$accionid);
+ $cmd->ParamSetValor("@idnotificador",$tbComandos["idnotificador"]);
+ $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,@accionid,@idnotificador)";
+ $resul=$cmd->Ejecutar();
+ if(!$resul) return(false);
+ $tbComandos["parametros"].="ids=".$cmd->Autonumerico().chr(13);
+
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($tbComandos["parametros"]);
+ $shidra->desconectar();
+ }
+ }
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_tareascomandos.php b/admin/WebConsole/gestores/gestor_tareascomandos.php
new file mode 100644
index 00000000..3064728b
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_tareascomandos.php
@@ -0,0 +1,122 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_tareascomandos.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de tareas_comandos
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/constantes.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+$idtareacomando=0;
+$orden=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+if (isset($_POST["idtareacomando"])) $idtareacomando=$_POST["idtareacomando"];
+if (isset($_POST["orden"])) $orden=$_POST["orden"];
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+$literal="";
+switch($opcion){
+ case $op_eliminacion :
+ $literal="resultado_eliminar_tareacomando";
+ break;
+ case $op_modificacion :
+ $literal="resultado_modificar_tareacomando";
+ break;
+ case $op_ejecucion :
+ $literal="resultado_ejecutar_tareacomando";
+ break;
+ default:
+ break;
+}
+if ($resul){
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idtareacomando.");".chr(13);
+}
+else{
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idtareacomando.")";
+}
+// *************************************************************************************************************************************************
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_ejecucion;
+ global $EJECUCION_COMANDO;
+ global $PROCESOS;
+ global $ACCION_INICIADA;
+ global $ACCION_SINERRORES;
+ global $servidorhidra;
+ global $hidraport;
+ global $idcentro;
+ global $idtareacomando;
+ global $orden;
+
+ $cmd->CreaParametro("@orden",$orden,1);
+
+ switch($opcion){
+ case $op_modificacion :
+ $cmd->texto='UPDATE tareas_comandos set orden=@orden WHERE idtareacomando='.$idtareacomando;
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto='DELETE FROM tareas_comandos WHERE idtareacomando='.$idtareacomando;
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_ejecucion :
+ $nombreliterales[0]="idcomando";
+ $nombreliterales[1]="ambito";
+ $nombreliterales[2]="idambito";
+ $nombreliterales[3]="parametros";
+ $Datos=TomanDatos($cmd,"tareas_comandos",$idtareacomando,"idtareacomando",$nombreliterales);
+ if(empty($Datos)) return(false);
+
+ $idtipoaccion=$Datos["idcomando"];
+ $ambito=$Datos["ambito"];
+ $idambito=$Datos["idambito"];
+ $parametros=$Datos["parametros"];
+
+ $resul=true;
+
+ $cmd->CreaParametro("@tipoaccion",$EJECUCION_COMANDO,1);
+ $cmd->CreaParametro("@idtipoaccion",$idtipoaccion,1);
+ $cmd->CreaParametro("@cateaccion",$PROCESOS,1);
+ $cmd->CreaParametro("@ambito",$ambito,1);
+ $cmd->CreaParametro("@idambito",$idambito,1);
+ $cmd->CreaParametro("@ambitskwrk","",0);
+ $cmd->CreaParametro("@fechahorareg",date("y/m/d H:i:s"),0);
+ $cmd->CreaParametro("@estado",$ACCION_INICIADA,0);
+ $cmd->CreaParametro("@resultado",$ACCION_SINRESULTADO,0);
+ $cmd->CreaParametro("@idcentro",$idcentro,1);
+ $cmd->CreaParametro("@parametros",$parametros,0);
+ $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,0)";
+ $resul=$cmd->Ejecutar();
+ if($resul){
+ $parametros.="ids=".$cmd->Autonumerico().chr(13);
+ }
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($parametros);
+ $shidra->desconectar();
+ }
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_tipohardwares.php b/admin/WebConsole/gestores/gestor_tipohardwares.php
new file mode 100644
index 00000000..a48757d2
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_tipohardwares.php
@@ -0,0 +1,150 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_tipohardwares.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de tipohardwares
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idtipohardware=0;
+$descripcion="";
+$urlimg="";
+$urlicono="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["idtipohardware"])) $idtipohardware=$_POST["idtipohardware"];
+if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+if (isset($_POST["urlicono"])) $urlicono=$_POST["urlicono"];
+
+if(empty($urlicono))
+ $urlimg="../images/iconos/confihard.gif";
+else
+ $urlimg="../images/iconos/".$urlicono;
+
+$tablanodo=""; // Arbol para nodos insertados
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+if($opcion!=$op_movida){
+ echo '<HTML>';
+ echo '<HEAD>';
+ echo ' <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">';
+ echo '<BODY>';
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+ echo ' <SCRIPT language="javascript" src="../jscripts/propiedades_tipohardwares.js"></SCRIPT>';
+ echo '<SCRIPT language="javascript">'.chr(13);
+ if ($resul){
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ }
+}
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_tipohardwares";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_tipohardwares";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_tipohardwares";
+ break;
+ default:
+ break;
+ }
+if ($resul){
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idtipohardware.",o.innerHTML);".chr(13);
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$descripcion."');".chr(13);
+}
+else
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idtipohardware.")";
+
+if($opcion!=$op_movida){
+ echo ' </SCRIPT>';
+ echo '</BODY> ';
+ echo '</HTML>';
+}
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla tipohardwares
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idtipohardware;
+ global $descripcion;
+ global $urlimg;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idtipohardware",$idtipohardware,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+ $cmd->CreaParametro("@urlimg",$urlimg,0);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO tipohardwares(descripcion,urlimg) VALUES (@descripcion,@urlimg)";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idtipohardware=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_tipohardwares($idtipohardware,$descripcion,$urlimg);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE tipohardwares SET descripcion=@descripcion,urlimg=@urlimg WHERE idtipohardware=@idtipohardware";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $cmd->texto="DELETE FROM tipohardwares WHERE idtipohardware=".$idtipohardware;
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_tipohardwares($idtipohardware,$descripcion,$urlimg){
+ global $LITAMBITO_TIPOHARDWARES;
+ $cadenaXML.='<TIPOHARDWARES';
+ // Atributos
+ if ($urlimg)
+ $cadenaXML.=' imagenodo='.$urlimg;
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"';
+ $cadenaXML.=' infonodo="'.$descripcion.'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_TIPOHARDWARES."'" .')"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_TIPOHARDWARES.'-'.$idtipohardware;
+ $cadenaXML.='>';
+ $cadenaXML.='</TIPOHARDWARES>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_universidades.php b/admin/WebConsole/gestores/gestor_universidades.php
new file mode 100644
index 00000000..21f883d5
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_universidades.php
@@ -0,0 +1,97 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gestor_universidades.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de iduniversidades
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$iduniversidad=0;
+$nombreuniversidad="";
+$comentarios="";
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
+
+if (isset($_POST["iduniversidad"])) $iduniversidad=$_POST["iduniversidad"];
+if (isset($_POST["nombreuniversidad"])) $nombreuniversidad=$_POST["nombreuniversidad"];
+if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
+if (isset($_POST["identificador"])) $iduniversidad=$_POST["identificador"];
+
+$iduniversidad=1;
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_universidades.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_modificacion:
+ $literal="resultado_modificar_universidades";
+ break;
+ default:
+ break;
+ }
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreuniversidad."');".chr(13);
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$iduniversidad.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Inserta, modifica o elimina datos en la tabla iduniversidades
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+
+ global $idcentro;
+ global $iduniversidad;
+ global $nombreuniversidad;
+ global $comentarios;
+
+ global $op_modificacion;
+
+ $cmd->CreaParametro("@iduniversidad",$iduniversidad,1);
+ $cmd->CreaParametro("@nombreuniversidad",$nombreuniversidad,0);
+ $cmd->CreaParametro("@comentarios",$comentarios,0);
+
+ switch($opcion){
+ case $op_modificacion:
+ $cmd->texto="UPDATE universidades SET nombreuniversidad=@nombreuniversidad,comentarios=@comentarios WHERE iduniversidad=@iduniversidad";
+ $resul=$cmd->Ejecutar();
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/gestor_usuarios.php b/admin/WebConsole/gestores/gestor_usuarios.php
new file mode 100644
index 00000000..4463074b
--- /dev/null
+++ b/admin/WebConsole/gestores/gestor_usuarios.php
@@ -0,0 +1,211 @@
+<?
+// *******************************************************************************************************
+// 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
+// Nombre del fichero: gestor_usuarios.php
+// Descripción :
+// Gestiona el mantenimiento de la tabla de usuarios
+// *******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/SockHidra.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("./relaciones/usuarios_eliminacion.php");
+include_once("../includes/opciones.php");
+//________________________________________________________________________________________________________
+$opcion=0; // Inicializa parametros
+
+$idusuario=0;
+$usuario="";
+$pasguor="";
+$nombre="";
+$email="";
+$idambito=0;
+$ididioma=0;
+$idtipousuario=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
+
+if (isset($_POST["idusuario"])) $idusuario=$_POST["idusuario"];
+if (isset($_POST["usuario"])) $usuario=$_POST["usuario"];
+if (isset($_POST["pasguor"])) $pasguor=$_POST["pasguor"];
+if (isset($_POST["nombre"])) $nombre=$_POST["nombre"];
+if (isset($_POST["email"])) $email=$_POST["email"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["ididioma"])) $ididioma=$_POST["ididioma"];
+if (isset($_POST["idtipousuario"])) $idtipousuario=$_POST["idtipousuario"];
+
+$tablanodo=""; // Arbol para nodos insertados
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$resul=false;
+if ($cmd){
+ $resul=Gestiona();
+ $cmd->Conexion->Cerrar();
+}
+// *************************************************************************************************************************************************
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<BODY>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_usuarios.js"></SCRIPT>
+<?
+ $literal="";
+ switch($opcion){
+ case $op_alta :
+ $literal="resultado_insertar_usuarios";
+ break;
+ case $op_modificacion:
+ $literal="resultado_modificar_usuarios";
+ break;
+ case $op_eliminacion :
+ $literal="resultado_eliminar_usuarios";
+ break;
+ case $op_movida :
+ $literal="resultado_cambiar_usuarios";
+ break;
+ default:
+ break;
+ }
+ echo '<P><SPAN style="visibility:hidden" id="arbol_nodo">'.$tablanodo.'</SPAN></P>';
+if ($resul){
+ echo '<SCRIPT language="javascript">'.chr(13);
+ echo 'var oHTML'.chr(13);
+ echo 'var cTBODY=document.getElementsByTagName("TBODY");'.chr(13);
+ echo 'o=cTBODY.item(1);'.chr(13);
+ if ($opcion==$op_alta )
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idusuario.",o.innerHTML);";
+ else
+ echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombre."');";
+ echo '</SCRIPT>';
+}
+else{
+ echo '<SCRIPT language="javascript">';
+ echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idusuario.")";
+ echo '</SCRIPT>';
+}
+?>
+</BODY>
+</HTML>
+<?
+/*________________________________________________________________________________________________________
+ Inserta, modifica o elimina datos en la tabla usuarios
+________________________________________________________________________________________________________*/
+function Gestiona(){
+ global $cmd;
+ global $opcion;
+ global $OPERADOR;
+ global $ADMINISTRADOR;
+
+ global $idusuario;
+ global $usuario;
+ global $pasguor;
+ global $nombre;
+ global $email;
+ global $idambito;
+ global $ididioma;
+ global $idtipousuario;
+
+ global $op_alta;
+ global $op_modificacion;
+ global $op_eliminacion;
+ global $op_movida;
+ global $tablanodo;
+
+ $cmd->CreaParametro("@idusuario",$idusuario,1);
+ $cmd->CreaParametro("@usuario",$usuario,0);
+ $cmd->CreaParametro("@pasguor",$pasguor,0);
+ $cmd->CreaParametro("@nombre",$nombre,0);
+ $cmd->CreaParametro("@email",$email,0);
+ $cmd->CreaParametro("@idambito",$idambito,1);
+ $cmd->CreaParametro("@ididioma",$ididioma,1);
+ $cmd->CreaParametro("@idtipousuario",$idtipousuario,1);
+
+ switch($opcion){
+ case $op_alta :
+ $cmd->texto="INSERT INTO usuarios (usuario,pasguor,nombre,email,ididioma,idtipousuario ) VALUES (@usuario,@pasguor,@nombre,@email,@ididioma,@idtipousuario);";
+ $resul=$cmd->Ejecutar();
+ if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
+ $idusuario=$cmd->Autonumerico();
+ $arbolXML=SubarbolXML_usuarios($idusuario,$nombre,$idtipousuario);
+ $baseurlimg="../images/signos"; // Url de las imagenes de signo
+ $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
+ $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
+ $tablanodo=$arbol->CreaArbolVistaXML();
+ }
+ break;
+ case $op_modificacion:
+ $cmd->texto="UPDATE usuarios SET usuario=@usuario,pasguor=@pasguor,nombre=@nombre,email=@email,ididioma=@ididioma WHERE idusuario=@idusuario";
+ $resul=$cmd->Ejecutar();
+ break;
+ case $op_eliminacion :
+ $resul=EliminaUsuarios($cmd,$idusuario,"idusuario");
+ break;
+ default:
+ break;
+ }
+ return($resul);
+}
+/*________________________________________________________________________________________________________
+ Busca los datos de un usuario
+ Parametros:
+ - cmd:Una comando ya operativo (con conexión abierta)
+ - idusuario:El identificador del usuario
+________________________________________________________________________________________________________*/
+function toma_usuario($cmd,$idusuario){
+ global $usuario;
+ global $pasguor;
+ global $idambito;
+ global $idtipousuario;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT usuario, pasguor,idambito,idtipousuario FROM usuarios WHERE idusuario=".$idusuario;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $usuario=$rs->campos["usuario"];
+ $pasguor=$rs->campos["pasguor"];
+ $idambito=$rs->campos["idambito"];
+ $idtipousuario=$rs->campos["idtipousuario"];
+ return(true);
+ }
+ else
+ return(false);
+}
+/*________________________________________________________________________________________________________
+ Crea un arbol XML para el nuevo nodo insertado
+________________________________________________________________________________________________________*/
+function SubarbolXML_usuarios($idusuario,$nombre,$idtipousuario){
+ global $LITAMBITO_USUARIOS;
+ global $SUPERADMINISTRADOR;
+ global $ADMINISTRADOR;
+ global $OPERADOR;
+
+ switch($idtipousuario){
+ case $SUPERADMINISTRADOR:
+ $urlimg="../images/iconos/superadministradores.gif";
+ break;
+ case $ADMINISTRADOR:
+ $urlimg="../images/iconos/administradores.gif";
+ break;
+ case $OPERADOR:
+ $urlimg="../images/iconos/operadores.gif";
+ break;
+ }
+ $cadenaXML='<USUARIO';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_USUARIOS."'" .')"';
+ $cadenaXML.=' imagenodo="'.$urlimg.'"';
+ $cadenaXML.=' infonodo="'.$nombre.'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS.'-'.$idusuario;
+ $cadenaXML.='></USUARIO>';
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php b/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php
new file mode 100644
index 00000000..a9d2bc10
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/aulas_eliminacion.php
@@ -0,0 +1,43 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: aulas_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla aulas
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el aula
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaAulas($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idaula,nombreaula FROM aulas WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $resul=EliminaGruposOrdenadores($cmd,$rs->campos["idaula"],"idaula");
+ if ($resul)
+ $resul=EliminaOrdenadores($cmd,$rs->campos["idaula"],"idaula");
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM aulas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM aulas WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/centros_eliminacion.php b/admin/WebConsole/gestores/relaciones/centros_eliminacion.php
new file mode 100644
index 00000000..aad93185
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/centros_eliminacion.php
@@ -0,0 +1,41 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: centros_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla centros
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el centro
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaCentros($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idcentro FROM centros WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idcentro FROM centros WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $resul=EliminaAulas($cmd,$rs->campos["idcentro"],"idcentro");
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM centros WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM centros WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php b/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php
new file mode 100644
index 00000000..41b279e5
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/entidades_eliminacion.php
@@ -0,0 +1,41 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: entidades_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla entidades
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el entidad
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaEntidad($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT identidad FROM entidades WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT identidad FROM entidades WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $resul=EliminaCentros($cmd,$rs->campos["identidad"],"identidad");
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM entidades WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM entidades WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php b/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php
new file mode 100644
index 00000000..dad01a95
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/gruposordenadores_eliminacion.php
@@ -0,0 +1,44 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: gruposordenadores_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla gruposordenadores
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el grupo de ordenadores
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaGruposOrdenadores($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idgrupo FROM gruposordenadores WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idgrupo FROM gruposordenadores WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $resul=EliminaGruposOrdenadores($cmd,$rs->campos["idgrupo"],"grupoid");
+ if ($resul)
+ $resul=EliminaOrdenadores($cmd,$rs->campos["idgrupo"],"grupoid");
+
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM gruposordenadores WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM gruposordenadores WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php b/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php
new file mode 100644
index 00000000..802df7f6
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/hardwares_eliminacion.php
@@ -0,0 +1,42 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: hardwares_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla hardwares
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el hardware
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaHardwares($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idhardware FROM hardwares WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idhardware FROM hardwares WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM perfileshard_hardwares WHERE idhardware=".$rs->campos["idhardware"];;
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM hardwares WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM hardwares WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php b/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php
new file mode 100644
index 00000000..85b4c1a7
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/imagenes_eliminacion.php
@@ -0,0 +1,43 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: imagenes_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla imagenes
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará la imagen
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaImagenes($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_TAREA;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idimagen FROM imagenes WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idimagen FROM imagenes WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="UPDATE ordenadores_particiones SET idimagen=0 WHERE idimagen=".$rs->campos["idimagen"];
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM imagenes WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM imagenes WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php b/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php
new file mode 100644
index 00000000..eeb35cec
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/incrementales_eliminacion.php
@@ -0,0 +1,46 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: incrementales_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla softincrementales
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el software incremental
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaSoftincremental($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idsoftincremental FROM softincrementales WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idsoftincremental FROM softincrementales WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM softincremental_softwares WHERE idsoftincremental=".$rs->campos["idsoftincremental"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM imagenes_softincremental WHERE idsoftincremental=".$rs->campos["idsoftincremental"];
+ $resul=$cmd->Ejecutar();
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM softincrementales WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM softincrementales WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/menus_eliminacion.php b/admin/WebConsole/gestores/relaciones/menus_eliminacion.php
new file mode 100644
index 00000000..dcefc7cf
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/menus_eliminacion.php
@@ -0,0 +1,43 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: menus_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla menus
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el menu
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaMenus($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_PROCEDIMIENTO;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idmenu FROM menus WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idmenu FROM menus WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="UPDATE ordenadores SET idmenu=0 where idmenu=".$rs->campos["idmenu"];;
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM menus WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM menus WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php b/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php
new file mode 100644
index 00000000..0f2415b8
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/ordenadores_eliminacion.php
@@ -0,0 +1,44 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: ordenadores_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla ordenadores
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el ordenador
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+//*************************************************************************************************************************************************
+function EliminaOrdenadores($cmd,$identificador,$nombreid,$swid=1)
+{
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idordenador FROM ordenadores WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idordenador FROM ordenadores WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM ordenadores_particiones WHERE idordenador=".$rs->campos["idordenador"];
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM ordenadores WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM ordenadores WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php b/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php
new file mode 100644
index 00000000..254a2637
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/perfileshard_eliminacion.php
@@ -0,0 +1,47 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: perfileshard_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla perfileshard
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el el perfil hardware
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+//*************************************************************************************************************************************************
+function EliminaPerfileshard($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idperfilhard FROM perfileshard WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idperfilhard FROM perfileshard WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="UPDATE ordenadores SET idperfilhard=0 WHERE idperfilhard=".$rs->campos["idperfilhard"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM perfileshard_hardwares WHERE idperfilhard=".$rs->campos["idperfilhard"];
+ $resul=$cmd->Ejecutar();
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM perfileshard WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM perfileshard WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php b/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php
new file mode 100644
index 00000000..4cb87efe
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/perfilessoft_eliminacion.php
@@ -0,0 +1,46 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: perfilessoft_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla perfilessoft
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el el perfil software
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaPerfilessoft($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idperfilsoft FROM perfilessoft WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idperfilsoft FROM perfilessoft WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="UPDATE imagenes SET idperfilsoft=0 WHERE idperfilsoft=".$rs->campos["idperfilsoft"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM perfileshard_perfilessoft WHERE idperfilsoft=".$rs->campos["idperfilsoft"];
+ $resul=$cmd->Ejecutar();
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM perfilessoft WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM perfilessoft WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php b/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php
new file mode 100644
index 00000000..a1a65019
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/procedimientos_eliminacion.php
@@ -0,0 +1,51 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: procedimientos_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla procedimientos
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el procedimiento
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaProcedimientos($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_PROCEDIMIENTO;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idprocedimiento FROM procedimientos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idprocedimiento FROM procedimientos WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM acciones_menus WHERE tipoaccion=".$EJECUCION_PROCEDIMIENTO." AND idtipoaccion=".$rs->campos["idprocedimiento"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM procedimientos_acciones WHERE idprocedimiento=".$rs->campos["idprocedimiento"];
+ $resul=$cmd->Ejecutar();
+ }
+ if ($resul){
+ $cmd->texto="DELETE FROM tareas_acciones WHERE idprocedimiento=".$rs->campos["idprocedimiento"];
+ $resul=$cmd->Ejecutar();
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM procedimientos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM procedimientos WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php b/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php
new file mode 100644
index 00000000..69137a3b
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/repositorios_eliminacion.php
@@ -0,0 +1,43 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: repositorios_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla repositorios
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el repositorio
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+// *************************************************************************************************************************************************
+function Eliminarepositorios($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idrepositorio FROM repositorios WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idrepositorio FROM repositorios WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="UPDATE ordenadores SET idrepositorio=0 WHERE idrepositorio=".$rs->campos["idrepositorio"];
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM repositorios WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM repositorios WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php b/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php
new file mode 100644
index 00000000..46ea627d
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/reservas_eliminacion.php
@@ -0,0 +1,43 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: reservas_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla reservas
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará la reserva
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaReservas($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_RESERVA;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idreserva FROM reservas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idreserva FROM reservas WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM programaciones WHERE identificador=".$rs->campos["idreserva"]." AND tipoaccion=".$EJECUCION_RESERVA;
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM reservas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM reservas WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php b/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php
new file mode 100644
index 00000000..6f254a61
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/softwares_eliminacion.php
@@ -0,0 +1,42 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: softwares_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla softwares
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el software
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaSoftwares($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idsoftware FROM softwares WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idsoftware FROM softwares WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM perfilessoft_softwares WHERE idsoftware=".$rs->campos["idsoftware"];
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM softwares WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM softwares WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php b/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php
new file mode 100644
index 00000000..02277721
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/tareas_eliminacion.php
@@ -0,0 +1,52 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: tareas_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla tareas
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará la tarea
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaTareas($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_TAREA;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idtarea FROM tareas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idtarea FROM tareas WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM acciones_menus WHERE tipoaccion=".$EJECUCION_TAREA." AND idtipoaccion=".$rs->campos["idtarea"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM programaciones WHERE tipoaccion=".$EJECUCION_TAREA." AND identificador=".$rs->campos["idtarea"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM tareas_acciones WHERE idtarea=".$rs->campos["idtarea"];
+ $resul=$cmd->Ejecutar();
+ }
+ }
+
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM tareas WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM tareas WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php b/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php
new file mode 100644
index 00000000..cfeb0449
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/trabajos_eliminacion.php
@@ -0,0 +1,51 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: trabajos_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla trabajos
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el trabajo
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaTrabajos($cmd,$identificador,$nombreid,$swid=1){
+ global $EJECUCION_TRABAJO;
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idtrabajo FROM trabajos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idtrabajo FROM trabajos WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cmd->texto="DELETE FROM acciones_menus WHERE tipoaccion=".$EJECUCION_TRABAJO." AND idtipoaccion=".$rs->campos["idtrabajo"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM programaciones WHERE tipoaccion=".$EJECUCION_TRABAJO." AND identificador=".$rs->campos["idtrabajo"];
+ $resul=$cmd->Ejecutar();
+ if ($resul){
+ $cmd->texto="DELETE FROM trabajos_tareas WHERE idtrabajo=".$rs->campos["idtrabajo"];
+ $resul=$cmd->Ejecutar();
+ }
+ }
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM trabajos WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM trabajos WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php b/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php
new file mode 100644
index 00000000..541cbddb
--- /dev/null
+++ b/admin/WebConsole/gestores/relaciones/usuarios_eliminacion.php
@@ -0,0 +1,44 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: usuarios_eliminacion.php
+// Descripción :
+// Elimina en cascada registros de la tabla usuarios
+// Parametros:
+// - cmd:Una comando ya operativo (con conexión abierta)
+// - identificador: El identificador por el que se eliminará el usuario
+// - nombreid: Nombre del campo identificador del registro
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto) *************************************************************************************************************************************************
+function EliminaUsuarios($cmd,$identificador,$nombreid,$swid=1){
+ if (empty($identificador)) return(true);
+ if($swid==0)
+ $cmd->texto="SELECT idusuario FROM usuarios WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT idusuario FROM usuarios WHERE '.$nombreid.'='.$identificador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->numeroderegistros==0) return(true);
+ $rs->Primero();
+ while (!$rs->EOF){
+ /*
+ $cmd->texto="DELETE FROM usuario_imagen WHERE idusuario=".$rs->campos["idusuario"];
+ $resul=$cmd->Ejecutar();
+ if (!$resul){
+ $rs->Cerrar();
+ return(false);
+ }
+ */
+ $rs->Siguiente();
+ }
+ if($swid==0)
+ $cmd->texto="DELETE FROM usuarios WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='DELETE FROM usuarios WHERE '.$nombreid.'='.$identificador;
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+?>
diff --git a/admin/WebConsole/idiomas/javascripts/eng/acciones_eng.js b/admin/WebConsole/idiomas/javascripts/eng/acciones_eng.js
new file mode 100644
index 00000000..3e230582
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/acciones_eng.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: acciones_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- This task will be performed. Are you sure ?";
+TbMsg[1]="WARNING.- This job will be performed. Are you sure ?";
+TbMsg[2]="This task has been successfully initiated";
+TbMsg[3]="This job has been successfully initiated";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/accionmenu_eng.js b/admin/WebConsole/idiomas/javascripts/eng/accionmenu_eng.js
new file mode 100644
index 00000000..51d2550d
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/accionmenu_eng.js
@@ -0,0 +1,13 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: accionmenu_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING: You must introduce an item description";
+TbMsg[1]="WARNING: You must introduce an order number";
+TbMsg[2]="This item has been successfully included in this menu";
+TbMsg[3]="This item has been successfully excluded from this menu";
+TbMsg[4]="This item has been successfully modified";
+
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js
new file mode 100644
index 00000000..320a894d
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/aulas_eng.js
@@ -0,0 +1,10 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: aulas_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Computer template have been successfully registered and all the computers of this lab have been updated using this configuration";
+TbMsg[1]="WARNING: This environment will be refresh. Are you sure ?";
+TbMsg[2]="WARNING: This environment will be purge. Are you sure ?";
+TbMsg[3]="WARNING: the items of menus from this environment will be refresh. Are you sure ?";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/colasacciones_eng.js b/admin/WebConsole/idiomas/javascripts/eng/colasacciones_eng.js
new file mode 100644
index 00000000..d9865e7d
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/colasacciones_eng.js
@@ -0,0 +1,28 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: colasacciones_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING: This action has finished in a way automatically and you can't change its final result manually";
+TbMsg[1]="WARNING: This action has finished and you can't change its status";
+TbMsg[2]="WARNING: This action has already finished in a way manually";
+
+TbMsg[3]="WARNING: This action has already been canceled";
+TbMsg[4]="WARNING: This action is already initiated";
+TbMsg[5]="WARNING: This action is already stopped ";
+TbMsg[6]="WARNING: This action has already been removed";
+
+TbMsg[7]="WARNING: The final result of this action has been successfully modified ";
+TbMsg[8]="WARNING: The status of this action has been successfully modified ";
+TbMsg[9]="WARNING: This action has been successfully reinitialized";
+TbMsg[10]="WARNING: This action has been successfully removed";
+TbMsg[11]="WARNING: This action has finished successfully ";
+
+TbMsg[12]="WARNING: This notification has already been removed or reinitialized";
+TbMsg[13]="WARNING: This notification has already been reinitialized";
+TbMsg[14]="WARNING: It's already been successfully notified.";
+TbMsg[15]="WARNING: It's already been unsuccessfully notified.";
+
+TbMsg[16]="WARNING: The result of this notification has been successfully modified ";
+TbMsg[17]="WARNING: This notification has been successfully reinitialized";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js
new file mode 100644
index 00000000..85b89539
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/comunescomandos_eng.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: comunescomandos_eng.js (Comn a todos los comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+CTbMsg=new Array;
+CTbMsg[0]="WARNING.- Cancelled operation, you will might come back this screen in another moment to perform this command";
+CTbMsg[1]="WARNING: An error occurs when attempt to register command";
+CTbMsg[2]="The command has been successfully registered";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js
new file mode 100644
index 00000000..0175c9a6
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/configurar_eng.js
@@ -0,0 +1,15 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: configurar_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- There are not partitions table modified, therefore no command will be registered";
+TbMsg[1]="WARNING.- There are partitions with the same number, you must select another or remove it clicking in the last column";
+TbMsg[2]="WARNING.- The size of the partition must be greater than zero";
+TbMsg[3]="WARNING.- The partition must be correlative and there would not have spaces between partitions";
+TbMsg[4]="WARNING.- This partition is empty, therefore you can't to perform any operation";
+TbMsg[5]="WARNING.- This partition must be just formatted because the operating system has changed or has changed the size of some partition";
+TbMsg[6]="WARNING.- There is not coherent to hide this partition because it is not a Windows partition";
+TbMsg[7]="WARNING.- There is not coherent to show this partition because it is not a Windows partition";
+TbMsg[8]="You can't add more partitions";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/crearperfilsoftware_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearperfilsoftware_eng.js
new file mode 100644
index 00000000..dbf1484a
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearperfilsoftware_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearperfilsoftware_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must select a software profile for this partition";
+TbMsg[1]="You must select at least a partition and a software profile";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/crearsoftincremental_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearsoftincremental_eng.js
new file mode 100644
index 00000000..675b5419
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/crearsoftincremental_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearsoftincremental_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must select a diferential software for this partition";
+TbMsg[1]="You must select at least a partition and a diferential software";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js
new file mode 100644
index 00000000..e2de10f6
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/ejecutarscripts_eng.js
@@ -0,0 +1,10 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: ejecutarscripts_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- Bash code will be performed Are you sure ?";
+TbMsg[1]="You must introduce some code lines or at least a file with Bash code";
+TbMsg[2]="You must introduce the title of the script whether you want to follow-up the accion or to save it like a procedure or task";
+TbMsg[3]="You must introduce the description of the script whether you want to follow-up the accion or to save it like a procedure or task";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/particionaryformatear_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/particionaryformatear_eng.js
new file mode 100644
index 00000000..6598e659
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/particionaryformatear_eng.js
@@ -0,0 +1,15 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: particionaryformatear_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- There are not partitions table modified, therefore no command will be registered";
+TbMsg[1]="WARNING.- There are partitions with the same number, you must select another or remove it clicking in the last column";
+TbMsg[2]="WARNING.- The size of the partition must be greater than zero";
+TbMsg[3]="WARNING.- The partition must be correlative and there would not have spaces between partitions";
+TbMsg[4]="WARNING.- This partition is empty, therefore you can't to perform any operation";
+TbMsg[5]="WARNING.- This partition must be just formatted because the operating system has changed or has changed the size of some partition";
+TbMsg[6]="WARNING.- There is not coherent to hide this partition because it is not a Windows partition";
+TbMsg[7]="WARNING.- There is not coherent to show this partition because it is not a Windows partition";
+TbMsg[8]="You can't add more partitions";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js
new file mode 100644
index 00000000..c1fe1d21
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comandos/restaurarimagen_eng.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: configurar_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must select at least an Image for partition ";
+TbMsg[1]="You can only select an Image for partition ";
+TbMsg[2]="WARNING: You have selected an Image from other operating system for current partition ";
+TbMsg[3]=" Are you sure ?"
+TbMsg[4]="You must select at least a partition and an Image"
+TbMsg[5]="You must select at least a image path for partition ";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/comunes_eng.js b/admin/WebConsole/idiomas/javascripts/eng/comunes_eng.js
new file mode 100644
index 00000000..271dede0
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/comunes_eng.js
@@ -0,0 +1,14 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: comunes_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+CTbMsg=new Array;
+CTbMsg[0]="WARNING.- This group contain others groups or elements. If you remove it, you will also remove all these. Are you sure ?";
+CTbMsg[1]="WARNING.- This group will be removed. Are you sure ?";
+CTbMsg[2]="This group has been successfully modified";
+CTbMsg[3]="This group has been successfully removed";
+CTbMsg[4]="The record has been successfully inserted";
+CTbMsg[5]="The record has been successfully modified";
+CTbMsg[6]="The record has been successfully removed";
+CTbMsg[7]="There is not exists any element in stack to be moved into this group";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/ejecutarprocedimientos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/ejecutarprocedimientos_eng.js
new file mode 100644
index 00000000..698e4c21
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/ejecutarprocedimientos_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: ejecutarprocedimientos_eng.js
+// Idioma: Ingls
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- This procedure will be executed Applying this environment. Are you sure ?";
+TbMsg[1]="This procedure has been successfully executed for this environment";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/hardwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/hardwares_eng.js
new file mode 100644
index 00000000..28e179a7
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/hardwares_eng.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: hardwares.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/imagenes_eng.js b/admin/WebConsole/idiomas/javascripts/eng/imagenes_eng.js
new file mode 100644
index 00000000..171afd22
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/imagenes_eng.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: imagenes.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/imagenincremental_eng.js b/admin/WebConsole/idiomas/javascripts/eng/imagenincremental_eng.js
new file mode 100644
index 00000000..e9e69b92
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/imagenincremental_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: incrementalcomponente_soft_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="This incremental software has been successfully included in this image";
+TbMsg[1]="This incremental software has been successfully excluded from this iamge";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/incrementalcomponente_soft_eng.js b/admin/WebConsole/idiomas/javascripts/eng/incrementalcomponente_soft_eng.js
new file mode 100644
index 00000000..16c594c8
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/incrementalcomponente_soft_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: incrementalcomponente_soft_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="This software component has been successfully included in this incremental software";
+TbMsg[1]="This software component has been successfully excluded from this incremental software";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/informacion_menus_eng.js b/admin/WebConsole/idiomas/javascripts/eng/informacion_menus_eng.js
new file mode 100644
index 00000000..79274efe
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/informacion_menus_eng.js
@@ -0,0 +1,9 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: informacion_menus_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- This item will be removed. Are you sure ?";
+TbMsg[1]="This item has been successfully excluded from this menu";
+TbMsg[2]="This item has been successfully modified";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/menus_eng.js b/admin/WebConsole/idiomas/javascripts/eng/menus_eng.js
new file mode 100644
index 00000000..39ea2374
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/menus_eng.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: menus_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_hard_eng.js b/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_hard_eng.js
new file mode 100644
index 00000000..8a102354
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_hard_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_hard_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="This hardware component has been successfully included in this profile";
+TbMsg[1]="This hardware component has been successfully excluded from this profile";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_soft_eng.js b/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_soft_eng.js
new file mode 100644
index 00000000..d693301c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/perfilcomponente_soft_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_soft_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="This software component has been successfully included in this profile";
+TbMsg[1]="This software component has been successfully excluded from this profile";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/procedimientoscomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/procedimientoscomandos_eng.js
new file mode 100644
index 00000000..c01dbc5d
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/procedimientoscomandos_eng.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: procedimientoscomandos_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- This command will be excluded from procedure. Are you sure ?";
+TbMsg[1]="WARNING: You must introduce an order number";
+TbMsg[2]="This command has been successfully excluded from this procedure";
+TbMsg[3]="This commad has been successfully modified";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/programaciones_eng.js b/admin/WebConsole/idiomas/javascripts/eng/programaciones_eng.js
new file mode 100644
index 00000000..35955178
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/programaciones_eng.js
@@ -0,0 +1,21 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: programaciones_eng.js
+// Idioma: Ingls
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIN: Debe elegir algn ao";
+TbMsg[1]="ATENCIN: Debe elegir algn mes";
+TbMsg[2]="ATENCIN: Debe elegir algn da de la semana, alguna semana o algn da del mes";
+TbMsg[3]="ATENCIN: Debe elegir algn da del mes";
+TbMsg[4]="ATENCIN: Debe elegir alguna hora";
+TbMsg[5]="ATENCIN: Debe introducir la descripcin del bloque de programacion";
+TbMsg[6]="ATENCIN: Debe introducir los minutos entre los valores 0 y 59";
+TbMsg[7]="ATENCIN: Debe introducir los segundos entre los valores 0 y 59";
+TbMsg[8]="ATENCIN: Debe insertar algn bloque para poder suspender temporalmente la programacin de todos ellos";
+TbMsg[9]="La programacin se ha suspendido temporalmente con xito";
+TbMsg[10]="La programacin se ha activado de nuevo con xito";
+TbMsg[11]="El bloque de programacin se ha registrado correctamente";
+TbMsg[12]="El bloque de programacin se ha modificado correctamente";
+TbMsg[13]="El bloque de programacin se ha eliminado correctamente";
+TbMsg[14]="No existe ningn bloque seleccionado";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js
new file mode 100644
index 00000000..d49c7db6
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_aulas_eng.js
@@ -0,0 +1,11 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_aulas_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this lab";
+TbMsg[1]="You must introduce a number of places for this lab";
+TbMsg[2]="WARNING.- This lab contain others groups or labs. If you remove it, you will also remove all these. Are you sure ?";
+TbMsg[3]="Time for begining of reserves periode must be smaller than final time";
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_centros_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_centros_eng.js
new file mode 100644
index 00000000..06663364
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_centros_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_usuarios_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this Organizing Unit";
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentehardwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentehardwares_eng.js
new file mode 100644
index 00000000..4ee13c51
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentehardwares_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_componentehardwares_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this hardware component ";
+TbMsg[1]="You must introduce a hardware type for this component"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentesoftwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentesoftwares_eng.js
new file mode 100644
index 00000000..faf928ba
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_componentesoftwares_eng.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_componentesoftwares_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this software component ";
+TbMsg[1]="You must introduce a software type for this component";
+TbMsg[2]="You must introduce an operating system name for this component"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_entidades_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_entidades_eng.js
new file mode 100644
index 00000000..9bf4e4b1
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_entidades_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_usuarios_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this Entity";
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_grupos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_grupos_eng.js
new file mode 100644
index 00000000..791611bf
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_grupos_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_grupos_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this group";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_imagenes_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_imagenes_eng.js
new file mode 100644
index 00000000..2f5301dc
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_imagenes_eng.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_imagenes_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this image";
+TbMsg[1]="The image must contain at least some of a software profile";
+TbMsg[2]="WARNING: There are computers with this image in some of their partitions. Are you sure ?";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js
new file mode 100644
index 00000000..22f45bae
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_menus_eng.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_menus_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this menu";
+TbMsg[1]="WARNING: There are computers managed by this menu. You can't remove them until you change menu to this computers";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_ordenadores_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_ordenadores_eng.js
new file mode 100644
index 00000000..f255316b
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_ordenadores_eng.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_ordenadores_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a computer name";
+TbMsg[1]="You must introduce an IP Address";
+TbMsg[2]="You must introduce a MAC Address";
+TbMsg[3]="You must link this computer with some of a hardware profile";
+TbMsg[4]="You must introduce a DHCP server";
+TbMsg[5]="You must introduce a OpenGnsys server"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilhardwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilhardwares_eng.js
new file mode 100644
index 00000000..25ee5642
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilhardwares_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_perfilhardwares_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this hardware profile";
+TbMsg[1]="WARNING: There are computers with this profile. You can't remove them until you change hardware profile to this computers";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilsoftwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilsoftwares_eng.js
new file mode 100644
index 00000000..712f263b
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_perfilsoftwares_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_perfilsoftwares_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this software profile";
+TbMsg[1]="WARNING: There are images with this profile. You can't remove them until you change software profile to this images";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_procedimientos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_procedimientos_eng.js
new file mode 100644
index 00000000..03c1d5d7
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_procedimientos_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_procedimientos_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this procedure";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_reservas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_reservas_eng.js
new file mode 100644
index 00000000..c8b904a8
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_reservas_eng.js
@@ -0,0 +1,11 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_imagenes_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this reserva";
+TbMsg[1]="The image must contain at least some of a petitioner";
+TbMsg[2]="You must reserve at least a Lab";
+TbMsg[3]="You must to specify some state from this reserve";
+TbMsg[4]="WARNING.- You has specified time for previous action from this reserve Are you sure ?"
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_softincrementales_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_softincrementales_eng.js
new file mode 100644
index 00000000..e97e500c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_softincrementales_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_softincrementales_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this incremental software";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_tareas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_tareas_eng.js
new file mode 100644
index 00000000..eede2409
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_tareas_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_tareas_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this task";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_tipohardwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_tipohardwares_eng.js
new file mode 100644
index 00000000..2cef3703
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_tipohardwares_eng.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_tipohardwares_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this hardware type ";
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_trabajos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_trabajos_eng.js
new file mode 100644
index 00000000..f90396e0
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_trabajos_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_trabajos_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this job";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_universidades_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_universidades_eng.js
new file mode 100644
index 00000000..7477ed4b
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_universidades_eng.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_universidades_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce a name for this University";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/propiedades_usuarios_eng.js b/admin/WebConsole/idiomas/javascripts/eng/propiedades_usuarios_eng.js
new file mode 100644
index 00000000..9315b21e
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/propiedades_usuarios_eng.js
@@ -0,0 +1,11 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_usuarios_eng.js
+// Idioma: Ings
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="You must introduce an user";
+TbMsg[1]="You must introduce a password for this user";
+TbMsg[2]="You must introduce a complete name";
+TbMsg[3]="You must introduce an organizing unit for this user";
+TbMsg[4]="You must introduce a language";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/reservas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/reservas_eng.js
new file mode 100644
index 00000000..890e7394
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/reservas_eng.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: reservas.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/eng/softwares_eng.js b/admin/WebConsole/idiomas/javascripts/eng/softwares_eng.js
new file mode 100644
index 00000000..1f399ec5
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/softwares_eng.js
@@ -0,0 +1,6 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: softwares.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
diff --git a/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js b/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js
new file mode 100644
index 00000000..d5cfa10d
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/tareascomandos_eng.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: tareascomandos_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="WARNING.- This command will be excluded from task. Are you sure ?";
+TbMsg[1]="WARNING: You must introduce an order number";
+TbMsg[2]="This command has been successfully excluded from this task";
+TbMsg[3]="This commad has been successfully modified";
diff --git a/admin/WebConsole/idiomas/javascripts/eng/trabajostareas_eng.js b/admin/WebConsole/idiomas/javascripts/eng/trabajostareas_eng.js
new file mode 100644
index 00000000..dc334d71
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/eng/trabajostareas_eng.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: trabajostareas_eng.js
+// Idioma: Ings
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="This task has been successfully included in this job";
+TbMsg[1]="WARNING: You must introduce an order number";
+TbMsg[2]="This task has been successfully excluded from this job";
+TbMsg[3]="This task has been successfully modified";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/acciones_esp.js b/admin/WebConsole/idiomas/javascripts/esp/acciones_esp.js
new file mode 100644
index 00000000..a83aa52b
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/acciones_esp.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: acciones_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.- La Tarea será ejecutada. ¿ Está seguro ?";
+TbMsg[1]="ATENCIÓN.- Este Trabajo será ejecutado. ¿ Está seguro ?";
+TbMsg[2]="La Tarea ha sido ejecutada correctamente";
+TbMsg[3]="Este Trabajo ha sido iniciado correctamente";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/accionmenu_esp.js b/admin/WebConsole/idiomas/javascripts/esp/accionmenu_esp.js
new file mode 100644
index 00000000..ce8b69e0
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/accionmenu_esp.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: accionmenu_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN: Debe introducir la descripción de litem";
+TbMsg[1]=" ATENCIÓN: Debe introducir un número de orden";
+TbMsg[2]="Este item ha sido incluido correctamente en el menú";
+TbMsg[3]="El proceso se ha ejecutado correctamente";
+
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/administradores_centros_esp.js b/admin/WebConsole/idiomas/javascripts/esp/administradores_centros_esp.js
new file mode 100644
index 00000000..d1c004c4
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/administradores_centros_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_soft_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Este Administrador ha sido incluido en esta Unidad Organizativa correctamente";
+TbMsg[1]="Este Administrador ha sido excluido correctamente de esta Unidad Organizativa";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/administradores_usuarios_esp.js b/admin/WebConsole/idiomas/javascripts/esp/administradores_usuarios_esp.js
new file mode 100644
index 00000000..ae2cbd50
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/administradores_usuarios_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_soft_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Esta Unidad Organizativa ha sido asignado al Usuario correctamente";
+TbMsg[1]="Esta Unidad Organizativa ha sido excluido correctamente de este Usuario";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/aulas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/aulas_esp.js
new file mode 100644
index 00000000..99b954fd
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/aulas_esp.js
@@ -0,0 +1,19 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: aulas_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="La plantilla de ordenador ha sido registrada correctamente y los ordenadores de este aula han sido actualizados con dicha plantilla";
+TbMsg[1]=" ATENCIÓN: Este ámbito será refrescado. ¿ Está seguro ?";
+TbMsg[2]="";
+TbMsg[3]="ATENCIÓN: Los items de menús de este ámbito serán renovados. ¿ Está seguro ?";
+TbMsg[4]=" ATENCIÓN: Este ámbito será conmutado. ¿ Está seguro ?";
+TbMsg[5]=" ATENCIÓN: La consola remota ya está activada para este ámbito. Haga el seguimiento en la propia pantalla de comandos/scripts";
+TbMsg[6]=" ATENCIÓN: Debe seleccionar la opción 'Consola remota' previamente";
+TbMsg[7]="La petición de Actualización se ha enviado con éxito";
+TbMsg[8]="Ha ocurrido algún problema con la actualización solicitada";
+TbMsg[9]="La petición de Conmutar se ha enviado con éxito";
+TbMsg[10]="Ha ocurrido algún problema con la conmutación solicitada";
+TbMsg[11]="La petición de Sondeo se ha enviado con éxito";
+TbMsg[12]="Ha ocurrido algún problema con sondeo solicitado";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/colasacciones_esp.js b/admin/WebConsole/idiomas/javascripts/esp/colasacciones_esp.js
new file mode 100644
index 00000000..2ef62900
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/colasacciones_esp.js
@@ -0,0 +1,17 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: colasacciones_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.-Ha ocurrido algún error en el proceso realizado";
+TbMsg[1]="ATENCIÓN.-Se van a eliminar todas las acciones que se han seleccionado. ¿Está seguro de querer hacerlo?";
+TbMsg[2]="ATENCIÓN.-Se van a reiniciar acciones que están actualmente finalizadas. ¿Está seguro de querer hacerlo?";
+TbMsg[3]="ATENCIÓN.-Se van a detener acciones que están actualmente activas. ¿Está seguro de querer hacerlo?";
+TbMsg[4]="ATENCIÓN.-Se van a reanudar acciones que están actualmente paradas. ¿Está seguro de querer hacerlo?";
+TbMsg[5]="ATENCIÓN.-Van a finalizar sin errores las acciones que están actualmente activas. ¿Está seguro de querer hacerlo?";
+TbMsg[6]="ATENCIÓN.-Van a finalizar con errores las acciones que están actualmente activas. ¿Está seguro de querer hacerlo?";
+TbMsg[7]="";
+TbMsg[8]="";
+TbMsg[9]="";
+TbMsg[10]="La operación se ha procesado con éxito"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js
new file mode 100644
index 00000000..0c7c5904
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/comunescomandos_esp.js
@@ -0,0 +1,14 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: comunescomandos_esp.js (Común a todos los comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+CTbMsg=new Array;
+CTbMsg[0]="ATENCIÓN.- Acción cancelada, puede volver en cualquier momento a esta pantalla para ejecutar este Comando";
+CTbMsg[1]="ATENCIÓN: Ha ocurrido un error al intentar enviar este Comando";
+CTbMsg[2]="El comando se ha enviado correctamente";
+CTbMsg[3]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como un Procedimiento";
+CTbMsg[4]="El comando se ha registrado correctamente como un Procedimineto";
+CTbMsg[5]="ATENCIÓN: Ha ocurrido un error al intentar registrar este Comando como una Tarea";
+CTbMsg[6]="El comando se ha registrado correctamente como una Tarea";
+CTbMsg[7]="ATENCIÓN: Ha ocurrido un error al intentar registrar la acción de Comando";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js
new file mode 100644
index 00000000..b4b05984
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/configurar_esp.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: configurar_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN: Partición duplicada, ya existe una partición con ese número";
+TbMsg[1]="El número de la partición debe ser mayor de 0";
+TbMsg[2]="El tipo de partición no se ha especificado";
+TbMsg[3]="El tamaño de la partición debe ser mayor que cero";
+TbMsg[4]="ATENCIÓN: Se va a eliminar esta partición ¿ Está seguro ?";
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagen_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagen_esp.js
new file mode 100644
index 00000000..f1124410
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearimagen_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearperfilsoftware_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";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearperfilsoftware_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearperfilsoftware_esp.js
new file mode 100644
index 00000000..48d4a7f1
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearperfilsoftware_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearperfilsoftware_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe elegir un perfil software para esta partición";
+TbMsg[1]="Debe elegir al menos una partición y un perfil software";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js
new file mode 100644
index 00000000..bfcbf99a
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/crearsoftincremental_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: crearsoftincremental_esp.js
+// 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";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js
new file mode 100644
index 00000000..80da1b67
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/ejecutarscripts_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: ejecutarscripts_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="";
+TbMsg[1]="El script debe tener alguna linea de código";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/iniciarsesion_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/iniciarsesion_esp.js
new file mode 100644
index 00000000..2708a5fe
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/iniciarsesion_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: iniciarsesion_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="";
+TbMsg[1]="Debe elegir al menos una partición";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/inventariosoftware_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/inventariosoftware_esp.js
new file mode 100644
index 00000000..2708a5fe
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/inventariosoftware_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: iniciarsesion_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="";
+TbMsg[1]="Debe elegir al menos una partición";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/particionaryformatear_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/particionaryformatear_esp.js
new file mode 100644
index 00000000..7f3f529c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/particionaryformatear_esp.js
@@ -0,0 +1,15 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: particionaryformatear_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN: No ha efectuado ningún cambio en la tabla de particiones, por tanto, no se ejecutará ninguna acción";
+TbMsg[1]="ATENCIÓN: Hay particiones con el mismo número, debe seleccionar otra o eliminarla haciendo click en la última columna";
+TbMsg[2]="ATENCIÓN: El tamaño de la partición debe ser mayor que cero";
+TbMsg[3]="ATENCIÓN: Las particiones deben ser correlativas y no debe haber espacios entre ellas";
+TbMsg[4]="ATENCIÓN: La partición está vacia , por tanto, no se ejecutará ninguna acción sobre ella";
+TbMsg[5]="ATENCIÓN: Esta partición debe ser formateada porque ha cambiado su sistema operativo o el tamaño de alguna partición";
+TbMsg[6]="ATENCIÓN: No tiene sentido ocultar una partición que no sea un sistema Windows";
+TbMsg[7]="ATENCIÓN: No tiene sentido mostrar una partición que no sea un sistema Windows";
+TbMsg[8]="No se pueden añadir más particiones"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js
new file mode 100644
index 00000000..ec7ef847
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comandos/restaurarimagen_esp.js
@@ -0,0 +1,13 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascripts: configurar_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]="ATENCIÓN: Ha selecccionado una imagen de Sistema Operativo distinto al que tiene instalado la actual partición ";
+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/comunes_esp.js b/admin/WebConsole/idiomas/javascripts/esp/comunes_esp.js
new file mode 100644
index 00000000..2e8c3611
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/comunes_esp.js
@@ -0,0 +1,14 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: comunes_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+CTbMsg=new Array;
+CTbMsg[0]="ATENCIÓN.- Este grupo contiene otros grupos o elementos. Si lo elimina, eliminará también éstos. ¿ Está seguro ?";
+CTbMsg[1]="ATENCIÓN.- Este grupo será eliminado. ¿ Está seguro ?";
+CTbMsg[2]="Este grupo ha sido modificado correctamente";
+CTbMsg[3]="Este grupo ha sido eliminado correctamente";
+CTbMsg[4]="El registro ha sido insertado correctamente";
+CTbMsg[5]="El registro ha sido modificado correctamente";
+CTbMsg[6]="El registro ha sido eliminado correctamente";
+CTbMsg[7]="ATENCIÓN: No hay ningún elemento pendiente de ser movido a este grupo";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/consolaremota_esp.js b/admin/WebConsole/idiomas/javascripts/esp/consolaremota_esp.js
new file mode 100644
index 00000000..c80c8236
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/consolaremota_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: consolaremota_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.-Ha ocurrido algún error en la petición de consola remota";
+TbMsg[1]="La petición de consola remota se ha enviado con éxito";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/ejecutaracciones_esp.js b/admin/WebConsole/idiomas/javascripts/esp/ejecutaracciones_esp.js
new file mode 100644
index 00000000..5a655679
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/ejecutaracciones_esp.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: ejecutarprocedimientos_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.- El Procedimiento será ejecutado aplicándolo a este ámbito. ¿ Está seguro ?";
+TbMsg[1]="El Procedimiento ha sido gestionado correctamente para este ámbito";
+TbMsg[2]="ATENCIÓN.- El Procedimiento se convertirá en procedimiento de inicio (Autoexec) para todos los ordenadores de este ámbito. ¿ Está seguro ?";
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/hardwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/hardwares_esp.js
new file mode 100644
index 00000000..b184c520
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/hardwares_esp.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: hardwares.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/imagenes_esp.js b/admin/WebConsole/idiomas/javascripts/esp/imagenes_esp.js
new file mode 100644
index 00000000..4be8b09c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/imagenes_esp.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: imagenes.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/imagenincremental_esp.js b/admin/WebConsole/idiomas/javascripts/esp/imagenincremental_esp.js
new file mode 100644
index 00000000..50119ba0
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/imagenincremental_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: incrementalcomponente_soft_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Este software incremental ha sido incluido en esta imagen correctamente";
+TbMsg[1]="Este software incremental ha sido excluido correctamente de esta imagen";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/inclusionacciones_esp.js b/admin/WebConsole/idiomas/javascripts/esp/inclusionacciones_esp.js
new file mode 100644
index 00000000..98239c6e
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/inclusionacciones_esp.js
@@ -0,0 +1,10 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: accionmenu_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="";
+TbMsg[1]=" ATENCIÓN: Debe introducir un número de orden correcto";
+TbMsg[2]="El proceso se ha ejecutado correctamente";
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/incrementalcomponente_soft_esp.js b/admin/WebConsole/idiomas/javascripts/esp/incrementalcomponente_soft_esp.js
new file mode 100644
index 00000000..982a8b4f
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/incrementalcomponente_soft_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: incrementalcomponente_soft_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Este componente software ha sido incluido en este software incremental correctamente";
+TbMsg[1]="Este componente software ha sido excluido correctamente de este software incremental";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/informacion_menus_esp.js b/admin/WebConsole/idiomas/javascripts/esp/informacion_menus_esp.js
new file mode 100644
index 00000000..3b4619ef
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/informacion_menus_esp.js
@@ -0,0 +1,9 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: informacion_menus_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.- Este item será eliminado. ¿ Está seguro ?";
+TbMsg[1]="El item ha sido excluido correctamente de este menú";
+TbMsg[2]="El item ha sido modificado correctamente";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/menus_esp.js b/admin/WebConsole/idiomas/javascripts/esp/menus_esp.js
new file mode 100644
index 00000000..7faf2e7a
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/menus_esp.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: menus_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_hard_esp.js b/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_hard_esp.js
new file mode 100644
index 00000000..c9fc9224
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_hard_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_hard_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Este componente hardware ha sido incluido correctamente en este perfil";
+TbMsg[1]="Este componente hardware ha sido excluido correctamente de este perfil";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_soft_esp.js b/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_soft_esp.js
new file mode 100644
index 00000000..2785c77c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/perfilcomponente_soft_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: perfilcomponente_soft_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Este componente software ha sido incluido en este perfil correctamente";
+TbMsg[1]="Este componente software ha sido excluido correctamente de este perfil";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/procedimientoscomandos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/procedimientoscomandos_esp.js
new file mode 100644
index 00000000..a8d50f76
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/procedimientoscomandos_esp.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: procedimientoscomandos_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.- El comando será excluido de este procedimiento. ¿ Está seguro ?";
+TbMsg[1]="ATENCIÓN: Debe introducir un número de orden";
+TbMsg[2]="El comando ha sido excluido correctamente de este procedimiento";
+TbMsg[3]="El comando ha sido modificado correctamente";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/programaciones_esp.js b/admin/WebConsole/idiomas/javascripts/esp/programaciones_esp.js
new file mode 100644
index 00000000..a6dea0b4
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/programaciones_esp.js
@@ -0,0 +1,21 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: programaciones_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN: Debe elegir algún año";
+TbMsg[1]="ATENCIÓN: Debe elegir algún mes";
+TbMsg[2]="ATENCIÓN: Debe elegir algún día de la semana, alguna semana o algún día del mes";
+TbMsg[3]="ATENCIÓN: Debe elegir algún día del mes";
+TbMsg[4]="ATENCIÓN: Debe elegir alguna hora";
+TbMsg[5]="ATENCIÓN: Debe introducir la descripción del bloque de programacion";
+TbMsg[6]="ATENCIÓN: Debe introducir los minutos entre los valores 0 y 59";
+TbMsg[7]="ATENCIÓN: Debe introducir los segundos entre los valores 0 y 59";
+TbMsg[8]="ATENCIÓN: Debe insertar algún bloque para poder suspender temporalmente la programación de todos ellos";
+TbMsg[9]="La programación se ha suspendido temporalmente con éxito";
+TbMsg[10]="La programación se ha activado de nuevo con éxito";
+TbMsg[11]="El bloque de programación se ha registrado correctamente";
+TbMsg[12]="El bloque de programación se ha modificado correctamente";
+TbMsg[13]="El bloque de programación se ha eliminado correctamente";
+TbMsg[14]="No existe ningún bloque seleccionado";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_aulas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_aulas_esp.js
new file mode 100644
index 00000000..4c4dcaea
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_aulas_esp.js
@@ -0,0 +1,11 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_aulas_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este aula";
+TbMsg[1]="Debe introducir un número de puestos para este aula";
+TbMsg[2]="ATENCIÓN.- Este aula contiene grupos de ordenadores u ordenadores. Si los elimina, eliminará también éstos. ¿ Está seguro ?";
+TbMsg[3]="La hora de comienzo del intervalo de reservas debe ser menor que la hora final";
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_centros_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_centros_esp.js
new file mode 100644
index 00000000..b2a3412c
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_centros_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_centros_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Nombre de la Unidad Organizativa es un dato obligatorio";
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentehardwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentehardwares_esp.js
new file mode 100644
index 00000000..6fe9a3b3
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentehardwares_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_componentehardwares_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este componente hardware ";
+TbMsg[1]="Debe introducir un tipo de hardware para este componente"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentesoftwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentesoftwares_esp.js
new file mode 100644
index 00000000..8331cfd4
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_componentesoftwares_esp.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_componentesoftwares_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este componente software";
+TbMsg[1]="Debe introducir un tipo de software para este componente";
+TbMsg[2]="Debe introducir un nombre de sistema operativo para este componente"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_entidades_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_entidades_esp.js
new file mode 100644
index 00000000..5830d3fb
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_entidades_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_usuarios_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Nombre de la entidad es un dato obligatorio";
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_grupos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_grupos_esp.js
new file mode 100644
index 00000000..b20f4e50
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_grupos_esp.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_grupos_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este grupo";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js
new file mode 100644
index 00000000..5e30cfe2
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_imagenes_esp.js
@@ -0,0 +1,10 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_imagenes_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+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]="Debe introducir un nombre canónico para esta imagen";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js
new file mode 100644
index 00000000..5aafbe88
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_menus_esp.js
@@ -0,0 +1,8 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_menus_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este menú";
+TbMsg[1]="ATENCIÓN: Hay ordenadores con este menú. No puede darlo de baja hasta que cambie este dato en dichos ordenadores";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_ordenadores_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_ordenadores_esp.js
new file mode 100644
index 00000000..e27af69e
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_ordenadores_esp.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_ordenadores_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este ordenador";
+TbMsg[1]="Debe introducir una dirección IP";
+TbMsg[2]="Debe introducir a una dirección MAC";
+TbMsg[3]="";
+TbMsg[4]="";
+TbMsg[5]="Debe elegir un repositorio por defecto"; \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilhardwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilhardwares_esp.js
new file mode 100644
index 00000000..f0d1dba4
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilhardwares_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_perfilhardwares_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este perfil hardware";
+TbMsg[1]="ATENCIÓN: Hay ordenadores con este perfil hardware. No puede darlo de baja hasta que cambie este dato en dichos ordenadores";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilsoftwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilsoftwares_esp.js
new file mode 100644
index 00000000..9c42ffbb
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_perfilsoftwares_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_perfilsoftwares_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este perfil software";
+TbMsg[1]="ATENCIÓN: Hay imágenes con este perfil. No puede eliminarlo hasta que cambie este dato en dichas imágenes";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_procedimientos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_procedimientos_esp.js
new file mode 100644
index 00000000..b9a77fae
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_procedimientos_esp.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_procedimientos_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este procedimiento";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_repositorios_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_repositorios_esp.js
new file mode 100644
index 00000000..881a9860
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_repositorios_esp.js
@@ -0,0 +1,12 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_servidoresrembo_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este repositorio";
+TbMsg[1]="Debe introducir una dirección IP";
+TbMsg[2]="ATENCIÓN: Hay imágenes alojadas por este repositorio. ¿Está seguro de querer eliminarlo ?";
+TbMsg[3]="Debe introducir un puerto de comunicaciones para los clientes";
+TbMsg[4]="Debe introducir la ruta del directorio base del Repositorio";
+TbMsg[5]="Debe introducir la ruta del directorio donde están los archivos de configuración del PXE";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_reservas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_reservas_esp.js
new file mode 100644
index 00000000..896c52f7
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_reservas_esp.js
@@ -0,0 +1,11 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_imagenes_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para esta reserva";
+TbMsg[1]="La reserva debe contener al menos un solicitante";
+TbMsg[2]="Debe elegir un aula para esta reserva";
+TbMsg[3]="Debe especificar un estado para la reserva";
+TbMsg[4]="ATENCIÓN.- Ha especificado un tiempo para anticipar la acción previa a esta reserva ¿ Está seguro ?"
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_softincrementales_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_softincrementales_esp.js
new file mode 100644
index 00000000..b8127bea
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_softincrementales_esp.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_softincrementales_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este software incremental";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_tareas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_tareas_esp.js
new file mode 100644
index 00000000..77358d77
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_tareas_esp.js
@@ -0,0 +1,9 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_tareas_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para esta tarea";
+TbMsg[1]="Debe seleccionar un ámbito de aplicación para la tarea";
+TbMsg[2]="ATENCIÓN.- Si no selecciona ningún ámbito de aplicación no podrá incluir procedimientos en esta tarea. Sólo podra incluir otras tareas con sus propikos ámbitos de aplicación";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_tipohardwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_tipohardwares_esp.js
new file mode 100644
index 00000000..98aa0514
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_tipohardwares_esp.js
@@ -0,0 +1,8 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_tipohardwares_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este tipo de hardware ";
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_trabajos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_trabajos_esp.js
new file mode 100644
index 00000000..a4d1ab54
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_trabajos_esp.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_trabajos_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para este trabajo";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_universidades_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_universidades_esp.js
new file mode 100644
index 00000000..312fa248
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_universidades_esp.js
@@ -0,0 +1,7 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_universidades_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Debe introducir un nombre para esta Universidad";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/propiedades_usuarios_esp.js b/admin/WebConsole/idiomas/javascripts/esp/propiedades_usuarios_esp.js
new file mode 100644
index 00000000..d6a80576
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/propiedades_usuarios_esp.js
@@ -0,0 +1,12 @@
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas javascript: propiedades_usuarios_esp.js
+// Idioma: Español
+//________________________________________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="Usuario es un dato obligatorio";
+TbMsg[1]="Password es un dato obligatorio";
+TbMsg[2]="Nombre completo es un dato obligatorio";
+TbMsg[3]="Unidad organizativa es obligatoria para este usuario";
+TbMsg[4]="Idioma es un dato obligatorio";
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/javascripts/esp/reservas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/reservas_esp.js
new file mode 100644
index 00000000..3a8adf72
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/reservas_esp.js
@@ -0,0 +1,7 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: reservas.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+
diff --git a/admin/WebConsole/idiomas/javascripts/esp/softwares_esp.js b/admin/WebConsole/idiomas/javascripts/esp/softwares_esp.js
new file mode 100644
index 00000000..d8028b2b
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/softwares_esp.js
@@ -0,0 +1,6 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: softwares.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
diff --git a/admin/WebConsole/idiomas/javascripts/esp/tareascomandos_esp.js b/admin/WebConsole/idiomas/javascripts/esp/tareascomandos_esp.js
new file mode 100644
index 00000000..9e483095
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/tareascomandos_esp.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: tareascomandos_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="ATENCIÓN.- El comando será excluido de la tarea. ¿ Está seguro ?";
+TbMsg[1]="ATENCIÓN: Debe introducir un número de orden";
+TbMsg[2]="El comando ha sido excluido correctamente de esta tarea";
+TbMsg[3]="El comando ha sido modificado correctamente";
diff --git a/admin/WebConsole/idiomas/javascripts/esp/trabajostareas_esp.js b/admin/WebConsole/idiomas/javascripts/esp/trabajostareas_esp.js
new file mode 100644
index 00000000..1b593886
--- /dev/null
+++ b/admin/WebConsole/idiomas/javascripts/esp/trabajostareas_esp.js
@@ -0,0 +1,10 @@
+//____________________________________________________________________________
+//
+// Fichero de idiomas javascript: trabajostareas_esp.js
+// Idioma: Español
+//____________________________________________________________________________
+TbMsg=new Array;
+TbMsg[0]="La Tarea ha sido incluida correctamente en este trabajo";
+TbMsg[1]="ATENCIÓN: Debe introducir un número de orden";
+TbMsg[2]="La Tarea ha sido excluida correctamente de este trabajo";
+TbMsg[3]="La Tarea ha sido modificada correctamente";
diff --git a/admin/WebConsole/idiomas/php/cat/acciomenu_cat.txt b/admin/WebConsole/idiomas/php/cat/acciomenu_cat.txt
new file mode 100644
index 00000000..d603a34e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/acciomenu_cat.txt
@@ -0,0 +1,23 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: accionmenu_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items';
+ $TbMsg[1]='Gesti Items Menu';
+ $TbMsg[2]='Procediment';
+ $TbMsg[3]='Tasca';
+ $TbMsg[4]='Treballs';
+ $TbMsg[5]='Pblic';
+ $TbMsg[6]='Privat';
+ $TbMsg[7]='Items pblics ';
+ $TbMsg[8]='Items privats ';
+ $TbMsg[9]='Nom del Menu';
+ $TbMsg[10]='Tipus item';
+ $TbMsg[11]='Imatge del item';
+ $TbMsg[12]='Literal item';
+ $TbMsg[13]='Ord';
+ $TbMsg[14]='(*)Per a incloure alguna acci en aquest men deu fer click sobre la casella de verificaci corresponenet. Per a actualitzar fagi click sobre la imatge.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/accions_cat.txt b/admin/WebConsole/idiomas/php/cat/accions_cat.txt
new file mode 100644
index 00000000..56cc0e95
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/accions_cat.txt
@@ -0,0 +1,41 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: accions_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nou grup de procediments"';
+ $TbMsg[1]='"Definir nou procediment"';
+ $TbMsg[2]='"Col.locar procediment"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grup de procediments"';
+ $TbMsg[5]='"Gesti d'ordres"';
+ $TbMsg[6]='"Informaci Procediment"';
+ $TbMsg[7]='"Moure procediment"';
+ $TbMsg[8]='"Propietats"';
+ $TbMsg[9]='"Eliminar procediment"';
+ $TbMsg[10]='"Gesti de Mens"';
+ $TbMsg[11]='"Nou grup de tasques"';
+ $TbMsg[12]='"Definir nova tasca"';
+ $TbMsg[13]='"Col.locar tasca"';
+ $TbMsg[14]='"Eliminar grup de tasca"';
+ $TbMsg[15]='"Executar tasca"';
+ $TbMsg[16]='"Programacions"';
+ $TbMsg[17]='"Informaci Tasca"';
+ $TbMsg[18]='"Moure tasca"';
+ $TbMsg[19]='"Eliminar tasca"';
+ $TbMsg[20]='"Nou grup de treballs"';
+ $TbMsg[21]='"Definir nou treball"';
+ $TbMsg[22]='"Col.locar treball"';
+ $TbMsg[23]='"Eliminar grup de treballs"';
+ $TbMsg[24]='"Executar treball"';
+ $TbMsg[25]='"Gesti de tasques"';
+ $TbMsg[26]='"Informaci Treball"';
+ $TbMsg[27]='"Moure treball"';
+ $TbMsg[28]='"Eliminar treball"';
+ $TbMsg[29]='Procediments';
+ $TbMsg[30]='Ordres';
+ $TbMsg[31]='Tasques';
+ $TbMsg[32]='Treballs';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/actualitzar_cat.txt b/admin/WebConsole/idiomas/php/cat/actualitzar_cat.txt
new file mode 100644
index 00000000..3d1b08d8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/actualitzar_cat.txt
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: actualitzar_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Aquest mbit s'ha actualitzat correctament';
+ $TbMsg[1]='ATENCI: Ha hagut un problema al actualitzar l'mbit';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/administracio_cat.txt b/admin/WebConsole/idiomas/php/cat/administracio_cat.txt
new file mode 100644
index 00000000..164916ba
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/administracio_cat.txt
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: administraci_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Administraci"';
+ $TbMsg[1]='"Nou grup d'Entitats"';
+ $TbMsg[2]='"Nova Entitat"';
+ $TbMsg[3]='"Nou Superadministrador"';
+ $TbMsg[4]='"Propietats"';
+ $TbMsg[5]='"Eliminar"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grup d'Entitats"';
+ $TbMsg[8]='"Nova unitat organizativa"';
+ $TbMsg[9]='"Nou Administrador"';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/aules_cat.php b/admin/WebConsole/idiomas/php/cat/aules_cat.php
new file mode 100644
index 00000000..73e1e157
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/aules_cat.php
@@ -0,0 +1,46 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: aules_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nou grup d\'aules"';
+ $TbMsg[1]='"Estatus ordinadors"';
+ $TbMsg[2]='"Purgar"';
+ $TbMsg[3]='"Afegir nova aula"';
+ $TbMsg[4]='"Refrescar';
+ $TbMsg[5]='"Ordres"';
+ $TbMsg[6]='"Cua d\'accions"';
+ $TbMsg[7]='"Eliminar grup d\'aules"';
+ $TbMsg[8]='"Nou grup d\'ordinadors"';
+ $TbMsg[9]='"Afegir nou ordinador"';
+ $TbMsg[10]='"Configuraci"';
+ $TbMsg[11]='"Col.locar ordinador"';
+ $TbMsg[12]='"Ordinador Plantilla"';
+ $TbMsg[13]='"Propietats"';
+ $TbMsg[14]='"Eliminar aula"';
+ $TbMsg[15]='"Renombrar"';
+ $TbMsg[16]='"Eliminar grup d\'ordinadors"';
+ $TbMsg[17]='"Moure ordinador"';
+ $TbMsg[18]='"Eliminar ordinador"';
+ $TbMsg[19]='"Tasques"';
+ $TbMsg[20]='"Treballs"';
+ $TbMsg[21]='"Totes"';
+ $TbMsg[22]='Estatus ordinadors';
+ $TbMsg[23]='Aula d\'ordinadors';
+ $TbMsg[24]='mbit: Centres';
+ $TbMsg[25]='mbit: Grup d\'aules';
+ $TbMsg[26]='mbito: Grup d\'ordinadors';
+ $TbMsg[27]='"Incorporar ordinadores"';
+ $TbMsg[28]='"Procedimentss"';
+ $TbMsg[29]='"Reserves d\'aules"';
+ $TbMsg[30]='"Confirmadas"';
+ $TbMsg[31]='"Pendents"';
+ $TbMsg[32]='"Denegades"';
+ $TbMsg[33]='"Commutar"';
+ $TbMsg[34]='"Programaci reserves"';
+ $TbMsg[35]='"Operadors"';
+ $TbMsg[36]='"Eliminar Operador"';
+ $TbMsg[37]='"Afegir nou Operador"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/barramenu_cat.txt b/admin/WebConsole/idiomas/php/cat/barramenu_cat.txt
new file mode 100644
index 00000000..74d103d5
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/barramenu_cat.txt
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: barramenu_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Aules';
+ $TbMsg[1]='Accions';
+ $TbMsg[2]='Imtges';
+ $TbMsg[3]='Hardware';
+ $TbMsg[4]='Software';
+ $TbMsg[5]='Servidors';
+ $TbMsg[6]='Mens';
+ $TbMsg[7]='Reserves';
+ $TbMsg[8]='Administraci';
+ $TbMsg[9]='Iconos';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/configuracioaula_cat.txt b/admin/WebConsole/idiomas/php/cat/configuracioaula_cat.txt
new file mode 100644
index 00000000..c2390763
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/configuracioaula_cat.txt
@@ -0,0 +1,23 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: configuracionaula_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]='Configuraci Ordinadors';
+$TbMsg[1]='Caractersticas del Aula';
+$TbMsg[2]="Nombre Aula";
+$TbMsg[3]="Ubicaci";
+$TbMsg[4]="Can";
+$TbMsg[5]="Pissarra";
+$TbMsg[6]="LLocs";
+$TbMsg[7]="Url Imatge";
+$TbMsg[8]="Comentaris";
+$TbMsg[9]='Dades de configuracio';
+$TbMsg[10]='Partici';
+$TbMsg[11]='Nombre S.O.';
+$TbMsg[12]='Tamany';
+$TbMsg[13]='Ordinadors';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/configuraciogrupordinador_cat.txt b/admin/WebConsole/idiomas/php/cat/configuraciogrupordinador_cat.txt
new file mode 100644
index 00000000..b68d12cc
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/configuraciogrupordinador_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: configuraciongrupoordenador_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]='Configuraci Ordinadors';
+$TbMsg[1]='Caracterstiques del Grup';
+$TbMsg[2]="Nom del Grup";
+$TbMsg[3]='Dades de la configuraci';
+$TbMsg[4]='Partici';
+$TbMsg[5]='Nom S.O.';
+$TbMsg[6]='Tamany';
+$TbMsg[7]='Ordenidors';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/configuracioordinador_cat.txt b/admin/WebConsole/idiomas/php/cat/configuracioordinador_cat.txt
new file mode 100644
index 00000000..60573374
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/configuracioordinador_cat.txt
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: configuracionordenador_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Configuracions d'ordinadors';
+ $TbMsg[1]='Caracterstiques del ordinador';
+ $TbMsg[2]='Nombre';
+ $TbMsg[3]='Direcci IP';
+ $TbMsg[4]='Direcci MAC';
+ $TbMsg[5]='Perfil Hardware';
+ $TbMsg[6]='Particin';
+ $TbMsg[7]='Nombre del Sistema';
+ $TbMsg[8]='Tamany';
+ $TbMsg[9]='Dades de configuraci';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/conmutar_cat.txt b/admin/WebConsole/idiomas/php/cat/conmutar_cat.txt
new file mode 100644
index 00000000..73d998ee
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/conmutar_cat.txt
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: conmutar_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Aquest mbit ha conmutat correctament';
+ $TbMsg[1]='ATENCI: Ha hagut algn problema al conmutar L'mbit';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/cuasaccions_cat.txt b/admin/WebConsole/idiomas/php/cat/cuasaccions_cat.txt
new file mode 100644
index 00000000..ec379419
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/cuasaccions_cat.txt
@@ -0,0 +1,79 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: colasacciones_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+
+// Literals dels tipus d'accions
+$LITEJECUCION_COMANDO="Ordres";
+$LITEJECUCION_PROCEDIMIENTO="Procediments";
+$LITEJECUCION_TAREA="Tasques";
+$LITEJECUCION_TRABAJO="Treballs";
+
+$LITACCION_EXITOSA='Finalitzada correctament'; // Literal Finalitzada exitosament
+$LITACCION_FALLIDA='Finalitzada amb errors'; // Literal Finalitzada amb errors
+$LITACCION_TERMINADA='Finalitzada manualment'; //Literal Finalitzada manualment amb indicaci d'exit
+$LITACCION_ABORTADA='Cancelada manualment'; // Literal Finalitzada manualment amb indicaci d'errors
+$LITACCION_SINERRORES='Activa sense errors'; // Literal Activa i sense cap error
+$LITACCION_CONERRORES='Activa amb errors'; // Literal Activa i amb algn error
+
+$LITACCION_DETENIDA='Parada'; // Literal acci momentniament parada
+$LITACCION_INICIADA='Activa'; // Literal acci activa
+$LITACCION_FINALIZADA='Finalitzada'; // Literal acci finalitzada
+
+$TbMsg=array();
+ $TbMsg[0]='Cua d'accions';
+ $TbMsg[1]='Opcions de bsqueda';
+ $TbMsg[2]='Accions';
+ $TbMsg[3]='Resultats';
+ $TbMsg[4]='Estats';
+ $TbMsg[5]='Percentatge desde';
+ $TbMsg[6]='fins';
+ $TbMsg[7]='Data inici';
+ $TbMsg[8]='Data final';
+ $TbMsg[9]='Hora inici';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='mbit';
+ $TbMsg[12]='Eliminar';
+ $TbMsg[13]='Reiniciar';
+ $TbMsg[14]='Parar';
+ $TbMsg[15]='Seguir';
+ $TbMsg[16]='Cancel.lar';
+ $TbMsg[17]='Finalitzar';
+
+ $TbMsg[18]='Acci';
+ $TbMsg[19]='Data final';
+ $TbMsg[20]='Hora final';
+ $TbMsg[21]='Data inici';
+ $TbMsg[22]='Hora inici';
+ $TbMsg[23]='Nom';
+
+ $TbMsg[24]='Centres';
+ $TbMsg[25]='Grup d'aules';
+ $TbMsg[26]='Aules';
+ $TbMsg[27]='Grup d'ordinadors';
+ $TbMsg[28]='Ordinadors';
+
+ $TbMsg[30]='Ordres';
+ $TbMsg[31]='Tasques';
+ $TbMsg[32]='Treballs';
+
+ $TbMsg[41]='"Filtre Acci"';
+ $TbMsg[42]='"Filtre mbit"';
+ $TbMsg[43]='"Eliminar filtre"';
+ $TbMsg[44]='"Modificar Acci"';
+ $TbMsg[45]='"Reiniciar"';
+ $TbMsg[46]='"Eliminar"';
+ $TbMsg[47]='"Tasca pare"';
+ $TbMsg[48]='"Treball paree"';
+ $TbMsg[49]='"Veure Ordres"';
+ $TbMsg[50]='"Veure tasques"';
+ $TbMsg[51]='"Parar"';
+ $TbMsg[52]='"Seguir"';
+ $TbMsg[53]='"Cancelar"';
+ $TbMsg[54]='"Finalitzar"';
+ $TbMsg[55]='"Finalitzar sense errors"';
+ $TbMsg[56]='"Finalitzar amb errors"';
+ $TbMsg[57]='Informaci';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/cuasreserves_cat.txt b/admin/WebConsole/idiomas/php/cat/cuasreserves_cat.txt
new file mode 100644
index 00000000..3116cdaf
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/cuasreserves_cat.txt
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: colasreservas_cat.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+
+// Literals dels tipus de reserves
+$LITRESERVA_PENDENT="Pendents";
+$LITRESERVA_CONFIRMADA="Confirmades";
+$LITRESERVA_DENEGADA="Denegades";
+
+$RESERVA_PARADA=1; // reserva momentniament aturada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspesa'; // Literal reserva momentniament aturada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reserves d'aules';
+ $TbMsg[1]='Opcions de bsqueda';
+ $TbMsg[2]='Tipus';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estats';
+ $TbMsg[5]='Percentatge desde';
+ $TbMsg[6]='Percentatge fins ';
+ $TbMsg[7]='Data inici';
+ $TbMsg[8]='Data final';
+ $TbMsg[9]='Hora inici';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='mbit';
+
+ $TbMsg[12]='Centres';
+ $TbMsg[13]='Grup d'aules';
+ $TbMsg[14]='Aules';
+
+ $TbMsg[15]='Any';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Da';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupaci';
+ $TbMsg[20]='Imatge asociada';
+ $TbMsg[21]='Descripci';
+
+ $TbMsg[22]='Programaci reserves';
+ $TbMsg[23]='(Sense especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Solicitant';
+ $TbMsg[26]="Anticipaci previa";
+ $TbMsg[27]="(Sense acci previa)";
+ $TbMsg[28]="Tasca previa";
+ $TbMsg[29]="Treball previ";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/executarprocediments_cat.php b/admin/WebConsole/idiomas/php/cat/executarprocediments_cat.php
new file mode 100644
index 00000000..46a60e41
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/executarprocediments_cat.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: acciones_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centres';
+ $TbMsg[1]='Grup d\'aules';
+ $TbMsg[2]='Aules';
+ $TbMsg[3]='Grup d\'ordinadors';
+ $TbMsg[4]='Ordinadors';
+ $TbMsg[5]='Execuci de procediments';
+ $TbMsg[6]='mbit';
+ $TbMsg[7]='Procediments';
+ $TbMsg[8]='Procedimients';
+ $TbMsg[9]='"Executar procediment"';
+ ?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/hardwares_cat.txt b/admin/WebConsole/idiomas/php/cat/hardwares_cat.txt
new file mode 100644
index 00000000..2395dea3
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/hardwares_cat.txt
@@ -0,0 +1,30 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: hardwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Definir nou tipus hardware"';
+ $TbMsg[1]='"Propietats"';
+ $TbMsg[2]='"Eliminar tipus de hardware"';
+ $TbMsg[3]='"Nou grup de components"';
+ $TbMsg[4]='"Definir nou component"';
+ $TbMsg[5]='"Col.locar component"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grup de components"';
+ $TbMsg[8]='"Moure component"';
+ $TbMsg[9]='"Eliminar component"';
+ $TbMsg[10]='"Nou grup de perfils"';
+ $TbMsg[11]='"Definir nou perfil"';
+ $TbMsg[12]='"Col.locar perfil"';
+ $TbMsg[13]='"Eliminar grup de perfils"';
+ $TbMsg[14]='"Gesti Components"';
+ $TbMsg[15]='"Informaci Perfil"';
+ $TbMsg[16]='"Moure perfil"';
+ $TbMsg[17]='"Eliminar perfil hardware"';
+ $TbMsg[18]='"Tipus de hardware"';
+ $TbMsg[19]='"Components hardwares"';
+ $TbMsg[20]='"Perfils hardwares"';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/imatgeincremental_cat.txt b/admin/WebConsole/idiomas/php/cat/imatgeincremental_cat.txt
new file mode 100644
index 00000000..2b970d06
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/imatgeincremental_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: imagenincremental_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Imtges';
+ $TbMsg[1]='Gesti de software incremental';
+ $TbMsg[2]='Imatge';
+ $TbMsg[3]='Nom del software incremental';
+ $TbMsg[4]='(*)Per a incloure algun software incremental en aquesta imatge deu fer click sobre la casella de verificaci corresponent.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/imatgens_cat.txt b/admin/WebConsole/idiomas/php/cat/imatgens_cat.txt
new file mode 100644
index 00000000..36fb497b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/imatgens_cat.txt
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxcher d'idiomes php: imagenes_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nou grup d'imtges"';
+ $TbMsg[1]='"Definir nova imatge"';
+ $TbMsg[2]='"Col.locar imatge"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grup d'imtges"';
+ $TbMsg[5]='"Imatge informaci"';
+ $TbMsg[6]='"Moure imatge"';
+ $TbMsg[7]='"Propietats"';
+ $TbMsg[8]='"Eliminar Imatge"';
+ $TbMsg[9]='"Imtges"';
+ $TbMsg[10]='"Gesti incrementals"';
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/incorporaordinadors_cat.txt b/admin/WebConsole/idiomas/php/cat/incorporaordinadors_cat.txt
new file mode 100644
index 00000000..f9060859
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/incorporaordinadors_cat.txt
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: incorporaordenadores_esp.php (Comandos)
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Incorporaci d'Ordinadors';
+ $TbMsg[1]='Aula';
+ $TbMsg[2]='Fitxer';
+ $TbMsg[3]='ATENCI: Ha hagut algn problema al incorporar ordinadors des del fitxer';
+ $TbMsg[4]='ATENCI: El fitxer est buit';
+ $TbMsg[5]='ATENCI: El fitxer no cont informaci amb el format necesari per a incorpora ordinadors';
+ $TbMsg[6]='ATENCI: Hi ha algn problema per a salvar el fitxer';
+ $TbMsg[7]='S'han incorporat correctament ordinadors desde fitxer';
+ $TbMsg[8]='Contingut';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/incrementalcomponent_soft_cat.txt b/admin/WebConsole/idiomas/php/cat/incrementalcomponent_soft_cat.txt
new file mode 100644
index 00000000..cf9ece55
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/incrementalcomponent_soft_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: incrementalcomponente_soft_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Softwares Incrementals';
+ $TbMsg[1]='Gesti de components software';
+ $TbMsg[2]='Software incremental';
+ $TbMsg[3]='Nombre del component';
+ $TbMsg[4]='(*)Per a incloure algn component en aquest software incremental deu fer click sobre la casella de verificaci corresponent.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_imatges_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_imatges_cat.txt
new file mode 100644
index 00000000..cab1ce4d
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_imatges_cat.txt
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_imagenes_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Imtges';
+ $TbMsg[1]='Informacio sobre imatges';
+ $TbMsg[2]='Imatge';
+ $TbMsg[3]='Informaci de la Imatge';
+ $TbMsg[4]='Componentes software';
+ $TbMsg[5]='Software incremental';
+ $TbMsg[6]='Perfil Software';
+ $TbMsg[7]='Ordinadors amb aquesta imatge';
+ $TbMsg[8]='Partici';
+ $TbMsg[9]='Comentaris';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_incrementals_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_incrementals_cat.txt
new file mode 100644
index 00000000..fc15ab13
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_incrementals_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_incrementales_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Software Incremental';
+ $TbMsg[1]='Informaci sobre software incremental';
+ $TbMsg[2]='Software Incremental';
+ $TbMsg[3]='Informaci software incremental';
+ $TbMsg[4]='Components software';
+ $TbMsg[5]='Perfils Combinables';
+ $TbMsg[6]='Perfils Hardware soportats';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_menus_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_menus_cat.txt
new file mode 100644
index 00000000..e6f88df0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_menus_cat.txt
@@ -0,0 +1,29 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_menus_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items del Menu';
+ $TbMsg[1]='Informaci del Men';
+ $TbMsg[2]='Men';
+ $TbMsg[3]='Informaci Men';
+ $TbMsg[4]='Propietats de los items';
+ $TbMsg[5]='Propietats';
+ $TbMsg[6]='Eliminar Item';
+ $TbMsg[7]='Ttul';
+ $TbMsg[8]='Propietats de los items pblics del Men';
+ $TbMsg[9]='Coordenada x';
+ $TbMsg[10]='Coordenada y';
+ $TbMsg[11]='Modalitat';
+ $TbMsg[12]='Propietats de los items privats del Men';
+ $TbMsg[13]='Items pblics ';
+ $TbMsg[14]='Items privats';
+ $TbMsg[15]='Orden del item';
+ $TbMsg[16]='Literal del item';
+ $TbMsg[17]='Nombre de la Imatge';
+ $TbMsg[18]='Men simple';
+ $TbMsg[19]='Men doble';
+ $TbMsg[20]='Cdi del item';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_perfilshard_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_perfilshard_cat.txt
new file mode 100644
index 00000000..6ebf5869
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_perfilshard_cat.txt
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_perfileshard_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfils hardware';
+ $TbMsg[1]='Informacio sobre Perfils hardware';
+ $TbMsg[2]='Perfil hardware';
+ $TbMsg[3]='Informaci Perfil hardware';
+ $TbMsg[4]='Perfils software disponibles';
+ $TbMsg[5]='Components software';
+ $TbMsg[6]='Components hardware ';
+ $TbMsg[7]='Software Incremental';
+ $TbMsg[8]='Comentaris';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_perfilssoft_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_perfilssoft_cat.txt
new file mode 100644
index 00000000..13fada81
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_perfilssoft_cat.txt
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_perfilessoft_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfils software';
+ $TbMsg[1]='Informaci sobre perfils software';
+ $TbMsg[2]='Perfil software';
+ $TbMsg[3]='Informaci perfils software';
+ $TbMsg[4]='Perfils Hardware soportatass';
+ $TbMsg[5]='Components hardware';
+ $TbMsg[6]='Components software';
+ $TbMsg[7]='Software Incremental';
+ $TbMsg[8]='Comentaris';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_procediments_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_procediments_cat.txt
new file mode 100644
index 00000000..48005b00
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_procediments_cat.txt
@@ -0,0 +1,11 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_procedimientos_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parmetres dels comandaments del Procedimeno';
+ $TbMsg[1]='Parmetre';
+ $TbMsg[2]='Valor';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_tasques_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_tasques_cat.txt
new file mode 100644
index 00000000..71301069
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_tasques_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_tareas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parmetres dels Comandaents de la Tascaa';
+ $TbMsg[1]='Parmetre';
+ $TbMsg[2]='Valor';
+ $TbMsg[3]='mbit';
+ $TbMsg[4]='Nom';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/informacio_treballs_cat.txt b/admin/WebConsole/idiomas/php/cat/informacio_treballs_cat.txt
new file mode 100644
index 00000000..b0253253
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/informacio_treballs_cat.txt
@@ -0,0 +1,14 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: informacion_tareas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Tasques incloses en Treballs';
+ $TbMsg[1]='Parmetres de comandaments en Tasca';
+ $TbMsg[2]='Parmetre';
+ $TbMsg[3]='Valor';
+ $TbMsg[4]='mbit';
+ $TbMsg[5]='Nom';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/menus_cat.txt b/admin/WebConsole/idiomas/php/cat/menus_cat.txt
new file mode 100644
index 00000000..9c353e33
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/menus_cat.txt
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: menus_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nou grup de mens"';
+ $TbMsg[1]='"Definir nou men"';
+ $TbMsg[2]='"Col.locar menu"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grup de mens"';
+ $TbMsg[5]='"Informaci Men"';
+ $TbMsg[6]='"Moure men"';
+ $TbMsg[7]='"Propietats"';
+ $TbMsg[8]='"Eliminar men"';
+ $TbMsg[9]='"Mens"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/perfilcomponent_hard_cat.txt b/admin/WebConsole/idiomas/php/cat/perfilcomponent_hard_cat.txt
new file mode 100644
index 00000000..54522fb7
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/perfilcomponent_hard_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: perfilcomponente_hard_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfils hardware';
+ $TbMsg[1]='Gesti Components hardware';
+ $TbMsg[2]='Perfil hardware';
+ $TbMsg[3]='Nom del component';
+ $TbMsg[4]='(*)Per a incloure algn component en aquest perfil deu fer click sobre la casella de verificaci corresponent.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/perfilcomponent_soft_cat.txt b/admin/WebConsole/idiomas/php/cat/perfilcomponent_soft_cat.txt
new file mode 100644
index 00000000..a72db2e8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/perfilcomponent_soft_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: perfilcomponente_soft_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfils software';
+ $TbMsg[1]='Gesti de components software';
+ $TbMsg[2]='Perfil software';
+ $TbMsg[3]='Nom del component';
+ $TbMsg[4]='(*)Per a incloure algn component en aquest perfil deu fer click sobre la casella de verificaci corresponent.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/procedimentscomandaments_cat.txt b/admin/WebConsole/idiomas/php/cat/procedimentscomandaments_cat.txt
new file mode 100644
index 00000000..0acd6309
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/procedimentscomandaments_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: procedimientoscomandos_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Gesti Comandaments del Procediment';
+ $TbMsg[1]='Comandaments inclosos';
+ $TbMsg[2]='Procediment';
+ $TbMsg[3]='Nom Comandaments';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parmetre';
+ $TbMsg[6]='Valor';
+ $TbMsg[7]='(*)Per a excluir algn comandament de aquest procediment deu fer click sobre la casella de verificaci corresponent';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/programacions_cat.txt b/admin/WebConsole/idiomas/php/cat/programacions_cat.txt
new file mode 100644
index 00000000..d7dfa906
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/programacions_cat.txt
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: programaciones_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+// Literals dels tipus d'accions
+$LITEJECUCION_COMANDO="Comandaments";
+$LITEJECUCION_PROCEDIMIENTO="Procedimentss";
+$LITEJECUCION_TAREA="Tasques";
+$LITEJECUCION_TRABAJO="Treballs";
+$LITEJECUCION_RESERVA="Reserves";
+
+$TbMsg=array();
+
+$TbMsg[0]="Programacions";
+$TbMsg[1]="Suspendre temporalment tots els blocs programats";
+$TbMsg[2]="Descripci del bloc";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/programacionsaules_cat.txt b/admin/WebConsole/idiomas/php/cat/programacionsaules_cat.txt
new file mode 100644
index 00000000..50efa88a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/programacionsaules_cat.txt
@@ -0,0 +1,54 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: colasreservas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+
+// Literals dels tipus de reserves
+$LITRESERVA_PENDIENTE="Pendents";
+$LITRESERVA_CONFIRMADA="Confirmades";
+$LITRESERVA_DENEGADA="Denegades";
+
+$RESERVA_PARADA=1; // reserva momentaniament aturada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspendida'; // Literal reserva momentaniament aturada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reserves d'aules';
+ $TbMsg[1]='Opcions de Recerca';
+ $TbMsg[2]='Tipus';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estats';
+ $TbMsg[5]='Percentatge desde';
+ $TbMsg[6]='Porcentatge fins ';
+ $TbMsg[7]='Data inici';
+ $TbMsg[8]='Data final';
+ $TbMsg[9]='Hora inici';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='mbit';
+
+ $TbMsg[12]='Centres';
+ $TbMsg[13]='Grup d'aules';
+ $TbMsg[14]='Aules';
+
+ $TbMsg[15]='Any';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Da';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupaci';
+ $TbMsg[20]='Imatge asociada';
+ $TbMsg[21]='Descripci';
+
+ $TbMsg[22]='Programaci reserves';
+ $TbMsg[23]='(Sense especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Solicitant';
+ $TbMsg[26]="Anticipaci previa";
+ $TbMsg[27]="(Sense acci previa)";
+ $TbMsg[28]="Tasca previa";
+ $TbMsg[29]="Treball previ";
+ $TbMsg[30]='Grup de reserves';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/programacionsreserves_cat.txt b/admin/WebConsole/idiomas/php/cat/programacionsreserves_cat.txt
new file mode 100644
index 00000000..28becbf9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/programacionsreserves_cat.txt
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: colasreservas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+
+// Literals dels tipus de reserves
+$LITRESERVA_PENDIENTE="Pendents";
+$LITRESERVA_CONFIRMADA="Confirmades";
+$LITRESERVA_DENEGADA="Denegades";
+
+$RESERVA_PARADA=1; // reserva momentaniament aturada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspendida'; // Literal reserva momentaniament aturada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reserves d'aules';
+ $TbMsg[1]='Opcions de recerca';
+ $TbMsg[2]='Tipus';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estats';
+ $TbMsg[5]='Percentatge desde';
+ $TbMsg[6]='Percentatge fins ';
+ $TbMsg[7]='Data inici';
+ $TbMsg[8]='Data final';
+ $TbMsg[9]='Hora inici';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='mbit';
+
+ $TbMsg[12]='Reserves';
+ $TbMsg[13]='Grup de reserves';
+
+ $TbMsg[15]='Any';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Da';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupaci';
+ $TbMsg[20]='Imatge asociada';
+ $TbMsg[21]='Descripci';
+
+ $TbMsg[22]='Programaci reserves';
+ $TbMsg[23]='(Sense especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Sol.licitant';
+ $TbMsg[26]="Anticipaci previa";
+ $TbMsg[27]="(Sense accin previa)";
+ $TbMsg[28]="Tasca previa";
+ $TbMsg[29]="Treball previ";
+ $TbMsg[30]="Dades Reserva";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_aules_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_aules_cat.txt
new file mode 100644
index 00000000..85c5a06b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_aules_cat.txt
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_aulas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Aules";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Ubicaci";
+$TbMsg[7]="Cann";
+$TbMsg[8]="Pissarra";
+$TbMsg[9]="Puestos";
+$TbMsg[10]="Url Imatge";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Comentaris";
+$TbMsg[13]="Intervals";
+$TbMsg[14]="Hora desde:";
+$TbMsg[15]="Hora fins:";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_centres_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_centres_cat.txt
new file mode 100644
index 00000000..a68cb4e8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_centres_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_ordenadores_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti d'Unidats Organitzatives";
+$TbMsg[5]="Nom de la unitat";
+$TbMsg[6]="Comentaris";
+?>
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_componenthardwares_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_componenthardwares_cat.txt
new file mode 100644
index 00000000..2fd987f2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_componenthardwares_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_componentehardwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Components Hardware";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Tipus de hardware";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_componentsoftwares_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_componentsoftwares_cat.txt
new file mode 100644
index 00000000..9bdb40ec
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_componentsoftwares_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_componentesoftwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Components Software";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Tipus de Software";
+$TbMsg[7]="Tipus de S.O.";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_entitats_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_entitats_cat.txt
new file mode 100644
index 00000000..bb097247
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_entitats_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_ordenadores_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Entitats";
+$TbMsg[5]="Nom de l'Entitat";
+$TbMsg[6]="Comentaris";
+?>
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_grups_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_grups_cat.txt
new file mode 100644
index 00000000..1dbe4345
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_grups_cat.txt
@@ -0,0 +1,31 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_tareas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Grups";
+$TbMsg[5]="Nom Grup";
+$TbMsg[6]="Comentaris";
+$TbMsg[7]="Grups d'Aules";
+$TbMsg[8]="Grups de Procediments";
+$TbMsg[9]="Grups de Tasques";
+$TbMsg[10]="Grups de Treballs";
+$TbMsg[11]="Grups d'Imtges";
+$TbMsg[12]="Grups de Components Hardware";
+$TbMsg[13]="Grups de Components Software";
+$TbMsg[14]="Grups de Perfils Hardware";
+$TbMsg[15]="Grups de Perfils Software";
+$TbMsg[16]="Grups de Software Incremental";
+$TbMsg[17]="Grups de Servidors Rembo";
+$TbMsg[18]="Grups de Servidors Dhcp";
+$TbMsg[19]="Grups de Mens";
+$TbMsg[20]="Grups de Reserves";
+$TbMsg[21]="Grups d'Entitats";
+$TbMsg[22]="Grupo d'Ordinadors";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_imatges_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_imatges_cat.txt
new file mode 100644
index 00000000..b28bb149
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_imatges_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_imagenes_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Imtges";
+$TbMsg[5]="Nom Imatge";
+$TbMsg[6]="Perfil Software";
+$TbMsg[7]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_menus_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_menus_cat.txt
new file mode 100644
index 00000000..3df91f1c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_menus_cat.txt
@@ -0,0 +1,26 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idioms php: propiedades_menus_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Menus";
+$TbMsg[5]="Nom del Men";
+$TbMsg[6]="Ttul";
+$TbMsg[7]="Comentaris";
+$TbMsg[8]="Items pblics del Menu";
+$TbMsg[9]="Coordenada x";
+$TbMsg[10]="Coordenada y";
+$TbMsg[11]="Modalitat";
+$TbMsg[12]="Items privats del Menu";
+$TbMsg[13]="Men simple";
+$TbMsg[14]="Men doble";
+$TbMsg[15]="Html men pblic";
+$TbMsg[16]="Html men privat";
+$TbMsg[17]="Resoluci de pantalla";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_ordinadors_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_ordinadors_cat.txt
new file mode 100644
index 00000000..e4faad18
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_ordinadors_cat.txt
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_ordenadores_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Ordinadors";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Direcci IP";
+$TbMsg[7]="Direcci MAC";
+$TbMsg[8]="Perfil Hardware";
+$TbMsg[9]="Servidor Dhcp";
+$TbMsg[10]="Servidor Rembo ";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Tamany Cach";
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_ordinadorstandar_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_ordinadorstandar_cat.txt
new file mode 100644
index 00000000..785784f0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_ordinadorstandar_cat.txt
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_ordenadorestandar_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Aula";
+$TbMsg[1]="Ordinador plantilla";
+$TbMsg[2]="Nom";
+$TbMsg[3]="Direcci IP";
+$TbMsg[4]="Direcci MAC";
+$TbMsg[5]="Perfil hardware";
+$TbMsg[6]="Servidor Dhcp";
+$TbMsg[7]="Servidor Rembo ";
+$TbMsg[8]="Ordinadors per a insertar";
+$TbMsg[9]='(*) Per a modificar un ordinador amb un certa dada, en aquest'aula, deu introduir el valor corresponent i deixar el camp "Ordinadors a insertar" a zero.';
+$TbMsg[10]="(**)Si es tracta de ordinadors nous amb una configuraci per defecte, pero no vol modificar els ordinadors ja existents deu introduir un valor mes gran que zero.";
+$TbMsg[11]="Tamany Cach";
+
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_perfilhardwares_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_perfilhardwares_cat.txt
new file mode 100644
index 00000000..f4188157
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_perfilhardwares_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_perfilhardwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Perfils Hardware";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_perfilsoftwares_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_perfilsoftwares_cat.txt
new file mode 100644
index 00000000..c10acd57
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_perfilsoftwares_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_perfilsoftwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti de Perfils software";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_procediments_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_procediments_cat.txt
new file mode 100644
index 00000000..c9912844
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_procediments_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_procedimientos_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Procediments";
+$TbMsg[5]="Nom Procediment";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_reserves_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_reserves_cat.txt
new file mode 100644
index 00000000..5f14953f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_reserves_cat.txt
@@ -0,0 +1,30 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_reservas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Reserves";
+$TbMsg[5]="Descripci";
+$TbMsg[6]="Nom solicitant";
+$TbMsg[7]="Comentaris";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Estatus universitari";
+$TbMsg[10]="Aula";
+$TbMsg[11]="Imatge associada";
+$TbMsg[12]="Anticipacin previa";
+$TbMsg[13]="Confirmada";
+$TbMsg[14]="Pendent";
+$TbMsg[15]="Denegada";
+$TbMsg[16]="Estatat de la reserva";
+$TbMsg[17]="(En blanc o 0 minuts indica sense anticipaci)";
+$TbMsg[18]="(Sense acci anticipada)";
+$TbMsg[19]="Tasca previa";
+$TbMsg[20]="Treball previ";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_softincrementals_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_softincrementals_cat.txt
new file mode 100644
index 00000000..f0f2ed69
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_softincrementals_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_softincrementales_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti de Software Incremental";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_tasques_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_tasques_cat.txt
new file mode 100644
index 00000000..a4a1de56
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_tasques_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_tareas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Tasques";
+$TbMsg[5]="Nom Tascaa";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_tipushardwares_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_tipushardwares_cat.txt
new file mode 100644
index 00000000..f40f70eb
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_tipushardwares_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_tipohardwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Tipus de Hardware";
+$TbMsg[5]="Nom";
+$TbMsg[6]="icono";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_treballs_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_treballs_cat.txt
new file mode 100644
index 00000000..c19fbd42
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_treballs_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_trabajos_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Treballs";
+$TbMsg[5]="Nom del Treball";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_universitats_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_universitats_cat.txt
new file mode 100644
index 00000000..e109f054
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_universitats_cat.txt
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_aulas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Universitats";
+$TbMsg[5]="Nom";
+$TbMsg[6]="Comentaris";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/propietats_usuaris_cat.txt b/admin/WebConsole/idiomas/php/cat/propietats_usuaris_cat.txt
new file mode 100644
index 00000000..89ba2159
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/propietats_usuaris_cat.txt
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: propiedades_ordenadores_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sense Opci";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gesti Usuaris";
+$TbMsg[5]="Usuari";
+$TbMsg[6]="Password";
+$TbMsg[7]="Nom complet";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Unitat organitzativa";
+$TbMsg[10]="Idioma ";
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/purgar_cat.txt b/admin/WebConsole/idiomas/php/cat/purgar_cat.txt
new file mode 100644
index 00000000..297dbac0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/purgar_cat.txt
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: actualizar_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Aquest mbit ha estat purgat correctament';
+ $TbMsg[1]='ATENCI: Ha hagut algn problema al purgar l'mbit';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/reserves_cat.txt b/admin/WebConsole/idiomas/php/cat/reserves_cat.txt
new file mode 100644
index 00000000..115b9a9c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/reserves_cat.txt
@@ -0,0 +1,20 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: reservas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nou grup de reserves"';
+ $TbMsg[1]='"Definir nova reserva"';
+ $TbMsg[2]='"Col.locar reserva"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grup de reserves"';
+ $TbMsg[5]='"Informaci Reserva"';
+ $TbMsg[6]='"Moure reserva"';
+ $TbMsg[7]='"Propietats"';
+ $TbMsg[8]='"Eliminar Reserva"';
+ $TbMsg[9]='"Reserves"';
+ $TbMsg[10]='"Programacions"';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/cat/softwares_cat.txt b/admin/WebConsole/idiomas/php/cat/softwares_cat.txt
new file mode 100644
index 00000000..d3a75f6f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/softwares_cat.txt
@@ -0,0 +1,37 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: softwares_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='""';
+ $TbMsg[1]='"Propietats"';
+ $TbMsg[2]='""';
+ $TbMsg[3]='"Nou grup de components"';
+ $TbMsg[4]='"Definir nou component"';
+ $TbMsg[5]='"Col.locar component"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grup de components"';
+ $TbMsg[8]='"Moure component"';
+ $TbMsg[9]='"Eliminar component"';
+ $TbMsg[10]='"Nou grup de perfils"';
+ $TbMsg[11]='"Definir nou perfil"';
+ $TbMsg[12]='"Col.locar perfil"';
+ $TbMsg[13]='"Eliminar grup de perfils"';
+ $TbMsg[14]='"Gesti components"';
+ $TbMsg[15]='"Informaci Perfil"';
+ $TbMsg[16]='"Moure perfil"';
+ $TbMsg[17]='"Eliminar perfil software"';
+ $TbMsg[18]='"Tipus de software"';
+ $TbMsg[19]='"Components software"';
+ $TbMsg[20]='"Perfils software"';
+ $TbMsg[21]='"Software Incremental"';
+ $TbMsg[22]='"Nou grup d'incrementals"';
+ $TbMsg[23]='"Definir nuevo incremental"';
+ $TbMsg[24]='"Col.locar incremental"';
+ $TbMsg[25]='"Eliminar grup diincrementals"';
+ $TbMsg[26]='"Informaci Incremental"';
+ $TbMsg[27]='"Moure incremental"';
+ $TbMsg[28]='"Eliminar incremental"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/tasquescomandaments_cat.txt b/admin/WebConsole/idiomas/php/cat/tasquescomandaments_cat.txt
new file mode 100644
index 00000000..031523c4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/tasquescomandaments_cat.txt
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: tareascomandos_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Gesti Comandaments de la Tasca';
+ $TbMsg[1]='Comandaments inclosos';
+ $TbMsg[2]='Tasca';
+ $TbMsg[3]='Nom Comandament';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parmetre';
+ $TbMsg[6]='Valor';
+ $TbMsg[7]='(*)Per a excloure algn comandament d'aquesta tasca deu fer click sobre la casella de verificaci corresponent';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/cat/treballstasques_cat.txt b/admin/WebConsole/idiomas/php/cat/treballstasques_cat.txt
new file mode 100644
index 00000000..e51715f9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/cat/treballstasques_cat.txt
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fitxer d'idiomes php: trabajostareas_esp.php
+// Idioma: Catal
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]="Tasques en Treball";
+ $TbMsg[1]="Tasques incloses";
+ $TbMsg[2]="Treball";
+ $TbMsg[3]="Nom de la Tasca";
+ $TbMsg[4]="(*)Per a incloure alguna tasca en aquest treball deu fer click sobre la casella de verificaci corresponent";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/acciones_eng.php b/admin/WebConsole/idiomas/php/eng/acciones_eng.php
new file mode 100644
index 00000000..92a72113
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/acciones_eng.php
@@ -0,0 +1,41 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: acciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"New procedures group"';
+ $TbMsg[1]='"Define new procedure"';
+ $TbMsg[2]='"To put procedure"';
+ $TbMsg[3]='"Rename"';
+ $TbMsg[4]='"Remove procedure group"';
+ $TbMsg[5]='"Commands management"';
+ $TbMsg[6]='"Procedure information"';
+ $TbMsg[7]='"To move procedure"';
+ $TbMsg[8]='"Properties"';
+ $TbMsg[9]='"Remove Procedure"';
+ $TbMsg[10]='"Menus management"';
+ $TbMsg[11]='"New tasks group"';
+ $TbMsg[12]='"Define new task"';
+ $TbMsg[13]='"To put task"';
+ $TbMsg[14]='"Remove task group"';
+ $TbMsg[15]='"Perform task"';
+ $TbMsg[16]='"Schedules"';
+ $TbMsg[17]='"Task information"';
+ $TbMsg[18]='"To move task"';
+ $TbMsg[19]='"Remove task"';
+ $TbMsg[20]='"New jobs group"';
+ $TbMsg[21]='"Define new job"';
+ $TbMsg[22]='"To put job"';
+ $TbMsg[23]='"Remove jobs group"';
+ $TbMsg[24]='"Perform job"';
+ $TbMsg[25]='"Tasks management"';
+ $TbMsg[26]='"Job information"';
+ $TbMsg[27]='"To move job"';
+ $TbMsg[28]='"Remove job"';
+ $TbMsg[29]='Procedures';
+ $TbMsg[30]='Commands';
+ $TbMsg[31]='Task';
+ $TbMsg[32]='Jobs';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/accionmenu_eng.php b/admin/WebConsole/idiomas/php/eng/accionmenu_eng.php
new file mode 100644
index 00000000..02bbcddf
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/accionmenu_eng.php
@@ -0,0 +1,25 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: accionmenu_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items';
+ $TbMsg[1]='Menu items management';
+ $TbMsg[2]='Procedure';
+ $TbMsg[3]='Task';
+ $TbMsg[4]='Jobs';
+ $TbMsg[5]='Pblico';
+ $TbMsg[6]='Private';
+ $TbMsg[7]='Publics Items';
+ $TbMsg[8]='Privates Items';
+ $TbMsg[9]='Menu name';
+ $TbMsg[10]='Item type';
+ $TbMsg[11]='Image of the item';
+ $TbMsg[12]='Literal of the item';
+ $TbMsg[13]='Ord';
+ $TbMsg[14]='(*)To include some action in this menu you must click in the corresponding checkbox. For update click over image';
+
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/actualizar_eng.php b/admin/WebConsole/idiomas/php/eng/actualizar_eng.php
new file mode 100644
index 00000000..7abf81c8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/actualizar_eng.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: actualizar_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='This environment has been successfully refreshed';
+ $TbMsg[1]='WARNING: Having some problem to refresh this environment';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/administracion_eng.php b/admin/WebConsole/idiomas/php/eng/administracion_eng.php
new file mode 100644
index 00000000..023af70c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/administracion_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: administracion_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Administracin"';
+ $TbMsg[1]='"New entity group"';
+ $TbMsg[2]='"New entity entidad"';
+ $TbMsg[3]='"New Superadministrator"';
+ $TbMsg[4]='"Properties"';
+ $TbMsg[5]='"Remove"';
+ $TbMsg[6]='"Rename"';
+ $TbMsg[7]='"Remove Entity group"';
+ $TbMsg[8]='"New organizing unit"';
+ $TbMsg[9]='"New Administrator"';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/aulas_eng.php b/admin/WebConsole/idiomas/php/eng/aulas_eng.php
new file mode 100644
index 00000000..a4aeb2f5
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/aulas_eng.php
@@ -0,0 +1,47 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: aulas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"New labs group"';
+ $TbMsg[1]='"Computers status"';
+ $TbMsg[2]='"Purge"';
+ $TbMsg[3]='"Add new lab"';
+ $TbMsg[4]='"Refresh"';
+ $TbMsg[5]='"Commands"';
+ $TbMsg[6]='"Actions queue"';
+ $TbMsg[7]='"Remove labs group"';
+ $TbMsg[8]='"New computers group"';
+ $TbMsg[9]='"Add new computer"';
+ $TbMsg[10]='"Configuration"';
+ $TbMsg[11]='"To put computer"';
+ $TbMsg[12]='"Computer template"';
+ $TbMsg[13]='"Properties"';
+ $TbMsg[14]='"Remove lab"';
+ $TbMsg[15]='"Rename"';
+ $TbMsg[16]='"Remove computers group"';
+ $TbMsg[17]='"To move computer"';
+ $TbMsg[18]='"Remove Computer"';
+ $TbMsg[19]='"Tasks"';
+ $TbMsg[20]='"Jobs"';
+ $TbMsg[21]='"All actions"';
+ $TbMsg[22]='Computers Status';
+ $TbMsg[23]='Lab Computer';
+ $TbMsg[24]='Environment: Centers';
+ $TbMsg[25]='Environment: Group of labs';
+ $TbMsg[26]='Environment: Group of computers';
+ $TbMsg[27]='"Incorpore computers"';
+ $TbMsg[28]='"Procedures"';
+ $TbMsg[29]='"Labs Reserves"';
+ $TbMsg[30]='"Confirmeds"';
+ $TbMsg[31]='"Refuses"';
+ $TbMsg[32]='"Pendings"';
+ $TbMsg[33]='"Swtiching"';
+ $TbMsg[34]='"Reserve schedules"';
+ $TbMsg[35]='"Operators"';
+ $TbMsg[36]='"Remove operator"';
+ $TbMsg[37]='"Add a new operator"';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/barramenu_eng.php b/admin/WebConsole/idiomas/php/eng/barramenu_eng.php
new file mode 100644
index 00000000..d5d44eaf
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/barramenu_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: barramenu_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Labs';
+ $TbMsg[1]='Actions';
+ $TbMsg[2]='Images';
+ $TbMsg[3]='Hardware';
+ $TbMsg[4]='Software';
+ $TbMsg[5]='Servers';
+ $TbMsg[6]='Menus';
+ $TbMsg[7]='Reserves';
+ $TbMsg[8]='Administration';
+ $TbMsg[9]='Icons';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php
new file mode 100644
index 00000000..97cbc0e2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php
@@ -0,0 +1,405 @@
+ <?
+/*============================================================================
+ Esta clase genera tablas HTML para seleccin de fechas (Versin inglesa)
+
+ Atributos de la clase:
+
+ clase: Clase [CSS] de la tabla HTML que se generar.
+ onmouseover: Funcin Javascript que se ejuctar al generarse el evento
+ onmouseout: Funcin Javascript que se ejuctar al generarse el evento
+ onclick: Funcin Javascript que se ejuctar al hacer click sobre el objeto
+
+============================================================================*/
+class Almanaque{
+
+ var $clase ;
+ var $onmouseover;
+ var $onmouseout;
+ var $onclick;
+
+ var $desplazamiento_dias=6; // Ajuste fino dependiendo del ao de comienzo del algoritmo
+ var $nombre_mes=array();
+ var $nombre_dia=array();
+ var $dias_meses=array();
+ var $semanas=array();
+ var $numero_annos=array();
+
+ function Almanaque($pclase="",$ponmouseover="sobre(this)",$ponmouseout="fuera(this)",$ponclick="clic(this)"){ //Constructor
+ $this->clase=$pclase;
+ $this->onmouseover=$ponmouseover;
+ $this->onmouseout=$ponmouseout;
+ $this->onclick=$ponclick;
+
+ $this->nombre_mes[1]=array ("January",0x0001);
+ $this->nombre_mes[2]=array ("February",0x0002);
+ $this->nombre_mes[3]=array ("March",0x0004);
+ $this->nombre_mes[4]=array ("April",0x0008);
+ $this->nombre_mes[5]=array ("May",0x0010);
+ $this->nombre_mes[6]=array ("June",0x0020);
+ $this->nombre_mes[7]=array ("July",0x0040);
+ $this->nombre_mes[8]=array ("August",0x0080);
+ $this->nombre_mes[9]=array ("September",0x0100);
+ $this->nombre_mes[10]=array ("October",0x0200);
+ $this->nombre_mes[11]=array ("November",0x0400);
+ $this->nombre_mes[12]=array ("December",0x0800);
+
+ $this->nombre_dia[1]=array ("Mo",0x01); // tamao 1 bytes
+ $this->nombre_dia[2]=array ("Tu",0x02);
+ $this->nombre_dia[3]=array ("We",0x04);
+ $this->nombre_dia[4]=array ("Th",0x08);
+ $this->nombre_dia[5]=array ("Fr",0x10);
+ $this->nombre_dia[6]=array ("Sa",0x20);
+ $this->nombre_dia[7]=array ("Su",0x40);
+
+
+ $this->dias_meses[1]=31;
+ $this->dias_meses[2]=28;
+ $this->dias_meses[3]=31;
+ $this->dias_meses[4]=30;
+ $this->dias_meses[5]=31;
+ $this->dias_meses[6]=30;
+ $this->dias_meses[7]=31;
+ $this->dias_meses[8]=31;
+ $this->dias_meses[9]=30;
+ $this->dias_meses[10]=31;
+ $this->dias_meses[11]=30;
+ $this->dias_meses[12]=31;
+
+ $this->semanas[1]=array ("1",0x01); // tamao 1 bytes
+ $this->semanas[2]=array ("2",0x02);
+ $this->semanas[3]=array ("3",0x04);
+ $this->semanas[4]=array ("4",0x08);
+ $this->semanas[5]=array ("5",0x10);
+ $this->semanas[6]=array ("Last",0x20);
+
+ $this->numero_annos[1]=array ("2004",0x01); // tamao 1 bytes
+ $this->numero_annos[2]=array ("2005",0x02);
+ $this->numero_annos[3]=array ("2006",0x04);
+ $this->numero_annos[4]=array ("2007",0x08);
+ $this->numero_annos[5]=array ("2008",0x10);
+ $this->numero_annos[6]=array ("2009",0x20);
+ $this->numero_annos[7]=array ("2010",0x40);
+ $this->numero_annos[8]=array ("2011",0x80);
+
+ $this->numero_dias[1]=0x00000001; // tamao 4 bytes
+ $this->numero_dias[2]=0x00000002;
+ $this->numero_dias[3]=0x00000004;
+ $this->numero_dias[4]=0x00000008;
+
+ $this->numero_dias[5]=0x00000010;
+ $this->numero_dias[6]=0x00000020;
+ $this->numero_dias[7]=0x00000040;
+ $this->numero_dias[8]=0x00000080;
+
+ $this->numero_dias[9]=0x00000100;
+ $this->numero_dias[10]=0x00000200;
+ $this->numero_dias[11]=0x00000400;
+ $this->numero_dias[12]=0x00000800;
+
+ $this->numero_dias[13]=0x00001000;
+ $this->numero_dias[14]=0x00002000;
+ $this->numero_dias[15]=0x00004000;
+ $this->numero_dias[16]=0x00008000;
+
+ $this->numero_dias[17]=0x00010000;
+ $this->numero_dias[18]=0x00020000;
+ $this->numero_dias[19]=0x00040000;
+ $this->numero_dias[20]=0x00080000;
+
+ $this->numero_dias[21]=0x00100000;
+ $this->numero_dias[22]=0x00200000;
+ $this->numero_dias[23]=0x00400000;
+ $this->numero_dias[24]=0x00800000;
+
+ $this->numero_dias[25]=0x01000000;
+ $this->numero_dias[26]=0x02000000;
+ $this->numero_dias[27]=0x04000000;
+ $this->numero_dias[28]=0x08000000;
+
+ $this->numero_dias[29]=0x10000000;
+ $this->numero_dias[30]=0x20000000;
+ $this->numero_dias[31]=0x40000000;
+ $this->numero_dias[32]=0x80000000;
+
+
+ $this->numero_horas[1]=array ("0:00", 0x0001); // tamao 2 bytes
+ $this->numero_horas[2]=array ("1:00", 0x0002);
+ $this->numero_horas[3]=array ("2:00", 0x0004);
+ $this->numero_horas[4]=array ("3:00", 0x0008);
+ $this->numero_horas[5]=array ("4:00", 0x0010);
+ $this->numero_horas[6]=array ("5:00", 0x0020);
+ $this->numero_horas[7]=array ("6:00", 0x0040);
+ $this->numero_horas[8]=array ("7:00", 0x0080);
+ $this->numero_horas[9]=array ("8:00", 0x0100);
+ $this->numero_horas[10]=array ("9:00",0x0200);
+ $this->numero_horas[11]=array ("10:00",0x0400);
+ $this->numero_horas[12]=array ("11:00",0x0800);
+
+/*
+ $this->numero_horas[1]=array ("8:00",0x00000001); // tamao 4 bytes
+ $this->numero_horas[2]=array ("8:30",0x00000002);
+ $this->numero_horas[3]=array ("9:00",0x00000004);
+ $this->numero_horas[4]=array ("9:30",0x00000008);
+ $this->numero_horas[5]=array ("10:00",0x00000010);
+ $this->numero_horas[6]=array ("10:30",0x00000020);
+ $this->numero_horas[7]=array ("11:00",0x00000040);
+ $this->numero_horas[8]=array ("11:30",0x00000080);
+ $this->numero_horas[9]=array ("12:00",0x00000100);
+ $this->numero_horas[10]=array ("12:30",0x00000200);
+ $this->numero_horas[11]=array ("13:00",0x00000400);
+ $this->numero_horas[12]=array ("13:30",0x00000800);
+ $this->numero_horas[13]=array ("14:00",0x00001000);
+ $this->numero_horas[14]=array ("14:30",0x00002000);
+ $this->numero_horas[15]=array ("15:00",0x00004000);
+ $this->numero_horas[16]=array ("15:30",0x00008000);
+ $this->numero_horas[17]=array ("16:00",0x00010000);
+ $this->numero_horas[18]=array ("16:30",0x00020000);
+ $this->numero_horas[19]=array ("17:00",0x00040000);
+ $this->numero_horas[20]=array ("17:30",0x00080000);
+ $this->numero_horas[21]=array ("18:00",0x00100000);
+ $this->numero_horas[22]=array ("18:30",0x00200000);
+ $this->numero_horas[23]=array ("19:00",0x00400000);
+ $this->numero_horas[24]=array ("19:30",0x00800000);
+ $this->numero_horas[25]=array ("20:00",0x01000000);
+ $this->numero_horas[26]=array ("20:30",0x02000000);
+ $this->numero_horas[27]=array ("21:00",0x04000000);
+ $this->numero_horas[28]=array ("21:30",0x08000000);
+ */
+
+ }
+
+ /*-------------------------------------------------------------------------------------------
+ Esta funcin devuelve el nmero del da de la semana:
+ 0=domingo 1=Lunes, 2=mrtes ... 6=sbado
+
+ Parmetro de entrada:
+ Una cadena con formato de fecha dd/mm/aaaa.
+ ----------------------------------------------------------------------------------------------*/
+ function _DiaSemana($fecha){
+ list($dia,$mes,$anno)=split('[/.-]',$fecha);
+ $cont=0;
+ for ($i=1900;$i<$anno;$i++){
+ if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365;
+ $cont+=$dias_anuales;
+ }
+ for ($i=1;$i<$mes;$i++){
+ if ($i!=2)
+ $cont+=$this->dias_meses[$i];
+ else{
+ if ($this->bisiesto($anno))
+ $cont+=29;
+ else
+ $cont+=28;
+ }
+ }
+ $cont+=$dia+$this->desplazamiento_dias;
+ return($cont%7);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve true si el ao pasado como parmetro es bisiesto y false si no lo es
+
+ Parmetro de entrada:
+ Una nmero que representa el ao
+ ----------------------------------------------------------------------------------------------*/
+ function bisiesto($anob){
+ if ($anob%4==0) return(true); else return(false);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con un rango de aos (2003-2010)
+ ----------------------------------------------------------------------------------------------*/
+ function Annos($ano_desde,$ano_hasta){
+ $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH style="cursor:hand" onclick="TH_'.$this->onclick.'">Years</TH></TR>'.chr(13); // Literal aos
+ for ($i=1;$i<7;$i++){
+ $HTML_calendario.='<TR><TD id="'.$this->numero_annos[$i][0].'" value="'.$this->numero_annos[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_annos[$i][0].'</TD></TR>'.chr(13);
+ }
+ $HTML_calendario.='</TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML del calendario del mes y ao elegidos
+ y que son propiedades de la clase.
+ ----------------------------------------------------------------------------------------------*/
+ function MesAnno($mes,$anno){
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+
+ $HTML_calendario='<TABLE id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Das de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD></TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->numero_dias[$i].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con los meses del ao en dos columnas.
+ ----------------------------------------------------------------------------------------------*/
+ function Meses(){
+ $HTML_calendario='<TABLE id="tabla_meses" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=2 style="cursor:hand" onclick="TH_'.$this->onclick.'">Months</TH></TR>'.chr(13); // Literal meses
+ for ($i=1;$i<13;$i++){
+ $HTML_calendario.='<TR><TD id="'.$i.'" value="'.$this->nombre_mes[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_mes[$i++][0].'</TD>'.chr(13);
+ $HTML_calendario.='<TD id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_mes[$i][0].'</TD></TR>'.chr(13);
+ }
+ $HTML_calendario.='</TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con los das de la semana en una fila.
+ ----------------------------------------------------------------------------------------------*/
+ function Dias(){
+ $HTML_calendario='<TABLE id="tabla_dias" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Day</TH><TR>'.chr(13); // Literal Das
+ for ($i=1;$i<8;$i++){
+ $HTML_calendario.='<TD id="'.$i.'" value="'.$this->nombre_dia[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_dia[$i][0].'</TD>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con el orden de las semana en una fila.
+ ----------------------------------------------------------------------------------------------*/
+ function Semanas(){
+ $HTML_calendario='<TABLE id="tabla_semanas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Week</TH><TR>'.chr(13); // Literal Semenas
+ for ($i=1;$i<7;$i++){
+ $HTML_calendario.='<TD id="'.$i.'" value="'.$this->semanas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->semanas[$i][0].'&nbsp;</TD>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con los 31 das de un mes en 3 filas
+ ----------------------------------------------------------------------------------------------*/
+ function DiasMes(){
+ $HTML_calendario='<TABLE id="tabla_diasmes" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=8 style="cursor:hand" onclick="TH_'.$this->onclick.'">Day of month</TH><TR>'.chr(13); // Literal Da
+ $HTML_calendario.='<TR>'.chr(13);
+ $sd=1; // Control salto de fila
+ for ($i=1;$i<32;$i++){
+ $HTML_calendario.='<TD id="'.$i.'" value="'.$this->numero_dias[$i].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
+ if ($sd%8==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sd=0;
+ }
+ $sd++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con las horas de apertura de las aulas
+ ----------------------------------------------------------------------------------------------*/
+ function Horas(){
+ $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">Time for action performance</TH>';
+ $HTML_calendario.='<TH>Mod</TH>';
+ $HTML_calendario.='<TH>Min.</TH>';
+ //$HTML_calendario.='<TH>Seg.</TH></TR>';
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<13;$i++)
+ $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'" value="'.$this->numero_horas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.= '<SELECT class="estilodesple" id="ampm">'.chr(13);
+ $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
+ $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
+ $HTML_calendario.='</SELECT>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.='<INPUT type=text class=cajatexto id=minutos size=1>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ return($HTML_calendario);
+ }
+/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con las horas hasta de reserva de las aulas
+________________________________________________________________________________________________________*/
+ function HorasReserva($literal,$nombretabla,$nombreampm,$nombreminuto){
+ if($literal=="1")
+ $literal="Start of the reserve";
+ else
+ $literal="End of the reserve";
+ $HTML_calendario='<TABLE id="'.$nombretabla.'" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$literal.' </TH>';
+ $HTML_calendario.='<TH>Mod</TH>';
+ $HTML_calendario.='<TH>Min.</TH>';
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<13;$i++)
+ $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'" value="'.$this->numero_horas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.= '<SELECT class="estilodesple" id="'.$nombreampm.'">'.chr(13);
+ $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
+ $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
+ $HTML_calendario.='</SELECT>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.='<INPUT type=text class=cajatexto id="'.$nombreminuto.'" size=1>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------
+ Esta funcin devuelve una cadena con el cdigo HTML con las horas de apertura de las aulas
+ ----------------------------------------------------------------------------------------------*/
+ function Horas_Completas(){
+ $maxcolumnas=16;
+
+ $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH><TR>'.chr(13); // Literal Horas
+ $HTML_calendario.='<TR>'.chr(13);
+ $currenthora=0;
+ $currentminutos=0;
+ $currenthorario=$currenthora.":".$currentminutos;
+ for ($i=1;$i<97;$i++){
+ if($currentminutos==0) $currenthorario.="0";
+
+ $HTML_calendario.='<TD align=center id="'.$currenthorario.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$currenthorario.'</TD>'.chr(13);
+ $currentminutos+=15;
+ if($currentminutos==60) {
+ $currenthora++;
+ if($currenthora==24) $currenthora=0;
+ $currentminutos=0;
+ }
+ $currenthorario=$currenthora.":".$currentminutos;
+ if ($i%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+} // Fin de la clase Almanaque \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/clases/Calendario_eng.php b/admin/WebConsole/idiomas/php/eng/clases/Calendario_eng.php
new file mode 100644
index 00000000..b1895cf6
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/clases/Calendario_eng.php
@@ -0,0 +1,472 @@
+ <?
+/*========================================================================================================
+ Esta clase genera tablas HTML para seleccin de fechas (Versin inglesa)
+
+ Atributos de la clase:
+
+ clase: Clase [CSS] de la tabla HTML que se generar.
+ onmouseover: Funcin Javascript que se ejuctar al generarse el evento
+ onmouseout: Funcin Javascript que se ejuctar al generarse el evento
+ onclick: Funcin Javascript que se ejuctar al hacer click sobre el objeto
+
+=========================================================================================================*/
+class Calendario{
+ var $aula;
+ var $horaresevini;
+ var $horaresevfin;
+ var $clase ;
+ var $onmouseover;
+ var $onmouseout;
+ var $onclick;
+
+ var $desplazamiento_dias=6; // Ajuste fino dependiendo del ao de comienzo del algoritmo
+ var $nombre_mes=array();
+ var $nombre_dia=array();
+ var $dias_meses=array();
+
+ function Calendario($pclase="",$ponmouseover="sobre(this)",$ponmouseout="fuera(this)",$ponclick="clic(this)"){ //Constructor
+ $this->clase=$pclase;
+ $this->onmouseover=$ponmouseover;
+ $this->onmouseout=$ponmouseout;
+ $this->onclick=$ponclick;
+
+ $this->nombre_mes[1]=array ("January",0x0001);
+ $this->nombre_mes[2]=array ("February",0x0002);
+ $this->nombre_mes[3]=array ("March",0x0004);
+ $this->nombre_mes[4]=array ("April",0x0008);
+ $this->nombre_mes[5]=array ("May",0x0010);
+ $this->nombre_mes[6]=array ("June",0x0020);
+ $this->nombre_mes[7]=array ("July",0x0040);
+ $this->nombre_mes[8]=array ("August",0x0080);
+ $this->nombre_mes[9]=array ("September",0x0100);
+ $this->nombre_mes[10]=array ("October",0x0200);
+ $this->nombre_mes[11]=array ("November",0x0400);
+ $this->nombre_mes[12]=array ("December",0x0800);
+
+
+ $this->numero_annos[1]=array ("2004",0x01); // tamao 1 bytes
+ $this->numero_annos[2]=array ("2005",0x02);
+ $this->numero_annos[3]=array ("2006",0x04);
+ $this->numero_annos[4]=array ("2007",0x08);
+ $this->numero_annos[5]=array ("2008",0x10);
+ $this->numero_annos[6]=array ("2009",0x20);
+ $this->numero_annos[7]=array ("2010",0x40);
+ $this->numero_annos[8]=array ("2011",0x80);
+
+ $this->dias_meses[1]=31;
+ $this->dias_meses[2]=28;
+ $this->dias_meses[3]=31;
+ $this->dias_meses[4]=30;
+ $this->dias_meses[5]=31;
+ $this->dias_meses[6]=30;
+ $this->dias_meses[7]=31;
+ $this->dias_meses[8]=31;
+ $this->dias_meses[9]=30;
+ $this->dias_meses[10]=31;
+ $this->dias_meses[11]=30;
+ $this->dias_meses[12]=31;
+
+ $this->nombre_dia[1]=array ("Mo",0x01); // tamao 1 bytes
+ $this->nombre_dia[2]=array ("Tu",0x02);
+ $this->nombre_dia[3]=array ("We",0x04);
+ $this->nombre_dia[4]=array ("Th",0x08);
+ $this->nombre_dia[5]=array ("Fr",0x10);
+ $this->nombre_dia[6]=array ("Sa",0x20);
+ $this->nombre_dia[7]=array ("Su",0x40);
+ }
+/*________________________________________________________________________________________________________
+ Esta funcin devuelve una cadena con el cdigo HTML del calendario del mes y ao elegidos
+ y que son propiedades de la clase.
+________________________________________________________________________________________________________*/
+ function MesAnno($mes,$anno,$CntMes){
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+
+ $HTML_calendario='<TABLE border=1 cellspacing=0 cellpadding=1 id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 id="'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Das de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD>&nbsp;</TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD align=center ';
+ if(isset($CntMes[$i])){
+ if($CntMes[$i]==1){
+ $HTML_calendario.=' style="COLOR:#eeeeee;BACKGROUND-COLOR: #cc3366;"';
+ $HTML_calendario.=' id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'"';
+ }
+ }
+ $HTML_calendario.='>'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+/*________________________________________________________________________________________________________
+ Esta funcin devuelve una cadena con el cdigo HTML del calendario del mes y ao elegidos
+ y que son propiedades de la clase.
+________________________________________________________________________________________________________*/
+ function JMesAnno($mes,$anno,$JDif,$TBfechas,$sumahoras){
+ $fecha="1/".$mes."/".$anno;
+ $Jdpl=$this->juliana($fecha)-$JDif; // Calcula punto departida para indice juliano
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ $paso=2; // Porporcin para el la intensidad del color
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+ $HTML_calendario='<TABLE border=1 cellspacing=0 cellpadding=1 id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 id="'.$mes.'/'.$anno.'" style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[(int)$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Das de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD>&nbsp;</TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[(int)$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD align=center ';
+ if(isset($TBfechas[$Jdpl])){
+ if($TBfechas[$Jdpl]>0){
+ $xpor=$TBfechas[$Jdpl]*100/$sumahoras;
+ $itcr=255;
+ $itc=240-($xpor*$paso);
+ if($xpor>=50)
+ $colordia="#FFFFFF";
+ else
+ $colordia="#000000";
+
+ $bgcolordia=sprintf('#%02x%02x%02x',$itcr,$itc,$itc);
+ $HTML_calendario.=' style="COLOR:'.$colordia.';BACKGROUND-COLOR: '.$bgcolordia.';"';
+ $HTML_calendario.=' id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'"';
+ }
+ }
+ $HTML_calendario.='>'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ $Jdpl++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+
+/*________________________________________________________________________________________________________
+ Esta funcin devuelve el nmero del da de la semana:
+ 0=domingo 1=Lunes, 2=mrtes ... 6=sbado
+
+ Parmetro de entrada:
+ Una cadena con formato de fecha dd/mm/aaaa.
+________________________________________________________________________________________________________*/
+ function _DiaSemana($fecha){
+ list($dia,$mes,$anno)=split('[/.-]',$fecha);
+ $cont=0;
+ for ($i=1900;$i<$anno;$i++){
+ if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365;
+ $cont+=$dias_anuales;
+ }
+ for ($i=1;$i<$mes;$i++){
+ if ($i!=2)
+ $cont+=$this->dias_meses[$i];
+ else{
+ if ($this->bisiesto($anno))
+ $cont+=29;
+ else
+ $cont+=28;
+ }
+ }
+ $cont+=$dia+$this->desplazamiento_dias;
+ return($cont%7);
+ }
+//________________________________________________________________________________________________________
+// Esta funcin devuelve true si el ao pasado como parmetro es bisiesto y false si no lo es
+//
+// Parmetro de entrada:
+// Una nmero que representa el ao
+//________________________________________________________________________________________________________
+function bisiesto($anob){
+ if ($anob%4==0) return(true); else return(false);
+ }
+//________________________________________________________________________________________________________
+// Esta funcin devuelve una cadena con el cdigo HTML con las horas de reservas de las aulas
+//________________________________________________________________________________________________________
+function HorasDias($CntDia,$porcenhoras){
+ $HTML_calendario="";
+ $sw=0;
+ $conthoras=0; // Contador de horas y minutos de reservas
+ $maxcolumnas=8;
+ $tbampm[0]="a.m.";
+ $tbampm[1]="p.m.";
+
+ $HTML_calendario.='<TABLE border=0 cellspacing=0 cellpadding=0 id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=3>Horas</TH></TR>'.chr(13); // Literal Horas
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_ampm[0]="";
+ $HTML_ampm[1]="";
+ $swampm[0]=false;
+ $swampm[1]=false;
+
+ if($this->horaresevini<12) $ix=0; else $ix=1;
+ for($j=$ix;$j<=1;$j++){
+ $HTML_ampm[$j].='<TD style="BACKGROUND-COLOR: #FFFFFF;" valig=top >'.chr(13);
+ $HTML_ampm[$j].='<TABLE valig=top cellspacing=0 cellpadding=0 border=1 class="'.$this->clase.'">'.chr(13);
+ $HTML_ampm[$j].='<TR>'.chr(13);
+ $HTML_ampm[$j].='<TH colspan='.$maxcolumnas.'>'.$tbampm[$j].'</TH></TR>'.chr(13); // Literal Horas
+ $HTML_ampm[$j].='<TR>'.chr(13);
+
+ if($j==0){ // A.M.height
+ $imin=$this->horaresevini;
+ $currenthora=$imin;
+ if($this->horaresevfin<=12)
+ $imax=$this->horaresevfin;
+ else
+ $imax=12;
+ }
+ else{
+ if($this->horaresevini<=12)
+ $imin=0;
+ else
+ $imin=$this->horaresevini-12;
+ $imax=(int)$this->horaresevfin-12;
+ $currenthora=$imin;
+ }
+ $cols=0;
+ $currentminutos=0;
+ $currenthorario=$currenthora.":".$currentminutos;
+ $intervalo=($imax-$imin+1)*4;
+ for ($i=$imin;$i<$intervalo;$i++){
+ $cols++;
+ if($sw>0) // Acarre la reserva desde A.M.
+ $swampm[$j]=true;
+
+ if($currentminutos==0) $currenthorario.="0";
+ if(isset($CntDia[$j][$currenthora][$currentminutos])){
+ if($CntDia[$j][$currenthora][$currentminutos]==1)
+ $sw++;
+ $swampm[$j]=true;
+ }
+ if(isset($CntDia[$j][$currenthora][$currentminutos])){
+ if($CntDia[$j][$currenthora][$currentminutos]==0)
+ $sw--;
+ }
+ $HTML_ampm[$j].='<TD ';
+ if($sw>0)
+ $HTML_ampm[$j].=' style="COLOR:#eeeeee;BACKGROUND-COLOR: #cc3366;"';
+
+ if($sw>0) // Cuenta la fraccin de 15 minutos como reservada
+ $conthoras++;
+ $HTML_ampm[$j].=' align=center>&nbsp;'.$currenthorario.'&nbsp;</TD>'.chr(13);
+ $currentminutos+=15;
+ if($currentminutos==60) {
+ $currenthora++;
+ $currentminutos=0;
+ }
+ $currenthorario=$currenthora.":".$currentminutos;
+ if (($cols)%$maxcolumnas==0 ) $HTML_ampm[$j].='</TR><TR>'.chr(13);
+ }
+ $HTML_ampm[$j].='</TR></TABLE>'.chr(13);
+ $HTML_ampm[$j].='</TD>'.chr(13);
+ }
+
+ if ($swampm[0])
+ $HTML_calendario.=$HTML_ampm[0];
+
+ if ($swampm[0] && $swampm[1]){
+ $HTML_calendario.='<TD style="BACKGROUND-COLOR: #FFFFFF;" width=25>&nbsp;'.chr(13);
+ $HTML_calendario.='</TD>'.chr(13);
+ }
+
+ if ($swampm[1])
+ $HTML_calendario.=$HTML_ampm[1];
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ $numblo=($this->horaresevfin-$this->horaresevini)*4;
+ $porcenhoras=floor($conthoras*100/$numblo);
+ return($HTML_calendario);
+}
+/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Devuelve una cadena con los das del mes que son lunes(1) o martes(2) o mircoles(3), etc ...domingo(7) separada por comas
+________________________________________________________________________________________________________________*/
+function DiasPorMes($mes,$anno,$numerodia){
+ $cadenadias="";
+ $dia_c=1;
+ $fecha=$dia_c."/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ while($ds!=$numerodia){
+ $dia_c++;
+ $ds++;
+ if($ds>7) $ds=1;
+ }
+ // Calcula nmero de dias del mes
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ while($dia_c<=$diasmaxmes){
+ $cadenadias.=$dia_c.";";
+ $dia_c+=7;
+ }
+ return($cadenadias);
+}
+/*________________________________________________________________________________________________________
+ Devuelve una cadena con los das del mes correspondiente a una semana concreta, separados por coma
+________________________________________________________________________________________________________*/
+function DiasPorSemanas($mes,$anno,$numerosemana){
+ $cadenadias="";
+ $dia_c=1;
+ $nsem=1;
+ $fecha=$dia_c."/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ while($nsem!=$numerosemana){
+ $dia_c++;
+ $ds++;
+ if($ds>7){
+ $ds=1;
+ $nsem++;
+ }
+ }
+ // Calcula nmero de dias del mes
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ for($i=$ds;$i<=7;$i++){
+ if($dia_c>$diasmaxmes) break;
+ $cadenadias.=$dia_c.";";
+ $dia_c++;
+ }
+ return($cadenadias);
+}
+// ____________________________________________________________________________
+// Esta funcin devuelve el nmero de la ltima semana de un mes
+// ____________________________________________________________________________
+function UltimaSemana($mes,$anno){
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ $nwdia=$diasmaxmes+$ds-1;
+ $cociente=floor($nwdia/7);
+ $resto=$nwdia%7;
+ if($resto>0) $cociente++;
+ return($cociente);
+}
+//________________________________________________________________________________________________________
+// Funcin : Fechas
+// Descripcin :
+// Devuelve una cadena de fechas separada por comas que son las fechas que forman parte de una reserva concreta
+// Parametros:
+// - anno_c: Un ao determinado
+// - mes_desde: El mes desde que se considera la reserva
+// - mes_hasta: El mes hasta que se considera la reserva
+// - meses: Campo con informacin hexadecimal de los meses de la reserva ( la informacin contenida en el campo de la tabla con este nombre
+// - diario: Idem para los dias de un mes
+// - dias: idem para los nombres de los das
+// - semanas: Idem para las semanas
+//________________________________________________________________________________________________________
+function Fechas($anno_c,$mes_desde,$mes_hasta,$meses,$diario,$dias,$semanas){
+ $cadenafechas="";
+ $mascara=0x0001;
+ $cadenameses="";
+ $meses=$meses>>($mes_desde-1);
+ for($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($meses&$mascara>0){
+ $cadenameses.=$i.";";
+ // Dias de la semana
+ if($dias>0){
+ $auxdias=$dias;
+ for($j=1;$j<=7;$j++){
+ if($auxdias&$mascara>0){
+ $cadenadias=$this->DiasPorMes($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxdias=$auxdias>>1;
+ }
+ }
+ // Semanas
+ if($semanas>0){
+ $auxsemanas=$semanas;
+ for($j=1;$j<=6;$j++){
+ if($auxsemanas&$mascara>0){
+ if($j==6){
+ $ulse=$this->UltimaSemana($i,$anno_c);
+ $cadenadias=$this->DiasPorSemanas($i,$anno_c,$ulse);
+ }
+ else
+ $cadenadias=$this->DiasPorSemanas($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxsemanas=$auxsemanas>>1;
+ }
+ }
+ }
+ $meses=$meses>>1;
+ }
+ $cadenadiario="";
+ for($i=1;$i<32;$i++){
+ if($diario&$mascara>0) $cadenadiario.=$i.";";
+ $diario=$diario>>1;
+ }
+ $tbmeses=split(";",$cadenameses);
+ $tbdiario=split(";",$cadenadiario);
+ for ($i=0;$i<sizeof($tbmeses)-1;$i++){
+ for ($j=0;$j<sizeof($tbdiario)-1;$j++){
+ $cadenafechas.=$tbdiario[$j]."/".$tbmeses[$i]."/".$anno_c.";";
+ }
+ }
+ return($cadenafechas);
+}
+/*______________________________________________________________________
+ Devuelve el dia juliano de una fecha determinada
+ Parametros:
+ - cadena con la fecha en formato "dd/mm/aaaa"
+ Devuelve:
+ - El dia juliano
+_______________________________________________________________________*/
+function juliana($fecha) {
+ list($dia,$mes,$anno)=split("[/-]",$fecha);
+ $GGG = 1;
+ if ($anno <= 1585) $GGG = 0;
+ $juliano= -1 * floor(7 * (floor(($mes + 9) / 12) + $anno) / 4);
+ $S = 1;
+ if (($mes - 9)<0) $S=-1;
+ $A = abs($mes - 9);
+ $auxjuliano = floor($anno + $S * floor($A / 7));
+ $auxjuliano = -1 * floor((floor($auxjuliano / 100) + 1) * 3 / 4);
+ $juliano = $juliano + floor(275 * $mes / 9) + $dia + ($GGG * $auxjuliano);
+ $juliano =$juliano + 1721027 + 2 * $GGG + 367 * $anno - 0.5;
+ return(floor($juliano));
+}
+} // Fin de la clase Calendario \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php b/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php
new file mode 100644
index 00000000..af5c7aa2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/colasacciones_eng.php
@@ -0,0 +1,79 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasacciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de acciones
+$LITEJECUCION_COMANDO="Commands";
+$LITEJECUCION_PROCEDIMIENTO="Procedures";
+$LITEJECUCION_TAREA="Tasks";
+$LITEJECUCION_TRABAJO="Jobs";
+
+$LITACCION_EXITOSA='Finished successfully'; // Literal Finalizada con exito
+$LITACCION_FALLIDA='Finished with errors'; // Literal Finalizada con errores
+$LITACCION_TERMINADA='Finished manualy'; //Literal Finalizada manualmente con indicacion de exito
+$LITACCION_ABORTADA='Canceled manualy'; // Literal Finalizada manualmente con indicacion de errores
+$LITACCION_SINERRORES='Active without errors'; // Literal Activa y sin ningn error
+$LITACCION_CONERRORES='Active with errors'; // Literal Activa y con algn error
+
+$LITACCION_DETENIDA='Stopped'; // Literal accin momentanemente parada
+$LITACCION_INICIADA='Active'; // Literal accin activa
+$LITACCION_FINALIZADA='Finished'; // Literal accin finalizada
+
+$TbMsg=array();
+ $TbMsg[0]='Actions queue';
+ $TbMsg[1]='Searches filters';
+ $TbMsg[2]='Actions';
+ $TbMsg[3]='Results';
+ $TbMsg[4]='Status';
+ $TbMsg[5]='Percentage from';
+ $TbMsg[6]='to';
+ $TbMsg[7]='Start date';
+ $TbMsg[8]='Finish date';
+ $TbMsg[9]='Start our';
+ $TbMsg[10]='Finish our';
+ $TbMsg[11]='Environment';
+ $TbMsg[12]='Remove';
+ $TbMsg[13]='Reinitialize';
+ $TbMsg[14]='Stop';
+ $TbMsg[15]='Go';
+ $TbMsg[16]='Cancel';
+ $TbMsg[17]='Finish';
+
+ $TbMsg[18]='Action';
+ $TbMsg[19]='Finish date';
+ $TbMsg[20]='Finish our';
+ $TbMsg[21]='Start date';
+ $TbMsg[22]='Start our';
+ $TbMsg[23]='Name';
+
+ $TbMsg[24]='Centers';
+ $TbMsg[25]='Group of labs';
+ $TbMsg[26]='Labs';
+ $TbMsg[27]='Group of computers';
+ $TbMsg[28]='Computers';
+
+ $TbMsg[30]='Commands';
+ $TbMsg[31]='Tasks';
+ $TbMsg[32]='Jobs';
+
+ $TbMsg[41]='"Accion filter"';
+ $TbMsg[42]='"Environment filter"';
+ $TbMsg[43]='"Remove filter"';
+ $TbMsg[44]='"Modify Accin"';
+ $TbMsg[45]='"Reinitialize"';
+ $TbMsg[46]='"Remove"';
+ $TbMsg[47]='"Parent Task"';
+ $TbMsg[48]='"Parent Job"';
+ $TbMsg[49]='"See commands"';
+ $TbMsg[50]='"See task"';
+ $TbMsg[51]='"Stop"';
+ $TbMsg[52]='"Go"';
+ $TbMsg[53]='"Cancel"';
+ $TbMsg[54]='"Finish"';
+ $TbMsg[55]='"Finish without errors"';
+ $TbMsg[56]='"Finish with errors"';
+ $TbMsg[57]='Information';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/colasreservas_eng.php b/admin/WebConsole/idiomas/php/eng/colasreservas_eng.php
new file mode 100644
index 00000000..648638a5
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/colasreservas_eng.php
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasacciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendings";
+$LITRESERVA_CONFIRMADA="Confirmeds";
+$LITRESERVA_DENEGADA="Refuses";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspended'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Active'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Labs reserves';
+ $TbMsg[1]='Searches filters';
+ $TbMsg[2]='Type';
+ $TbMsg[3]='';
+ $TbMsg[4]='Status';
+ $TbMsg[5]='Percentage from';
+ $TbMsg[6]='Percentage to';
+ $TbMsg[7]='Start date';
+ $TbMsg[8]='Finish date';
+ $TbMsg[9]='Start our';
+ $TbMsg[10]='Finish our';
+ $TbMsg[11]='Environment';
+
+ $TbMsg[12]='Centers';
+ $TbMsg[13]='Labs group';
+ $TbMsg[14]='Labs';
+
+ $TbMsg[15]='Year';
+ $TbMsg[16]='Month';
+ $TbMsg[17]='Day';
+ $TbMsg[18]='Lab';
+ $TbMsg[19]='Ocupation';
+ $TbMsg[20]='Asociated Image';
+ $TbMsg[21]='Description';
+
+ $TbMsg[22]='Reserves schedules';
+ $TbMsg[23]='(Not especified)';
+ $TbMsg[24]='Lab';
+ $TbMsg[25]='Petitioner';
+ $TbMsg[26]='Previous antiicipation';
+ $TbMsg[27]="(Without previous acction)";
+ $TbMsg[28]="Previous Task";
+ $TbMsg[29]="Previous Jobs";
+
+
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/apagar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/apagar_eng.php
new file mode 100644
index 00000000..915b398a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/apagar_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: apagar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Power-Off computers';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/arrancar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/arrancar_eng.php
new file mode 100644
index 00000000..3b3582fb
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/arrancar_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: arrancar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Power-On computers';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php
new file mode 100644
index 00000000..82c72bdb
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/configurar_eng.php
@@ -0,0 +1,26 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configurar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Configurations';
+ $TbMsg[6]='Environment';
+ $TbMsg[7]='Hide patition';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Type';
+ $TbMsg[10]='System name';
+ $TbMsg[11]='Size';
+ $TbMsg[12]='Operation';
+ $TbMsg[13]='No action';
+ $TbMsg[14]='Format';
+ $TbMsg[15]='Hide';
+ $TbMsg[16]='Show';
+ $TbMsg[17]=' Free space !!';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/conmutar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/conmutar_eng.php
new file mode 100644
index 00000000..82068595
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/conmutar_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: apagar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Switch computers';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/crearperfilsoftware_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/crearperfilsoftware_eng.php
new file mode 100644
index 00000000..cab0b6c9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/crearperfilsoftware_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearperfilsoftware_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Generation of software profiles';
+ $TbMsg[1]='Computer features';
+ $TbMsg[2]='Name';
+ $TbMsg[3]='IP Address';
+ $TbMsg[4]='MAC Address';
+ $TbMsg[5]='Hardware profile';
+ $TbMsg[6]='Data to provide';
+ $TbMsg[7]='';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='System name';
+ $TbMsg[10]='Availables software profiles ';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php
new file mode 100644
index 00000000..4c90e59b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/crearsoftincremental_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearsoftincremental_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Generation of incremental software';
+ $TbMsg[1]='Computer features';
+ $TbMsg[2]='Name';
+ $TbMsg[3]='IP Address';
+ $TbMsg[4]='MAC Address';
+ $TbMsg[5]='Hardware profile';
+ $TbMsg[6]='Data to provide';
+ $TbMsg[7]='';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Profile name';
+ $TbMsg[10]='Availables incremetnal software ';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php
new file mode 100644
index 00000000..454c9a7c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/ejecutarscripts_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: ejecutarscripts_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Perfom Script';
+ $TbMsg[6]='Environment';
+ $TbMsg[7]='Title';
+ $TbMsg[8]='Description';
+ $TbMsg[9]='Rembo-C code';
+ $TbMsg[10]='Code file';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/gestor_ejecutarscripts_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/gestor_ejecutarscripts_eng.php
new file mode 100644
index 00000000..74b05d73
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/gestor_ejecutarscripts_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: gestor_ejecutarscripts_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[1]='"WARNING: The command Perform Script has successfully registered"';
+ $TbMsg[2]='"WARNING: There are some problem to perform the script"';
+ $TbMsg[3]='"WARNING: The file do not have the .rbc extension"';
+ $TbMsg[4]='"WARNING: The file do not have Rembo-C code lines"';
+ $TbMsg[5]='"WARNING: There are some problem to save the file script"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php
new file mode 100644
index 00000000..a2cccdcd
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/particionaryformatear_eng.php
@@ -0,0 +1,26 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: particionaryformatear_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Partitions and Formatting';
+ $TbMsg[6]='Environment';
+ $TbMsg[7]='';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Type';
+ $TbMsg[10]='System name';
+ $TbMsg[11]='Size';
+ $TbMsg[12]='Operation';
+ $TbMsg[13]='No action';
+ $TbMsg[14]='Format';
+ $TbMsg[15]='Hide';
+ $TbMsg[16]='Show';
+ $TbMsg[17]=' Free space !!';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/reiniciar_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/reiniciar_eng.php
new file mode 100644
index 00000000..c47e8a02
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/reiniciar_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: apagar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Rebootf computers';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/rembooffline_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/rembooffline_eng.php
new file mode 100644
index 00000000..54d50e62
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/rembooffline_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: apagar_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Activate Rembo OffLine';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php
new file mode 100644
index 00000000..b7633d09
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/restaurarimagen_eng.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: restaurarimagen_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Restore Image';
+ $TbMsg[6]='Environment';
+ $TbMsg[7]='Data to provide';
+ $TbMsg[8]='System name';
+ $TbMsg[9]='Image to restore';
+ $TbMsg[10]='Restore (Same partition type)';
+ $TbMsg[11]='Restore (Others partition type)';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/comandos/tomaconfiguracion_eng.php b/admin/WebConsole/idiomas/php/eng/comandos/tomaconfiguracion_eng.php
new file mode 100644
index 00000000..226c9b87
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/comandos/tomaconfiguracion_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: tomaconfiguracion_eng.php (Comandos)
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centers';
+ $TbMsg[1]='Group of labs';
+ $TbMsg[2]='Labs';
+ $TbMsg[3]='Group of computers';
+ $TbMsg[4]='Computers';
+ $TbMsg[5]='Get configuration from computers';
+ $TbMsg[6]='Environment';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/configuracionaula_eng.php b/admin/WebConsole/idiomas/php/eng/configuracionaula_eng.php
new file mode 100644
index 00000000..cc67e79e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/configuracionaula_eng.php
@@ -0,0 +1,23 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configuracionaula_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]='Computers configurations';
+$TbMsg[1]='Lab features';
+$TbMsg[2]="Lab Name";
+$TbMsg[3]="Ubication";
+$TbMsg[4]="Cagnon";
+$TbMsg[5]="Blackboard";
+$TbMsg[6]="Places";
+$TbMsg[7]="Image Url";
+$TbMsg[8]="Comments";
+$TbMsg[9]='Data configuration';
+$TbMsg[10]='Partition';
+$TbMsg[11]='System name';
+$TbMsg[12]='Size';
+$TbMsg[13]='Computers';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/configuraciongrupoordenador_eng.php b/admin/WebConsole/idiomas/php/eng/configuraciongrupoordenador_eng.php
new file mode 100644
index 00000000..6a27dc4a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/configuraciongrupoordenador_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configuraciongrupoordenador_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]='Computers configurations';
+$TbMsg[1]='Group features';
+$TbMsg[2]="Group Name";
+$TbMsg[3]='Data configuration';
+$TbMsg[4]='Partition';
+$TbMsg[5]='System name';
+$TbMsg[6]='Size';
+$TbMsg[7]='Computers';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/configuracionordenador_eng.php b/admin/WebConsole/idiomas/php/eng/configuracionordenador_eng.php
new file mode 100644
index 00000000..96767c0d
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/configuracionordenador_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configuracionordenador_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Computers configurations';
+ $TbMsg[1]='Computer features';
+ $TbMsg[2]='Name';
+ $TbMsg[3]='IP Address';
+ $TbMsg[4]='MAC Address';
+ $TbMsg[5]='Hardware profile';
+ $TbMsg[6]='Partition';
+ $TbMsg[7]='System name';
+ $TbMsg[8]='Size';
+ $TbMsg[9]='Data configuration';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/conmutar_eng.php b/admin/WebConsole/idiomas/php/eng/conmutar_eng.php
new file mode 100644
index 00000000..233b13aa
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/conmutar_eng.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: conmutar_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='This environment has been switched successfully refreshed';
+ $TbMsg[1]='WARNING: Having some problem to switch this environment';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/ejecutarprocedimientos_eng.php b/admin/WebConsole/idiomas/php/eng/ejecutarprocedimientos_eng.php
new file mode 100644
index 00000000..c1284053
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/ejecutarprocedimientos_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: acciones_esp.php
+// Idioma: Espaol
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centros';
+ $TbMsg[1]='Grupo de aulas';
+ $TbMsg[2]='Aulas';
+ $TbMsg[3]='Grupo de ordenadores';
+ $TbMsg[4]='Ordenadores';
+ $TbMsg[5]='Ejecucin de procedimientos';
+ $TbMsg[6]='mbito';
+ $TbMsg[7]='Procedures';
+ $TbMsg[8]='Procedures';
+ $TbMsg[9]='"Perform procedure"';
+ ?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/hardwares_eng.php b/admin/WebConsole/idiomas/php/eng/hardwares_eng.php
new file mode 100644
index 00000000..826e00d3
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/hardwares_eng.php
@@ -0,0 +1,29 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: hardwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Define new hardware type"';
+ $TbMsg[1]='"Properties"';
+ $TbMsg[2]='"Remove hardware type"';
+ $TbMsg[3]='"New components group"';
+ $TbMsg[4]='"Define new component"';
+ $TbMsg[5]='"To put component"';
+ $TbMsg[6]='"Rename"';
+ $TbMsg[7]='"Remove components group"';
+ $TbMsg[8]='"Move component"';
+ $TbMsg[9]='"Remove component"';
+ $TbMsg[10]='"New profiles group"';
+ $TbMsg[11]='"Define new profile"';
+ $TbMsg[12]='"To put profile"';
+ $TbMsg[13]='"Remove profiles group"';
+ $TbMsg[14]='"Components management"';
+ $TbMsg[15]='"Perfil information"';
+ $TbMsg[16]='"To move profile"';
+ $TbMsg[17]='"Remove profile"';
+ $TbMsg[18]='"Hardwares types"';
+ $TbMsg[19]='"Hardwares components"';
+ $TbMsg[20]='"Hardwares profiles"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/imagenes_eng.php
new file mode 100644
index 00000000..015be0ba
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/imagenes_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: imagenes_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"New images group"';
+ $TbMsg[1]='"Define new image"';
+ $TbMsg[2]='"To put image"';
+ $TbMsg[3]='"Rename"';
+ $TbMsg[4]='"Remove images group"';
+ $TbMsg[5]='"Image information"';
+ $TbMsg[6]='"To move image"';
+ $TbMsg[7]='"Properties"';
+ $TbMsg[8]='"Remove Image"';
+ $TbMsg[9]='"Images"';
+ $TbMsg[10]='"Incrementals management"';
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/imagenincremental_eng.php b/admin/WebConsole/idiomas/php/eng/imagenincremental_eng.php
new file mode 100644
index 00000000..6453533e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/imagenincremental_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php:imagenincremental_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Images';
+ $TbMsg[1]='Incrementals software management ';
+ $TbMsg[2]='Image';
+ $TbMsg[3]='Incremental software name';
+ $TbMsg[4]='(*)To include some incremental software in this image software you must click in the corresponding checkbox.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/incorporaordenadores_eng.php b/admin/WebConsole/idiomas/php/eng/incorporaordenadores_eng.php
new file mode 100644
index 00000000..83b91381
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/incorporaordenadores_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incorporaordenadores_eng.php (Comandos)
+// Idioma: Ingls
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Computers Entry';
+ $TbMsg[1]='(Throught file configuratipon of dhcp servers)';
+ $TbMsg[2]='File';
+ $TbMsg[3]='WARNING: There are some problem to insert computers from file';
+ $TbMsg[4]='WARNING: The file do not have any information line';
+ $TbMsg[5]='WARNING: El fichero no contiene informacin con el formato necesario para incorporar ordenadores';
+ $TbMsg[6]='WARNING: There are some problem to save the file';
+ $TbMsg[7]='Computers has successfully registered';
+ $TbMsg[8]='Content';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/incrementalcomponente_soft_eng.php b/admin/WebConsole/idiomas/php/eng/incrementalcomponente_soft_eng.php
new file mode 100644
index 00000000..199e9910
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/incrementalcomponente_soft_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incrementalcomponente_soft_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Incremental Software';
+ $TbMsg[1]='Components management ';
+ $TbMsg[2]='Incremental software';
+ $TbMsg[3]='Component name';
+ $TbMsg[4]='(*)To include some component in this incremental software you must click in the corresponding checkbox.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php
new file mode 100644
index 00000000..f83b4715
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_imagenes_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_imagenes_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Images';
+ $TbMsg[1]='Information about images';
+ $TbMsg[2]='Image';
+ $TbMsg[3]='Images information';
+ $TbMsg[4]='S software components';
+ $TbMsg[5]='Diferential software';
+ $TbMsg[6]='Software Profile';
+ $TbMsg[7]='Computers with this image';
+ $TbMsg[8]='Partition';
+ $TbMsg[9]='Coments';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_incrementales_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_incrementales_eng.php
new file mode 100644
index 00000000..62b77bc0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_incrementales_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_incrementales_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Software profiles';
+ $TbMsg[1]='Information about profiles';
+ $TbMsg[2]='Software profile';
+ $TbMsg[3]='Software profiles information';
+ $TbMsg[4]='Software components';
+ $TbMsg[5]='Profiles availables';
+ $TbMsg[6]='Hardware profiles supported';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php
new file mode 100644
index 00000000..9b414a2f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_menus_eng.php
@@ -0,0 +1,29 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_menus_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items of the Menus';
+ $TbMsg[1]='Information about Menus';
+ $TbMsg[2]='Menu';
+ $TbMsg[3]='Menus information';
+ $TbMsg[4]='Properties of the items';
+ $TbMsg[5]='Properties';
+ $TbMsg[6]='Remove Item';
+ $TbMsg[7]='Title';
+ $TbMsg[8]='Publics Items Menu properties';
+ $TbMsg[9]='Coordinate x';
+ $TbMsg[10]='Coordinate y';
+ $TbMsg[11]='Modality';
+ $TbMsg[12]='Privates Items Menu properties';
+ $TbMsg[13]='Publics items';
+ $TbMsg[14]='Privates items';
+ $TbMsg[15]='Item order';
+ $TbMsg[16]='Item literal';
+ $TbMsg[17]='Image name';
+ $TbMsg[18]='Simple menu';
+ $TbMsg[19]='Double menu';
+ $TbMsg[20]='Item key';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_perfileshard_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_perfileshard_eng.php
new file mode 100644
index 00000000..a57fb8aa
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_perfileshard_eng.php
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_perfileshard_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Hardware profiles';
+ $TbMsg[1]='Information about profiles';
+ $TbMsg[2]='Hardware profile';
+ $TbMsg[3]='Hardware profiles information';
+ $TbMsg[4]='Software profiles availables';
+ $TbMsg[5]='Software components';
+ $TbMsg[6]='Hardware components';
+ $TbMsg[7]='Diferential software';
+ $TbMsg[8]='Coments';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_perfilessoft_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_perfilessoft_eng.php
new file mode 100644
index 00000000..5c183df0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_perfilessoft_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_perfilessoft_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Software profiles';
+ $TbMsg[1]='Information about profiles';
+ $TbMsg[2]='Software profile';
+ $TbMsg[3]='Software profiles information';
+ $TbMsg[4]='Hardware profiles supported';
+ $TbMsg[5]='Hardware components';
+ $TbMsg[6]='Software components';
+ $TbMsg[7]='Diferential software';
+ $TbMsg[8]='Coments';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_procedimientos_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_procedimientos_eng.php
new file mode 100644
index 00000000..67de6c8b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_procedimientos_eng.php
@@ -0,0 +1,11 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_procedimientos_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parameters of the commands in Procedure';
+ $TbMsg[1]='Parameter';
+ $TbMsg[2]='Value';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_tareas_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_tareas_eng.php
new file mode 100644
index 00000000..ece7a7f4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_tareas_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_tareas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parameters of the commands in Task';
+ $TbMsg[1]='Parameter';
+ $TbMsg[2]='Value';
+ $TbMsg[3]='Environment';
+ $TbMsg[4]='Name';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/informacion_trabajos_eng.php b/admin/WebConsole/idiomas/php/eng/informacion_trabajos_eng.php
new file mode 100644
index 00000000..634b6bb2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/informacion_trabajos_eng.php
@@ -0,0 +1,14 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_tareas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Including Tasks in job';
+ $TbMsg[1]='Parameters of the commands in Task';
+ $TbMsg[2]='Parameter';
+ $TbMsg[3]='Value';
+ $TbMsg[4]='Environment';
+ $TbMsg[5]='Name';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/menus_eng.php b/admin/WebConsole/idiomas/php/eng/menus_eng.php
new file mode 100644
index 00000000..69639bca
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/menus_eng.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: menus_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"New menus group"';
+ $TbMsg[1]='"Define new menu"';
+ $TbMsg[2]='"To put menu"';
+ $TbMsg[3]='"Rename"';
+ $TbMsg[4]='"Remove menu group"';
+ $TbMsg[5]='"Menu information"';
+ $TbMsg[6]='"To move menu"';
+ $TbMsg[7]='"Propiedades"';
+ $TbMsg[8]='"Remove menu"';
+ $TbMsg[9]='"Menus"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/perfilcomponente_hard_eng.php b/admin/WebConsole/idiomas/php/eng/perfilcomponente_hard_eng.php
new file mode 100644
index 00000000..cc8a6187
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/perfilcomponente_hard_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: perfilcomponente_hard_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Hardware profiles';
+ $TbMsg[1]='Components management ';
+ $TbMsg[2]='Hardware profile';
+ $TbMsg[3]='Component name';
+ $TbMsg[4]='(*)To include some component in this profile you must click in the corresponding checkbox.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/perfilcomponente_soft_eng.php b/admin/WebConsole/idiomas/php/eng/perfilcomponente_soft_eng.php
new file mode 100644
index 00000000..280bb9e0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/perfilcomponente_soft_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: perfilcomponente_soft_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Software profiles';
+ $TbMsg[1]='Components management ';
+ $TbMsg[2]='Software profile';
+ $TbMsg[3]='Component name';
+ $TbMsg[4]='(*)To include some component in this profile you must click in the corresponding checkbox.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/procedimientoscomandos_eng.php b/admin/WebConsole/idiomas/php/eng/procedimientoscomandos_eng.php
new file mode 100644
index 00000000..e9ae615f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/procedimientoscomandos_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: procedimientoscomandos_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Mangement Commands of a Procedure';
+ $TbMsg[1]='Includes Commands';
+ $TbMsg[2]='Procedure';
+ $TbMsg[3]='Command name';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parameter';
+ $TbMsg[6]='Value';
+ $TbMsg[7]='(*)To exclude some command from this procedure you must click in the corresponding checkbox';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/programaciones_eng.php b/admin/WebConsole/idiomas/php/eng/programaciones_eng.php
new file mode 100644
index 00000000..e6e0e840
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/programaciones_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: programaciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+// Literales de los tipo de acciones
+$LITEJECUCION_COMANDO="Commands";
+$LITEJECUCION_PROCEDIMIENTO="Procedures";
+$LITEJECUCION_TAREA="Tasks";
+$LITEJECUCION_TRABAJO="Jobs";
+$LITEJECUCION_RESERVA="Reserves";
+
+$TbMsg=array();
+
+$TbMsg[0]="Schedules";
+$TbMsg[1]="To Suspend temporarily all scheduled blocks";
+$TbMsg[2]="Block description";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/programacionesaulas_eng.php b/admin/WebConsole/idiomas/php/eng/programacionesaulas_eng.php
new file mode 100644
index 00000000..e5a0b0e1
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/programacionesaulas_eng.php
@@ -0,0 +1,54 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasacciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendings";
+$LITRESERVA_CONFIRMADA="Confirmeds";
+$LITRESERVA_DENEGADA="Refuses";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspended'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Active'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Labs reserves';
+ $TbMsg[1]='Searches filters';
+ $TbMsg[2]='Type';
+ $TbMsg[3]='';
+ $TbMsg[4]='Status';
+ $TbMsg[5]='Percentage from';
+ $TbMsg[6]='Percentage to';
+ $TbMsg[7]='Start date';
+ $TbMsg[8]='Finish date';
+ $TbMsg[9]='Start our';
+ $TbMsg[10]='Finish our';
+ $TbMsg[11]='Environment';
+
+ $TbMsg[12]='Centers';
+ $TbMsg[13]='Labs group';
+ $TbMsg[14]='Labs';
+
+ $TbMsg[15]='Year';
+ $TbMsg[16]='Month';
+ $TbMsg[17]='Day';
+ $TbMsg[18]='Lab';
+ $TbMsg[19]='Ocupation';
+ $TbMsg[20]='Asociated Image';
+ $TbMsg[21]='Description';
+
+ $TbMsg[22]='Reserves schedules';
+ $TbMsg[23]='(Not especified)';
+ $TbMsg[24]='Lab';
+ $TbMsg[25]='Petitioner';
+ $TbMsg[26]='Previous antiicipation';
+ $TbMsg[27]="(Without previous acction)";
+ $TbMsg[28]="Previous Task";
+ $TbMsg[29]="Previous Jobs";
+ $TbMsg[30]='Reserves group';
+
+
diff --git a/admin/WebConsole/idiomas/php/eng/programacionesreservas_eng.php b/admin/WebConsole/idiomas/php/eng/programacionesreservas_eng.php
new file mode 100644
index 00000000..63b7d00d
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/programacionesreservas_eng.php
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasacciones_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendings";
+$LITRESERVA_CONFIRMADA="Confirmeds";
+$LITRESERVA_DENEGADA="Refuses";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspended'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Active'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Labs reserves';
+ $TbMsg[1]='Searches filters';
+ $TbMsg[2]='Type';
+ $TbMsg[3]='';
+ $TbMsg[4]='Status';
+ $TbMsg[5]='Percentage from';
+ $TbMsg[6]='Percentage to';
+ $TbMsg[7]='Start date';
+ $TbMsg[8]='Finish date';
+ $TbMsg[9]='Start our';
+ $TbMsg[10]='Finish our';
+ $TbMsg[11]='Environment';
+
+ $TbMsg[12]='Reserves';
+ $TbMsg[13]='Reserves group';
+
+ $TbMsg[15]='Year';
+ $TbMsg[16]='Month';
+ $TbMsg[17]='Day';
+ $TbMsg[18]='Lab';
+ $TbMsg[19]='Ocupation';
+ $TbMsg[20]='Asociated Image';
+ $TbMsg[21]='Description';
+
+ $TbMsg[22]='Reserves schedules';
+ $TbMsg[23]='(Not especified)';
+ $TbMsg[24]='Lab';
+ $TbMsg[25]='Petitioner';
+ $TbMsg[26]='Previous antiicipation';
+ $TbMsg[27]="(Without previous acction)";
+ $TbMsg[28]="Previous Task";
+ $TbMsg[29]="Previous Jobs";
+ $TbMsg[30]="Reserve data";
+
+
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php
new file mode 100644
index 00000000..795578ba
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_aulas_eng.php
@@ -0,0 +1,25 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_aulas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Labs Management";
+$TbMsg[5]="Lab Name";
+$TbMsg[6]="Ubication";
+$TbMsg[7]="Cagnon";
+$TbMsg[8]="Blackboard";
+$TbMsg[9]="Places";
+$TbMsg[10]="Image Url";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Comments";
+$TbMsg[13]="Intervals";
+$TbMsg[14]="Begin reserves";
+$TbMsg[15]="End reserves";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_centros_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_centros_eng.php
new file mode 100644
index 00000000..75c96b60
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_centros_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Organizing Unit Management";
+$TbMsg[5]="Name of Unit";
+$TbMsg[6]="Coments";
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_componentehardwares_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_componentehardwares_eng.php
new file mode 100644
index 00000000..93c26a47
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_componentehardwares_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_componentehardwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Hardware Components Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Hardware type";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_componentesoftwares_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_componentesoftwares_eng.php
new file mode 100644
index 00000000..824255a2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_componentesoftwares_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_componentesoftwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Software Components Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Software type";
+$TbMsg[7]="Type of S.O.";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_entidades_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_entidades_eng.php
new file mode 100644
index 00000000..45ec7d31
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_entidades_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Entity Management";
+$TbMsg[5]="Name of entity";
+$TbMsg[6]="Coments";
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_grupos_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_grupos_eng.php
new file mode 100644
index 00000000..4d61636b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_grupos_eng.php
@@ -0,0 +1,31 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tareas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Group Management";
+$TbMsg[5]="Group name";
+$TbMsg[6]="Comments";
+$TbMsg[7]="Labs Groups";
+$TbMsg[8]="Procedures Groups";
+$TbMsg[9]="Tasks Groups";
+$TbMsg[10]="Jobs Groups";
+$TbMsg[11]="Images Groups";
+$TbMsg[12]="Hardware Components Groups ";
+$TbMsg[13]="Software Components Groups";
+$TbMsg[14]="Hardware Groups";
+$TbMsg[15]="Software Profiles Groups";
+$TbMsg[16]="Software Incremental Groups";
+$TbMsg[17]="OpenGnsys Servers Groups";
+$TbMsg[18]="Dhcp Servers Groups";
+$TbMsg[19]="Menus Groups";
+$TbMsg[20]="Reserves Groups";
+$TbMsg[21]="Entities Groups";
+$TbMsg[22]="Computers Groups";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php
new file mode 100644
index 00000000..830d6248
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_imagenes_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_imagenes_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Images Management";
+$TbMsg[5]="Image Name";
+$TbMsg[6]="Software Profile";
+$TbMsg[7]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php
new file mode 100644
index 00000000..7193b389
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_menus_eng.php
@@ -0,0 +1,26 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_menus_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Menus Management";
+$TbMsg[5]="Menu name";
+$TbMsg[6]="Title";
+$TbMsg[7]="Comments";
+$TbMsg[8]="Publics Items Menu";
+$TbMsg[9]="Coordinate x";
+$TbMsg[10]="Coordinate y";
+$TbMsg[11]="Modality";
+$TbMsg[12]="Privates Items Menu";
+$TbMsg[13]="Simple menu";
+$TbMsg[14]="Double menu";
+$TbMsg[15]="Html public menu";
+$TbMsg[16]="Html private menu";
+$TbMsg[17]="Screen resolution";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php
new file mode 100644
index 00000000..32fb7ab4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadores_eng.php
@@ -0,0 +1,22 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Computers Management";
+$TbMsg[5]="Computer name";
+$TbMsg[6]="IP Address";
+$TbMsg[7]="MAC Address";
+$TbMsg[8]="Hardware profile";
+$TbMsg[9]="Dhcp Server";
+$TbMsg[10]="OpenGnsys Server";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Cache size";
+
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_ordenadorestandar_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadorestandar_eng.php
new file mode 100644
index 00000000..d038f2de
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_ordenadorestandar_eng.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadorestandar_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Lab";
+$TbMsg[1]="Computer template";
+$TbMsg[2]="Name";
+$TbMsg[3]="IP Address";
+$TbMsg[4]="MAC Address";
+$TbMsg[5]="Hardware profile";
+$TbMsg[6]="Dhcp Server";
+$TbMsg[7]="OpenGnsys Server";
+$TbMsg[8]="Number of computer to insert";
+$TbMsg[9]='(*) To modify all computers with certain data, in this labs, you must to introduce the corresponding value and let the last field: "Number of computer to inser" to zero.';
+$TbMsg[10]="(**) If it's all about new computers with a default configurations, but you don't want to modify existing computers data, you must to introduce a value greater than zero.";
+$TbMsg[11]="Cache size";
+
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_perfilhardwares_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_perfilhardwares_eng.php
new file mode 100644
index 00000000..939ea49a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_perfilhardwares_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_perfilhardwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Hardware Profiles Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_perfilsoftwares_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_perfilsoftwares_eng.php
new file mode 100644
index 00000000..f8ae16dc
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_perfilsoftwares_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_perfilsoftwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Software Profiles Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_procedimientos_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_procedimientos_eng.php
new file mode 100644
index 00000000..8b326199
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_procedimientos_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_procedimientos_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Procedures Management";
+$TbMsg[5]="Procedure Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_reservas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_reservas_eng.php
new file mode 100644
index 00000000..42b33988
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_reservas_eng.php
@@ -0,0 +1,30 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_reservas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Reserves Management";
+$TbMsg[5]="Description";
+$TbMsg[6]="Petitioner";
+$TbMsg[7]="Comments";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Estatus";
+$TbMsg[10]="Lab";
+$TbMsg[11]="Asociated Image";
+$TbMsg[12]="Previous anticipation";
+$TbMsg[13]="Confirmed";
+$TbMsg[14]="Pending";
+$TbMsg[15]="Refussed";
+$TbMsg[16]="Reserve estatus";
+$TbMsg[17]="(Blank o 0 minutes for No anticipation)";
+$TbMsg[18]="(Without previous acction)";
+$TbMsg[19]="Previous Task";
+$TbMsg[20]="Previous Jobs";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_softincrementales_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_softincrementales_eng.php
new file mode 100644
index 00000000..c0248263
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_softincrementales_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_softincrementales_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Software Incremental Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php
new file mode 100644
index 00000000..fa5f105b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_tareas_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tareas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Task Management";
+$TbMsg[5]="Task Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_tipohardwares_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_tipohardwares_eng.php
new file mode 100644
index 00000000..53b03a0f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_tipohardwares_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tipohardwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Hardware Types Management";
+$TbMsg[5]="Name";
+$TbMsg[6]="Icon";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_trabajos_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_trabajos_eng.php
new file mode 100644
index 00000000..ed350efe
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_trabajos_eng.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_trabajos_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="Jobs Management";
+$TbMsg[5]="Job Name";
+$TbMsg[6]="Comments";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_universidades_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_universidades_eng.php
new file mode 100644
index 00000000..8523acf9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_universidades_eng.php
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_aulas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="University Management";
+$TbMsg[4]="Gestin Universidades";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Comentarios";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php
new file mode 100644
index 00000000..dd6fb44f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/propiedades_usuarios_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="No Option";
+$TbMsg[1]="Insert";
+$TbMsg[2]="Modify";
+$TbMsg[3]="Remove";
+$TbMsg[4]="User Management";
+$TbMsg[5]="User";
+$TbMsg[6]="Password";
+$TbMsg[7]="Name";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Organizing Unit";
+$TbMsg[10]="Language ";
+?>
diff --git a/admin/WebConsole/idiomas/php/eng/purgar_eng.php b/admin/WebConsole/idiomas/php/eng/purgar_eng.php
new file mode 100644
index 00000000..cb1c488f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/purgar_eng.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: actualizar_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='This environment has been successfully purged';
+ $TbMsg[1]='WARNING: Having some problem to purge this environment';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/reservas_eng.php b/admin/WebConsole/idiomas/php/eng/reservas_eng.php
new file mode 100644
index 00000000..a55f61ef
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/reservas_eng.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: reserves_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"New reserves group"';
+ $TbMsg[1]='"Define new reserve"';
+ $TbMsg[2]='"To put reserve"';
+ $TbMsg[3]='"Rename"';
+ $TbMsg[4]='"Remove reserves group"';
+ $TbMsg[5]='"Reserve information"';
+ $TbMsg[6]='"To move reserve"';
+ $TbMsg[7]='"Properties"';
+ $TbMsg[8]='"Remove Reserve"';
+ $TbMsg[9]='"Reserves"';
+ $TbMsg[10]='"Schedules"';
+
diff --git a/admin/WebConsole/idiomas/php/eng/softwares_eng.php b/admin/WebConsole/idiomas/php/eng/softwares_eng.php
new file mode 100644
index 00000000..de508738
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/softwares_eng.php
@@ -0,0 +1,37 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: softwares_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='""';
+ $TbMsg[1]='"Properties"';
+ $TbMsg[2]='""';
+ $TbMsg[3]='"New components group"';
+ $TbMsg[4]='"Define new component"';
+ $TbMsg[5]='"To put component"';
+ $TbMsg[6]='"Rename"';
+ $TbMsg[7]='"Remove components group"';
+ $TbMsg[8]='"Move component"';
+ $TbMsg[9]='"Remove component"';
+ $TbMsg[10]='"New profiles group"';
+ $TbMsg[11]='"Define new profile"';
+ $TbMsg[12]='"To put profile"';
+ $TbMsg[13]='"Remove profiles group"';
+ $TbMsg[14]='"Components management"';
+ $TbMsg[15]='"Perfil information"';
+ $TbMsg[16]='"To move profile"';
+ $TbMsg[17]='"Remove profile"';
+ $TbMsg[18]='"Software types"';
+ $TbMsg[19]='"Software components"';
+ $TbMsg[20]='"Software profiles"';
+ $TbMsg[21]='"Incremental Software "';
+ $TbMsg[22]='"New incrementals group"';
+ $TbMsg[23]='"Define new incremental"';
+ $TbMsg[24]='"To put incremental"';
+ $TbMsg[25]='"Remove incrementals group"';
+ $TbMsg[26]='"Incremental information"';
+ $TbMsg[27]='"To move incremental"';
+ $TbMsg[28]='"Remove incremental"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/tareascomandos_eng.php b/admin/WebConsole/idiomas/php/eng/tareascomandos_eng.php
new file mode 100644
index 00000000..557486a2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/tareascomandos_eng.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: tareascomandos_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Mangement Commands of a Task';
+ $TbMsg[1]='Includes Commands';
+ $TbMsg[2]='Task';
+ $TbMsg[3]='Command name';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parameter';
+ $TbMsg[6]='Value';
+ $TbMsg[7]='(*)To exclude some command from this task you must click in the corresponding checkbox';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/eng/trabajostareas_eng.php b/admin/WebConsole/idiomas/php/eng/trabajostareas_eng.php
new file mode 100644
index 00000000..29bfda6b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/eng/trabajostareas_eng.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: trabajostareas_eng.php
+// Idioma: Ings
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Tasks in Job';
+ $TbMsg[1]='Includes Tasks';
+ $TbMsg[2]='Job';
+ $TbMsg[3]='Task name';
+ $TbMsg[4]='(*)To include some task in this job you must click in the corresponding checkbox';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/acciones_esp.php b/admin/WebConsole/idiomas/php/esp/acciones_esp.php
new file mode 100644
index 00000000..55a8711e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/acciones_esp.php
@@ -0,0 +1,42 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: acciones_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de procedimientos"';
+ $TbMsg[1]='"Definir nuevo procedimiento"';
+ $TbMsg[2]='"Colocar procedimiento"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grupo de procedimientos"';
+ $TbMsg[5]='"Gestión de comandos"';
+ $TbMsg[6]='"Información Procedimiento"';
+ $TbMsg[7]='"Mover procedimiento"';
+ $TbMsg[8]='"Propiedades"';
+ $TbMsg[9]='"Eliminar procedimiento"';
+ $TbMsg[10]='"Gestión de Menús"';
+ $TbMsg[11]='"Nuevo grupo de tareas"';
+ $TbMsg[12]='"Definir nueva tarea"';
+ $TbMsg[13]='"Colocar tarea"';
+ $TbMsg[14]='"Eliminar grupo de tarea"';
+ $TbMsg[15]='"Ejecutar tarea"';
+ $TbMsg[16]='"Programaciones"';
+ $TbMsg[17]='"Información Tarea"';
+ $TbMsg[18]='"Mover tarea"';
+ $TbMsg[19]='"Eliminar tarea"';
+ $TbMsg[20]='Incluir acciones';
+ $TbMsg[21]='Programación';
+ $TbMsg[22]='""';
+ $TbMsg[23]='""';
+ $TbMsg[24]='""';
+ $TbMsg[25]='"Gestión de tareas"';
+ $TbMsg[26]='""';
+ $TbMsg[27]='""';
+ $TbMsg[28]='" "';
+ $TbMsg[29]='Procedimientos';
+ $TbMsg[30]='Comandos';
+ $TbMsg[31]='Tareas';
+ $TbMsg[32]='';
+ $TbMsg[33]='Acciones';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php b/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php
new file mode 100644
index 00000000..04ef4c65
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/accionmenu_esp.php
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: accionmenu_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items';
+ $TbMsg[1]='Gestión Items Menu';
+ $TbMsg[2]='Procedimiento';
+ $TbMsg[3]='Tarea';
+ $TbMsg[4]='Menus';
+ $TbMsg[5]='Público';
+ $TbMsg[6]='Privado';
+ $TbMsg[7]='Items públicos ';
+ $TbMsg[8]='Items privados ';
+ $TbMsg[9]='Nombre del Menu';
+ $TbMsg[10]='Tipo item';
+ $TbMsg[11]='Imagen del item';
+ $TbMsg[12]='Literal item';
+ $TbMsg[13]='Ord.';
+ $TbMsg[14]='(*)Para incluir o excluir alguna acción en este menú debe hacer click sobre la casilla de verificación correspondiente';
+ $TbMsg[15]='A';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/actualizar_esp.php b/admin/WebConsole/idiomas/php/esp/actualizar_esp.php
new file mode 100644
index 00000000..74517ab4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/actualizar_esp.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: actualizar_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Este ámbito se ha refrescado correctamente';
+ $TbMsg[1]='ATENCIÓN: Ha habido algún problema al refrescar el ámbito';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/administracion_esp.php b/admin/WebConsole/idiomas/php/esp/administracion_esp.php
new file mode 100644
index 00000000..b2d66da2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/administracion_esp.php
@@ -0,0 +1,22 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: administracion_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Administración"';
+ $TbMsg[1]='"Nuevo grupo de Entidades"';
+ $TbMsg[2]='"Nueva Entidad"';
+ $TbMsg[3]='"Nuevo Superadministrador"';
+ $TbMsg[4]='"Propiedades"';
+ $TbMsg[5]='"Eliminar"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grupo de Entidades"';
+ $TbMsg[8]='"Nueva unidad organizativa"';
+ $TbMsg[9]='"Nuevo Administrador"';
+ $TbMsg[10]='"Variables de entorno"';
+ $TbMsg[11]='"Usuarios"';
+ $TbMsg[12]='"Asignar Adminstradores"';
+ $TbMsg[13]='"Asignar Unidades Organizativas"';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php b/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php
new file mode 100644
index 00000000..c3fa398a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/administradores_centros_esp.php
@@ -0,0 +1,14 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: administradores_centros_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Unidades Administrativas';
+ $TbMsg[1]='Asignar administradores';
+ $TbMsg[2]='Administradores asignados';
+ $TbMsg[3]='Nombre del adminsitrador';
+ $TbMsg[4]='(*)Para incluir algún adminsitrador en esta Unidad Organizativa debe hacer click sobre la casilla de verificación correspondiente.';
+ $TbMsg[5]='Administradores disponibles';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php b/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php
new file mode 100644
index 00000000..56bb1caa
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/administradores_usuarios_esp.php
@@ -0,0 +1,14 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: administradores_centros_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Unidades Administrativas';
+ $TbMsg[1]='Asignar centros';
+ $TbMsg[2]='Centros asignados';
+ $TbMsg[3]='Nombre del centro';
+ $TbMsg[4]='(*)Para asignar algún centro a un administrador determinado debe hacer click sobre la casilla de verificación correspondiente.';
+ $TbMsg[5]='Centros disponibles';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/aulas_esp.php b/admin/WebConsole/idiomas/php/esp/aulas_esp.php
new file mode 100644
index 00000000..c077c022
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/aulas_esp.php
@@ -0,0 +1,48 @@
+<?
+//____________________________________________________________
+//
+// Fichero de idiomas php: aulas_esp.php
+// Idioma: Español
+//_____________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de aulas"';
+ $TbMsg[1]='"Estatus ordenadores"';
+ $TbMsg[2]='"Conmutar';
+ $TbMsg[3]='"Añadir nueva aula"';
+ $TbMsg[4]='"Actualizar';
+ $TbMsg[5]='"Comandos"';
+ $TbMsg[6]='"Cola de acciones"';
+ $TbMsg[7]='"Eliminar grupo de aulas"';
+ $TbMsg[8]='"Nuevo grupo de ordenadores"';
+ $TbMsg[9]='"Añadir nuevo ordenador"';
+ $TbMsg[10]='"Configuración"';
+ $TbMsg[11]='"Colocar ordenador"';
+ $TbMsg[12]='"Ordenador Plantilla"';
+ $TbMsg[13]='"Propiedades"';
+ $TbMsg[14]='"Eliminar aula"';
+ $TbMsg[15]='"Renombrar"';
+ $TbMsg[16]='"Eliminar grupo de ordenadores"';
+ $TbMsg[17]='"Mover ordenador"';
+ $TbMsg[18]='"Eliminar ordenador"';
+ $TbMsg[19]='"Tareas"';
+ $TbMsg[20]='"Trabajos"';
+ $TbMsg[21]='"Todas"';
+ $TbMsg[22]='Estatus ordenadores';
+ $TbMsg[23]='Aula de ordenadores';
+ $TbMsg[24]='Ámbito: Centros';
+ $TbMsg[25]='Ámbito: Grupo de aulas';
+ $TbMsg[26]='Ámbito: Grupo de ordenadores';
+ $TbMsg[27]='"Incorporar ordenadores"';
+ $TbMsg[28]='"Procedimientos"';
+ $TbMsg[29]='"Reservas de aulas"';
+ $TbMsg[30]='"Confirmadas"';
+ $TbMsg[31]='"Pendientes"';
+ $TbMsg[32]='"Denegadas"';
+ $TbMsg[33]='"Consola remota"';
+ $TbMsg[34]='"Programación reservas"';
+ $TbMsg[35]='"Operadores"';
+ $TbMsg[36]='"Eliminar Operador"';
+ $TbMsg[37]='"Añadir nuevo Operador"';
+ $TbMsg[39]='"Eco de Consola"';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/barramenu_esp.php b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php
new file mode 100644
index 00000000..476704a4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/barramenu_esp.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: barramenu_esp.php
+// Idioma: Espaol
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Aulas';
+ $TbMsg[1]='Acciones';
+ $TbMsg[2]='Imágenes';
+ $TbMsg[3]='Hardware';
+ $TbMsg[4]='Software';
+ $TbMsg[5]='Repositorios';
+ $TbMsg[6]='Menús';
+ $TbMsg[7]='Reservas';
+ $TbMsg[8]='Administración';
+ $TbMsg[9]='Iconos';
+ $TbMsg[10]='Salir';
+ $TbMsg[11]='Ayuda';
+ $TbMsg[12]='Administradores';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php
new file mode 100644
index 00000000..579addde
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php
@@ -0,0 +1,391 @@
+ <?
+/*============================================================================
+ Esta clase genera tablas HTML para selección de fechas (Versión inglesa)
+
+ Atributos de la clase:
+
+ clase: Clase [CSS] de la tabla HTML que se generará.
+ onmouseover: Función Javascript que se ejuctará al generarse el evento
+ onmouseout: Función Javascript que se ejuctará al generarse el evento
+ onclick: Función Javascript que se ejuctará al hacer click sobre el objeto
+
+============================================================================*/
+class Almanaque{
+
+ var $clase ;
+ var $onmouseover;
+ var $onmouseout;
+ var $onclick;
+
+ var $desplazamiento_dias=6; // Ajuste fino dependiendo del año de comienzo del algoritmo
+ var $nombre_mes=array();
+ var $nombre_dia=array();
+ var $dias_meses=array();
+ var $semanas=array();
+ var $numero_annos=array();
+
+ function Almanaque($pclase="",$ponmouseover="sobre(this)",$ponmouseout="fuera(this)",$ponclick="clic(this)"){ //Constructor
+ $this->clase=$pclase;
+ $this->onmouseover=$ponmouseover;
+ $this->onmouseout=$ponmouseout;
+ $this->onclick=$ponclick;
+
+ $this->nombre_mes[1]=array ("Enero",0x0001);
+ $this->nombre_mes[2]=array ("Febrero",0x0002);
+ $this->nombre_mes[3]=array ("Marzo",0x0004);
+ $this->nombre_mes[4]=array ("Abril",0x0008);
+ $this->nombre_mes[5]=array ("Mayo",0x0010);
+ $this->nombre_mes[6]=array ("Junio",0x0020);
+ $this->nombre_mes[7]=array ("Julio",0x0040);
+ $this->nombre_mes[8]=array ("Agosto",0x0080);
+ $this->nombre_mes[9]=array ("Septiembre",0x0100);
+ $this->nombre_mes[10]=array ("Octubre",0x0200);
+ $this->nombre_mes[11]=array ("Noviembre",0x0400);
+ $this->nombre_mes[12]=array ("Diciembre",0x0800);
+
+ $this->nombre_dia[1]=array ("L",0x01); // tamaño 1 bytes
+ $this->nombre_dia[2]=array ("M",0x02);
+ $this->nombre_dia[3]=array ("X",0x04);
+ $this->nombre_dia[4]=array ("J",0x08);
+ $this->nombre_dia[5]=array ("V",0x10);
+ $this->nombre_dia[6]=array ("S",0x20);
+ $this->nombre_dia[7]=array ("D",0x40);
+
+
+ $this->dias_meses[1]=31;
+ $this->dias_meses[2]=28;
+ $this->dias_meses[3]=31;
+ $this->dias_meses[4]=30;
+ $this->dias_meses[5]=31;
+ $this->dias_meses[6]=30;
+ $this->dias_meses[7]=31;
+ $this->dias_meses[8]=31;
+ $this->dias_meses[9]=30;
+ $this->dias_meses[10]=31;
+ $this->dias_meses[11]=30;
+ $this->dias_meses[12]=31;
+
+ $this->semanas[1]=array ("1ª",0x01); // tamaño 1 bytes
+ $this->semanas[2]=array ("2ª",0x02);
+ $this->semanas[3]=array ("3ª",0x04);
+ $this->semanas[4]=array ("4ª",0x08);
+ $this->semanas[5]=array ("5ª",0x10);
+ $this->semanas[6]=array ("Última",0x20);
+
+ $this->numero_annos[1]=array ("2010",0x01); // tamaño 1 bytes
+ $this->numero_annos[2]=array ("2011",0x02);
+ $this->numero_annos[3]=array ("2012",0x04);
+ $this->numero_annos[4]=array ("2013",0x08);
+ $this->numero_annos[5]=array ("2014",0x10);
+ $this->numero_annos[6]=array ("2015",0x20);
+ $this->numero_annos[7]=array ("2016",0x40);
+ $this->numero_annos[8]=array ("2017",0x80);
+
+ $this->numero_dias[1]=0x00000001; // tamaño 4 bytes
+ $this->numero_dias[2]=0x00000002;
+ $this->numero_dias[3]=0x00000004;
+ $this->numero_dias[4]=0x00000008;
+
+ $this->numero_dias[5]=0x00000010;
+ $this->numero_dias[6]=0x00000020;
+ $this->numero_dias[7]=0x00000040;
+ $this->numero_dias[8]=0x00000080;
+
+ $this->numero_dias[9]=0x00000100;
+ $this->numero_dias[10]=0x00000200;
+ $this->numero_dias[11]=0x00000400;
+ $this->numero_dias[12]=0x00000800;
+
+ $this->numero_dias[13]=0x00001000;
+ $this->numero_dias[14]=0x00002000;
+ $this->numero_dias[15]=0x00004000;
+ $this->numero_dias[16]=0x00008000;
+
+ $this->numero_dias[17]=0x00010000;
+ $this->numero_dias[18]=0x00020000;
+ $this->numero_dias[19]=0x00040000;
+ $this->numero_dias[20]=0x00080000;
+
+ $this->numero_dias[21]=0x00100000;
+ $this->numero_dias[22]=0x00200000;
+ $this->numero_dias[23]=0x00400000;
+ $this->numero_dias[24]=0x00800000;
+
+ $this->numero_dias[25]=0x01000000;
+ $this->numero_dias[26]=0x02000000;
+ $this->numero_dias[27]=0x04000000;
+ $this->numero_dias[28]=0x08000000;
+
+ $this->numero_dias[29]=0x10000000;
+ $this->numero_dias[30]=0x20000000;
+ $this->numero_dias[31]=0x40000000;
+ $this->numero_dias[32]=0x80000000;
+
+
+ $this->numero_horas[1]=array("0:00",0x0001); // tamaño 2 bytes
+ $this->numero_horas[2]=array("1:00",0x0002);
+ $this->numero_horas[3]=array("2:00",0x0004);
+ $this->numero_horas[4]=array("3:00",0x0008);
+ $this->numero_horas[5]=array("4:00",0x0010);
+ $this->numero_horas[6]=array("5:00",0x0020);
+ $this->numero_horas[7]=array("6:00",0x0040);
+ $this->numero_horas[8]=array("7:00",0x0080);
+ $this->numero_horas[9]=array("8:00",0x0100);
+ $this->numero_horas[10]=array("9:00",0x0200);
+ $this->numero_horas[11]=array("10:00",0x0400);
+ $this->numero_horas[12]=array("11:00",0x0800);
+ }
+
+ /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve el número del día de la semana:
+ 0=domingo 1=Lunes, 2=mártes ... 6=sábado
+
+ Parámetro de entrada:
+ Una cadena con formato de fecha dd/mm/aaaa.
+ ________________________________________________________________________________________________________*/
+ function _DiaSemana($fecha){
+ list($dia,$mes,$anno)=split('[/.-]',$fecha);
+ $cont=0;
+ for ($i=1900;$i<$anno;$i++){
+ if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365;
+ $cont+=$dias_anuales;
+ }
+ for ($i=1;$i<$mes;$i++){
+ if ($i!=2)
+ $cont+=$this->dias_meses[$i];
+ else{
+ if ($this->bisiesto($anno))
+ $cont+=29;
+ else
+ $cont+=28;
+ }
+ }
+ $cont+=$dia+$this->desplazamiento_dias;
+ return($cont%7);
+ }
+ /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es
+
+ Parámetro de entrada:
+ Una número que representa el año
+ ________________________________________________________________________________________________________*/
+ function bisiesto($anob){
+ if ($anob%4==0) return(true); else return(false);
+ }
+ /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con un rango de años
+ ________________________________________________________________________________________________________*/
+ function Annos($ano_desde,$ano_hasta){
+ $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH style="cursor:pointer" onclick="TH_'.$this->onclick.'">Años</TH></TR>'.chr(13); // Literal años
+ for ($i=1;$i<7;$i++){
+ $HTML_calendario.='<TR><TD align="center" id="'.$this->numero_annos[$i][0].'"
+ value="'.$this->numero_annos[$i][1].'" style="cursor:pointer"
+ onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'"
+ onclick="'.$this->onclick.'">'.$this->numero_annos[$i][0].'</TD></TR>'.chr(13);
+ }
+ $HTML_calendario.='</TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
+ y que son propiedades de la clase.
+ ________________________________________________________________________________________________________*/
+ function MesAnno($mes,$anno){
+
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+
+ $HTML_calendario='<TABLE id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD></TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD align="center" id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->numero_dias[$i].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con los meses del año en dos columnas.
+ ________________________________________________________________________________________________________*/
+ function Meses(){
+ $HTML_calendario='<TABLE id="tabla_meses" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=2 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Meses</TH></TR>'.chr(13); // Literal meses
+ for ($i=1;$i<13;$i++){
+ $HTML_calendario.='<TR><TD align="center" id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"
+ style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
+ onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">
+ &nbsp;'.$this->nombre_mes[$i++][0].'&nbsp;</TD>'.chr(13);
+ $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"
+ style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
+ onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">
+ &nbsp;'.$this->nombre_mes[$i][0].'&nbsp;</TD></TR>'.chr(13);
+ }
+ $HTML_calendario.='</TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con los días de la semana en una fila.
+ ________________________________________________________________________________________________________*/
+ function Dias(){
+ $HTML_calendario='<TABLE id="tabla_dias" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Día</TH><TR>'.chr(13); // Literal Días
+ for ($i=1;$i<8;$i++){
+ $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->nombre_dia[$i][1].'"
+ style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
+ onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_dia[$i][0].'</TD>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con el orden de las semana en una fila.
+ ________________________________________________________________________________________________________*/
+ function Semanas(){
+ $HTML_calendario='<TABLE id="tabla_semanas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Semana</TH><TR>'.chr(13); // Literal Semenas
+ for ($i=1;$i<7;$i++){
+ $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->semanas[$i][1].'"
+ style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
+ onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->semanas[$i][0].'&nbsp;</TD>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con los 31 días de un mes en 3 filas
+ ________________________________________________________________________________________________________*/
+ function DiasMes(){
+ $HTML_calendario='<TABLE id="tabla_diasmes" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=8 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Día de mes</TH><TR>'.chr(13); // Literal Día
+ $HTML_calendario.='<TR>'.chr(13);
+ $sd=1; // Control salto de fila
+ for ($i=1;$i<32;$i++){
+ $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->numero_dias[$i].'"
+ style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
+ onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
+ if ($sd%8==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sd=0;
+ }
+ $sd++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+ /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
+ ________________________________________________________________________________________________________*/
+ function Horas(){
+
+ $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=12 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Hora ejecución de la acción </TH>';
+ $HTML_calendario.='<TH>Mod</TH>';
+ $HTML_calendario.='<TH>Min.</TH>';
+ //$HTML_calendario.='<TH>Seg.</TH></TR>';
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<13;$i++)
+ $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'" value="'.$this->numero_horas[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.= '<SELECT class="estilodesple" id="ampm">'.chr(13);
+ $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
+ $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
+ $HTML_calendario.='</SELECT>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.='<INPUT type=text class=cajatexto id=minutos size=1>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ return($HTML_calendario);
+ }
+/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con las horas hasta de reserva de las aulas
+________________________________________________________________________________________________________*/
+ function HorasReserva($literal,$nombretabla,$nombreampm,$nombreminuto){
+ if($literal=="1")
+ $literal="Comienzo de la reserva";
+ else
+ $literal="Fin de la reserva";
+
+ $HTML_calendario='<TABLE id="'.$nombretabla.'" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=12 style="cursor:pointer" onclick="TH_'.$this->onclick.'">'.$literal.' </TH>';
+ $HTML_calendario.='<TH>Mod</TH>';
+ $HTML_calendario.='<TH>Min.</TH>';
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<13;$i++)
+ $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'" value="'.$this->numero_horas[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.= '<SELECT class="estilodesple" id="'.$nombreampm.'">'.chr(13);
+ $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
+ $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
+ $HTML_calendario.='</SELECT>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='<TD align=center>';
+ $HTML_calendario.='<INPUT type=text class=cajatexto id="'.$nombreminuto.'" size=1>'.chr(13);
+ $HTML_calendario.='</TD> '.chr(13);
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ return($HTML_calendario);
+ }
+ /* -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
+ ________________________________________________________________________________________________________*/
+ function Horas_Completas(){
+ $maxcolumnas=16;
+
+ $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH><TR>'.chr(13); // Literal Horas
+ $HTML_calendario.='<TR>'.chr(13);
+ $currenthora=0;
+ $currentminutos=0;
+ $currenthorario=$currenthora.":".$currentminutos;
+ for ($i=1;$i<97;$i++){
+ if($currentminutos==0) $currenthorario.="0";
+
+ $HTML_calendario.='<TD align=center id="'.$currenthorario.'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$currenthorario.'</TD>'.chr(13);
+ $currentminutos+=15;
+ if($currentminutos==60) {
+ $currenthora++;
+ if($currenthora==24) $currenthora=0;
+ $currentminutos=0;
+ }
+ $currenthorario=$currenthora.":".$currentminutos;
+ if ($i%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+} // Fin de la clase Almanaque \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/clases/Calendario_esp.php b/admin/WebConsole/idiomas/php/esp/clases/Calendario_esp.php
new file mode 100644
index 00000000..9611c78c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/clases/Calendario_esp.php
@@ -0,0 +1,523 @@
+ <?
+/*========================================================================================================
+ Esta clase genera tablas HTML para selección de fechas (Versión inglesa)
+
+ Atributos de la clase:
+
+ clase: Clase [CSS] de la tabla HTML que se generará.
+ onmouseover: Función Javascript que se ejuctará al generarse el evento
+ onmouseout: Función Javascript que se ejuctará al generarse el evento
+ onclick: Función Javascript que se ejuctará al hacer click sobre el objeto
+
+=========================================================================================================*/
+class Calendario{
+ var $aula;
+ var $horaresevini;
+ var $horaresevfin;
+ var $clase ;
+ var $onmouseover;
+ var $onmouseout;
+ var $onclick;
+
+ var $desplazamiento_dias=6; // Ajuste fino dependiendo del año de comienzo del algoritmo
+ var $nombre_mes=array();
+ var $nombre_dia=array();
+ var $dias_meses=array();
+
+ function Calendario($pclase="",$ponmouseover="sobre(this)",$ponmouseout="fuera(this)",$ponclick="clic(this)"){ //Constructor
+ $this->clase=$pclase;
+ $this->onmouseover=$ponmouseover;
+ $this->onmouseout=$ponmouseout;
+ $this->onclick=$ponclick;
+
+ $this->nombre_mes[1]=array ("Enero",0x0001);
+ $this->nombre_mes[2]=array ("Febrero",0x0002);
+ $this->nombre_mes[3]=array ("Marzo",0x0004);
+ $this->nombre_mes[4]=array ("Abril",0x0008);
+ $this->nombre_mes[5]=array ("Mayo",0x0010);
+ $this->nombre_mes[6]=array ("Junio",0x0020);
+ $this->nombre_mes[7]=array ("Julio",0x0040);
+ $this->nombre_mes[8]=array ("Agosto",0x0080);
+ $this->nombre_mes[9]=array ("Septiembre",0x0100);
+ $this->nombre_mes[10]=array ("Octubre",0x0200);
+ $this->nombre_mes[11]=array ("Noviembre",0x0400);
+ $this->nombre_mes[12]=array ("Diciembre",0x0800);
+
+ $this->numero_annos[1]=array ("2004",0x01); // tamaño 1 bytes
+ $this->numero_annos[2]=array ("2005",0x02);
+ $this->numero_annos[3]=array ("2006",0x04);
+ $this->numero_annos[4]=array ("2007",0x08);
+ $this->numero_annos[5]=array ("2008",0x10);
+ $this->numero_annos[6]=array ("2009",0x20);
+ $this->numero_annos[7]=array ("2010",0x40);
+ $this->numero_annos[8]=array ("2011",0x80);
+
+ $this->dias_meses[1]=31;
+ $this->dias_meses[2]=28;
+ $this->dias_meses[3]=31;
+ $this->dias_meses[4]=30;
+ $this->dias_meses[5]=31;
+ $this->dias_meses[6]=30;
+ $this->dias_meses[7]=31;
+ $this->dias_meses[8]=31;
+ $this->dias_meses[9]=30;
+ $this->dias_meses[10]=31;
+ $this->dias_meses[11]=30;
+ $this->dias_meses[12]=31;
+
+ $this->nombre_dia[1]=array ("L",0x01); // tamaño 1 bytes
+ $this->nombre_dia[2]=array ("M",0x02);
+ $this->nombre_dia[3]=array ("X",0x04);
+ $this->nombre_dia[4]=array ("J",0x08);
+ $this->nombre_dia[5]=array ("V",0x10);
+ $this->nombre_dia[6]=array ("S",0x20);
+ $this->nombre_dia[7]=array ("D",0x40);
+ }
+/*________________________________________________________________________________________________________
+ Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
+ y que son propiedades de la clase.
+________________________________________________________________________________________________________*/
+ function MesAnno($mes,$anno,$CntMes){
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ $paso=2; // Porporción para el la intensidad del color
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+
+ $HTML_calendario='<TABLE border=1 cellspacing=0 cellpadding=1 id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 id="'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD>&nbsp;</TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD align=center ';
+ if(isset($CntMes[$i])){
+ if($CntMes[$i]>0){
+ $itcr=255;
+ $itc=240-($CntMes[$i]*$paso);
+ if($CntMes[$i]>=50)
+ $colordia="#FFFFFF";
+ else
+ $colordia="#000000";
+
+ $bgcolordia=sprintf('#%02x%02x%02x',$itcr,$itc,$itc);
+ $HTML_calendario.=' style="COLOR:'.$colordia.';BACKGROUND-COLOR: '.$bgcolordia.';"';
+ $HTML_calendario.=' id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'"';
+ }
+ }
+ $HTML_calendario.='>'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+
+/*________________________________________________________________________________________________________
+ Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
+ y que son propiedades de la clase.
+________________________________________________________________________________________________________*/
+ function JMesAnno($mes,$anno,$JDif,$TBfechas,$sumahoras){
+ $fecha="1/".$mes."/".$anno;
+ $Jdpl=$this->juliana($fecha)-$JDif; // Calcula punto departida para indice juliano
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ $paso=2; // Porporción para el la intensidad del color
+ $swbi=0; // Suma para bisiesto
+ if ($this->bisiesto($anno) && $mes==2) $swbi=1;
+ $HTML_calendario='<TABLE border=1 cellspacing=0 cellpadding=1 id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=7 id="'.$mes.'/'.$anno.'" style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[(int)$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<8;$i++)
+ $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ for ($i=1;$i<$ds;$i++)
+ $HTML_calendario.='<TD>&nbsp;</TD>'.chr(13); // Relleno primeros dias de la semana
+ $sm=$ds; // Control salto de semana
+ for ($i=1;$i<=$this->dias_meses[(int)$mes]+$swbi;$i++){
+ $HTML_calendario.='<TD align=center ';
+ if(isset($TBfechas[$Jdpl])){
+ if($TBfechas[$Jdpl]>0){
+ $xpor=$TBfechas[$Jdpl]*100/$sumahoras;
+ $itcr=255;
+ $itc=240-($xpor*$paso);
+ if($xpor>=50)
+ $colordia="#FFFFFF";
+ else
+ $colordia="#000000";
+
+ $bgcolordia=sprintf('#%02x%02x%02x',$itcr,$itc,$itc);
+ $HTML_calendario.=' style="COLOR:'.$colordia.';BACKGROUND-COLOR: '.$bgcolordia.';"';
+ $HTML_calendario.=' id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->aula.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'"';
+ }
+ }
+ $HTML_calendario.='>'.$i.'</TD>'.chr(13);
+ if ($sm%7==0){
+ $HTML_calendario.='</TR><TR>'.chr(13);
+ $sm=0;
+ }
+ $sm++;
+ $Jdpl++;
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+ }
+
+/*________________________________________________________________________________________________________
+ Esta función devuelve el número del día de la semana:
+ 0=domingo 1=Lunes, 2=mártes ... 6=sábado
+
+ Parámetro de entrada:
+ Una cadena con formato de fecha dd/mm/aaaa.
+________________________________________________________________________________________________________*/
+ function _DiaSemana($fecha){
+ list($dia,$mes,$anno)=split('[/.-]',$fecha);
+ $cont=0;
+ for ($i=1900;$i<$anno;$i++){
+ if ($this->bisiesto($i)) $dias_anuales=366; else $dias_anuales=365;
+ $cont+=$dias_anuales;
+ }
+ for ($i=1;$i<$mes;$i++){
+ if ($i!=2)
+ $cont+=$this->dias_meses[$i];
+ else{
+ if ($this->bisiesto($anno))
+ $cont+=29;
+ else
+ $cont+=28;
+ }
+ }
+ $cont+=$dia+$this->desplazamiento_dias;
+ return($cont%7);
+ }
+//________________________________________________________________________________________________________
+// Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es
+//
+// Parámetro de entrada:
+// Una número que representa el año
+//________________________________________________________________________________________________________
+function bisiesto($anob){
+ if ($anob%4==0) return(true); else return(false);
+ }
+//________________________________________________________________________________________________________
+// Esta función devuelve una cadena con el código HTML con las horas de reservas de las aulas
+//________________________________________________________________________________________________________
+function HorasDias($CntDia,$porcenhoras){
+ $HTML_calendario="";
+ $sw=0;
+ $conthoras=0; // Contador de horas y minutos de reservas
+ $maxcolumnas=8;
+ $tbampm[0]="a.m.";
+ $tbampm[1]="p.m.";
+
+ $HTML_calendario.='<TABLE border=0 cellspacing=0 cellpadding=0 id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan=3>Horas</TH></TR>'.chr(13); // Literal Horas
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_ampm[0]="";
+ $HTML_ampm[1]="";
+ $swampm[0]=false;
+ $swampm[1]=false;
+
+ if($this->horaresevini<12) $ix=0; else $ix=1;
+ for($j=$ix;$j<=1;$j++){
+ $HTML_ampm[$j].='<TD style="BACKGROUND-COLOR: #FFFFFF;" valig=top >'.chr(13);
+ $HTML_ampm[$j].='<TABLE valig=top cellspacing=0 cellpadding=0 border=1 class="'.$this->clase.'">'.chr(13);
+ $HTML_ampm[$j].='<TR>'.chr(13);
+ $HTML_ampm[$j].='<TH colspan='.$maxcolumnas.'>'.$tbampm[$j].'</TH></TR>'.chr(13); // Literal Horas
+ $HTML_ampm[$j].='<TR>'.chr(13);
+
+ if($j==0){ // A.M.height
+ $imin=$this->horaresevini;
+ $currenthora=$imin;
+ if($this->horaresevfin<=12)
+ $imax=$this->horaresevfin;
+ else
+ $imax=12;
+ }
+ else{
+ if($this->horaresevini<=12)
+ $imin=0;
+ else
+ $imin=$this->horaresevini-12;
+ $imax=(int)$this->horaresevfin-12;
+ $currenthora=$imin;
+ }
+ $cols=0;
+ $currentminutos=0;
+ $currenthorario=$currenthora.":".$currentminutos;
+ $intervalo=($imax-$imin+1)*4;
+ for ($i=$imin;$i<$intervalo;$i++){
+ $cols++;
+ if($sw>0) // Acarre la reserva desde A.M.
+ $swampm[$j]=true;
+
+ if($currentminutos==0) $currenthorario.="0";
+ if(isset($CntDia[$j][$currenthora][$currentminutos])){
+ if($CntDia[$j][$currenthora][$currentminutos]==1)
+ $sw++;
+ $swampm[$j]=true;
+ }
+ if(isset($CntDia[$j][$currenthora][$currentminutos])){
+ if($CntDia[$j][$currenthora][$currentminutos]==0)
+ $sw--;
+ }
+ $HTML_ampm[$j].='<TD ';
+ if($sw>0)
+ $HTML_ampm[$j].=' style="COLOR:#eeeeee;BACKGROUND-COLOR: #cc3366"';
+
+ if($sw>0) // Cuenta la fracción de 15 minutos como reservada
+ $conthoras++;
+ $HTML_ampm[$j].=' align=center>&nbsp;'.$currenthorario.'&nbsp;</TD>'.chr(13);
+ $currentminutos+=15;
+ if($currentminutos==60) {
+ $currenthora++;
+ $currentminutos=0;
+ }
+ $currenthorario=$currenthora.":".$currentminutos;
+ if (($cols)%$maxcolumnas==0 ) $HTML_ampm[$j].='</TR><TR>'.chr(13);
+ }
+ $HTML_ampm[$j].='</TR></TABLE>'.chr(13);
+ $HTML_ampm[$j].='</TD>'.chr(13);
+ }
+
+ if ($swampm[0])
+ $HTML_calendario.=$HTML_ampm[0];
+
+ if ($swampm[0] && $swampm[1]){
+ $HTML_calendario.='<TD style="BACKGROUND-COLOR: #FFFFFF;" width=25>&nbsp;'.chr(13);
+ $HTML_calendario.='</TD>'.chr(13);
+ }
+
+ if ($swampm[1])
+ $HTML_calendario.=$HTML_ampm[1];
+
+ $HTML_calendario.='</TR>'.chr(13);
+ $HTML_calendario.='</TABLE>'.chr(13);
+
+ $numblo=($this->horaresevfin-$this->horaresevini)*4;
+ if($numblo>0)
+ $porcenhoras=floor($conthoras*100/$numblo);
+ else
+ $porcenhoras=100;
+ return($HTML_calendario);
+}
+/* -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
+________________________________________________________________________________________________________*/
+function Horas_Completas(){
+ $maxcolumnas=8;
+
+ $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH></TR>'.chr(13); // Literal Horas
+ $HTML_calendario.='<TR>'.chr(13);
+ for ($i=1;$i<25;$i++){
+ $HTML_calendario.='<TD align=center id="'.$i.'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
+ if (($i)%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+}
+/* -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Esta función devuelve una cadena con el código HTML con las intensidades para las reservas de un día
+________________________________________________________________________________________________________*/
+function TablaIntensidades(){
+ $HTML_calendario='<TABLE id="tabla_intensidad border=1class="'.$this->clase.'">'.chr(13);
+ $HTML_calendario.='<TR>'.chr(13);
+ $itcr=255;
+ for($i=0;$i<=100;$i+=8){
+ $HTML_calendario.='<TD height=10 width=20'.chr(13);
+ $itc=240-($i*2);
+ if($i>=50)
+ $colordia="#FFFFFF";
+ else
+ $colordia="#000000";
+ $bgcolordia=sprintf('#%02x%02x%02x',$itcr,$itc,$itc);
+ $HTML_calendario.=' style="COLOR:'.$colordia.';BACKGROUND-COLOR: '.$bgcolordia.';">';
+ //$HTML_calendario.=$i.' %';
+ $HTML_calendario.='</TD>'.chr(13);
+ }
+ $HTML_calendario.='</TR></TABLE>'.chr(13);
+ return($HTML_calendario);
+}
+
+/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Devuelve una cadena con los días del mes que son lunes(1) o martes(2) o miércoles(3), etc ...domingo(7) separada por comas
+________________________________________________________________________________________________________________*/
+function DiasPorMes($mes,$anno,$numerodia){
+ $cadenadias="";
+ $dia_c=1;
+ $fecha=$dia_c."/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ while($ds!=$numerodia){
+ $dia_c++;
+ $ds++;
+ if($ds>7) $ds=1;
+ }
+ // Calcula número de dias del mes
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ while($dia_c<=$diasmaxmes){
+ $cadenadias.=$dia_c.";";
+ $dia_c+=7;
+ }
+ return($cadenadias);
+}
+/*________________________________________________________________________________________________________
+ Devuelve una cadena con los días del mes correspondiente a una semana concreta, separados por coma
+________________________________________________________________________________________________________*/
+function DiasPorSemanas($mes,$anno,$numerosemana){
+ $cadenadias="";
+ $dia_c=1;
+ $nsem=1;
+ $fecha=$dia_c."/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ while($nsem!=$numerosemana){
+ $dia_c++;
+ $ds++;
+ if($ds>7){
+ $ds=1;
+ $nsem++;
+ }
+ }
+ // Calcula número de dias del mes
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ for($i=$ds;$i<=5;$i++){
+ if($dia_c>$diasmaxmes) break;
+ $cadenadias.=$dia_c.";";
+ $dia_c++;
+ }
+ return($cadenadias);
+}
+// ____________________________________________________________________________
+// Esta función devuelve el número de la última semana de un mes
+// ____________________________________________________________________________
+function UltimaSemana($mes,$anno){
+ $diasmaxmes=$this->dias_meses[$mes];
+ if ($mes==2){
+ if ($this->bisiesto($anno)){
+ $diasmaxmes=29;
+ }
+ }
+ $fecha="1/".$mes."/".$anno;
+ $ds=$this->_DiaSemana($fecha);
+ if ($ds==0) $ds=7;
+ $nwdia=$diasmaxmes+$ds-1;
+ $cociente=floor($nwdia/7);
+ $resto=$nwdia%7;
+ if($resto>0) $cociente++;
+ return($cociente);
+}
+//________________________________________________________________________________________________________
+// Función : Fechas
+// Descripción :
+// Devuelve una cadena de fechas separada por comas que son las fechas que forman parte de una reserva concreta
+// Parametros:
+// - anno_c: Un año determinado
+// - mes_desde: El mes desde que se considera la reserva
+// - mes_hasta: El mes hasta que se considera la reserva
+// - meses: Campo con información hexadecimal de los meses de la reserva ( la información contenida en el campo de la tabla con este nombre
+// - diario: Idem para los dias de un mes
+// - dias: idem para los nombres de los días
+// - semanas: Idem para las semanas
+//________________________________________________________________________________________________________
+function Fechas($anno_c,$mes_desde,$mes_hasta,$meses,$diario,$dias,$semanas){
+ $cadenafechas="";
+ $mascara=0x0001;
+ $cadenameses="";
+ $meses=$meses>>($mes_desde-1);
+ for($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($meses&$mascara>0){
+ $cadenameses.=$i.";";
+ // Dias de la semana
+ if($dias>0){
+ $auxdias=$dias;
+ for($j=1;$j<=7;$j++){
+ if($auxdias&$mascara>0){
+ $cadenadias=$this->DiasPorMes($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxdias=$auxdias>>1;
+ }
+ }
+ // Semanas
+ if($semanas>0){
+ $auxsemanas=$semanas;
+ for($j=1;$j<=6;$j++){
+ if($auxsemanas&$mascara>0){
+ if($j==6){
+ $ulse=$this->UltimaSemana($i,$anno_c);
+ $cadenadias=$this->DiasPorSemanas($i,$anno_c,$ulse);
+ }
+ else
+ $cadenadias=$this->DiasPorSemanas($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxsemanas=$auxsemanas>>1;
+ }
+ }
+ }
+ $meses=$meses>>1;
+ }
+ $cadenadiario="";
+ for($i=1;$i<32;$i++){
+ if($diario&$mascara>0) $cadenadiario.=$i.";";
+ $diario=$diario>>1;
+ }
+ $tbmeses=split(";",$cadenameses);
+ $tbdiario=split(";",$cadenadiario);
+ for ($i=0;$i<sizeof($tbmeses)-1;$i++){
+ for ($j=0;$j<sizeof($tbdiario)-1;$j++){
+ $cadenafechas.=$tbdiario[$j]."/".$tbmeses[$i]."/".$anno_c.";";
+ }
+ }
+ return($cadenafechas);
+}
+/*______________________________________________________________________
+ Devuelve el dia juliano de una fecha determinada
+ Parametros:
+ - cadena con la fecha en formato "dd/mm/aaaa"
+ Devuelve:
+ - El dia juliano
+_______________________________________________________________________*/
+function juliana($fecha) {
+ list($dia,$mes,$anno)=split("[/-]",$fecha);
+ $GGG = 1;
+ if ($anno <= 1585) $GGG = 0;
+ $juliano= -1 * floor(7 * (floor(($mes + 9) / 12) + $anno) / 4);
+ $S = 1;
+ if (($mes - 9)<0) $S=-1;
+ $A = abs($mes - 9);
+ $auxjuliano = floor($anno + $S * floor($A / 7));
+ $auxjuliano = -1 * floor((floor($auxjuliano / 100) + 1) * 3 / 4);
+ $juliano = $juliano + floor(275 * $mes / 9) + $dia + ($GGG * $auxjuliano);
+ $juliano =$juliano + 1721027 + 2 * $GGG + 367 * $anno - 0.5;
+ return(floor($juliano));
+}
+} // Fin de la clase Calendario \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php
new file mode 100644
index 00000000..ed0ee0e8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/colasacciones_esp.php
@@ -0,0 +1,80 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasacciones_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de acciones
+$LITEJECUCION_COMANDO="Comandos";
+$LITEJECUCION_PROCEDIMIENTO="Procedimientos";
+$LITEJECUCION_TAREA="Tareas";
+
+$LITACCION_EXITOSA='Finalizada correctamente'; // Literal Finalizada con exito
+$LITACCION_FALLIDA='Finalizada con errores'; // Literal Finalizada con errores
+$LITACCION_SINRESULTADO='Sin resultado final'; //Literal Sin resultado
+
+$LITACCION_DETENIDA='Parada'; // Literal acción momentanemente parada
+$LITACCION_INICIADA='Activa'; // Literal acción activa
+$LITACCION_FINALIZADA='Finalizada'; // Literal acción finalizada
+$LITACCION_PROGRAMADA="Programada"; // Literal acción programada
+
+$TbMsg=array();
+ $TbMsg[0]='Cola de acciones';
+ $TbMsg[1]='Opciones de búsqueda';
+ $TbMsg[2]='Acciones';
+ $TbMsg[3]='Resultados';
+ $TbMsg[4]='Estados';
+ $TbMsg[5]='Porcentaje desde';
+ $TbMsg[6]='hasta ';
+ $TbMsg[7]='Fecha inicio';
+ $TbMsg[8]='Fecha final';
+ $TbMsg[9]='Hora inicio';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='Ámbito';
+ $TbMsg[12]='Eliminar';
+ $TbMsg[13]='Reiniciar';
+ $TbMsg[14]='Detener';
+ $TbMsg[15]='Reanudar';
+ $TbMsg[16]='Cancelar';
+ $TbMsg[17]='Finalizar';
+
+ $TbMsg[18]='Acción';
+ $TbMsg[19]='Fecha final';
+ $TbMsg[20]='Hora final';
+ $TbMsg[21]='Fecha inicio';
+ $TbMsg[22]='Hora inicio';
+ $TbMsg[23]='Ámbito';
+
+ $TbMsg[24]='Centros';
+ $TbMsg[25]='Grupo de aulas';
+ $TbMsg[26]='Aulas';
+ $TbMsg[27]='Grupo de ordenadores';
+ $TbMsg[28]='Ordenadores';
+
+ $TbMsg[30]='Comandos';
+ $TbMsg[31]='Procedimientos';
+ $TbMsg[32]='Tareas';
+
+ $TbMsg[41]='"Filtro Acción"';
+ $TbMsg[42]='"Filtro ámbito"';
+ $TbMsg[43]='"Eliminar filtro"';
+ $TbMsg[44]='"Modificar Acción"';
+ $TbMsg[45]='"Reiniciar"';
+ $TbMsg[46]='"Eliminar"';
+ $TbMsg[47]='Opciones de visualización';
+ $TbMsg[48]='Ver parámetros';
+ $TbMsg[49]='Ver subprocesos';
+ $TbMsg[50]='Ver Notificaciones';
+ $TbMsg[51]='***Filtro de Acción activado***';
+ $TbMsg[52]='';
+ $TbMsg[53]='';
+ $TbMsg[54]='';
+ $TbMsg[55]='Finalizar sin errores';
+ $TbMsg[56]='Finalizar con errores';
+ $TbMsg[57]='Información';
+ $TbMsg[58]='Resultado final:';
+ $TbMsg[59]='Ámbito:';
+ $TbMsg[60]='Todos';
+ $TbMsg[61]='Todas';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php b/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php
new file mode 100644
index 00000000..20ac2065
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/colasreservas_esp.php
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasreservas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendientes";
+$LITRESERVA_CONFIRMADA="Confirmadas";
+$LITRESERVA_DENEGADA="Denegadas";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspendida'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reservas de aulas';
+ $TbMsg[1]='Opciones de búsqueda';
+ $TbMsg[2]='Tipo';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estados';
+ $TbMsg[5]='Porcentaje desde';
+ $TbMsg[6]='Porcentaje hasta ';
+ $TbMsg[7]='Fecha inicio';
+ $TbMsg[8]='Fecha final';
+ $TbMsg[9]='Hora inicio';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='Ámbito';
+
+ $TbMsg[12]='Centros';
+ $TbMsg[13]='Grupo de aulas';
+ $TbMsg[14]='Aulas';
+
+ $TbMsg[15]='Año';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Día';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupación';
+ $TbMsg[20]='Imagen asociada';
+ $TbMsg[21]='Descripción';
+
+ $TbMsg[22]='Programación reservas';
+ $TbMsg[23]='(Sin especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Solicitante';
+ $TbMsg[26]="Anticipación previa";
+ $TbMsg[27]="(Sin acción previa)";
+ $TbMsg[28]="Tarea previa";
+ $TbMsg[29]="Trabajo previo";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php
new file mode 100644
index 00000000..bfdd6783
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/apagar_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: apagar_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]='Apagar ordenadores';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php
new file mode 100644
index 00000000..2cdbb0d6
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/arrancar_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: arrancar_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]='Arrancar ordenadores';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php
new file mode 100644
index 00000000..a56c1fbd
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/comando_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: comando_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]='Apagar ordenadores';
+ $TbMsg[6]='Ámbito';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php
new file mode 100644
index 00000000..aa943a31
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/configurar_esp.php
@@ -0,0 +1,47 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configurar_esp.php (Comandos)
+// Idioma: Espa�l
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centros';
+ $TbMsg[1]='Grupo de aulas';
+ $TbMsg[2]='Aulas';
+ $TbMsg[3]='Grupo de ordenadores';
+ $TbMsg[4]='Ordenadores';
+ $TbMsg[5]='Particionar y Formatear';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Partición oculta';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='';
+ $TbMsg[10]='';
+ $TbMsg[11]='';
+ $TbMsg[12]='Operación';
+ $TbMsg[13]='Sin acción';
+ $TbMsg[14]='Formatear';
+ $TbMsg[15]='Ocultar';
+ $TbMsg[16]='Mostrar';
+ $TbMsg[17]=' Espacio libre !!';
+
+ $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';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php
new file mode 100644
index 00000000..c34c5804
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/conmutar_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: conmutar_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]='Conmutar ordenadores';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearimagen_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearimagen_esp.php
new file mode 100644
index 00000000..01801683
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/crearimagen_esp.php
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearperfilsoftware_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Creación de Imagen';
+ $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]='Se necesita capturar Perfil Software';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Nombre S.O.';
+ $TbMsg[10]='Imagen a crear ';
+ $TbMsg[11]='Repositorio de destino';
+ $TbMsg[12]='Desconocido';
+ $TbMsg[13]='Tipo';
+ $TbMsg[14]='Ámbito';
+ $TbMsg[15]='Ordenadores';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php
new file mode 100644
index 00000000..c7e63493
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/crearperfilsoftware_esp.php
@@ -0,0 +1,20 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearperfilsoftware_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Creación de Imagen';
+ $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[8]='Par';
+ $TbMsg[9]='Nombre S.O.';
+ $TbMsg[10]='Descripción de la Imagen ';
+ $TbMsg[11]='Repositorio de destino';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php
new file mode 100644
index 00000000..0eb03d9b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/crearsoftincremental_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearsoftincremental_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Generación de software 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[8]='Par';
+ $TbMsg[9]='Nombre Perfil';
+ $TbMsg[10]='Software incremental disponible';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php
new file mode 100644
index 00000000..1bf0730e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/ejecutarscripts_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: ejecutarscripts_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]='Ejecutar script';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Título';
+ $TbMsg[8]='Description';
+ $TbMsg[9]='Código del script';
+ $TbMsg[10]='Fichero de código';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php
new file mode 100644
index 00000000..ca0d1042
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/gestor_ejecutarscripts_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: gestor_ejecutarscripts_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[1]='"ATENCIÓN: El Comando Ejecutar Scripts has sido registrado correctamente"';
+ $TbMsg[2]='"ATENCIÓN: Hay algún problema para ejecutar el script"';
+ $TbMsg[3]='"ATENCIÓN: El fichero no tiene la extensión .rbc"';
+ $TbMsg[4]='"ATENCIÓN: El fichero no contiene código Rembo-C para ejecutar"';
+ $TbMsg[5]='"ATENCIÓN: Hay algún problema para salvar el fichero de script"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php
new file mode 100644
index 00000000..45f2f152
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/iniciarsesion_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: crearperfilsoftware_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]='Iniciar Sesión';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Nombre S.O.';
+ $TbMsg[10]='Nombre de la Imagen ';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php
new file mode 100644
index 00000000..8736e3d9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/inventariohardware_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: inventariohardware__esp.php (Comandos)
+// Idioma: Espa�l
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Centros';
+ $TbMsg[1]='Grupo de aulas';
+ $TbMsg[2]='Aulas';
+ $TbMsg[3]='Grupo de ordenadores';
+ $TbMsg[4]='Ordenadores';
+ $TbMsg[5]='Inventario Hardware';
+ $TbMsg[6]='Ámbito';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php
new file mode 100644
index 00000000..6bd5a009
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/inventariosoftware_esp.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: inventariosoftware__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]='Inventario Software';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Nombre S.O.';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php
new file mode 100644
index 00000000..e309dce1
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/particionaryformatear_esp.php
@@ -0,0 +1,26 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: particionaryformatear_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]='Particionar y Formatear';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Tipo';
+ $TbMsg[10]='Nombre S.O.';
+ $TbMsg[11]='Tamaño';
+ $TbMsg[12]='Operación';
+ $TbMsg[13]='Sin action';
+ $TbMsg[14]='Formatear';
+ $TbMsg[15]='Ocultar';
+ $TbMsg[16]='Mostrar';
+ $TbMsg[17]='¡¡ Espacio libre !!';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php
new file mode 100644
index 00000000..1dd0a887
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/reiniciar_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: reiniciar_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]='Reiniciar ordenadores';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php
new file mode 100644
index 00000000..fd048c06
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/rembooffline_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: rembooffline_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]='Activar Rembo OffLine';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php
new file mode 100644
index 00000000..1bb81e5f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/restaurarimagen_esp.php
@@ -0,0 +1,45 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: restaurarimagen_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';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Datos a suministrar';
+ $TbMsg[8]='Par';
+ $TbMsg[9]='Método';
+ $TbMsg[10]='Imagen (Mismo sistema)';
+ $TbMsg[11]='Imagen (Distinto sistema)';
+ $TbMsg[12]='Desconocido';
+ $TbMsg[13]='';
+ $TbMsg[14]='Ámbito';
+ $TbMsg[15]='Ordenadores';
+ $TbMsg[16]='';
+ $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';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php b/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php
new file mode 100644
index 00000000..7bc1e25e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/comandos/tomaconfiguracion_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: tomaconfiguracion_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]='Tomar configuración';
+ $TbMsg[6]='Ámbito';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php
new file mode 100644
index 00000000..a3adb914
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/configuraciones_esp.php
@@ -0,0 +1,48 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: configuraciones_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]='Configuraciones';
+$TbMsg[1]='Ámbito';
+$TbMsg[2]="Aulas";
+$TbMsg[3]="Grupo de Ordenadores";
+$TbMsg[4]="Ordenadores";
+
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Ubicación";
+$TbMsg[7]="Canón";
+$TbMsg[8]="Pizarra";
+$TbMsg[9]="Puestos";
+$TbMsg[10]="Url Imagen";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Comentarios";
+$TbMsg[13]="Ordenadores";
+
+$TbMsg[14]="Nombre";
+$TbMsg[15]="Dirección IP";
+$TbMsg[16]="Dirección Mac";
+$TbMsg[17]="Perfil Hardware";
+
+$TbMsg[18]="DESAGRUPAR SEGÚN VALORES DISTINTOS DE:";
+$TbMsg[19]="Datos a suministrar";
+
+$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';
+
+$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';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/conmutar_esp.php b/admin/WebConsole/idiomas/php/esp/conmutar_esp.php
new file mode 100644
index 00000000..c913ddfb
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/conmutar_esp.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: conmutar_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Este ámbito ha conmutado correctamente';
+ $TbMsg[1]='ATENCIÓN: Ha habido algún problema al conmutar el ámbito';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php b/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php
new file mode 100644
index 00000000..0210a511
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/consolaremota_esp.php
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incorporaordenadores_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]='Apagar ordenadores';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Consola remota';
+ $TbMsg[8]='Atención para ejecutar un comando teclee su sintaxis en la caja de texto de comandos y pulse enter';
+ $TbMsg[9]='Se ha enviado una petición de consola remota a este ámbito, puede empezar a escribir comandos en la ventana para recibir el eco en la ventana de salida';
+ $TbMsg[10]='ATENCIÓN: Ha habido algún problema al enviar una petición de consola remota a este ámbito';
+ $TbMsg[11]='Código del script';
+ $TbMsg[12]='Eco remoto';
+ $TbMsg[13]='ATENCIÓN.- Ha elegido un ámbito de aplicación para la consola remota distinto al de "ordenador". <BR>Para visulizar el eco de cualquier cliente pulse sobre él con el botón secundario y elija "Eco de consola"; <BR>Se abrirá una ventana que se referescará automáticamente donde podrá hacer un seguiento del comando/script introducido';
+ $TbMsg[14]='...Espere por favor, se está enviando el código del script';
+ $TbMsg[15]='...El código del script se ha enviado, para ver la salida de cualquier ordenador elija "Eco de Consola"';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php b/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php
new file mode 100644
index 00000000..669c225c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/ecoremoto_esp.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incorporaordenadores_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]='Ordenador';
+ $TbMsg[5]='';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Eco de consola remota';
+ $TbMsg[8]='';
+ $TbMsg[9]='Se ha enviado una petición de eco consola remota a este ámbito, espere unos segundos para empezar a recibir información de esta consola...';
+ $TbMsg[10]='ATENCIÓN: Ha habido algún problema al enviar una petición de eco consola remota a este ámbito';
+ $TbMsg[11]='... espere por favor.';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php b/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php
new file mode 100644
index 00000000..54109068
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/ejecutaracciones_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: acciones_esp.php
+// 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]='Ejecución de procedimientos';
+ $TbMsg[6]='Ámbito';
+ $TbMsg[7]='Procedimientos';
+ $TbMsg[8]='Procedimientos';
+ $TbMsg[9]='"Ejecutar procedimiento"';
+ $TbMsg[10]='"Incluir como autoexec"';
+ ?>
diff --git a/admin/WebConsole/idiomas/php/esp/hardwares_esp.php b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php
new file mode 100644
index 00000000..96b508e2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/hardwares_esp.php
@@ -0,0 +1,30 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: hardwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Definir nuevo tipo hardware"';
+ $TbMsg[1]='"Propiedades"';
+ $TbMsg[2]='"Eliminar tipo de hardware"';
+ $TbMsg[3]='"Nuevo grupo de componentes"';
+ $TbMsg[4]='"Definir nuevo componente"';
+ $TbMsg[5]='"Colocar componente"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grupo de componentes"';
+ $TbMsg[8]='"Mover componente"';
+ $TbMsg[9]='"Eliminar componente"';
+ $TbMsg[10]='"Nuevo grupo de perfiles"';
+ $TbMsg[11]='"Definir nuevo perfil"';
+ $TbMsg[12]='"Colocar perfil"';
+ $TbMsg[13]='"Eliminar grupo de perfiles"';
+ $TbMsg[14]='"Gestión Componentes"';
+ $TbMsg[15]='"Información Perfil"';
+ $TbMsg[16]='"Mover perfil"';
+ $TbMsg[17]='"Eliminar perfil hardware"';
+ $TbMsg[18]='"Tipos de hardware"';
+ $TbMsg[19]='"Componentes hardwares"';
+ $TbMsg[20]='"Perfiles hardwares"';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/imagenes_esp.php
new file mode 100644
index 00000000..076060b4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/imagenes_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: imagenes_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de imágenes"';
+ $TbMsg[1]='"Definir nueva imagen"';
+ $TbMsg[2]='"Colocar imagen"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grupo de imágenes"';
+ $TbMsg[5]='"Imagen información"';
+ $TbMsg[6]='"Mover imagen"';
+ $TbMsg[7]='"Propiedades"';
+ $TbMsg[8]='"Eliminar Imagen"';
+ $TbMsg[9]='"Imágenes"';
+ $TbMsg[10]='"Gestión incrementales"';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php b/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php
new file mode 100644
index 00000000..fac1af2b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/imagenincremental_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: imagenincremental_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Imágenes';
+ $TbMsg[1]='Gestión de software incremental';
+ $TbMsg[2]='Imagen';
+ $TbMsg[3]='Nombre del software incremental';
+ $TbMsg[4]='(*)Para incluir algún software incremental en esta imagen debe hacer click sobre la casilla de verificación correspondiente.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php b/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php
new file mode 100644
index 00000000..bc875e14
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/inclusionacciones_esp.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: inclusionacciones_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+$TbMsg=array();
+$TbMsg[0]='Inclusión de Procedimientos en Procedimientos';
+$TbMsg[1]='Inclusión de Procedimientos o Tareas en Tareas';
+$TbMsg[2]='Comando / Procedimiento';
+$TbMsg[3]='Procedimiento / Tarea';
+$TbMsg[4]='Orden';
+$TbMsg[5]='(*)Para incluir o excluir algún procedimiento en este procedimiento <BR> debe hacer click sobre la casilla de verificación correspondiente';
+$TbMsg[6]='(*)Para incluir o excluir algún procedimiento o tarea en esta tarea <BR> debe hacer click sobre la casilla de verificación correspondiente';
+$TbMsg[7]='Configuración actual';
+$TbMsg[8]='Procedimientos disponibles';
+$TbMsg[9]='Tareas disponibles';
+$TbMsg[10]='Parámetros';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php b/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php
new file mode 100644
index 00000000..493e3a49
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/incorporaordenadores_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incorporaordenadores_esp.php (Comandos)
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Incorporación de Ordenadores';
+ $TbMsg[1]='Aula';
+ $TbMsg[2]='Contenido';
+ $TbMsg[3]='Los ordenadores se han incorporado correctamente';
+ $TbMsg[4]='ATENCIÓN: Ha ocurrido alǵun problema en el proceso de incorporación de ordenadores';
+ $TbMsg[5]='ATENCIÓN: Se han intentado incorporar ordenadores que ya existen';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php b/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php
new file mode 100644
index 00000000..aa43f008
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/incrementalcomponente_soft_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: incrementalcomponente_soft_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Softwares Incrementales';
+ $TbMsg[1]='Gestión de componentes software';
+ $TbMsg[2]='Software incremental';
+ $TbMsg[3]='Nombre del componente';
+ $TbMsg[4]='(*)Para incluir algún componente en este software incremental debe hacer click sobre la casilla de verificación correspondiente.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php
new file mode 100644
index 00000000..22a34e9e
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_acciones_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_perfileshard_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Acciones';
+ $TbMsg[1]='Procedimientos';
+ $TbMsg[2]='Information sobre Procedimientos';
+ $TbMsg[3]='Tareas';
+ $TbMsg[4]='Information sobre Tareas';
+ $TbMsg[5]='Información';
+ $TbMsg[6]='Sin parámetros';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php
new file mode 100644
index 00000000..365420b8
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_imagenes_esp.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_imagenes_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Imágenes';
+ $TbMsg[1]='Information sobre imagenes';
+ $TbMsg[2]='Imagen';
+ $TbMsg[3]='Información de la Imagen';
+ $TbMsg[4]='Componentes software';
+ $TbMsg[5]='Software incremental';
+ $TbMsg[6]='Perfil Software';
+ $TbMsg[7]='Ordenadores con esta imagen';
+ $TbMsg[8]='Partición';
+ $TbMsg[9]='Comentarios';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php
new file mode 100644
index 00000000..ba0f7883
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_incrementales_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_incrementales_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Software Incremental';
+ $TbMsg[1]='Información sobre software incremental';
+ $TbMsg[2]='Software Incremental';
+ $TbMsg[3]='Información software incremental';
+ $TbMsg[4]='Componentes software';
+ $TbMsg[5]='Perfiles Combinables';
+ $TbMsg[6]='Perfiles Hardware soportados';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php
new file mode 100644
index 00000000..1e22cf36
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_menus_esp.php
@@ -0,0 +1,31 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_menus_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Items del Menu';
+ $TbMsg[1]='Información del Menú';
+ $TbMsg[2]='Menú';
+ $TbMsg[3]='Información Menú';
+ $TbMsg[4]='Propiedades de los items';
+ $TbMsg[5]='Propiedades';
+ $TbMsg[6]='Eliminar Item';
+ $TbMsg[7]='Título';
+ $TbMsg[8]='Propiedades de los items públicos del Menú';
+ $TbMsg[9]='Coordenada x';
+ $TbMsg[10]='Coordenada y';
+ $TbMsg[11]='Modalidad';
+ $TbMsg[12]='Propiedades de los items privados del Menú';
+ $TbMsg[13]='Items públicos ';
+ $TbMsg[14]='Items privados';
+ $TbMsg[15]='Orden del item';
+ $TbMsg[16]='Nombre de la acción';
+ $TbMsg[17]='Url de la Imagen';
+ $TbMsg[18]='Menú simple';
+ $TbMsg[19]='Menú doble';
+ $TbMsg[20]='Código del item';
+ $TbMsg[21]='Ordenadores con este menú';
+ $TbMsg[22]='Items';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php
new file mode 100644
index 00000000..1af1dd3b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_perfileshard_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_perfileshard_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfiles hardware';
+ $TbMsg[1]='Information sobre Perfiles hardware';
+ $TbMsg[2]='Perfil hardware';
+ $TbMsg[3]='Información Perfil hardware';
+ $TbMsg[4]='Imágenes compatibles';
+ $TbMsg[5]='Componentes software';
+ $TbMsg[6]='Componentes hardware ';
+ $TbMsg[7]='Ordenades con este perfil';
+ $TbMsg[8]='Comentarios';
+ $TbMsg[9]='Partición';
+ $TbMsg[10]='Comentarios';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php
new file mode 100644
index 00000000..751f2692
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_perfilessoft_esp.php
@@ -0,0 +1,17 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_perfilessoft_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfiles software';
+ $TbMsg[1]='Información sobre perfiles software';
+ $TbMsg[2]='Perfil software';
+ $TbMsg[3]='Información perfiles software';
+ $TbMsg[4]='Imágenes contenedoras';
+ $TbMsg[5]='Componentes hardware';
+ $TbMsg[6]='Componentes software';
+ $TbMsg[7]='Ordenades con este perfil';
+ $TbMsg[8]='Comentarios';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php
new file mode 100644
index 00000000..e3f7e877
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_procedimientos_esp.php
@@ -0,0 +1,11 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_procedimientos_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parámetros de los Comandos del Procedimiento';
+ $TbMsg[1]='Parámetro';
+ $TbMsg[2]='Valor';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php
new file mode 100644
index 00000000..cd74df5f
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_repositorio_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_repositorio_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Repositorios';
+ $TbMsg[1]='Information sobre Repositorios';
+ $TbMsg[2]='Repositorio';
+ $TbMsg[3]='Información Repositorio';
+ $TbMsg[4]='Comentarios';
+ $TbMsg[5]='Imágenes alojadas';
+ $TbMsg[6]='Ordenadores asigandos';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php b/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php
new file mode 100644
index 00000000..b5ac5541
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/informacion_tareas_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: informacion_tareas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Parámetros de los Comandos de la Tarea';
+ $TbMsg[1]='Parámetro';
+ $TbMsg[2]='Valor';
+ $TbMsg[3]='Ámbito';
+ $TbMsg[4]='Nombre';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/menus_esp.php b/admin/WebConsole/idiomas/php/esp/menus_esp.php
new file mode 100644
index 00000000..a11fc82b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/menus_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: menus_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de menús"';
+ $TbMsg[1]='"Definir nuevo menú"';
+ $TbMsg[2]='"Colocar menu"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grupo de menús"';
+ $TbMsg[5]='"Información Menú"';
+ $TbMsg[6]='"Mover menú"';
+ $TbMsg[7]='"Propiedades"';
+ $TbMsg[8]='"Eliminar menú"';
+ $TbMsg[9]='"Menús"';
+ $TbMsg[10]='"Gestionar Items"';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
new file mode 100644
index 00000000..e8308253
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
@@ -0,0 +1,35 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: msgbrowser.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+// Literales de los mensajes del browser del cliente
+$TbMsg=array();
+ $TbMsg[0]='Indice del mensaje NO identificado';
+ $TbMsg[1]='Actualizando, por favor espere...';
+ $TbMsg[2]='Creando imagen, por favor espere...';
+ $TbMsg[3]='Restaurando imagen, por favor espere...';
+ $TbMsg[4]='Modificando tabla de particiones, por favor espere...';
+ $TbMsg[5]='Formateando, por favor espere...';
+ $TbMsg[6]='Creando Inventario Hardware, por favor espere...';
+ $TbMsg[7]='Creando Inventario Software, por favor espere...';
+ $TbMsg[8]='Ejecutando script, por favor espere...';
+ $TbMsg[9]='El proceso de creación de imagen ha terminado correctamente';
+ $TbMsg[10]='ATENCIÓN, ha habido algún error en el proceso de creación de imagen';
+ $TbMsg[11]='El proceso de restauración de imagen ha terminado correctamente';
+ $TbMsg[12]='ATENCIÓN, ha habido algún error en el proceso de restauración de imagen';
+ $TbMsg[13]='El proceso de particionado ha terminado correctamente';
+ $TbMsg[14]='ATENCIÓN, ha habido algún error en el proceso de particionado';
+ $TbMsg[15]='El proceso de formateado ha terminado correctamente';
+ $TbMsg[16]='ATENCIÓN, ha habido algún error en el proceso de formateado';
+ $TbMsg[17]='El proceso de Inventario Hardware ha terminado correctamente';
+ $TbMsg[18]='ATENCIÓN, ha habido algún error en el proceso de Inventario Hardware';
+ $TbMsg[19]='El proceso de Inventario Software ha terminado correctamente';
+ $TbMsg[20]='ATENCIÓN, ha habido algún error en el proceso de Inventario Software';
+ $TbMsg[21]='El proceso de jecuación del script bash ha terminado correctamente';
+ $TbMsg[22]='ATENCIÓN, ha habido algún error en el proceso de ejecución del script bash';
+
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php b/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php
new file mode 100644
index 00000000..128254e0
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/perfilcomponente_hard_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: perfilcomponente_hard_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfiles hardware';
+ $TbMsg[1]='Gestión Componentes hardware';
+ $TbMsg[2]='Perfil hardware';
+ $TbMsg[3]='Nombre del component e';
+ $TbMsg[4]='(*)Para incluir algún componente en este perfil debe hacer click sobre la casilla de verificación correspondiente.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php b/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php
new file mode 100644
index 00000000..0f928378
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/perfilcomponente_soft_esp.php
@@ -0,0 +1,13 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: perfilcomponente_soft_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Perfiles software';
+ $TbMsg[1]='Gestión de componentes software';
+ $TbMsg[2]='Perfil software';
+ $TbMsg[3]='Nombre del componente';
+ $TbMsg[4]='(*)Para incluir algún componente en este perfil debe hacer click sobre la casilla de verificación correspondiente.';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php b/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php
new file mode 100644
index 00000000..ced99b29
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/procedimientoscomandos_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: procedimientoscomandos_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Gestión Comandos del Procedimiento';
+ $TbMsg[1]='Comandos incluidos';
+ $TbMsg[2]='Procedimiento';
+ $TbMsg[3]='Nombre Comando';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parámetro';
+ $TbMsg[6]='Valor';
+ $TbMsg[7]='(*)Para excluir algún comando de este procedimiento debe hacer click sobre la casilla de verificación correspondiente';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/programaciones_esp.php b/admin/WebConsole/idiomas/php/esp/programaciones_esp.php
new file mode 100644
index 00000000..71b5f6ec
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/programaciones_esp.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: programaciones_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+// Literales de los tipo de acciones
+$LITEJECUCION_COMANDO="Comandos";
+$LITEJECUCION_PROCEDIMIENTO="Procedimientos";
+$LITEJECUCION_TAREA="Tareas";
+$LITEJECUCION_RESERVA="Reservas";
+
+$TbMsg=array();
+
+$TbMsg[0]="Programaciones";
+$TbMsg[1]="Suspender temporalmente todos los bloques programados";
+$TbMsg[2]="Descripción del bloque";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php b/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php
new file mode 100644
index 00000000..80513f18
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/programacionesaulas_esp.php
@@ -0,0 +1,54 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasreservas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendientes";
+$LITRESERVA_CONFIRMADA="Confirmadas";
+$LITRESERVA_DENEGADA="Denegadas";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspendida'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reservas de aulas';
+ $TbMsg[1]='Opciones de búsqueda';
+ $TbMsg[2]='Tipo';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estados';
+ $TbMsg[5]='Porcentaje desde';
+ $TbMsg[6]='Porcentaje hasta ';
+ $TbMsg[7]='Fecha inicio';
+ $TbMsg[8]='Fecha final';
+ $TbMsg[9]='Hora inicio';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='Ámbito';
+
+ $TbMsg[12]='Centros';
+ $TbMsg[13]='Grupo de aulas';
+ $TbMsg[14]='Aulas';
+
+ $TbMsg[15]='Año';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Día';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupación';
+ $TbMsg[20]='Imagen asociada';
+ $TbMsg[21]='Descripción';
+
+ $TbMsg[22]='Programación reservas';
+ $TbMsg[23]='(Sin especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Solicitante';
+ $TbMsg[26]="Anticipación previa";
+ $TbMsg[27]="(Sin acción previa)";
+ $TbMsg[28]="Tarea previa";
+ $TbMsg[29]="Trabajo previo";
+ $TbMsg[30]='Grupo de reservas';
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php b/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php
new file mode 100644
index 00000000..0acf21b6
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/programacionesreservas_esp.php
@@ -0,0 +1,53 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: colasreservas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+
+// Literales de los tipo de reservas
+$LITRESERVA_PENDIENTE="Pendientes";
+$LITRESERVA_CONFIRMADA="Confirmadas";
+$LITRESERVA_DENEGADA="Denegadas";
+
+$RESERVA_PARADA=1; // reserva momentanemente parada
+$RESERVA_ACTIVA=0; // Reserva activa
+$LITRESERVA_PARADA='Suspendida'; // Literal reserva momentanemente parada
+$LITRESERVA_ACTIVA='Activa'; // Literal reserva activa
+
+$TbMsg=array();
+ $TbMsg[0]='Reservas de aulas';
+ $TbMsg[1]='Opciones de búsqueda';
+ $TbMsg[2]='Tipo';
+ $TbMsg[3]='';
+ $TbMsg[4]='Estados';
+ $TbMsg[5]='Porcentaje desde';
+ $TbMsg[6]='Porcentaje hasta ';
+ $TbMsg[7]='Fecha inicio';
+ $TbMsg[8]='Fecha final';
+ $TbMsg[9]='Hora inicio';
+ $TbMsg[10]='Hora final';
+ $TbMsg[11]='Ámbito';
+
+ $TbMsg[12]='Reservas';
+ $TbMsg[13]='Grupo de reservas';
+
+ $TbMsg[15]='Año';
+ $TbMsg[16]='Mes';
+ $TbMsg[17]='Día';
+ $TbMsg[18]='Aula';
+ $TbMsg[19]='Ocupación';
+ $TbMsg[20]='Imagen asociada';
+ $TbMsg[21]='Descripción';
+
+ $TbMsg[22]='Programación reservas';
+ $TbMsg[23]='(Sin especificar)';
+ $TbMsg[24]='Aula';
+ $TbMsg[25]='Solicitante';
+ $TbMsg[26]="Anticipación previa";
+ $TbMsg[27]="(Sin acción previa)";
+ $TbMsg[28]="Tarea previa";
+ $TbMsg[29]="Trabajo previo";
+ $TbMsg[30]="Datos Reserva";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php
new file mode 100644
index 00000000..b5340355
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_aulas_esp.php
@@ -0,0 +1,34 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_aulas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Aulas";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Ubicación";
+$TbMsg[7]="Canón";
+$TbMsg[8]="Pizarra";
+$TbMsg[9]="Puestos";
+$TbMsg[10]="Url Imagen";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Comentarios";
+$TbMsg[13]="Reservas";
+$TbMsg[14]="Hora desde:";
+$TbMsg[15]="Hora hasta:";
+$TbMsg[16]="Respositorio";
+$TbMsg[17]="Perfil Hardware";
+$TbMsg[18]="Propiedades aplicables a todos los ordenadores";
+$TbMsg[19]="Tamaño cache";
+$TbMsg[20]="Autoexec";
+$TbMsg[21]="";
+$TbMsg[22]="Modo Multicast";
+$TbMsg[23]="IP Multicast";
+$TbMsg[24]="Puerto";
+$TbMsg[25]="Velocidad";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php
new file mode 100644
index 00000000..65d3092c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_centros_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión de Unidades Organizativas";
+$TbMsg[5]="Nombre de la unidad";
+$TbMsg[6]="Comentarios";
+?>
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php
new file mode 100644
index 00000000..2badfbd2
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_componentehardwares_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_componentehardwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Componentes Hardware";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Tipo de hardware";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php
new file mode 100644
index 00000000..4a5ad618
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_componentesoftwares_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_componentesoftwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Componentes Software";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Tipo de Software";
+$TbMsg[7]="Tipo de S.O.";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php
new file mode 100644
index 00000000..6b44d216
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_entidades_esp.php
@@ -0,0 +1,16 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Entidades";
+$TbMsg[5]="Nombre de la Entidad";
+$TbMsg[6]="Comentarios";
+?>
+ \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php
new file mode 100644
index 00000000..dd7bbb53
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_entornos_esp.php
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_aulas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión de Variables de Entorno";
+$TbMsg[5]="IP Servidor de administración";
+$TbMsg[6]="Puerto Servidor de administración";
+$TbMsg[7]="Método de clonación preferido";
+$TbMsg[8]="";
+$TbMsg[9]="";
+$TbMsg[10]="";
+$TbMsg[11]="";
+$TbMsg[12]="";
+$TbMsg[13]="";
+$TbMsg[14]="";
+$TbMsg[15]="";
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php
new file mode 100644
index 00000000..c2bf7247
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_grupos_esp.php
@@ -0,0 +1,31 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tareas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Grupos";
+$TbMsg[5]="Nombre Grupo";
+$TbMsg[6]="Comentarios";
+$TbMsg[7]="Grupos de Aulas";
+$TbMsg[8]="Grupos de Procedimientos";
+$TbMsg[9]="Grupos de Tareas";
+$TbMsg[10]="Grupos de Trabajos";
+$TbMsg[11]="Grupos de Imágenes";
+$TbMsg[12]="Grupos de Componentes Hardware";
+$TbMsg[13]="Grupos de Componentes Software";
+$TbMsg[14]="Grupos de Perfiles Hardware";
+$TbMsg[15]="Grupos de Perfiles Software";
+$TbMsg[16]="Grupos de Software Incremental";
+$TbMsg[17]="Grupos de Servidores OpenGnsys";
+$TbMsg[18]="Grupos de Servidores Dhcp";
+$TbMsg[19]="Grupos de Menús";
+$TbMsg[20]="Grupos de Reservas";
+$TbMsg[21]="Grupos de Entidades";
+$TbMsg[22]="Grupos de Ordenadores";
+?> \ 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
new file mode 100644
index 00000000..965ef98a
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_imagenes_esp.php
@@ -0,0 +1,20 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_imagenes_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$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[6]="Perfil Software";
+$TbMsg[7]="Comentarios";
+$TbMsg[8]="Partición";
+$TbMsg[9]="Tipo partición";
+$TbMsg[10]="Repositorio";
+$TbMsg[11]="Nombre canónico";
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php
new file mode 100644
index 00000000..d1d1a5b9
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_menus_esp.php
@@ -0,0 +1,27 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_menus_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Menus";
+$TbMsg[5]="Nombre del Menú";
+$TbMsg[6]="Título";
+$TbMsg[7]="Comentarios";
+$TbMsg[8]="Items públicos del Menu";
+$TbMsg[9]="Coordenada x";
+$TbMsg[10]="Coordenada y";
+$TbMsg[11]="Modalidad";
+$TbMsg[12]="Items privados del Menu";
+$TbMsg[13]="Menú simple";
+$TbMsg[14]="Menú doble";
+$TbMsg[15]="Url menú público";
+$TbMsg[16]="Url menú privado";
+$TbMsg[17]="Resolución de pantalla";
+$TbMsg[18]="Imagen de fondo";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php
new file mode 100644
index 00000000..fe29a434
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadores_esp.php
@@ -0,0 +1,21 @@
+<?
+//_____________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_esp.php
+// Idioma: Español
+//______________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Ordenadores";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Dirección IP";
+$TbMsg[7]="Dirección MAC";
+$TbMsg[8]="Perfil Hardware";
+$TbMsg[9]="Autoexec";
+$TbMsg[10]="Repositorio";
+$TbMsg[11]="Menu";
+$TbMsg[12]="Tamaño Caché";
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php
new file mode 100644
index 00000000..e4ab657c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_ordenadorestandar_esp.php
@@ -0,0 +1,21 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadorestandar_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Aula";
+$TbMsg[1]="Ordenador plantilla";
+$TbMsg[2]="Nombre";
+$TbMsg[3]="Dirección IP";
+$TbMsg[4]="Dirección MAC";
+$TbMsg[5]="Perfil hardware";
+$TbMsg[6]="Servidor Dhcp";
+$TbMsg[7]="Servidor OpenGnsys ";
+$TbMsg[8]="Ordenadores a insertar";
+$TbMsg[9]='(*) Para modificar un ordenador con cierto dato, in este aula, debe introducir el valor correspondiente y dejar el campo "Ordenadores a insertar" a cero.';
+$TbMsg[10]="(**)Si se trata de ordenadores nuevos con una configuración por defecto, pero no quiere modificar los ordenadores ya existentes debe introducir un valor mayor que cero.";
+$TbMsg[11]="Tamaño Caché";
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php
new file mode 100644
index 00000000..d44cfcd1
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_perfilhardwares_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_perfilhardwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Perfiles Hardware";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Comentarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php
new file mode 100644
index 00000000..fef71b61
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_perfilsoftwares_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_perfilsoftwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión de Perfiles software";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Comentarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php
new file mode 100644
index 00000000..9c5caf45
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_procedimientos_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_procedimientos_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Procedimientos";
+$TbMsg[5]="Nombre Procedimiento";
+$TbMsg[6]="Comentarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_repositorios_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_repositorios_esp.php
new file mode 100644
index 00000000..7c3223c4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_repositorios_esp.php
@@ -0,0 +1,19 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_servidoresrembo_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Repositorios";
+$TbMsg[5]="Nombre del Repositorio";
+$TbMsg[6]="Dirección IP";
+$TbMsg[7]="Comentarios";
+$TbMsg[8]="Puerto";
+$TbMsg[9]="Directorio Base";
+$TbMsg[10]="Directorio PXE";
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php
new file mode 100644
index 00000000..6115645b
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_reservas_esp.php
@@ -0,0 +1,30 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_reservas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Reservas";
+$TbMsg[5]="Descripción";
+$TbMsg[6]="Nombre solicitante";
+$TbMsg[7]="Comentarios";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Estatus universitario";
+$TbMsg[10]="Aula";
+$TbMsg[11]="Imagen asociada";
+$TbMsg[12]="Anticipación previa";
+$TbMsg[13]="Confirmada";
+$TbMsg[14]="Pendiente";
+$TbMsg[15]="Denegada";
+$TbMsg[16]="Estado de la reserva";
+$TbMsg[17]="(En blanco o 0 minutos indica sin anticipación)";
+$TbMsg[18]="(Sin acción anticipada)";
+$TbMsg[19]="Tarea previa";
+$TbMsg[20]="Trabajo previo";
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php
new file mode 100644
index 00000000..4b7bce74
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_tareas_esp.php
@@ -0,0 +1,23 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tareas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Tareas";
+$TbMsg[5]="Nombre Tarea";
+$TbMsg[6]="Comentarios";
+$TbMsg[7]="Tipo ámbito";
+$TbMsg[8]="Ámbito de aplicación";
+$TbMsg[9]="";
+$TbMsg[10]="Centros";
+$TbMsg[11]="Grupos de Aulas";
+$TbMsg[12]="Aulas";
+$TbMsg[13]="Grupos de Ordenadores";
+$TbMsg[14]="Ordenadores";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php
new file mode 100644
index 00000000..4fe6dff7
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_tipohardwares_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_tipohardwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Tipos de Hardware";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="icono";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php
new file mode 100644
index 00000000..16ae50c6
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_universidades_esp.php
@@ -0,0 +1,15 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_aulas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Universidades";
+$TbMsg[5]="Nombre";
+$TbMsg[6]="Comentarios";
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php
new file mode 100644
index 00000000..fd06af09
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/propiedades_usuarios_esp.php
@@ -0,0 +1,22 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: propiedades_ordenadores_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+$TbMsg=array();
+$TbMsg[0]="Sin Opción";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Usuarios";
+$TbMsg[5]="Usuario";
+$TbMsg[6]="Password";
+$TbMsg[7]="Nombre completo";
+$TbMsg[8]="E-mail";
+$TbMsg[9]="Unidad organizativa";
+$TbMsg[10]="Idioma ";
+$TbMsg[11]="SuperAdministrador ";
+$TbMsg[12]="Administrador";
+$TbMsg[13]="Operador";
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/purgar_esp.php b/admin/WebConsole/idiomas/php/esp/purgar_esp.php
new file mode 100644
index 00000000..82de0465
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/purgar_esp.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: actualizar_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Este ámbito se ha purgado correctamente';
+ $TbMsg[1]='ATENCIÓN: Ha habido algún problema al purgar el ámbito';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/repositorios_esp.php b/admin/WebConsole/idiomas/php/esp/repositorios_esp.php
new file mode 100644
index 00000000..481b0c03
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/repositorios_esp.php
@@ -0,0 +1,24 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: repositorios_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de Repositorios"';
+ $TbMsg[1]='"Añadir Repositorio "';
+ $TbMsg[2]='"Colocar Repositorio"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grupo de repositorios"';
+ $TbMsg[5]='"Información Repositorio"';
+ $TbMsg[6]='"Mover Repositorio"';
+ $TbMsg[7]='"Propiedades"';
+ $TbMsg[8]='"Eliminar Repositorio"';
+ $TbMsg[9]='"Nuevo grupo de Repositorios"';
+ $TbMsg[10]='';
+ $TbMsg[11]='';
+ $TbMsg[12]='"Repositorios"';
+ $TbMsg[13]='""';
+ $TbMsg[14]='"Repositorios"';
+ $TbMsg[15]='"Iconos"';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/reservas_esp.php b/admin/WebConsole/idiomas/php/esp/reservas_esp.php
new file mode 100644
index 00000000..50a48f24
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/reservas_esp.php
@@ -0,0 +1,20 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: reservas_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='"Nuevo grupo de reservas"';
+ $TbMsg[1]='"Definir nueva reserva"';
+ $TbMsg[2]='"Colocar reserva"';
+ $TbMsg[3]='"Renombrar"';
+ $TbMsg[4]='"Eliminar grupo de reservas"';
+ $TbMsg[5]='"Información Reserva"';
+ $TbMsg[6]='"Mover reserva"';
+ $TbMsg[7]='"Propiedades"';
+ $TbMsg[8]='"Eliminar Reserva"';
+ $TbMsg[9]='"Reservas"';
+ $TbMsg[10]='"Programaciones"';
+
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/softwares_esp.php b/admin/WebConsole/idiomas/php/esp/softwares_esp.php
new file mode 100644
index 00000000..9b763d0c
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/softwares_esp.php
@@ -0,0 +1,37 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: softwares_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='""';
+ $TbMsg[1]='"Propiedades"';
+ $TbMsg[2]='""';
+ $TbMsg[3]='"Nuevo grupo de componentes"';
+ $TbMsg[4]='"Definir nuevo componente"';
+ $TbMsg[5]='"Colocar componente"';
+ $TbMsg[6]='"Renombrar"';
+ $TbMsg[7]='"Eliminar grupo de componentes"';
+ $TbMsg[8]='"Mover componente"';
+ $TbMsg[9]='"Eliminar componente"';
+ $TbMsg[10]='"Nuevo grupo de perfiles"';
+ $TbMsg[11]='"Definir nuevo perfil"';
+ $TbMsg[12]='"Colocar perfil"';
+ $TbMsg[13]='"Eliminar grupo de perfiles"';
+ $TbMsg[14]='"Gestión componentes"';
+ $TbMsg[15]='"Información Perfil"';
+ $TbMsg[16]='"Mover perfil"';
+ $TbMsg[17]='"Eliminar perfil software"';
+ $TbMsg[18]='"Tipos de software"';
+ $TbMsg[19]='"Componentes software"';
+ $TbMsg[20]='"Perfiles software"';
+ $TbMsg[21]='"Software Incremental"';
+ $TbMsg[22]='"Nuevo grupo de incrementales"';
+ $TbMsg[23]='"Definir nuevo incremental"';
+ $TbMsg[24]='"Colocar incremental"';
+ $TbMsg[25]='"Eliminar grupo de incrementales"';
+ $TbMsg[26]='"Información Incremental"';
+ $TbMsg[27]='"Mover incremental"';
+ $TbMsg[28]='"Eliminar incremental"';
+?> \ No newline at end of file
diff --git a/admin/WebConsole/idiomas/php/esp/sondeo_esp.php b/admin/WebConsole/idiomas/php/esp/sondeo_esp.php
new file mode 100644
index 00000000..4f51d542
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/sondeo_esp.php
@@ -0,0 +1,10 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: sondeo_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='';
+ $TbMsg[1]='ATENCIÓN: Ha habido algún problema al consultar el estado de los ordenadore';
+?>
diff --git a/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php b/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php
new file mode 100644
index 00000000..f756b4c4
--- /dev/null
+++ b/admin/WebConsole/idiomas/php/esp/tareascomandos_esp.php
@@ -0,0 +1,18 @@
+<?
+//________________________________________________________________________________________________________
+//
+// Fichero de idiomas php: tareascomandos_esp.php
+// Idioma: Español
+//________________________________________________________________________________________________________
+ $TbMsg=array();
+ $TbMsg[0]='Gestión Comandos de la Tarea';
+ $TbMsg[1]='Comandos incluidos';
+ $TbMsg[2]='Tarea';
+ $TbMsg[3]='Nombre Comando';
+ $TbMsg[4]='Ord.';
+ $TbMsg[5]='Parámetro';
+ $TbMsg[6]='Valor';
+ $TbMsg[7]='(*)Para excluir algún comando de esta tarea debe hacer click sobre la casilla de verificación correspondiente';
+ $TbMsg[8]='Ámbito';
+ $TbMsg[9]='Nombre';
+?>
diff --git a/admin/WebConsole/images/L_Iconos.js b/admin/WebConsole/images/L_Iconos.js
new file mode 100644
index 00000000..7762f28d
--- /dev/null
+++ b/admin/WebConsole/images/L_Iconos.js
@@ -0,0 +1,111 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: 2009-2010
+// Fecha ltima modificacin: Noviembre-2005
+// Nombre del fichero: L_Iconos.js
+// Descripcin :
+// Este fichero implementa las funciones javascript del fichero L_Iconos.php
+// *************************************************************************************************************************************************
+// Opciones
+var Menu=0
+var Insertar=1
+var Eliminar=2
+var Modificar=3
+var Consultar=4
+
+// Acciones
+var Sin_accion=0
+var Insertar_registro=1
+var Borrar_registro=2
+var Modificar_registro=3
+var Leer_registro=4
+
+var currentImg=null;
+
+var IE=(navigator.appName=="Microsoft Internet Explorer");
+var NS=(navigator.appName=="Netscape");
+//-----------------------------------------------------------------------------------------------------
+function consultar(){
+ reset_contextual(-1,-1);
+ id=document.fdatos.identificador.value
+ var whref
+ whref="M_Iconos.php"
+ whref=whref + "?opcion=" + Consultar
+ whref=whref + "&accion=" + Leer_registro
+ whref=whref + "&idicono=" + id
+ window.open(whref,"frame_contenidos")
+}
+//-----------------------------------------------------------------------------------------------------
+function borrar(){
+ reset_contextual(-1,-1);
+ id=document.fdatos.identificador.value
+ var whref
+ whref="M_Iconos.php"
+ whref=whref + "?opcion=" + Eliminar
+ whref=whref + "&accion=" + Leer_registro
+ whref=whref + "&idicono=" + id
+ window.open(whref,"frame_contenidos")
+}
+//-----------------------------------------------------------------------------------------------------
+function modificar(){
+ reset_contextual(-1,-1);
+ id=document.fdatos.identificador.value
+ var whref
+ whref="M_Iconos.php"
+ whref=whref + "?opcion=" + Modificar
+ whref=whref + "&accion=" + Leer_registro
+ whref=whref + "&idicono=" + id
+ window.open(whref,"frame_contenidos")
+}
+//_____________________________________________________________________________________
+//
+function menu_contextual(o){
+ document.fdatos.identificador.value=o.getAttribute("id")
+ if (currentImg!=null)
+ currentImg.src="../images/iconos/administrar_off.gif"
+ o.src="../images/iconos/administrar_on.gif";
+ currentImg=o;
+ var menuctx=document.getElementById("flo_menu");
+ muestra_contextual(ClickX,ClickY,menuctx);
+}
+//____________________________________________________________________________
+//
+// Se ejecuta cada vez que se hace click con el puntero del ratn. Se usa para desmarca
+// cualquier item de menu contextual que estuviese activo
+//____________________________________________________________________________
+function click_de_raton(e){
+ if(IE){
+ botonraton=event.button
+ event.returnValue=true;
+ }
+ if(NS){
+ botonraton=e.which;
+ e.returnValue=true;
+ }
+}
+//____________________________________________________________________________
+//
+// Se ejecuta cada vez que se mueve el puntero del ratn. Se usa para capturar coordenadas
+//____________________________________________________________________________
+function move_de_raton(e){
+ if(IE){
+ ClickX=event.clientX
+ ClickY=event.clientY
+ event.returnValue=true;
+ }
+ if(NS){
+ ClickX=e.clientX
+ ClickY=e.clientY
+ e.returnValue=true;
+ }
+}
+//____________________________________________________________________________
+//
+// Redirecciona el evento onmousedown a la funcin de usuario especificada.
+//____________________________________________________________________________
+document.onmousedown = click_de_raton; // Redefine el evento onmousedown
+document.onmousemove = move_de_raton; // Redefine el evento onmousedown
+
+
+
diff --git a/admin/WebConsole/images/L_Iconos.php b/admin/WebConsole/images/L_Iconos.php
new file mode 100644
index 00000000..6326faa5
--- /dev/null
+++ b/admin/WebConsole/images/L_Iconos.php
@@ -0,0 +1,157 @@
+<?
+// ********************************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Agosto-2010
+// Fecha ltima modificacin: Agosto-2010
+// Nombre del fichero: L_Iconos.php
+// Descripcin :Este fichero implementa el mantenimiento de la tabla Iconos
+// ********************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLCTESELECT.php");
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Captura de parmetros
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+
+$idtipoicono="";
+
+if (isset($_POST["idtipoicono"])) $idtipoicono=$_POST["idtipoicono"];
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Conexion a la base de datos
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd) // Fallo conexin con servidor de datos
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Bsquedas
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+$cmd->texto="SELECT * FROM iconos WHERE idicono>0";
+if (!empty($idtipoicono)) // Tipo
+ $cmd->texto.=" AND idtipoicono=".$idtipoicono;
+$cmd->texto.=" order by idtipoicono,descripcion ";
+$rs=new Recordset;
+$rs->Comando=&$cmd;
+if (!$rs->Abrir())
+ RedireccionaError("Fallo al abrir la tabla: Iconos");
+?>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+<SCRIPT language="javascript">
+var IE=(navigator.appName=="Microsoft Internet Explorer");
+var NS=(navigator.appName=="Netscape");
+</SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+<SCRIPT language="javascript" src="L_Iconos.js"></SCRIPT>
+</HEAD>
+<BODY OnContextMenu="return false">
+ <P align="center"><SPAN class=textos>____ Opciones de bsqueda ____</SPAN></P>
+ <FORM name="fdatos" action="L_Iconos.php" method="post">
+ <INPUT type=hidden name=identificador value="0">
+ <TABLE align=center class=tabla_busquedas>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;Tipo&nbsp;</TD>
+ <TD ><?
+ $parametros="0=".chr(13);
+ $parametros.="1=iconos web".chr(13);
+ $parametros.="2=iconos items".chr(13);
+ $parametros.="3=Fondo menu";
+ echo '<TD>'.HTMLCTESELECT($parametros, "idtipoicono","estilodesple","",$idtipoicono,100).'</TD>';?>
+ </TD>
+ </TR>
+ </TABLE>
+ <BR>
+
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+<P align=center><A href="#"><img border=0 src="../images/iconos/busquedas.gif" onclick="document.fdatos.submit()" alt="Buscar"></A></P>
+</FORM>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+<P align="center"><SPAN class=textos>Registros encontrados : <? echo $rs->numeroderegistros?></SPAN></P>
+<TABLE align="center" class="tabla_listados">
+ <TR>
+ <TH align="center">A</TH>
+ <TH align="center">&nbsp;<? echo utf8_encode(Descripcin)?>&nbsp;</TH>
+ <TH align="center">&nbsp;Nombre&nbsp;</TH>
+ <TH align="center">&nbsp;</TH>
+ <TH align="center">&nbsp;T&nbsp;</TH>
+
+ </TR>
+ <?
+ $TBtipo[1]="W";
+ $TBtipo[2]="I";
+ $TBtipo[3]="F";
+ while (!$rs->EOF){?>
+ <TR>
+ <TD align=center><IMG id=<?=$rs->campos["idicono"]?> style="cursor:hand" onclick="menu_contextual(this)" src="../images/iconos/administrar_off.gif"></TD>
+ <TD>&nbsp;<? echo basename($rs->campos["descripcion"])?>&nbsp;</TD>
+ <TD>&nbsp;<? echo basename($rs->campos["urlicono"])?>&nbsp;</TD>
+ <TD align=center>&nbsp;<IMG src="./iconos/<? echo $rs->campos["urlicono"] ?>"
+
+ <? if ($rs->campos["idtipoicono"]==2) //icono item
+ echo " width=64 ";
+ else
+ echo " width=16 ";
+ ?>
+ >&nbsp;</TD>
+ <TD align=center>&nbsp;<? echo $TBtipo[$rs->campos["idtipoicono"]] ?>&nbsp;</TD>
+ </TR>
+ <? $rs->Siguiente();}?>
+</TABLE>
+<?
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Menu contextual
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+$XMLcontextual=CreacontextualXMLMenu(); // Crea contextual de las acciones
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Menus contextuales
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+function CreacontextualXMLMenu(){
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' maxanchu=110';
+ $layerXML.=' idctx="flo_menu"';
+ $layerXML.=' swimg=1';
+ $layerXML.=' origen_x=100';
+ $layerXML.=' origen_y=300';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consultar()"';
+ $layerXML.=' imgitem="../images/iconos/consultar.gif"';
+ $layerXML.=' textoitem="Consultar"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar()"';
+ $layerXML.=' textoitem="Modificar"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="borrar()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem="Eliminar"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/images/M_Iconos.js b/admin/WebConsole/images/M_Iconos.js
new file mode 100644
index 00000000..a58d4a99
--- /dev/null
+++ b/admin/WebConsole/images/M_Iconos.js
@@ -0,0 +1,85 @@
+// ********************************************************************************************************// Libreria de scripts de Javascript
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: 2009-2010
+// Fecha ltima modificacin: Noviembre-2005
+// Nombre del fichero:M_Iconos
+// Descripcin :
+// Este fichero implementa las funciones javascript del fichero M_Iconos.php
+// ********************************************************************************************************
+// Opciones
+var Insertar=1
+var Eliminar=2
+var Modificar=3
+var Consultar=4
+
+// Acciones
+var Sin_accion=0
+var Insertar_registro=1
+var Borrar_registro=2
+var Modificar_registro=3
+var Leer_registro=4
+
+var CurrentFecha=null;
+//-------------------------------------------------------------------------------------------------------------
+function menu(){
+ w=window.parent
+ w.location.href="../menu.php"
+}
+//-------------------------------------------------------------------------------------------------------------
+ function Editar(){
+ document.fdatos.opcion.value=Modificar
+ document.fdatos.accion.value=Leer_registro
+ document.fdatos.submit()
+ }
+//-------------------------------------------------------------------------------------------------------------
+ function Agregar() {
+ document.fdatos.opcion.value=Insertar
+ document.fdatos.accion.value=Sin_accion
+ document.fdatos.submit()
+ }
+//-------------------------------------------------------------------------------------------------------------
+ function Borrar(){
+ document.fdatos.opcion.value=Eliminar
+ document.fdatos.accion.value=Leer_registro
+ document.fdatos.submit()
+ }
+//-------------------------------------------------------------------------------------------------------------
+ function Cancelar() {
+ document.fdatos.opcion.value=Insertar
+ document.fdatos.accion.value=Sin_accion
+ document.fdatos.idicono.value=0
+ document.fdatos.submit()
+ }
+//-------------------------------------------------------------------------------------------------------------
+function Confirmar() {
+ var sw
+ sw=parseInt(document.fdatos.opcion.value)
+ switch (sw) {
+ case Insertar :
+ if (comprobar_datos()){
+ document.fdatos.accion.value=Insertar_registro
+ document.fdatos.submit()
+ }
+ break
+ case Eliminar :
+ document.fdatos.accion.value=Borrar_registro
+ document.fdatos.submit()
+ break
+ case Modificar :
+ if (comprobar_datos()){
+ document.fdatos.accion.value=Modificar_registro
+ document.fdatos.submit()
+ }
+ break
+ }
+}
+//----------------------------------------------------------------------------------------------
+function comprobar_datos(){
+
+ if (document.fdatos.descripcion.value==""){
+ alert("Descripcion es un dato obligatorio")
+ document.forms.fdatos.descripcion.focus()
+ return(false)
+ }
+ return(true)
+}
diff --git a/admin/WebConsole/images/M_Iconos.php b/admin/WebConsole/images/M_Iconos.php
new file mode 100644
index 00000000..824f6cda
--- /dev/null
+++ b/admin/WebConsole/images/M_Iconos.php
@@ -0,0 +1,298 @@
+<?
+// ********************************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Agosto-2010
+// Fecha ltima modificacin: Agosto-2010
+// Nombre del fichero: M_Iconos.php
+// Descripcin :Este fichero implementa el mantenimiento de la tabla Iconos
+// ********************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/FicherosPost.php");
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Captura de parmetros
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+$opcion="";
+$accion="";
+$idicono=0;
+
+if (isset($_POST["opcion"])) $opcion=$_POST["opcion"];
+if (isset($_POST["accion"])) $accion=$_POST["accion"];
+if (isset($_POST["idicono"])) $idicono=$_POST["idicono"];
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"];
+if (isset($_GET["accion"])) $accion=$_GET["accion"];
+if (isset($_GET["idicono"])) $idicono=$_GET["idicono"];
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Constantes
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// $opciones
+$INSERTAR=1;
+$ELIMINAR=2;
+$MODIFICAR=3;
+$CONSULTAR=4;
+
+// Acciones
+$SIN_ACCION=0;
+$INSERTAR_REGISTRO=1;
+$BORRAR_REGISTRO=2;
+$MODIFICAR_REGISTRO=3;
+$LEER_REGISTRO=4;
+
+$mopciones[1]="INSERTAR";
+$mopciones[2]="ELIMINAR";
+$mopciones[3]="MODIFICAR";
+$mopciones[4]="CONSULTAR";
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Datos por defecto
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+if(empty($opcion)) $opcion=$INSERTAR;
+if(empty($accion)) $accion=$SIN_ACCION;
+if(empty($idicono)) $idicono=0;
+$msg="";
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Conexion a la base de datos
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd) // Fallo conexin con servidor de datos
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+// Accin a ejecutar
+//-------------------------------------------------------------------------------------------------------------------------------------------------
+if($accion==$INSERTAR_REGISTRO || $accion==$MODIFICAR_REGISTRO){
+ $cmd->CreaParametro("@idicono",$idicono,1);
+ IncializaCampos();
+ if (isset($_POST["swbf_urlicono"])) $swbf_urlicono=$_POST["swbf_urlicono"];
+ if (isset($_POST["urlicono"])) $urlicono=$_POST["urlicono"];
+ if (isset($_POST["idtipoicono"])) $idtipoicono=$_POST["idtipoicono"];
+ if (isset($_POST["descripcion"])) $descripcion=$_POST["descripcion"];
+ $cmd->CreaParametro("@urlicono",$urlicono,0);
+ $cmd->CreaParametro("@idtipoicono",$idtipoicono,1);
+ $cmd->CreaParametro("@descripcion",$descripcion,0);
+
+ $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url pgina
+ // Se recibe fichero adjunto
+ $NombreFichero_urlicono = $HTTP_POST_FILES['urlicono']['name'];
+ if(!empty($NombreFichero_urlicono)){
+ $NombreFicheroPost_urlicono = $HTTP_POST_FILES['urlicono']['tmp_name'];
+ $tamano_archivo = $HTTP_POST_FILES['urlicono']['size'];
+ if($tamano_archivo>100000){
+ $msg="El tamao del archivo no corresponde con los lmites permitidos, debe ser mayor que 0 y menor de 100 KB";
+ IncializaCampos();
+ $opcion=$INSERTAR;
+ $accion=$SIN_ACCION;
+ }
+ else{
+ if(!SalvaFichero_POST($UrlPagina,$NombreFicheroPost_urlicono,$NombreFichero_urlicono,&$UrlFichero_urlicono))
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ else{
+ $msg="Se ha enviado al servidor web el fichero de Icono, correctamente";
+ $cmd->ParamSetValor("@urlicono",basename($UrlFichero_urlicono));
+ }
+ }
+ }
+ switch($accion){
+ case $INSERTAR_REGISTRO :
+ $cmd->texto="INSERT INTO iconos (urlicono,idtipoicono,descripcion ) VALUES (@urlicono,@idtipoicono,@descripcion);";
+ $resul=$cmd->Ejecutar();
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ break;
+ case $MODIFICAR_REGISTRO:
+ if(!empty($NombreFichero_urlicono) || !empty($swbf_urlicono)){
+ $filebaja_urlicono="";
+ if (isset($_POST["filebaja_urlicono"])) $filebaja_urlicono=$_POST["filebaja_urlicono"];
+ $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url pgina
+ if(!empty($filebaja_urlicono)){
+ if(!EliminaFichero($UrlPagina,$filebaja_urlicono))
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ else
+ $msg="Se ha sustituido del servidor web el fichero de Icono, correctamente";
+ }
+ }
+ else{
+ if (isset($_POST["fileexist_urlicono"])) $urlicono=$_POST["fileexist_urlicono"];
+ $cmd->ParamSetValor("@urlicono",basename($urlicono));
+ }
+ $cmd->texto="UPDATE iconos SET urlicono=@urlicono,idtipoicono=@idtipoicono,descripcion=@descripcion WHERE idicono=@idicono";
+ $resul=$cmd->Ejecutar();
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ break;
+ }
+ IncializaCampos();
+ $opcion=$INSERTAR;
+ $accion=$SIN_ACCION;
+}else{
+ if($accion==$BORRAR_REGISTRO){
+ $cmd->texto="DELETE FROM iconos WHERE idicono=".$idicono;
+ $resul=$cmd->Ejecutar();
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ $filebaja_urlicono="";
+ if (isset($_POST["filebaja_urlicono"])) $filebaja_urlicono=$_POST["filebaja_urlicono"];
+ $UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url pgina
+ if(!empty($filebaja_urlicono)){
+ if(!EliminaFichero($UrlPagina,$filebaja_urlicono))
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ else
+ $msg="Se ha eliminado del servidor web el fichero de Icono, correctamente";
+ }
+ IncializaCampos();
+ $opcion=$INSERTAR;
+ $accion=$SIN_ACCION;
+ }
+ else{
+ if($accion==$LEER_REGISTRO){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM iconos WHERE idicono=".$idicono;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir())
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ if ($rs->EOF)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+ $urlicono=$rs->campos["urlicono"];
+ $idtipoicono=$rs->campos["idtipoicono"];
+ $descripcion=$rs->campos["descripcion"];
+ }
+ else{ // Sin accion
+ IncializaCampos();
+ $opcion=$INSERTAR;
+ $accion=$SIN_ACCION;
+ }
+ }
+}
+?>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+<!-- Pgina HTML del Mantenimiento de la tabla
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <HTML>
+ <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="M_Iconos.js"></SCRIPT>
+ </HEAD>
+ <BODY>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <FORM name="fdatos" action="M_Iconos.php" enctype="multipart/form-data" method="post">
+ <input name="opcion" type="hidden" value="<? echo $opcion?>">
+ <input name="accion" type="hidden" value="<? echo $accion?>">
+ <input name="idicono" type="hidden" value="<? echo $idicono?>">
+ <input name="filebaja_urlicono" type="hidden" value="<? echo basename($urlicono)?>">
+ <input name="fileexist_urlicono" type="hidden" value="<? echo $urlicono?>">
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <DIV align=center id="Layer_Datos">
+ <P class=cabeceras>Iconos<BR>
+ <SPAN class="subcabeceras"><?=$mopciones[$opcion]?></SPAN></P>
+ <P align="center"><SPAN class=textos>____ Datos de Iconos ____</SPAN></P>
+ <TABLE class="tabla_datos" align="center">
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;Tipo&nbsp;</TH>
+ <?if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?>
+ <TD><?
+ $TBtipo[1]="Iconos web";
+ $TBtipo[2]="Iconos items";
+ $TBtipo[3]="Fondo menu";
+ echo $TBtipo[$idtipoicono];
+ }else{
+ $parametros="0=".chr(13);
+ $parametros.="1=iconos web".chr(13);
+ $parametros.="2=iconos items".chr(13);
+ $parametros.="3=Fondo menu";
+ echo '<TD>'.HTMLCTESELECT($parametros, "idtipoicono","estilodesple","",$idtipoicono,100).'</TD>';
+ }?>
+ </TR>
+
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;Descripcion&nbsp;</TH>
+ <?if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?>
+ <TD><?echo $descripcion?></TD>
+ <?}else{?>
+ <TD><INPUT class=cajatexto name="descripcion" maxlength=250 style="width:250" value="<? echo $descripcion?>"></TD>
+ <?}?>
+ </TR>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <?if ($opcion==$CONSULTAR || $opcion==$ELIMINAR){?>
+ <TR>
+ <TH>&nbsp;Icono&nbsp;</TH>
+ <TD><?echo basename($urlicono)?></TD>
+ </TR>
+ <?}else{
+ if ($opcion==$INSERTAR || ($opcion==$MODIFICAR && empty($urlicono))){?>
+ <TR>
+ <TH>&nbsp;Icono&nbsp;</TH>
+ <TD><INPUT type=file class=cajatexto name="urlicono" style="width:500" value="<? echo $urlicono?>">
+ </TR>
+ <?}else{?>
+ <TR>
+ <TH>&nbsp;Icono&nbsp;</TH>
+ <TD><?echo basename($urlicono)?></TD>
+ </TR>
+ <TR>
+ <TH>&nbsp;Sustituir Fichero&nbsp;</TH>
+ <TD><INPUT type=file class=cajatexto name="urlicono" style="width:500" value="<? echo $urlicono?>">
+ </TR>
+ <?}?>
+ <?}?>
+ </TR>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+ </DIV>
+ <BR>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <DIV id="Layer_opciones">
+ <TABLE align="center" border="0" >
+ <TR>
+ <?switch($opcion){
+ case $CONSULTAR:
+ echo '<TD><img style="cursor:hand" SRC="../images/boton_insertar.gif" onclick="Cancelar()"></TD>';
+ break;
+ case $ELIMINAR:
+ echo '<TD><img SRC="../images/boton_confirmar.gif" style="cursor:hand" onclick="Confirmar()"></TD>';
+ echo '<TD><img SRC="../images/boton_cancelar.gif" style="cursor:hand" onclick="Cancelar()"></TD>';
+ break;
+ default:
+ echo '<TD><img style="cursor:hand" SRC="../images/boton_confirmar.gif" onclick="Confirmar()"></TD>';
+ echo '<TD><img style="cursor:hand" SRC="../images/boton_cancelar.gif" onclick="Cancelar()"></TD>';
+ break;
+ }?>
+ </TR>
+ </TABLE>
+ </DIV>
+<?
+//________________________________________________________________________________________________________
+// Posiciona cursor en campo usuario y muestra mensaje de error si lo hubiera
+echo '<SCRIPT LANGUAGE="javascript">';
+if (!empty($msg))
+ echo 'alert("'.$msg.'")';
+echo '</SCRIPT>';
+?>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ </FORM>
+ </BODY>
+ </HTML>
+ <?
+//______________________________________________________________________
+// Inicialiciza los campos de trabajo de la tabla
+//______________________________________________________________________
+function IncializaCampos(){
+
+ global $idicono;
+ $idicono=0;
+
+ global $urlicono;
+ global $idtipoicono;
+ global $descripcion;
+
+ $urlicono="";
+ $idtipoicono=0;
+ $descripcion="";
+}
+
diff --git a/admin/WebConsole/images/aula.jpg b/admin/WebConsole/images/aula.jpg
new file mode 100644
index 00000000..77123cbe
--- /dev/null
+++ b/admin/WebConsole/images/aula.jpg
Binary files differ
diff --git a/admin/WebConsole/images/boton_aceptar.gif b/admin/WebConsole/images/boton_aceptar.gif
new file mode 100644
index 00000000..f44edbab
--- /dev/null
+++ b/admin/WebConsole/images/boton_aceptar.gif
Binary files differ
diff --git a/admin/WebConsole/images/boton_annadir.gif b/admin/WebConsole/images/boton_annadir.gif
new file mode 100644
index 00000000..751a55a3
--- /dev/null
+++ b/admin/WebConsole/images/boton_annadir.gif
Binary files differ
diff --git a/admin/WebConsole/images/boton_cancelar.gif b/admin/WebConsole/images/boton_cancelar.gif
new file mode 100644
index 00000000..b57c1c88
--- /dev/null
+++ b/admin/WebConsole/images/boton_cancelar.gif
Binary files differ
diff --git a/admin/WebConsole/images/boton_cerrar.gif b/admin/WebConsole/images/boton_cerrar.gif
new file mode 100644
index 00000000..a989c567
--- /dev/null
+++ b/admin/WebConsole/images/boton_cerrar.gif
Binary files differ
diff --git a/admin/WebConsole/images/boton_confirmar.gif b/admin/WebConsole/images/boton_confirmar.gif
new file mode 100644
index 00000000..b0e33488
--- /dev/null
+++ b/admin/WebConsole/images/boton_confirmar.gif
Binary files differ
diff --git a/admin/WebConsole/images/boton_insertar.gif b/admin/WebConsole/images/boton_insertar.gif
new file mode 100644
index 00000000..ccff6b08
--- /dev/null
+++ b/admin/WebConsole/images/boton_insertar.gif
Binary files differ
diff --git a/admin/WebConsole/images/botonok.gif b/admin/WebConsole/images/botonok.gif
new file mode 100644
index 00000000..2a7bccd4
--- /dev/null
+++ b/admin/WebConsole/images/botonok.gif
Binary files differ
diff --git a/admin/WebConsole/images/botonok.png b/admin/WebConsole/images/botonok.png
new file mode 100644
index 00000000..981d4c9a
--- /dev/null
+++ b/admin/WebConsole/images/botonok.png
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/eid.gif b/admin/WebConsole/images/flotantes/eid.gif
new file mode 100644
index 00000000..683acc93
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/eid.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/eii.gif b/admin/WebConsole/images/flotantes/eii.gif
new file mode 100644
index 00000000..328f5baf
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/eii.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/esd.gif b/admin/WebConsole/images/flotantes/esd.gif
new file mode 100644
index 00000000..c90db87f
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/esd.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/esi.gif b/admin/WebConsole/images/flotantes/esi.gif
new file mode 100644
index 00000000..76223f89
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/esi.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/ldr.gif b/admin/WebConsole/images/flotantes/ldr.gif
new file mode 100644
index 00000000..bd975c47
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/ldr.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/lin.gif b/admin/WebConsole/images/flotantes/lin.gif
new file mode 100644
index 00000000..52ce37aa
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/lin.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/liz.gif b/admin/WebConsole/images/flotantes/liz.gif
new file mode 100644
index 00000000..584886c8
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/liz.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/lsu.gif b/admin/WebConsole/images/flotantes/lsu.gif
new file mode 100644
index 00000000..f3fc323e
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/lsu.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/sep.gif b/admin/WebConsole/images/flotantes/sep.gif
new file mode 100644
index 00000000..6b69a2e6
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/sep.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/swsbfb.gif b/admin/WebConsole/images/flotantes/swsbfb.gif
new file mode 100644
index 00000000..c828dfd1
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/swsbfb.gif
Binary files differ
diff --git a/admin/WebConsole/images/flotantes/swsbfn.gif b/admin/WebConsole/images/flotantes/swsbfn.gif
new file mode 100644
index 00000000..8cd08fd5
--- /dev/null
+++ b/admin/WebConsole/images/flotantes/swsbfn.gif
Binary files differ
diff --git a/admin/WebConsole/images/fotoordenador.gif b/admin/WebConsole/images/fotoordenador.gif
new file mode 100644
index 00000000..b6b09ad4
--- /dev/null
+++ b/admin/WebConsole/images/fotoordenador.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acAbortada.gif b/admin/WebConsole/images/iconos/acAbortada.gif
new file mode 100644
index 00000000..06784603
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acAbortada.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acConErrores.gif b/admin/WebConsole/images/iconos/acConErrores.gif
new file mode 100644
index 00000000..c2388f22
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acConErrores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acDetenida.gif b/admin/WebConsole/images/iconos/acDetenida.gif
new file mode 100644
index 00000000..75d3ae0d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acDetenida.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acExitosa.gif b/admin/WebConsole/images/iconos/acExitosa.gif
new file mode 100644
index 00000000..2e9bbbf5
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acExitosa.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acFallida.gif b/admin/WebConsole/images/iconos/acFallida.gif
new file mode 100644
index 00000000..ad817699
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acFallida.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acFinalizada.gif b/admin/WebConsole/images/iconos/acFinalizada.gif
new file mode 100644
index 00000000..6b3588a9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acFinalizada.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acIniciada.gif b/admin/WebConsole/images/iconos/acIniciada.gif
new file mode 100644
index 00000000..29651d6f
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acIniciada.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acSinErrores.gif b/admin/WebConsole/images/iconos/acSinErrores.gif
new file mode 100644
index 00000000..6b3588a9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acSinErrores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acTerminada.gif b/admin/WebConsole/images/iconos/acTerminada.gif
new file mode 100644
index 00000000..e7b7e956
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acTerminada.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/acciones.gif b/admin/WebConsole/images/iconos/acciones.gif
new file mode 100644
index 00000000..53d71d20
--- /dev/null
+++ b/admin/WebConsole/images/iconos/acciones.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/actualizandor.gif b/admin/WebConsole/images/iconos/actualizandor.gif
new file mode 100644
index 00000000..173def53
--- /dev/null
+++ b/admin/WebConsole/images/iconos/actualizandor.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/actualizar.gif b/admin/WebConsole/images/iconos/actualizar.gif
new file mode 100644
index 00000000..74abf818
--- /dev/null
+++ b/admin/WebConsole/images/iconos/actualizar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/administracion.gif b/admin/WebConsole/images/iconos/administracion.gif
new file mode 100644
index 00000000..606f2dcc
--- /dev/null
+++ b/admin/WebConsole/images/iconos/administracion.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/administraciones.gif b/admin/WebConsole/images/iconos/administraciones.gif
new file mode 100644
index 00000000..720b2a48
--- /dev/null
+++ b/admin/WebConsole/images/iconos/administraciones.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/administradores.gif b/admin/WebConsole/images/iconos/administradores.gif
new file mode 100644
index 00000000..14fd5914
--- /dev/null
+++ b/admin/WebConsole/images/iconos/administradores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/administrar_off.gif b/admin/WebConsole/images/iconos/administrar_off.gif
new file mode 100644
index 00000000..a414d594
--- /dev/null
+++ b/admin/WebConsole/images/iconos/administrar_off.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/administrar_on.gif b/admin/WebConsole/images/iconos/administrar_on.gif
new file mode 100644
index 00000000..ab64ec3b
--- /dev/null
+++ b/admin/WebConsole/images/iconos/administrar_on.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/aplicaciones.gif b/admin/WebConsole/images/iconos/aplicaciones.gif
new file mode 100644
index 00000000..bede0763
--- /dev/null
+++ b/admin/WebConsole/images/iconos/aplicaciones.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/archivos.gif b/admin/WebConsole/images/iconos/archivos.gif
new file mode 100644
index 00000000..c6f0e577
--- /dev/null
+++ b/admin/WebConsole/images/iconos/archivos.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/audio.gif b/admin/WebConsole/images/iconos/audio.gif
new file mode 100644
index 00000000..12c0c03c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/audio.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/aula.gif b/admin/WebConsole/images/iconos/aula.gif
new file mode 100644
index 00000000..7ce87209
--- /dev/null
+++ b/admin/WebConsole/images/iconos/aula.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ayuda.gif b/admin/WebConsole/images/iconos/ayuda.gif
new file mode 100644
index 00000000..18f45234
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ayuda.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/barraven.png b/admin/WebConsole/images/iconos/barraven.png
new file mode 100644
index 00000000..16471d39
--- /dev/null
+++ b/admin/WebConsole/images/iconos/barraven.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/busquedas.gif b/admin/WebConsole/images/iconos/busquedas.gif
new file mode 100644
index 00000000..0d6f8494
--- /dev/null
+++ b/admin/WebConsole/images/iconos/busquedas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/camweb.gif b/admin/WebConsole/images/iconos/camweb.gif
new file mode 100644
index 00000000..54e99e94
--- /dev/null
+++ b/admin/WebConsole/images/iconos/camweb.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/carpeta.gif b/admin/WebConsole/images/iconos/carpeta.gif
new file mode 100644
index 00000000..a4868bfa
--- /dev/null
+++ b/admin/WebConsole/images/iconos/carpeta.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/carpetaup.gif b/admin/WebConsole/images/iconos/carpetaup.gif
new file mode 100644
index 00000000..6fb2f2d3
--- /dev/null
+++ b/admin/WebConsole/images/iconos/carpetaup.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/centros.gif b/admin/WebConsole/images/iconos/centros.gif
new file mode 100644
index 00000000..c99e0e6d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/centros.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/clienven.png b/admin/WebConsole/images/iconos/clienven.png
new file mode 100644
index 00000000..aa1c4853
--- /dev/null
+++ b/admin/WebConsole/images/iconos/clienven.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/colocar.gif b/admin/WebConsole/images/iconos/colocar.gif
new file mode 100644
index 00000000..a624b546
--- /dev/null
+++ b/admin/WebConsole/images/iconos/colocar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/comandos.gif b/admin/WebConsole/images/iconos/comandos.gif
new file mode 100644
index 00000000..d3c4ae36
--- /dev/null
+++ b/admin/WebConsole/images/iconos/comandos.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/configuraciones.gif b/admin/WebConsole/images/iconos/configuraciones.gif
new file mode 100644
index 00000000..a414d594
--- /dev/null
+++ b/admin/WebConsole/images/iconos/configuraciones.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/configuraciones_ON.gif b/admin/WebConsole/images/iconos/configuraciones_ON.gif
new file mode 100644
index 00000000..ab64ec3b
--- /dev/null
+++ b/admin/WebConsole/images/iconos/configuraciones_ON.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/confihard.gif b/admin/WebConsole/images/iconos/confihard.gif
new file mode 100644
index 00000000..69258e11
--- /dev/null
+++ b/admin/WebConsole/images/iconos/confihard.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/confirmadas.gif b/admin/WebConsole/images/iconos/confirmadas.gif
new file mode 100644
index 00000000..e144f180
--- /dev/null
+++ b/admin/WebConsole/images/iconos/confirmadas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/confisoft.gif b/admin/WebConsole/images/iconos/confisoft.gif
new file mode 100644
index 00000000..ce4010b5
--- /dev/null
+++ b/admin/WebConsole/images/iconos/confisoft.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/consultar.gif b/admin/WebConsole/images/iconos/consultar.gif
new file mode 100644
index 00000000..dd74ce3f
--- /dev/null
+++ b/admin/WebConsole/images/iconos/consultar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/copiar.gif b/admin/WebConsole/images/iconos/copiar.gif
new file mode 100644
index 00000000..41d3b0a4
--- /dev/null
+++ b/admin/WebConsole/images/iconos/copiar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/copiar_off.gif b/admin/WebConsole/images/iconos/copiar_off.gif
new file mode 100644
index 00000000..630ce37b
--- /dev/null
+++ b/admin/WebConsole/images/iconos/copiar_off.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/cortar.gif b/admin/WebConsole/images/iconos/cortar.gif
new file mode 100644
index 00000000..e8fd255c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/cortar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/cortar_off.gif b/admin/WebConsole/images/iconos/cortar_off.gif
new file mode 100644
index 00000000..973c50d5
--- /dev/null
+++ b/admin/WebConsole/images/iconos/cortar_off.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/denegadas.gif b/admin/WebConsole/images/iconos/denegadas.gif
new file mode 100644
index 00000000..e03adb17
--- /dev/null
+++ b/admin/WebConsole/images/iconos/denegadas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/discoduro.gif b/admin/WebConsole/images/iconos/discoduro.gif
new file mode 100644
index 00000000..4b3cf643
--- /dev/null
+++ b/admin/WebConsole/images/iconos/discoduro.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/dvdcd.gif b/admin/WebConsole/images/iconos/dvdcd.gif
new file mode 100644
index 00000000..4638af5a
--- /dev/null
+++ b/admin/WebConsole/images/iconos/dvdcd.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ecocon.gif b/admin/WebConsole/images/iconos/ecocon.gif
new file mode 100644
index 00000000..fb5e928c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ecocon.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/eliminar.gif b/admin/WebConsole/images/iconos/eliminar.gif
new file mode 100644
index 00000000..1771fbf4
--- /dev/null
+++ b/admin/WebConsole/images/iconos/eliminar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/email.gif b/admin/WebConsole/images/iconos/email.gif
new file mode 100644
index 00000000..0322ac9e
--- /dev/null
+++ b/admin/WebConsole/images/iconos/email.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/entidades.gif b/admin/WebConsole/images/iconos/entidades.gif
new file mode 100644
index 00000000..3b85ddbb
--- /dev/null
+++ b/admin/WebConsole/images/iconos/entidades.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/entornos.gif b/admin/WebConsole/images/iconos/entornos.gif
new file mode 100644
index 00000000..a0ed0792
--- /dev/null
+++ b/admin/WebConsole/images/iconos/entornos.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/filtro_off.gif b/admin/WebConsole/images/iconos/filtro_off.gif
new file mode 100644
index 00000000..897320f0
--- /dev/null
+++ b/admin/WebConsole/images/iconos/filtro_off.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/filtroaccion.gif b/admin/WebConsole/images/iconos/filtroaccion.gif
new file mode 100644
index 00000000..d1d767fc
--- /dev/null
+++ b/admin/WebConsole/images/iconos/filtroaccion.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/filtroambito.gif b/admin/WebConsole/images/iconos/filtroambito.gif
new file mode 100644
index 00000000..76bcf064
--- /dev/null
+++ b/admin/WebConsole/images/iconos/filtroambito.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/fondo800x600.png b/admin/WebConsole/images/iconos/fondo800x600.png
new file mode 100644
index 00000000..36e222f1
--- /dev/null
+++ b/admin/WebConsole/images/iconos/fondo800x600.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/fondomenuETSII.png b/admin/WebConsole/images/iconos/fondomenuETSII.png
new file mode 100644
index 00000000..3972f9c6
--- /dev/null
+++ b/admin/WebConsole/images/iconos/fondomenuETSII.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/funcion.gif b/admin/WebConsole/images/iconos/funcion.gif
new file mode 100644
index 00000000..c99e0e6d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/funcion.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/hidra.gif b/admin/WebConsole/images/iconos/hidra.gif
new file mode 100644
index 00000000..0a0cde5b
--- /dev/null
+++ b/admin/WebConsole/images/iconos/hidra.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/icono_pdf.gif b/admin/WebConsole/images/iconos/icono_pdf.gif
new file mode 100644
index 00000000..14e838d0
--- /dev/null
+++ b/admin/WebConsole/images/iconos/icono_pdf.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/iconos.gif b/admin/WebConsole/images/iconos/iconos.gif
new file mode 100644
index 00000000..c6eab505
--- /dev/null
+++ b/admin/WebConsole/images/iconos/iconos.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ide.gif b/admin/WebConsole/images/iconos/ide.gif
new file mode 100644
index 00000000..8a13f97d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ide.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/imagen.gif b/admin/WebConsole/images/iconos/imagen.gif
new file mode 100644
index 00000000..b5c9b64d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/imagen.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/imagenes.gif b/admin/WebConsole/images/iconos/imagenes.gif
new file mode 100644
index 00000000..1cea58aa
--- /dev/null
+++ b/admin/WebConsole/images/iconos/imagenes.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/incremental.gif b/admin/WebConsole/images/iconos/incremental.gif
new file mode 100644
index 00000000..cba5f7f2
--- /dev/null
+++ b/admin/WebConsole/images/iconos/incremental.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/informacion.gif b/admin/WebConsole/images/iconos/informacion.gif
new file mode 100644
index 00000000..fd2f932c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/informacion.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ko.gif b/admin/WebConsole/images/iconos/ko.gif
new file mode 100644
index 00000000..1771fbf4
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ko.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/logoXP.png b/admin/WebConsole/images/iconos/logoXP.png
new file mode 100644
index 00000000..09b6da00
--- /dev/null
+++ b/admin/WebConsole/images/iconos/logoXP.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/logohidra16.gif b/admin/WebConsole/images/iconos/logohidra16.gif
new file mode 100644
index 00000000..2df91e8d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/logohidra16.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/logolinux.png b/admin/WebConsole/images/iconos/logolinux.png
new file mode 100644
index 00000000..b3df80b9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/logolinux.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/logoopengnsys.png b/admin/WebConsole/images/iconos/logoopengnsys.png
new file mode 100644
index 00000000..c87ca25e
--- /dev/null
+++ b/admin/WebConsole/images/iconos/logoopengnsys.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/menu.gif b/admin/WebConsole/images/iconos/menu.gif
new file mode 100644
index 00000000..a0ed0792
--- /dev/null
+++ b/admin/WebConsole/images/iconos/menu.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/menus.gif b/admin/WebConsole/images/iconos/menus.gif
new file mode 100644
index 00000000..3d14060c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/menus.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/micro.gif b/admin/WebConsole/images/iconos/micro.gif
new file mode 100644
index 00000000..8873978c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/micro.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/modificar.gif b/admin/WebConsole/images/iconos/modificar.gif
new file mode 100644
index 00000000..f2f9ea3d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/modificar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/mover.gif b/admin/WebConsole/images/iconos/mover.gif
new file mode 100644
index 00000000..584b1921
--- /dev/null
+++ b/admin/WebConsole/images/iconos/mover.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/nada.gif b/admin/WebConsole/images/iconos/nada.gif
new file mode 100644
index 00000000..6b3588a9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/nada.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/nic.gif b/admin/WebConsole/images/iconos/nic.gif
new file mode 100644
index 00000000..d64391be
--- /dev/null
+++ b/admin/WebConsole/images/iconos/nic.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ojo.gif b/admin/WebConsole/images/iconos/ojo.gif
new file mode 100644
index 00000000..4fd6d69d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ojo.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ok.gif b/admin/WebConsole/images/iconos/ok.gif
new file mode 100644
index 00000000..ee63cad9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ok.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/oldmenu.gif b/admin/WebConsole/images/iconos/oldmenu.gif
new file mode 100644
index 00000000..a0ed0792
--- /dev/null
+++ b/admin/WebConsole/images/iconos/oldmenu.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/oldmenus.gif b/admin/WebConsole/images/iconos/oldmenus.gif
new file mode 100644
index 00000000..0e7149a9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/oldmenus.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/operadores.gif b/admin/WebConsole/images/iconos/operadores.gif
new file mode 100644
index 00000000..ec47b8f6
--- /dev/null
+++ b/admin/WebConsole/images/iconos/operadores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenador.gif b/admin/WebConsole/images/iconos/ordenador.gif
new file mode 100644
index 00000000..88d440c7
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenador.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadores.gif b/admin/WebConsole/images/iconos/ordenadores.gif
new file mode 100644
index 00000000..df17c711
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadornot.gif b/admin/WebConsole/images/iconos/ordenadornot.gif
new file mode 100644
index 00000000..66566902
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadornot.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadornot_ko.gif b/admin/WebConsole/images/iconos/ordenadornot_ko.gif
new file mode 100644
index 00000000..6306502f
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadornot_ko.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadornot_ok.gif b/admin/WebConsole/images/iconos/ordenadornot_ok.gif
new file mode 100644
index 00000000..ca377670
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadornot_ok.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadoroff.png b/admin/WebConsole/images/iconos/ordenadoroff.png
new file mode 100644
index 00000000..1c17cebb
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadoroff.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ordenadoron.png b/admin/WebConsole/images/iconos/ordenadoron.png
new file mode 100644
index 00000000..27b72f8d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ordenadoron.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/papelera.gif b/admin/WebConsole/images/iconos/papelera.gif
new file mode 100644
index 00000000..6b04c9d9
--- /dev/null
+++ b/admin/WebConsole/images/iconos/papelera.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/particionar.png b/admin/WebConsole/images/iconos/particionar.png
new file mode 100644
index 00000000..f250e3c3
--- /dev/null
+++ b/admin/WebConsole/images/iconos/particionar.png
Binary files differ
diff --git a/admin/WebConsole/images/iconos/pegar.gif b/admin/WebConsole/images/iconos/pegar.gif
new file mode 100644
index 00000000..f95c5004
--- /dev/null
+++ b/admin/WebConsole/images/iconos/pegar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/pegar_off.gif b/admin/WebConsole/images/iconos/pegar_off.gif
new file mode 100644
index 00000000..fd399d92
--- /dev/null
+++ b/admin/WebConsole/images/iconos/pegar_off.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/pendientes.gif b/admin/WebConsole/images/iconos/pendientes.gif
new file mode 100644
index 00000000..0ca83121
--- /dev/null
+++ b/admin/WebConsole/images/iconos/pendientes.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/perfilhardware.gif b/admin/WebConsole/images/iconos/perfilhardware.gif
new file mode 100644
index 00000000..326a2fe7
--- /dev/null
+++ b/admin/WebConsole/images/iconos/perfilhardware.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/perfilsoftware.gif b/admin/WebConsole/images/iconos/perfilsoftware.gif
new file mode 100644
index 00000000..616e622c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/perfilsoftware.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/placabase.gif b/admin/WebConsole/images/iconos/placabase.gif
new file mode 100644
index 00000000..7c09de60
--- /dev/null
+++ b/admin/WebConsole/images/iconos/placabase.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/plantilla.gif b/admin/WebConsole/images/iconos/plantilla.gif
new file mode 100644
index 00000000..fbedbd62
--- /dev/null
+++ b/admin/WebConsole/images/iconos/plantilla.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/pomo.gif b/admin/WebConsole/images/iconos/pomo.gif
new file mode 100644
index 00000000..4aea09f3
--- /dev/null
+++ b/admin/WebConsole/images/iconos/pomo.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/procedimiento.gif b/admin/WebConsole/images/iconos/procedimiento.gif
new file mode 100644
index 00000000..f8e5fa42
--- /dev/null
+++ b/admin/WebConsole/images/iconos/procedimiento.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/propiedad.gif b/admin/WebConsole/images/iconos/propiedad.gif
new file mode 100644
index 00000000..261dab04
--- /dev/null
+++ b/admin/WebConsole/images/iconos/propiedad.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/propiedades.gif b/admin/WebConsole/images/iconos/propiedades.gif
new file mode 100644
index 00000000..00a12c6d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/propiedades.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/purgar.gif b/admin/WebConsole/images/iconos/purgar.gif
new file mode 100644
index 00000000..0e1894e8
--- /dev/null
+++ b/admin/WebConsole/images/iconos/purgar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/ratones.gif b/admin/WebConsole/images/iconos/ratones.gif
new file mode 100644
index 00000000..1164aa44
--- /dev/null
+++ b/admin/WebConsole/images/iconos/ratones.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/reiniciar.gif b/admin/WebConsole/images/iconos/reiniciar.gif
new file mode 100644
index 00000000..584b1921
--- /dev/null
+++ b/admin/WebConsole/images/iconos/reiniciar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/reloj.gif b/admin/WebConsole/images/iconos/reloj.gif
new file mode 100644
index 00000000..83449704
--- /dev/null
+++ b/admin/WebConsole/images/iconos/reloj.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/repositorio.gif b/admin/WebConsole/images/iconos/repositorio.gif
new file mode 100644
index 00000000..2d98303c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/repositorio.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/reservas.gif b/admin/WebConsole/images/iconos/reservas.gif
new file mode 100644
index 00000000..18e847f3
--- /dev/null
+++ b/admin/WebConsole/images/iconos/reservas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/salir_on.gif b/admin/WebConsole/images/iconos/salir_on.gif
new file mode 100644
index 00000000..ebc05b0d
--- /dev/null
+++ b/admin/WebConsole/images/iconos/salir_on.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/salvar.gif b/admin/WebConsole/images/iconos/salvar.gif
new file mode 100644
index 00000000..5e081851
--- /dev/null
+++ b/admin/WebConsole/images/iconos/salvar.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/separitem.gif b/admin/WebConsole/images/iconos/separitem.gif
new file mode 100644
index 00000000..20d05115
--- /dev/null
+++ b/admin/WebConsole/images/iconos/separitem.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/shell.gif b/admin/WebConsole/images/iconos/shell.gif
new file mode 100644
index 00000000..efac932c
--- /dev/null
+++ b/admin/WebConsole/images/iconos/shell.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/so.gif b/admin/WebConsole/images/iconos/so.gif
new file mode 100644
index 00000000..38afbe88
--- /dev/null
+++ b/admin/WebConsole/images/iconos/so.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/softcombi.gif b/admin/WebConsole/images/iconos/softcombi.gif
new file mode 100644
index 00000000..e5528251
--- /dev/null
+++ b/admin/WebConsole/images/iconos/softcombi.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/sonido.gif b/admin/WebConsole/images/iconos/sonido.gif
new file mode 100644
index 00000000..f08c4730
--- /dev/null
+++ b/admin/WebConsole/images/iconos/sonido.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/superadministradores.gif b/admin/WebConsole/images/iconos/superadministradores.gif
new file mode 100644
index 00000000..72446ab0
--- /dev/null
+++ b/admin/WebConsole/images/iconos/superadministradores.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/tablas.gif b/admin/WebConsole/images/iconos/tablas.gif
new file mode 100644
index 00000000..99cf8849
--- /dev/null
+++ b/admin/WebConsole/images/iconos/tablas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/tareas.gif b/admin/WebConsole/images/iconos/tareas.gif
new file mode 100644
index 00000000..45252d09
--- /dev/null
+++ b/admin/WebConsole/images/iconos/tareas.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/trabajos.gif b/admin/WebConsole/images/iconos/trabajos.gif
new file mode 100644
index 00000000..6d89feb6
--- /dev/null
+++ b/admin/WebConsole/images/iconos/trabajos.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/tsonido.gif b/admin/WebConsole/images/iconos/tsonido.gif
new file mode 100644
index 00000000..31426e28
--- /dev/null
+++ b/admin/WebConsole/images/iconos/tsonido.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/universidades.gif b/admin/WebConsole/images/iconos/universidades.gif
new file mode 100644
index 00000000..c3131d82
--- /dev/null
+++ b/admin/WebConsole/images/iconos/universidades.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/us.gif b/admin/WebConsole/images/iconos/us.gif
new file mode 100644
index 00000000..c0c09c2a
--- /dev/null
+++ b/admin/WebConsole/images/iconos/us.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/usb.gif b/admin/WebConsole/images/iconos/usb.gif
new file mode 100644
index 00000000..5917ded6
--- /dev/null
+++ b/admin/WebConsole/images/iconos/usb.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/usuarios.gif b/admin/WebConsole/images/iconos/usuarios.gif
new file mode 100644
index 00000000..0e06bb0a
--- /dev/null
+++ b/admin/WebConsole/images/iconos/usuarios.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/usuarioslog.gif b/admin/WebConsole/images/iconos/usuarioslog.gif
new file mode 100644
index 00000000..ad566da3
--- /dev/null
+++ b/admin/WebConsole/images/iconos/usuarioslog.gif
Binary files differ
diff --git a/admin/WebConsole/images/iconos/vga.gif b/admin/WebConsole/images/iconos/vga.gif
new file mode 100644
index 00000000..7e54815a
--- /dev/null
+++ b/admin/WebConsole/images/iconos/vga.gif
Binary files differ
diff --git a/admin/WebConsole/images/login_eng.jpg b/admin/WebConsole/images/login_eng.jpg
new file mode 100644
index 00000000..e9be8e20
--- /dev/null
+++ b/admin/WebConsole/images/login_eng.jpg
Binary files differ
diff --git a/admin/WebConsole/images/login_esp.jpg b/admin/WebConsole/images/login_esp.jpg
new file mode 100644
index 00000000..e9be8e20
--- /dev/null
+++ b/admin/WebConsole/images/login_esp.jpg
Binary files differ
diff --git a/admin/WebConsole/images/login_operador.png b/admin/WebConsole/images/login_operador.png
new file mode 100644
index 00000000..3a172beb
--- /dev/null
+++ b/admin/WebConsole/images/login_operador.png
Binary files differ
diff --git a/admin/WebConsole/images/logo_us.gif b/admin/WebConsole/images/logo_us.gif
new file mode 100644
index 00000000..6ff92f6e
--- /dev/null
+++ b/admin/WebConsole/images/logo_us.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/eid.gif b/admin/WebConsole/images/menucontextual/eid.gif
new file mode 100644
index 00000000..b9fd75a7
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/eid.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/eii.gif b/admin/WebConsole/images/menucontextual/eii.gif
new file mode 100644
index 00000000..481959ad
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/eii.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/esd.gif b/admin/WebConsole/images/menucontextual/esd.gif
new file mode 100644
index 00000000..19ce2af5
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/esd.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/esi.gif b/admin/WebConsole/images/menucontextual/esi.gif
new file mode 100644
index 00000000..7c745011
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/esi.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/ldr.gif b/admin/WebConsole/images/menucontextual/ldr.gif
new file mode 100644
index 00000000..4b07faa7
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/ldr.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/lin.gif b/admin/WebConsole/images/menucontextual/lin.gif
new file mode 100644
index 00000000..aaf97c0d
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/lin.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/liz.gif b/admin/WebConsole/images/menucontextual/liz.gif
new file mode 100644
index 00000000..9efee429
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/liz.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/menucontextual%252flsu.gif b/admin/WebConsole/images/menucontextual/menucontextual%252flsu.gif
new file mode 100644
index 00000000..7dce209a
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/menucontextual%252flsu.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfb.gif b/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfb.gif
new file mode 100644
index 00000000..e661c874
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfb.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfn.gif b/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfn.gif
new file mode 100644
index 00000000..e53f3175
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/menucontextual%252fswsbfn.gif
Binary files differ
diff --git a/admin/WebConsole/images/menucontextual/sep.gif b/admin/WebConsole/images/menucontextual/sep.gif
new file mode 100644
index 00000000..403af482
--- /dev/null
+++ b/admin/WebConsole/images/menucontextual/sep.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador.gif b/admin/WebConsole/images/ordenador.gif
new file mode 100644
index 00000000..a2966219
--- /dev/null
+++ b/admin/WebConsole/images/ordenador.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_BSY.gif b/admin/WebConsole/images/ordenador_BSY.gif
new file mode 100644
index 00000000..15960797
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_BSY.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_INI.gif b/admin/WebConsole/images/ordenador_INI.gif
new file mode 100644
index 00000000..5d4b6681
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_INI.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_LNX.gif b/admin/WebConsole/images/ordenador_LNX.gif
new file mode 100644
index 00000000..4ddbfc61
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_LNX.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_OFF.gif b/admin/WebConsole/images/ordenador_OFF.gif
new file mode 100644
index 00000000..10dd0234
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_OFF.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_RMB.gif b/admin/WebConsole/images/ordenador_RMB.gif
new file mode 100644
index 00000000..5d9306fc
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_RMB.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_W2K.gif b/admin/WebConsole/images/ordenador_W2K.gif
new file mode 100644
index 00000000..201c424d
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_W2K.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_W95.gif b/admin/WebConsole/images/ordenador_W95.gif
new file mode 100644
index 00000000..892527ba
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_W95.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_W98.gif b/admin/WebConsole/images/ordenador_W98.gif
new file mode 100644
index 00000000..66dccea5
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_W98.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_WML.gif b/admin/WebConsole/images/ordenador_WML.gif
new file mode 100644
index 00000000..eccb6f8c
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_WML.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenador_WXP.gif b/admin/WebConsole/images/ordenador_WXP.gif
new file mode 100644
index 00000000..b7f969d3
--- /dev/null
+++ b/admin/WebConsole/images/ordenador_WXP.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenadorflash.gif b/admin/WebConsole/images/ordenadorflash.gif
new file mode 100644
index 00000000..7c84ff8f
--- /dev/null
+++ b/admin/WebConsole/images/ordenadorflash.gif
Binary files differ
diff --git a/admin/WebConsole/images/ordenadoroff.gif b/admin/WebConsole/images/ordenadoroff.gif
new file mode 100644
index 00000000..99589b2b
--- /dev/null
+++ b/admin/WebConsole/images/ordenadoroff.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/mas_c.gif b/admin/WebConsole/images/signos/mas_c.gif
new file mode 100644
index 00000000..4b7c5ff7
--- /dev/null
+++ b/admin/WebConsole/images/signos/mas_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/mas_l.gif b/admin/WebConsole/images/signos/mas_l.gif
new file mode 100644
index 00000000..234fa3b4
--- /dev/null
+++ b/admin/WebConsole/images/signos/mas_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/mas_root.gif b/admin/WebConsole/images/signos/mas_root.gif
new file mode 100644
index 00000000..0d4c25c5
--- /dev/null
+++ b/admin/WebConsole/images/signos/mas_root.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/mas_t.gif b/admin/WebConsole/images/signos/mas_t.gif
new file mode 100644
index 00000000..6a16f21b
--- /dev/null
+++ b/admin/WebConsole/images/signos/mas_t.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/menos_c.gif b/admin/WebConsole/images/signos/menos_c.gif
new file mode 100644
index 00000000..07c9e53b
--- /dev/null
+++ b/admin/WebConsole/images/signos/menos_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/menos_l.gif b/admin/WebConsole/images/signos/menos_l.gif
new file mode 100644
index 00000000..cb387b78
--- /dev/null
+++ b/admin/WebConsole/images/signos/menos_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/menos_root.gif b/admin/WebConsole/images/signos/menos_root.gif
new file mode 100644
index 00000000..aa5aa96e
--- /dev/null
+++ b/admin/WebConsole/images/signos/menos_root.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/menos_t.gif b/admin/WebConsole/images/signos/menos_t.gif
new file mode 100644
index 00000000..939d36bc
--- /dev/null
+++ b/admin/WebConsole/images/signos/menos_t.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/nada.gif b/admin/WebConsole/images/signos/nada.gif
new file mode 100644
index 00000000..8c2dbf52
--- /dev/null
+++ b/admin/WebConsole/images/signos/nada.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/nada_c.gif b/admin/WebConsole/images/signos/nada_c.gif
new file mode 100644
index 00000000..0f0c35d2
--- /dev/null
+++ b/admin/WebConsole/images/signos/nada_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/nada_l.gif b/admin/WebConsole/images/signos/nada_l.gif
new file mode 100644
index 00000000..5ee20780
--- /dev/null
+++ b/admin/WebConsole/images/signos/nada_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/signos/nada_t.gif b/admin/WebConsole/images/signos/nada_t.gif
new file mode 100644
index 00000000..600e2a31
--- /dev/null
+++ b/admin/WebConsole/images/signos/nada_t.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/Copia de mas_l.gif b/admin/WebConsole/images/tsignos/Copia de mas_l.gif
new file mode 100644
index 00000000..d8809144
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/Copia de mas_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/contra.gif b/admin/WebConsole/images/tsignos/contra.gif
new file mode 100644
index 00000000..d36f9927
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/contra.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/desple.gif b/admin/WebConsole/images/tsignos/desple.gif
new file mode 100644
index 00000000..cd4147d9
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/desple.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/mas_c.gif b/admin/WebConsole/images/tsignos/mas_c.gif
new file mode 100644
index 00000000..d36f9927
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/mas_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/mas_l.gif b/admin/WebConsole/images/tsignos/mas_l.gif
new file mode 100644
index 00000000..d36f9927
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/mas_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/mas_root.gif b/admin/WebConsole/images/tsignos/mas_root.gif
new file mode 100644
index 00000000..d36f9927
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/mas_root.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/mas_t.gif b/admin/WebConsole/images/tsignos/mas_t.gif
new file mode 100644
index 00000000..d36f9927
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/mas_t.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/menos_c.gif b/admin/WebConsole/images/tsignos/menos_c.gif
new file mode 100644
index 00000000..07595785
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/menos_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/menos_l.gif b/admin/WebConsole/images/tsignos/menos_l.gif
new file mode 100644
index 00000000..c558f88e
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/menos_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/menos_root.gif b/admin/WebConsole/images/tsignos/menos_root.gif
new file mode 100644
index 00000000..569c4816
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/menos_root.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/menos_t.gif b/admin/WebConsole/images/tsignos/menos_t.gif
new file mode 100644
index 00000000..cd4147d9
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/menos_t.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/nada.gif b/admin/WebConsole/images/tsignos/nada.gif
new file mode 100644
index 00000000..8c2dbf52
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/nada.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/nada_c.gif b/admin/WebConsole/images/tsignos/nada_c.gif
new file mode 100644
index 00000000..856ac061
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/nada_c.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/nada_l.gif b/admin/WebConsole/images/tsignos/nada_l.gif
new file mode 100644
index 00000000..747b307f
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/nada_l.gif
Binary files differ
diff --git a/admin/WebConsole/images/tsignos/nada_t.gif b/admin/WebConsole/images/tsignos/nada_t.gif
new file mode 100644
index 00000000..30312c63
--- /dev/null
+++ b/admin/WebConsole/images/tsignos/nada_t.gif
Binary files differ
diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php
new file mode 100644
index 00000000..30ee490e
--- /dev/null
+++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php
@@ -0,0 +1,639 @@
+<?php
+/*________________________________________________________________________________________________________
+ La clave de configuración está formada por una serie de valores separados por ";"
+ Ejemplo:1;7;30000000;3;3;0;11
+
+ Parámetros:
+ 1) Número de partición
+ 2) Código de la partición
+ 3) Tamaño
+ 4) Identificador del sistema de ficheros instalado en la partición
+ 5) Identificador del nombre del sistema operativo instalado en la partición
+ 6) Identificador de la imagen restaurada en la partición
+ 7) Identificador del perfil software que contiene el S.O. instalado en la partición
+
+ Además de este campo, la consulta almacena la descripción de los identificadores que forman parte
+ de esta clave compuesta de manera que el tiempo de acceso para recuperlarlos sean corto
+ ya que están en memoria y no en tablas.
+
+ En el ejempo anterior podríamos tener datos
+ 1 NTFS 30000000 Windows NTFS Windows XP profesional NULL Perfil Software (CUR-8, Part:1)
+ Que indica:
+ 1) Número de partición
+ 2) Código de la partición
+ 3) Tamaño
+ 4) Descripción del sistema de ficheros instalado en la partición
+ 5) Descripción del nombre del sistema operativo instalado en la partición
+ 6) Descripción de la imagen restaurada en la partición
+ 7) Descripción del perfil software que contiene el S.O. instalado en la partición
+
+ Estos datos se guardan en la misma tabla de claves que será una matriz asociativa.
+
+ Parámetros de la función:
+ $cmd: Objeto comando (Operativo)
+ $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador)
+ $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores)
+ $sws: Switchs que indican el nivel de agrupamiento de los ordenadores para ser tratados
+ Se trata de un octeto de manera que si tiene un "1" en la posición determinada
+ indica que se requiere desplegar por ese parámetro:
+ 00000001- No agrupar por Sistema de ficheros
+ 00000010- No agrupar por Nombre de sistema Operativo
+ 00000100- No agrupar por Tamaño de partición
+ 00001000- No agrupar por Imagen instalada
+ 00010000- No agrupar por Perfil software contenido
+ $swr: Indica si se se tiene en cuenta las particiones no clonables (si:true o no:false)
+________________________________________________________________________________________________________*/
+function cargaCaves($cmd,$idambito,$ambito,$sws,$swr)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ global $msk_sysFi;
+ global $msk_nombreSO;
+ global $msk_tamano;
+ global $msk_imagen;
+ global $msk_perfil;
+
+ $cmd->texto="SELECT
+ concat_WS( ';',
+ ordenadores_particiones.numpar, ";
+
+ if($sws & $msk_tamano)
+ $cmd->texto.=" ordenadores_particiones.tamano,";
+
+
+ if($sws & $msk_sysFi)
+ $cmd->texto.=" ordenadores_particiones.idsistemafichero, ";
+
+ if($sws & $msk_nombreSO)
+ $cmd->texto.=" ordenadores_particiones.idnombreso, ";
+
+ if($sws & $msk_imagen)
+ $cmd->texto.=" ordenadores_particiones.idimagen, ";
+
+ if($sws & $msk_perfil)
+ $cmd->texto.=" ordenadores_particiones.idperfilsoft, ";
+
+ $cmd->texto.=" ordenadores_particiones.codpar) as configuracion,
+ ordenadores_particiones.numpar ,
+ ordenadores_particiones.codpar ,
+ tipospar.tipopar,
+ tipospar.clonable,
+ ordenadores_particiones.tamano,
+ sistemasficheros.descripcion as sistemafichero,
+ ordenadores_particiones.idnombreso,
+ nombresos.nombreso,
+ imagenes.idimagen,
+ imagenes.descripcion as imagen,
+ imagenes.nombreca as nombreca,
+ imagenes.idrepositorio as repositorio,
+ ordenadores_particiones.idperfilsoft,
+ perfilessoft.descripcion as perfilsoft
+
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ if($swr) // Si se trata de restauración no se tiene en cuenta las partciones no clonables
+ $cmd->texto.=" AND tipospar.clonable=1 ";
+
+ $cmd->texto.=" GROUP by configuracion";
+ //echo "carga claves:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ //echo $cmd->texto;
+ while (!$rs->EOF){
+ $tbKeys[$idx]["cfg"]=$rs->campos["configuracion"];
+ $tbKeys[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbKeys[$idx]["codpar"]=$rs->campos["codpar"];
+ $tbKeys[$idx]["tipopar"]=$rs->campos["tipopar"];
+ $tbKeys[$idx]["clonable"]=$rs->campos["clonable"];
+ $tbKeys[$idx]["tamano"]=$rs->campos["tamano"];
+ $tbKeys[$idx]["sistemafichero"]=$rs->campos["sistemafichero"];
+ $tbKeys[$idx]["idnombreso"]=$rs->campos["idnombreso"];
+ $tbKeys[$idx]["nombreso"]=$rs->campos["nombreso"];
+ $tbKeys[$idx]["idimagen"]=$rs->campos["idimagen"];
+ $tbKeys[$idx]["imagen"]=$rs->campos["imagen"];
+ $tbKeys[$idx]["nombreca"]=$rs->campos["nombreca"];
+ $tbKeys[$idx]["repositorio"]=$rs->campos["repositorio"];
+ $tbKeys[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"];
+ $tbKeys[$idx]["perfilsoft"]=$rs->campos["perfilsoft"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conKeys=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+ Dibuja la tabla de configuración de las particiones de un grupo de ordenadores
+
+ Parámetros de la función:
+ $cmd: Objeto comando (Operativo)
+ $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador)
+ $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores)
+ $sws: Switchs que indican el nivel de agrupamiento (ver comentarios de la función(cargaCaves)
+ $swr: Indica si se se tiene en cuenta las particiones no clonables (true:sólo conables , false:todas)
+
+ Especificaciones:
+ Esta función llama a pintaParticiones() que es realmente la encargada de mostrar o bien la
+ configuración de los ordenadores o la pantalla de los comandos "Configurar" o "RestaurarImagen"
+ para permitir introducir los datos necesarios.
+________________________________________________________________________________________________________*/
+function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr)
+{
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ global $msk_sysFi;
+ global $msk_nombreSO;
+ global $msk_tamano;
+ global $msk_imagen;
+ global $msk_perfil;
+
+ cargaCaves($cmd,$idambito,$ambito,$sws,$swr);
+ cargaSistemasFicheros($cmd,$idambito,$ambito);
+ cargaPerfiles($cmd,$idambito,$ambito);
+ cargaImagenes($cmd,$idambito,$ambito);
+ cargaNombresSO($cmd,$idambito,$ambito);
+ cargaTamano($cmd,$idambito,$ambito);
+
+ $cmd->texto="SELECT
+ count(*) as con,
+ group_concat(cast( temp2.idordenador AS char( 11 ) ) ORDER BY temp2.idordenador SEPARATOR ',' ) AS idordenadores,
+ temp2.configuraciones
+ FROM
+ (SELECT
+ temp1.idordenador as idordenador,
+ group_concat(cast( temp1.configuracion AS char( 250) ) ORDER BY temp1.configuracion SEPARATOR '@' ) AS configuraciones
+ FROM
+ (SELECT ordenadores_particiones.idordenador,
+ ordenadores_particiones.numpar,
+ concat_WS( ';',
+ ordenadores_particiones.numpar, ";
+
+ if($sws & $msk_tamano)
+ $cmd->texto.=" ordenadores_particiones.tamano,";
+
+ if($sws & $msk_sysFi)
+ $cmd->texto.=" ordenadores_particiones.idsistemafichero, ";
+
+ if($sws & $msk_nombreSO)
+ $cmd->texto.=" ordenadores_particiones.idnombreso, ";
+
+ if($sws & $msk_imagen)
+ $cmd->texto.=" ordenadores_particiones.idimagen, ";
+
+ if($sws & $msk_perfil)
+ $cmd->texto.=" ordenadores_particiones.idperfilsoft, ";
+
+ $cmd->texto.=" ordenadores_particiones.codpar) as configuracion
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador=".$idambito;
+ break;
+ }
+ if($swr) // Si se trata de restauración no se tiene en cuenta las particiones no clonables
+ $cmd->texto.=" AND tipospar.clonable=1 ";
+
+ $cmd->texto.=" ORDER BY ordenadores_particiones.idordenador,ordenadores_particiones.numpar) as temp1
+ GROUP BY temp1.idordenador) as temp2
+ GROUP BY temp2.configuraciones
+ ORDER BY con desc,idordenadores";
+
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $cc=0; // Contador de configuraciones
+ echo '<TABLE id="tabla_conf" width="95%" class="tabla_listados_sin" align=center border=0 cellPadding=0 cellSpacing=1>';
+ while (!$rs->EOF){
+ $cc++;
+ //Muestra ordenadores
+ echo '<TR><TD colspan='.$colums.' style="BACKGROUND-COLOR: #FFFFFF;">';
+ echo pintaOrdenadores($cmd,$rs->campos["idordenadores"],10,$cc);
+ echo '</TD></TR>';
+ //Muestra particiones y configuración
+
+ echo pintaParticiones($cmd,$rs->campos["configuraciones"],$rs->campos["idordenadores"],$cc);
+ $rs->Siguiente();
+ }
+ echo "</TABLE>";
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+// Descripción:
+// Muestra una taba html con el icono de ordenadores
+// Parametros:
+// $cmd: Objeto comando (operativo)
+// $idordenadores: Cadena con los identificadores de los ordenadores separados por ","
+// $maxcontor: Número máximo de ordenadores por fila
+// $cc: Identificador del bloque de configuración
+//________________________________________________________________________________________________________
+function pintaOrdenadores($cmd,$idordenadores,$maxcontor,$cc)
+{
+ $tablaHtml.="";
+ $contor=0;
+ $maxcontor=10; // Número máximo de prodenadores por fila
+ $cmd->texto=" SELECT idordenador,nombreordenador,ip FROM ordenadores WHERE idordenador in (".$idordenadores." ) ORDER BY nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $tablaHtml.='<TABLE align=left border="0" id="tbOrd_'.$cc.'" value="'.$idordenadores.'"><TR>';
+ while (!$rs->EOF){
+ $contor++;
+ $tablaHtml.= '<TD align=center style="BACKGROUND-COLOR: #FFFFFF;">
+ <IMG src="../images/iconos/ordenador.gif" >
+ <br><span style="FONT-SIZE:9px; COLOR: #4f4f4f;" >'.$rs->campos["nombreordenador"].'</span>
+ </TD>';
+ if($contor>$maxcontor){
+ $contor=0;
+ $tablaHtml.='</TR><TR>';
+ }
+ $rs->Siguiente();
+ }
+ $tablaHtml.='</TR>';
+ $tablaHtml.= '</TABLE>';
+ return($tablaHtml);
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo sistema de ficheros del ámbito elegido
+________________________________________________________________________________________________________*/
+function cargaSistemasFicheros($cmd,$idambito,$ambito)
+{
+ global $tbSysFi; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSysFi; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idsistemafichero,ordenadores_particiones.numpar,
+ sistemasficheros.descripcion as sistemafichero,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idsistemafichero";
+ //echo "carga sistemas de ficheros:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ //echo $cmd->texto;
+ while (!$rs->EOF){
+ $tbSysFi[$idx]["idsistemafichero"]=$rs->campos["idsistemafichero"];
+ $tbSysFi[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbSysFi[$idx]["sistemafichero"]=$rs->campos["sistemafichero"];
+ $tbSysFi[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conSysFi=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema de ficheros común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaSistemasFicheros($numpar,$ordenadores,$sw=false)
+{
+ global $tbSysFi; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSysFi; // Contador de elementos anteriores
+
+ for($k=0;$k<$conSysFi;$k++){
+ $pos = strpos($tbSysFi[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbSysFi[$k]["numpar"]==$numpar){
+ if($sw) // Retonar identificador
+ return($tbSysFi[$k]["idsistemafichero"]);
+ else
+ return($tbSysFi[$k]["sistemafichero"]);
+ }
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo perfil software en la misma partición
+________________________________________________________________________________________________________*/
+function cargaPerfiles($cmd,$idambito,$ambito)
+{
+ global $tbPerfil; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conPerfil; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idperfilsoft,ordenadores_particiones.numpar,perfilessoft.descripcion as perfilsoft,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idperfilsoft";
+ //echo "carga perfiles:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbPerfil[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"];
+ $tbPerfil[$idx]["perfilsoft"]=$rs->campos["perfilsoft"];
+ $tbPerfil[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbPerfil[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conPerfil=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma perfilsoft común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaPerfiles($numpar,$ordenadores)
+{
+ global $tbPerfil; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conPerfil; // Contador de elementos anteriores
+
+ for($k=0;$k<$conPerfil;$k++){
+ $pos = strpos($tbPerfil[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbPerfil[$k]["numpar"]==$numpar)
+ return($tbPerfil[$k]["perfilsoft"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen la misma imagen en la misma partición
+________________________________________________________________________________________________________*/
+function cargaImagenes($cmd,$idambito,$ambito)
+{
+ global $tbImg; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conImg; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idimagen,ordenadores_particiones.numpar,imagenes.descripcion as imagen,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idimagen";
+ //echo "carga imagenes:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbImg[$idx]["idimagen"]=$rs->campos["idimagen"];
+ $tbImg[$idx]["imagen"]=$rs->campos["imagen"];
+ $tbImg[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbImg[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conImg=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema operativo común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaImagenes($numpar,$ordenadores)
+{
+ global $tbImg; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conImg; // Contador de elementos anteriores
+
+ for($k=0;$k<$conImg;$k++){
+ $pos = strpos($tbImg[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbImg[$k]["numpar"]==$numpar)
+ return($tbImg[$k]["imagen"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo sistema de ficheros en la misma partición
+________________________________________________________________________________________________________*/
+function cargaNombresSO($cmd,$idambito,$ambito)
+{
+ global $tbSO; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSO; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idnombreso,ordenadores_particiones.numpar,nombresos.nombreso,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idnombreso";
+ //echo "carga nombresos:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbSO[$idx]["idnombreso"]=$rs->campos["idnombreso"];
+ $tbSO[$idx]["nombreso"]=$rs->campos["nombreso"];
+ $tbSO[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbSO[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conSO=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema operativo común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaNombresSO($numpar,$ordenadores)
+{
+ global $tbSO; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSO; // Contador de elementos anteriores
+
+ for($k=0;$k<$conSO;$k++){
+ $pos = strpos($tbSO[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbSO[$k]["numpar"]==$numpar)
+ return($tbSO[$k]["nombreso"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo tamaño para la misma partición
+________________________________________________________________________________________________________*/
+function cargaTamano($cmd,$idambito,$ambito)
+{
+ global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conTam; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.tamano,ordenadores_particiones.numpar,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.tamano";
+ //echo "carga tamaños:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbTam[$idx]["tamano"]=$rs->campos["tamano"];
+ $tbTam[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbTam[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conTam=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma tamaño de partición común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaTamano($numpar,$ordenadores)
+{
+ global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conTam; // Contador de elementos anteriores
+
+ for($k=0;$k<$conTam;$k++){
+ $pos = strpos($tbTam[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbTam[$k]["numpar"]==$numpar)
+ return($tbTam[$k]["tamano"]);
+ }
+ }
+}
+
+?>
diff --git a/admin/WebConsole/includes/CreaComando.php b/admin/WebConsole/includes/CreaComando.php
new file mode 100644
index 00000000..06bce0bb
--- /dev/null
+++ b/admin/WebConsole/includes/CreaComando.php
@@ -0,0 +1,24 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: CreaComando.php
+// Descripción :
+// Devuelve una objeto comando totalmente operativo (con la conexión abierta)
+// Parametros:
+// - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor
+// usuario,password,base de datos,etc separados por coma
+// *************************************************************************************************************************************************
+function CreaComando($cadenaconexion){
+ $strcn=split(";",$cadenaconexion);
+ $cn=new Conexion;
+ $cmd=new Comando;
+ $cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]);
+ if (!$cn->Abrir()) return (false);
+ $cn->SetUtf8();
+ $cmd->Conexion=&$cn;
+ return($cmd);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/CreaTablaParametros.php b/admin/WebConsole/includes/CreaTablaParametros.php
new file mode 100644
index 00000000..53757345
--- /dev/null
+++ b/admin/WebConsole/includes/CreaTablaParametros.php
@@ -0,0 +1,50 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: CreaTablaParametros.php
+// Descripción :
+// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando
+// Parametros:
+// - cmd: Un comando ya operativo (con conexión abierta)
+// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones
+// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla
+// *************************************************************************************************************************************************
+function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM parametros";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $cont=0;
+ while (!$rs->EOF){
+ $auxtabla_parametros="";
+ $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"];
+ $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
+ $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
+ $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
+ $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
+ $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"];
+ $tabla_parametros[$cont][1]=$auxtabla_parametros;
+ $cont++;
+ $rs->Siguiente();
+ }
+ $auxnemonico="";
+ // Ordena según el nemonico
+ for ($i=0;$i<$cont-1;$i++){
+ for ($j=$i+1;$j<$cont;$j++){
+ if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){
+ $auxnemonico=$tabla_parametros[$i][0];
+ $tabla_parametros[$i][0]=$tabla_parametros[$j][0];
+ $tabla_parametros[$j][0]=$auxnemonico;
+ $auxtabla_parametros=$tabla_parametros[$i][1];
+ $tabla_parametros[$i][1]=$tabla_parametros[$j][1];
+ $tabla_parametros[$j][1]=$auxtabla_parametros;
+ }
+ }
+ }
+ $cont_parametros=$cont;
+}
+?>
diff --git a/admin/WebConsole/includes/FicherosPost.php b/admin/WebConsole/includes/FicherosPost.php
new file mode 100644
index 00000000..41858981
--- /dev/null
+++ b/admin/WebConsole/includes/FicherosPost.php
@@ -0,0 +1,51 @@
+<?
+//________________________________________________________________________________________
+//
+// Salva un fichero enviado por POST
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFicheroPost: Nombre temporal que le da php al fichero post
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function SalvaFichero_POST($UrlPagina,$NombreFicheroPost,$NombreFichero,$UrlFichero){
+
+ $UrlCarpetaPagina=dirname($UrlPagina);
+ $UrlFichero=$UrlCarpetaPagina."/iconos/".$NombreFichero;
+
+ $PathFisicoFichero=TomaPathFIsico($UrlPagina,$NombreFichero);
+
+ if (file_exists($PathFisicoFichero)) // Borra el fichero si existe
+ unlink($PathFisicoFichero);
+ $resul=move_uploaded_file($NombreFicheroPost,$PathFisicoFichero); // salva el fichero
+ return($resul);
+}
+//________________________________________________________________________________________
+//
+// Elimina un fichero en el servidor
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function EliminaFichero($UrlPagina,$NombreFichero){
+ $PathFisicoFichero=TomaPathFIsico($UrlPagina,$NombreFichero);
+ $resul=false;
+ if (file_exists($PathFisicoFichero)) // Borra el fichero si existe
+ $resul=unlink($PathFisicoFichero);
+ return($resul);
+}
+//________________________________________________________________________________________
+//
+// Toma el path físico de un fichero
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function TomaPathFisico($UrlPagina,$NombreFichero){
+ $Nombrepagina=basename($UrlPagina);
+ $PathFisicoPagina=realpath($Nombrepagina);
+ $PathFisicoCarpetaPagina=dirname($PathFisicoPagina);
+ $PathFisicoCarpetaFichero=$PathFisicoCarpetaPagina."/iconos";
+ $PathFisicoFichero=$PathFisicoCarpetaPagina."/iconos/".$NombreFichero;
+ return($PathFisicoFichero);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLCTEMULSELECT.php b/admin/WebConsole/includes/HTMLCTEMULSELECT.php
new file mode 100644
index 00000000..6c4f479f
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLCTEMULSELECT.php
@@ -0,0 +1,37 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: HTMLCTEMULSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> multiselección, de valores constantes
+// Parametros:
+// - parametros: Una cadena con la forma valor=literal separada por un caracter INTRO
+// - nombreid: Nombre del desplegable (atributo HTML name)
+// - tbvalor: Array con los valores de las opciones que aparecerán seleccionadas
+// - clase: Clase que define su estilo
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - ancho: Anchura del desplegable
+// - alto: Altura del desplegable
+// *************************************************************************************************************************************************
+function HTMLCTEMULSELECT($parametros,$nombreid,$tbvalor,$clase,$eventochg,$ancho,$alto){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $x=0;
+ $opciones=split(chr(13),$parametros);
+ $SelectHtml= '<SELECT '.$eventochg.' class="'.$clase.'" name="'.$nombreid.'" multiple size='.$alto.' style="WIDTH: '.$ancho.'">';
+ for($i=0;$i<sizeof($opciones);$i++){
+ $item=split("=",$opciones[$i]);
+ $SelectHtml.= '<OPTION value="'.$item[0].'"';
+ if (isset($tbvalor[$x])){
+ if($tbvalor[$x]==$item[0]) {
+ $SelectHtml.=" selected ";
+ $x++;
+ }
+ }
+ $SelectHtml.= '>'.$item[1].'</OPTION>';
+ }
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLCTESELECT.php b/admin/WebConsole/includes/HTMLCTESELECT.php
new file mode 100644
index 00000000..bd07d085
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLCTESELECT.php
@@ -0,0 +1,31 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: HTMLCTESELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> de valores constantes
+// Parametros:
+// - parametros:Una cadena con la forma valor=literal separada por un caracter INTRO
+// - nombreid: Nombre del desplegable (atributo HTML name)
+// - clase: Clase que define su estilo
+// - defaultlit: Literal de la primera opción cuyo valor es siempre 0
+// - valorselec: Valor del item que saldrá seleccionado por defecto
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange
+// *************************************************************************************************************************************************
+function HTMLCTESELECT($parametros,$nombreid,$clase,$defaultlit,$valorselec,$ancho,$eventochg=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ $opciones=split(chr(13),$parametros);
+ $SelectHtml= '<SELECT '.$eventochg.' class= "'.$clase.'" id='.$nombreid.' name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ if (!empty($defaultlit)) $SelectHtml.= '<OPTION value="0">'.$defaultlit.'</OPTION>';
+ for($i=0;$i<sizeof($opciones);$i++){
+ $item=split("=",$opciones[$i]);
+ $SelectHtml.= '<OPTION value="'.$item[0].'"';
+ if($valorselec==$item[0]) $SelectHtml.=" selected ";
+ $SelectHtml.= '>'.$item[1].'</OPTION>';
+ }
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLMULSELECT.php b/admin/WebConsole/includes/HTMLMULSELECT.php
new file mode 100644
index 00000000..e6844b03
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLMULSELECT.php
@@ -0,0 +1,52 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: HTMLSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> con valores procedentes de una tabla ( eleccciones multiples)
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Nombre del campo de la tabla que mostrará el desplegable
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - clase: Clase que define su estilo (por defecto: formulariodatos)
+// - clausulawhere: Clausula Where adicional
+// *************************************************************************************************************************************************
+function HTMLMULSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$ancho,$eventochg = "",$clase="",$clausulawhere=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $SelectHtml="";
+ $rs=new Recordset;
+ if ($idcentro>0){
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE idcentro='.$idcentro;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" AND (".$clausulawhere.")";
+ }
+ else{
+ $cmd->texto='SELECT * FROM '.$nombretabla;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" WHERE (".$clausulawhere.")";
+ }
+ $cmd->texto.=' ORDER BY '.$nombreliteral;
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $SelectHtml.= '<SELECT '.$eventochg.' class="'.$clase.'" multiple name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos[$nombreid].'"';
+ If ($rs->campos[$nombreid]==$identificador) $SelectHtml.= ' selected ' ;
+ $SelectHtml.= '>'.$rs->campos[$nombreliteral].'</OPTION>';
+ $rs->Siguiente();
+ }$SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLSELECT.php b/admin/WebConsole/includes/HTMLSELECT.php
new file mode 100644
index 00000000..077e7680
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLSELECT.php
@@ -0,0 +1,52 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: HTMLSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> con valores procedentes de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Nombre del campo de la tabla que mostrará el desplegable
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - 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=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $SelectHtml="";
+ $rs=new Recordset;
+ if ($idcentro>0){
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE idcentro='.$idcentro;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" AND (".$clausulawhere.")";
+ }
+ else{
+ $cmd->texto='SELECT * FROM '.$nombretabla;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" WHERE (".$clausulawhere.")";
+ }
+ $cmd->texto.=' ORDER BY '.$nombreliteral;
+ //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.= ' <OPTION value="0"></OPTION>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos[$nombreid].'"';
+ If ($rs->campos[$nombreid]==$identificador) $SelectHtml.= ' selected ' ;
+ $SelectHtml.= '>'.$rs->campos[$nombreliteral].'</OPTION>';
+ $rs->Siguiente();
+ }$SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/InvFecha.php b/admin/WebConsole/includes/InvFecha.php
new file mode 100644
index 00000000..5bc46c4a
--- /dev/null
+++ b/admin/WebConsole/includes/InvFecha.php
@@ -0,0 +1,37 @@
+<?
+/*______________________________________________________________________
+ Cambia de posicion los extremos de una fecha. Devuelve una fecha con formato
+ dd-mm-aaaa si el formato de entrada es aaaa-mm-dd y viseversa
+ Parametros:
+ - fecha: Una cadena con los datos de una fecha
+_______________________________________________________________________*/
+function InvFecha($fecha){
+ if ($fecha=="0000-00-00")return("");
+
+ $auxsplit=split(" ",$fecha);
+ list($anno_p,$mes_p,$dia_p)=split("[/-]",$auxsplit[0]);
+ $fecha_p=$dia_p.'-'.$mes_p.'-'.$anno_p;
+ return($fecha_p);
+}
+////////////////////////////////////////////////////
+//Convierte fecha de mysql a normal
+////////////////////////////////////////////////////
+function sacafechaDB($fecha){
+ ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $mifecha);
+ $lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
+ return $lafecha;
+}
+
+////////////////////////////////////////////////////
+//Convierte fecha de normal a mysql
+////////////////////////////////////////////////////
+
+function metefechaDB($fecha){
+ ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
+ $lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
+ return $lafecha;
+}
+function HoraValida($hora){
+ if ($hora=="00:00:00")return("");
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/RecopilaIpesMacs.php b/admin/WebConsole/includes/RecopilaIpesMacs.php
new file mode 100644
index 00000000..67bc5145
--- /dev/null
+++ b/admin/WebConsole/includes/RecopilaIpesMacs.php
@@ -0,0 +1,149 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: RecopilaIpesMacs.php
+// Descripción :
+// Recopila las IPes, las Macs y los identificadores de ordenadores de un ámbito determinado
+//
+// Especificaciones:
+// Esta Función recibe tres parámatros:
+// cmd : Un objeto comando totalmente operativo
+// ambito: Ámbito
+// idambito: Identificador del ámbito
+//
+// Devuelve:
+// Todas los identificadores de ordenadores , las ipes y las macs de los ordenadores que componen el ámbito
+// Para ellos habrá que tener declarada tres variables globales :
+// $cadenaid, $cadenaip y $cadenamac
+// *************************************************************************************************************************************************
+function RecopilaIpesMacs($cmd,$ambito,$idambito){
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+
+ $rs=new Recordset;
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $AMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
+ RecorreGruposOrdenadores($cmd);
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idordenador=".$idambito;
+ RecorreOrdenadores($cmd);
+ break;
+ default: // Se trata de un conjunto aleatorio de ordenadores
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idordenador IN (".$idambito.")";
+ RecorreOrdenadores($cmd);
+
+ }
+ $cadenaid=substr($cadenaid,0,strlen($cadenaid)-1); // Quita la coma
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $cadenamac=substr($cadenamac,0,strlen($cadenamac)-1); // Quita la coma
+}
+//________________________________________________________________________________________________________
+function RecorreCentro($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo. " AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo;
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idaula=".$idaula." AND grupoid=0";
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idaula=".$idaula." AND grupoid=0";
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposOrdenadores($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE grupoid=".$idgrupo;
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE grupoid=".$idgrupo;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreOrdenadores($cmd){
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ while (!$rs->EOF){
+ $cadenaid.=$rs->campos["idordenador"].",";
+ $cadenaip.=$rs->campos["ip"].";";
+ $cadenamac.=$rs->campos["mac"].";";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?>
diff --git a/admin/WebConsole/includes/RedireccionaError.php b/admin/WebConsole/includes/RedireccionaError.php
new file mode 100644
index 00000000..92a6cd4c
--- /dev/null
+++ b/admin/WebConsole/includes/RedireccionaError.php
@@ -0,0 +1,13 @@
+<?
+/*______________________________________________________________________
+ Redirecciona a la página de error
+ Parametros:
+ - Literal del error
+_______________________________________________________________________*/
+function RedireccionaError($herror){
+
+ $urlerror=urlencode($herror);
+ $wurl="../seguridad/logerror.php?herror=".$urlerror;
+ Header('Location: '.$wurl);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/TomaDato.php b/admin/WebConsole/includes/TomaDato.php
new file mode 100644
index 00000000..b20278d8
--- /dev/null
+++ b/admin/WebConsole/includes/TomaDato.php
@@ -0,0 +1,41 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: TomaDato.php
+// Descripción :
+// Recupera un dato de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro (cadena separada por comas si hay varios)
+// - nombreid: Nombre del campo identificador del registro (cadena separada por comas si hay varios)
+// - nombreliteral: Nombre del campo que se quiere recuperar
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+// (*) En el caso de haber varios identificadores todos deben ser del mismo tipo ( numérico o alfanumérico)
+//*************************************************************************************************************************************************
+function TomaDato($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$swid=0){
+ $Dato="";
+ if (empty($identificador)) return($Dato);
+
+ if($swid==0) $ch='"'; else $ch=""; // Caracter comillas para campos alfanuméricos
+ $auxidentificador=split(";",$identificador);
+ $auxnombreid=split(";",$nombreid);
+
+ $clausulaWhere=" WHERE ".$auxnombreid[0]."=".$ch.$auxidentificador[0].$ch;
+ for ($i=1;$i<sizeof($auxidentificador);$i++)
+ $clausulaWhere.=" AND ".$auxnombreid[$i]."=".$ch.$auxidentificador[$i].$ch;
+ $cmd->texto="SELECT * FROM ".$nombretabla.$clausulaWhere;
+ if (!empty($idcentro))
+ $cmd->texto.=" AND idcentro=".$idcentro;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ if (!$rs->EOF)
+ $Dato.=$rs->campos[$nombreliteral];
+ $rs->Cerrar();
+ return($Dato);
+}
diff --git a/admin/WebConsole/includes/TomanDatos.php b/admin/WebConsole/includes/TomanDatos.php
new file mode 100644
index 00000000..07c96a3c
--- /dev/null
+++ b/admin/WebConsole/includes/TomanDatos.php
@@ -0,0 +1,36 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// 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: TomanDatos.php
+// Descripción :
+// Recupera datos de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Array asosiativa con los nombres de los campo que se quieren recuperar
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico (valor por defecto)
+// *************************************************************************************************************************************************
+function TomanDatos($cmd,$nombretabla,$identificador,$nombreid,$nombreliterales,$swid=1){
+ $Dato="";
+ if (empty($identificador)) $identificador=0;
+ $rs=new Recordset;
+ if($swid==0)
+ $cmd->texto="SELECT * FROM ".$nombretabla." WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE '.$nombreid.'='.$identificador;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ if (!$rs->EOF){
+ for($x=0;$x<sizeof($nombreliterales);$x++){
+ $Dato[$nombreliterales[$x]]=$rs->campos[$nombreliterales[$x]];
+ }
+ }
+ $rs->Cerrar();
+ return($Dato);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php
new file mode 100644
index 00000000..b3e81e82
--- /dev/null
+++ b/admin/WebConsole/includes/comunes.php
@@ -0,0 +1,378 @@
+<?
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // Parámetros:
+ // - trama: La trama
+ // Devuelve:
+ // Una matriz con las parejas de paramertos "nombre=valor"
+ //________________________________________________________________________________________
+ function extrae_parametros($parametros,$chsep,$chval){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ $streval='$ParametrosCadena["'.$dualparam[0].'"]="'.$dualparam[1].'";';
+ eval($streval);
+ }
+ }
+ return($ParametrosCadena);
+ }
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // y devolviendo el elegido
+ // Parámetros:
+ // Devuelve:
+ //________________________________________________________________________________________
+ function extrae_parametro($parametros,$chsep,$chval,$chr){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ if($dualparam[0]==$chr)
+ return($dualparam[1]);
+ }
+ }
+ return("");
+ }
+ //________________________________________________________________________________________
+ //
+ // Busca una cadena dentro de otra.
+ // Especificaciones:
+ // Puede ser sensible a las mayúsculas
+ // Parametros:
+ // cadena; cadena donde se va a buscar
+ // subcadena; cadena a buscar
+ // swsensible; si es sensible o no a las mayúsculas y minúsculas
+ // Devuelve:
+ // La posición de comienzo de la subcadena dentro de la cadena, o (-1) en caso de no estar dentro
+ //________________________________________________________________________________________
+ function EnCadena($cadena,$subcadena,$swsensible = false) {
+ $i=0;
+ while (strlen($cadena)>=$i) {
+ unset($substring);
+ if ($swsensible) {
+ $subcadena=strtolower($subcadena);
+ $cadena=strtolower($cadena);
+ }
+ $substring=substr($cadena,$i,strlen($subcadena));
+ if ($substring==$subcadena) return$i;
+ $i++;
+ }
+ return -1;
+ }
+ //_____________________________________________________________________________________________
+ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de una dimension
+ //_____________________________________________________________________________________________
+ function busca_indicebinario($dato,$tabla,$cont){
+ if (empty($tabla)) return(-1);
+ $a=0;
+ $b=$cont-1;
+ do{
+ $p=round(($a+$b)/2,0);
+ if ($tabla[$p]==$dato)
+ return($p);
+
+ else{
+ if ($tabla[$p]<$dato){
+ $a=$p+1;
+ }
+ else
+ $b=$p-1;
+ }
+ }while($b>=$a);
+ return(-1);
+ }
+ //_____________________________________________________________________________________________
+ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de dos dimensiones
+ //_____________________________________________________________________________________________
+ function busca_indicebinariodual($dato,$tabla,$cont){
+ $a=0;
+ $b=$cont-1;
+ do{
+ $p=round(($a+$b)/2,0);
+ if ($tabla[$p][0]==$dato)
+ return($p);
+
+ else{
+ if ($tabla[$p][0]<$dato){
+ $a=$p+1;
+ }
+ else
+ $b=$p-1;
+ }
+ }while($b>=$a);
+ return(-1);
+ }
+ //___________________________________________________________________________________
+ //
+ // Crea un Array con las especificaciones de los parámetros de los comandos
+ //___________________________________________________________________________________
+ function CreaTablaParametros($cmd)
+ {
+ $cmd->texto="SELECT * FROM parametros ORDER BY nemonico";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $cont=0;
+ while (!$rs->EOF){
+ $nemo=$rs->campos["nemonico"];
+ $auxtabla_parametros="";
+ $auxtabla_parametros["nemonico"]=$nemo;
+ $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
+ $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
+ $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
+ $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
+ $auxtabla_parametros["tipopa"]=$rs->campos["tipopa"];
+ $auxtabla_parametros["visual"]=$rs->campos["visual"];
+ $tabla_parametros[$nemo]=$auxtabla_parametros;
+ $cont++;
+ $rs->Siguiente();
+ }
+ return($tabla_parametros);
+ }
+ //___________________________________________________________________________________
+ //
+ // Crea una tabla en memoria con los valores reales de los parámetros enviados
+ //
+ // Parámetros:
+ // $cmd: Objeto comando (Operativo)
+ // $parámetros: El formato de parámetros que viaje en las trama y que es el mismo
+ // que se almacenan en las tablas de procedimientos_acciones o acciones
+ //___________________________________________________________________________________
+
+ function ParametrosValor($cmd,$parametros,$tbParametrosValor,$ch="\r")
+ {
+ global $tbParametros;
+ $html="";
+ $auxprm=split($ch,$parametros);
+ for($i=0;$i<sizeof($auxprm);$i++){
+ list($nemonico,$valor)=split("=",$auxprm[$i]);
+ if(isset($tbParametros[$nemonico])){
+ if($tbParametros[$nemonico]["visual"]==1){
+ $tbParametrosValor[$nemonico]["descripcion"]=$tbParametros[$nemonico]["descripcion"];
+ switch($tbParametros[$nemonico]["tipopa"]){
+ case 0: // El valor lo toma directamente
+ $tbParametrosValor[$nemonico]["valor"]=$valor;
+ break;
+ case 1: // El valor lo toma de una tabla */
+ $tbParametrosValor[$nemonico]["valor"]=TomaDato($cmd,0,$tbParametros[$nemonico]["nomtabla"],$valor,$tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ break;
+ case 2: // El parámetro es compuesto de otros parametros
+ $blkprm=split(chr(10),substr($auxprm[$i],4));
+ for($j=0;$j<sizeof($blkprm);$j++){
+ $tbSubParametrosValor=array();
+ ParametrosValor($cmd,$blkprm[$j],&$tbSubParametrosValor,chr(9));
+ for($k=0;$k<sizeof($tbSubParametrosValor);$k++){
+ $elem=current($tbSubParametrosValor);
+ $tbParametrosValor[$nemonico][$j]["valor"].=$elem["descripcion"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=": ".$elem["valor"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=", ";
+ next($tbSubParametrosValor);
+ }
+ }
+ break;
+ case 3: // El valor lo toma de una array
+ $tbcte=split($tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ $tbParametrosValor[$nemonico]["valor"]=$tbcte[$valor];
+ break;
+ case 4: // El valor lo toma directamente pero está codificado con urlencode
+ $tbParametrosValor[$nemonico]["valor"]='<PRE>'.urldecode($valor).'</PRE>';
+
+ }
+ }
+ }
+ }
+ }
+ /*______________________________________________________________________
+ Redirecciona a la página de error
+ Parametros:
+ - Literal del error
+ _______________________________________________________________________*/
+ function RedireccionaError($herror){
+
+ $urlerror=urldecode($herror);
+ $wurl="../seguridad/logerror.php?herror=".$urlerror;
+ Header('Location: '.$wurl);
+ }
+
+ /*______________________________________________________________________
+ Elimina de la cadena de parametros, el parametro iph ( que debe ser el ultimo)
+ Parametros:
+ - cadena de parametros de un comando
+ Devuelve:
+ - la cadena sin el parametro iph y su valor
+ _______________________________________________________________________*/
+ function Sin_iph($cadena){
+
+ $pos=EnCadena($cadena,"iph=") ;
+ if($pos==-1) return($cadena);
+ return(substr($cadena,0,$pos));
+ }
+ /*______________________________________________________________________
+ Elimina de la cadena de parametros, el parametro mac ( que debe ser el ultimo)
+ Parametros:
+ - cadena de parametros de un comando
+ Devuelve:
+ - la cadena sin el parametro iph y su valor
+ _______________________________________________________________________*/
+ function Sin_mac($cadena){
+
+ $pos=EnCadena($cadena,"mac=") ;
+ if($pos==-1) return($cadena);
+ return(substr($cadena,0,$pos));
+ }
+ /*______________________________________________________________________
+ Formatea un campo númerico con los puntos de las unidades de millar
+ Parametros:
+ - cadena con el valor del campo
+ Devuelve:
+ - la cadena con los puntos de los miles
+ ________________________________________________________________________*/
+ function formatomiles($cadena){
+ $len=strlen($cadena);
+ $cadenafinal="";
+ $m=1;
+ for($i=$len-1;$i>=0;$i--){
+ $cadenafinal=substr($cadena,$i,1).$cadenafinal;
+ if($m%3==0 && $i>0){
+ $cadenafinal=".".$cadenafinal;
+ $m=0;
+ }
+ $m++;
+ }
+ return($cadenafinal);
+ }
+ /*______________________________________________________________________
+ 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
+ - textambito: Por referencia. Es donde se devuelve la descripción
+
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+ function tomaAmbito($ambito,$urlimg,$textambito)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito="Centros";
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Grupos de aulas";
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito="Aulas";
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Grupos de ordenadores";
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Ordenadores";
+ break;
+ default:
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Ordenadores";
+ break;
+ }
+ }
+ /*______________________________________________________________________
+
+ Devuelve la descripción de un ambito
+ Parametros:
+ - cmd: Objeto comando (Operativo)
+ - ambito: tipo de ambito
+ - idambito: Identificador del ambito
+ - textambito: Por referencia. Es donde se devuelve la descripción
+
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+
+ function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ 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;
+ }
+ }
+ /*______________________________________________________________________
+
+ Devuelve el código html de una etiqueta SELECT para un ámbito concreto
+ Parametros:
+ - cmd: Objeto comando (Operativo)
+ - ambito: tipo de ambito
+ - idambito: Identificador del ambito
+ - $idcentro: Centro donde pertenecen o 0 para todos
+ - $wdth: Ancho del desplegable
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+
+ function tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,$wdth)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $selecHtml=HTMLSELECT($cmd,1,'centros',$idcentro,'idcentro','nombrecentro',$wdth);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $selecHtml=HTMLSELECT($cmd,$idcentro,'grupos',$idambito,'idgrupo','nombregrupo',$wdth,"","","tipo=".$AMBITO_GRUPOSAULAS);
+ break;
+ case $AMBITO_AULAS :
+ $selecHtml=HTMLSELECT($cmd,$idcentro,'aulas',$idambito,'idaula','nombreaula',$wdth);
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $selecHtml=HTMLSELECT($cmd,0,'gruposordenadores',$idambito,'idgrupo ','nombregrupoordenador',$wdth);
+ break;
+ case $AMBITO_ORDENADORES :
+ $clsWhere=" idaula IN (SELECT idaula FROM aulas WHERE idcentro=".$idcentro.")";
+ $selecHtml=HTMLSELECT($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador',$wdth,"","",$clsWhere);
+ break;
+ default:
+ $selecHtml="";
+ }
+ return($selecHtml);
+ } \ No newline at end of file
diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php
new file mode 100644
index 00000000..b069cd1b
--- /dev/null
+++ b/admin/WebConsole/includes/constantes.php
@@ -0,0 +1,172 @@
+<?php
+
+// Código de los ambitos para comandos
+$AMBITO_CENTROS=0x01;
+$AMBITO_GRUPOSAULAS=0x02;
+$AMBITO_AULAS=0x04;
+$AMBITO_GRUPOSORDENADORES=0x08;
+$AMBITO_ORDENADORES=0x10;
+
+
+// Código del resto de �bitos
+$AMBITO_IMAGENES=0x20;
+$AMBITO_PROCEDIMIENTOS=0x21;
+$AMBITO_TAREAS=0x22;
+$AMBITO_COMANDOS=0x23;
+
+$AMBITO_COMPONENTESHARD=0x24;
+$AMBITO_COMPONENTESSOFT=0x25;
+$AMBITO_PERFILESHARD=0x26;
+$AMBITO_PERFILESSOFT=0x27;
+$AMBITO_MENUS=0x28;
+$AMBITO_REPOSITORIOS=0x29;
+$AMBITO_RESERVAS=0x32;
+
+// 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;
+$AMBITO_GRUPOSPERFILESSOFT=0x39;
+$AMBITO_GRUPOSMENUS=0x40;
+$AMBITO_GRUPOSREPOSITORIOS=0x41;
+$AMBITO_GRUPOSRESERVAS=0x44;
+$AMBITO_GRUPOSENTIDADES=0x45;
+
+// Literales de los ambitos
+$LITAMBITO_CENTROS="centros";
+$LITAMBITO_AULAS="aulas";
+$LITAMBITO_ORDENADORES="ordenadores";
+$LITAMBITO_IMAGENES="imagenes";
+$LITAMBITO_PROCEDIMIENTOS="procedimientos";
+$LITAMBITO_TAREAS="tareas";
+
+$LITAMBITO_TIPOHARDWARES="tipohardwares";
+$LITAMBITO_COMPONENTESHARD="componeneteshard";
+$LITAMBITO_COMPONENTESSOFT="componenetessoft";
+$LITAMBITO_PERFILESHARD="perfileshard";
+$LITAMBITO_PERFILESSOFT="perfilessoft";
+$LITAMBITO_MENUS="menus";
+$LITAMBITO_REPOSITORIOS="repositorios";
+
+
+$LITAMBITO_RESERVAS="reservas";
+$LITAMBITO_ADMINISTRACION="administracion";
+$LITAMBITO_UNIVERSIDADES="universidades";
+$LITAMBITO_ENTIDADES="entidades";
+$LITAMBITO_USUARIOS="usuarios";
+// Literales de los ambitos ( Grupos )
+$LITAMBITO_GRUPOSAULAS="gruposaulas";
+$LITAMBITO_GRUPOSORDENADORES="gruposordenadores";
+$LITAMBITO_GRUPOSIMAGENES="gruposimagenes";
+$LITAMBITO_GRUPOSPROCEDIMIENTOS="gruposprocedimientos";
+$LITAMBITO_GRUPOSTAREAS="grupostareas";
+
+$LITAMBITO_GRUPOSCOMPONENTESHARD="gruposcomponenteshard";
+$LITAMBITO_GRUPOSCOMPONENTESSOFT="gruposcomponentessoft";
+$LITAMBITO_GRUPOSPERFILESHARD="gruposperfileshard";
+$LITAMBITO_GRUPOSPERFILESSOFT="gruposperfilessoft";
+$LITAMBITO_GRUPOSMENUS="gruposmenus";
+$LITAMBITO_GRUPOSREPOSITORIOS="gruporepositorio";
+$LITAMBITO_GRUPOSRESERVAS="gruposreservas";
+$LITAMBITO_GRUPOSENTIDADES="gruposentidades";
+
+// Código de los tipo de acciones
+
+$EJECUCION_COMANDO=0x0001;
+$EJECUCION_PROCEDIMIENTO=0x0002;
+$EJECUCION_TAREA=0x0003;
+$EJECUCION_RESERVA=0x0004;
+$EJECUCION_AUTOEXEC=0x0005;
+
+// Código de los tipo de notificadores
+$NOTIFICADOR_ORDENADOR=0x0001;
+$NOTIFICADOR_COMANDO=0x0002;
+$NOTIFICADOR_TAREA=0x0003;
+
+// Categorias de sucesos
+$PROCESOS=0x01;
+$INFORMACIONES=0x02;
+$NOTIFICACIONES=0x03;
+
+// Código de los tipos de mensajes
+$MSG_COMANDO=0x01; // Mensaje del tipo comando
+$MSG_NOTIFICACION=0x02; // Respuesta a la ejecución un comando
+$MSG_PETICION=0x03; // Petición de cualquier actuación
+$MSG_RESPUESTA=0x04; // Respuesta a una petición
+$MSG_INFORMACION=0x05; // Envío de cualquier información sin espera de confirmación o respuesta
+
+
+$RESPUESTA_EJECUCION_COMANDO=0x0001;
+$RESPUESTA_EJECUCION_TAREA=0x0002;
+$RESPUESTA_EJECUCION_TRABAJO=0x0003;
+$RESPUESTA_EJECUCION_PETICION=0x0004;
+
+// Código de los tipos de items de los mens de clientes
+$ITEM_PUBLICO=0x0001;
+$ITEM_PRIVADO=0x0002;
+
+//Codificaci� de los resultados de las acciones
+
+$ACCION_SINRESULTADO=0; // Sin resultado
+$ACCION_EXITOSA=1; // Finalizada con éxito
+$ACCION_FALLIDA=2; // Finalizada con errores
+$LITACCION_FALLIDA="Acción CANCELADA manualmente";
+$LITACCION_EXITOSA="Acción TERMINADA manualmente";
+
+//Codificaci� de los estados de las acciones
+
+$ACCION_INICIADA=1; // Acci� activa
+$ACCION_DETENIDA=2; // Acci� momentanemente parada
+$ACCION_FINALIZADA=3; // Acci� finalizada
+$ACCION_PROGRAMADA=4; // Acción programada
+
+// Nombrey path del fichero de intercambio de parametros entre páginas
+// Ha sido necesario porque cuando los parametros enviados execed�n de cierta longitud
+// ocurria una excepci� al llamar a la p�ina por GET.
+
+$fileparam="../includes/PRM_".$usuario;
+$pathfileco="/opt/opengnsys/log/clients"; // Path del fichero de eco de consola
+
+// M�ima longitud de los parametros enviados entre páginas
+$MAXLONPRM=16000;
+$MAXLONVISUSCRIPT =1024; // longitud Maxima de visualizaci� del script en las colas de acciones
+$MAXSIZEFILERBC=100000; // longitud Maxima de los fichero de script enviados como comandos ejecuci� de script
+
+$LONHEXPRM=5; // Longitud de la cadena hexdecimal que contiene la longitud total de la trama
+$LONCABECERA=16; // Longitud de la cabecera de las tramas
+$LONBLK=512; // Longitud de los paquetes de tramas leidos cada vez
+
+$tbTiposParticiones="";
+$tbTiposParticiones[0]="EMPTY";
+$tbTiposParticiones[1]="BIGDOS";
+$tbTiposParticiones[2]="FAT32";
+$tbTiposParticiones[3]="NTFS";
+$tbTiposParticiones[4]="EXT2";
+$tbTiposParticiones[5]="EXT3";
+$tbTiposParticiones[6]="EXT4";
+$tbTiposParticiones[7]="LINUX-SWAP";
+$tbTiposParticiones[8]="CACHE";
+$tbTiposParticiones[9]="VFAT";
+$tbTiposParticiones[10]="UNKNOW";
+
+
+//Codificaci� de los estados de las reservas
+$RESERVA_CONFIRMADA=1; // Reserva confirmada
+$RESERVA_PENDIENTE=2; // Reserva pendiente
+$RESERVA_DENEGADA=3; // Reserva denegada
+
+$SUPERADMINISTRADOR=1; // administrador de la Aplicación
+$ADMINISTRADOR=2; // administrador de Centro
+$OPERADOR=3; // operador de aula
+
+$msk_sysFi=0x01;
+$msk_nombreSO=0x02;
+$msk_tamano=0x04;
+$msk_imagen=0x08;
+$msk_perfil=0x10;
+
+?>
diff --git a/admin/WebConsole/includes/ctrlacc.php b/admin/WebConsole/includes/ctrlacc.php
new file mode 100644
index 00000000..cf3c830c
--- /dev/null
+++ b/admin/WebConsole/includes/ctrlacc.php
@@ -0,0 +1,48 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero implementa el control de acceso a la Aplicación en todas las páginas
+// *************************************************************************************************************************************************
+session_start(); // Activa variables de sesi�
+$idcentro="";
+$nombrecentro="";
+$usuario="";
+$idtipousuario=0;
+$idioma="";
+$cadenaconexion="";
+$servidorhidra="";
+$hidraport="";
+$pagerror="";
+$urlacceso="";
+
+if (isset($_SESSION["widcentro"])) $idcentro = $_SESSION["widcentro"];
+if (isset($_SESSION["wnombrecentro"])) $nombrecentro = $_SESSION["wnombrecentro"];
+if (isset($_SESSION["wusuario"])) $usuario = $_SESSION["wusuario"];
+if (isset($_SESSION["widtipousuario"])) $idtipousuario = $_SESSION["widtipousuario"];
+if (isset($_SESSION["widioma"])) $idioma = $_SESSION["widioma"];
+if (isset($_SESSION["wcadenaconexion"])) $cadenaconexion = $_SESSION["wcadenaconexion"];
+if (isset($_SESSION["wservidorhidra"])) $servidorhidra = $_SESSION["wservidorhidra"];
+if (isset($_SESSION["whidraport"])) $hidraport = $_SESSION["whidraport"];
+if (isset($_SESSION["wpagerror"])) $pagerror = $_SESSION["wpagerror"];
+if (isset($_SESSION["wurlacceso"])) $urlacceso = $_SESSION["wurlacceso"];
+/*
+echo "<BR>Cadena=".$_SESSION["wcadenaconexion"];
+echo "<BR>servidorhidra=".$_SESSION["wservidorhidra"];
+echo "<BR>hidraport=".$_SESSION["whidraport"];
+echo "<BR>usuario=".$_SESSION["wusuario"];
+echo "<BR>idtipousuario=".$_SESSION["widtipousuario"];
+echo "<BR>urlacceso=".$_SESSION["wurlacceso"];
+*/
+// Comprueba el valor de las variables de sesión
+$swacc=empty($cadenaconexion) || empty($servidorhidra) || empty($hidraport) || empty($usuario) || empty($idtipousuario);
+
+//===============================================================================================
+if ($swacc){ // Error en alguna variable de sesión
+ die("***Error de acceso");
+}
+//===============================================================================================
+?>
diff --git a/admin/WebConsole/includes/cuestionacciones.php b/admin/WebConsole/includes/cuestionacciones.php
new file mode 100644
index 00000000..5cb87b8c
--- /dev/null
+++ b/admin/WebConsole/includes/cuestionacciones.php
@@ -0,0 +1,79 @@
+<?
+/* -------------------------------------------------------------------------------------------
+ Inserta, modifica o elimina un grupo de servidores dhcp de la base de datos
+---------------------------------------------------------------------------------------------*/
+function CuestionAcciones($cmd,$shidra,$parametros){
+
+ global $sw_ejya;
+ global $sw_seguimiento;
+
+ global $sw_mktarea;
+ global $nwidtarea;
+ global $nwdescritarea;
+
+ global $sw_mkprocedimiento;
+ global $nwidprocedimiento;
+ global $nwdescriprocedimiento;
+
+ global $identificador;
+
+ if($sw_ejya=='true' ){ // switch de ejecución inmediata ----------------------------------------------------------------------
+ if($sw_seguimiento=='true' ){ // switch de ejecución con seguimiento
+ $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@fechahorareg,@estado,@resultado,@idcentro,@parametros,0,0)";
+ $resul=$cmd->Ejecutar();
+ if($resul){
+ $parametros.="ids=".$cmd->Autonumerico().chr(13);
+ }
+ }
+ // Envio al servidor hidra
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($parametros);
+ $shidra->desconectar();
+ }
+ else
+ return(false);
+ }
+ // Fin ejecución inmediata -------------------------------------------------------------------------------------------------------------
+
+ if($sw_mkprocedimiento=='true'){ // switch de creación o inclusión en procedimiento ---------------------------------------------------------
+ if($nwidprocedimiento==0){
+ $cmd->ParamSetValor("@descripcion",$nwdescriprocedimiento,0);
+ $cmd->texto="INSERT INTO procedimientos(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $nwidprocedimiento=$cmd->Autonumerico();
+ else
+ return(false);
+ }
+ if($nwidprocedimiento>0){ // inclusión en procedimiento existente
+ $cmd->ParamSetValor("@idprocedimiento",$nwidprocedimiento,1);
+ $cmd->ParamSetValor("@idcomando",$identificador,1);
+ $cmd->ParamSetValor("@parametros",Sin_iph($parametros),0);
+ $cmd->texto="INSERT INTO procedimientos_comandos(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,0,@idcomando,@parametros)";
+ $resul=$cmd->Ejecutar();
+ $cmd->ParamSetValor("@parametros",$parametros);
+ if(!$resul) return(false);
+ }
+ }
+
+ if($sw_mktarea=='true'){ // switch de creación o inclusión en tarea -----------------------------------------------------------
+ if($nwidtarea==0){ // Nueva tarea
+ $cmd->ParamSetValor("@descripcion",$nwdescritarea);
+ $cmd->texto="INSERT INTO tareas(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $nwidtarea=$cmd->Autonumerico();
+ else
+ return(false);
+ }
+ if($nwidtarea>0){ // inclusión en tarea existente
+ $cmd->ParamSetValor("@idtarea",$nwidtarea);
+ $cmd->ParamSetValor("@idcomando",$identificador);
+ $cmd->texto="INSERT INTO tareas_comandos(idtarea,orden,idcomando,ambito,idambito,parametros) VALUES (@idtarea,0,@idcomando,@ambito,@idambito,@parametros)";
+ $resul=$cmd->Ejecutar();
+ if(!$resul) return(false);
+ }
+ }
+ return(true);
+}
+ ?>
diff --git a/admin/WebConsole/includes/cuestionaccionescab.php b/admin/WebConsole/includes/cuestionaccionescab.php
new file mode 100644
index 00000000..e9523eba
--- /dev/null
+++ b/admin/WebConsole/includes/cuestionaccionescab.php
@@ -0,0 +1,23 @@
+<?
+$sw_ejya="";
+$sw_seguimiento="";
+
+$sw_mktarea="";
+$nwidtarea="";
+$nwdescritarea="";
+
+$sw_mkprocedimiento="";
+$nwidprocedimiento="";
+$nwdescriprocedimiento="";
+
+if (isset($_POST["sw_ejya"])) $sw_ejya=$_POST["sw_ejya"];
+if (isset($_POST["sw_seguimiento"])) $sw_seguimiento=$_POST["sw_seguimiento"];
+
+if (isset($_POST["sw_mktarea"])) $sw_mktarea=$_POST["sw_mktarea"];
+if (isset($_POST["nwidtarea"])) $nwidtarea=$_POST["nwidtarea"];
+if (isset($_POST["nwdescritarea"])) $nwdescritarea=$_POST["nwdescritarea"];
+
+if (isset($_POST["sw_mkprocedimiento"])) $sw_mkprocedimiento=$_POST["sw_mkprocedimiento"];
+if (isset($_POST["nwidprocedimiento"])) $nwidprocedimiento=$_POST["nwidprocedimiento"];
+if (isset($_POST["nwdescriprocedimiento"])) $nwdescriprocedimiento=$_POST["nwdescriprocedimiento"];
+?>
diff --git a/admin/WebConsole/includes/opciones.php b/admin/WebConsole/includes/opciones.php
new file mode 100644
index 00000000..fe1740f3
--- /dev/null
+++ b/admin/WebConsole/includes/opciones.php
@@ -0,0 +1,16 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación:Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: opciones.php
+// Descripción :
+// Variables de ámbito común
+// *************************************************************************************************************************************************
+$op_alta=1;
+$op_modificacion=2;
+$op_eliminacion=3;
+$op_movida=4;
+$op_ejecucion=5;
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/opcionesbotones.php b/admin/WebConsole/includes/opcionesbotones.php
new file mode 100644
index 00000000..0fabefa4
--- /dev/null
+++ b/admin/WebConsole/includes/opcionesbotones.php
@@ -0,0 +1,7 @@
+<TABLE align=center>
+ <TR>
+ <TD><A href=#><IMG border=0 src="../images/boton_cancelar.gif" onclick="javascript:cancelar()"></A></TD>
+ <TD width=20></TD>
+ <TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="javascript:confirmar()" ></A></TD>
+ </TR>
+</TABLE>
diff --git a/admin/WebConsole/includes/opcionesbotonesop.php b/admin/WebConsole/includes/opcionesbotonesop.php
new file mode 100644
index 00000000..d86755d7
--- /dev/null
+++ b/admin/WebConsole/includes/opcionesbotonesop.php
@@ -0,0 +1,9 @@
+<?
+echo '<TABLE align=center>';
+echo '<TR>';
+echo '<TD><A href=#><IMG border=0 src="../images/boton_cancelar.gif" onclick="cancelar()"></A></TD>';
+echo '<TD width=20></TD>';
+echo '<TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="confirmar('.$opcion.')" ></A></TD>';
+echo '</TR>';
+echo '</TABLE>';
+?>
diff --git a/admin/WebConsole/jscripts/acciones.js b/admin/WebConsole/jscripts/acciones.js
new file mode 100644
index 00000000..df1aae50
--- /dev/null
+++ b/admin/WebConsole/jscripts/acciones.js
@@ -0,0 +1,111 @@
+// *************************************************************************************************************************************************
+// 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: acciones.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero acciones.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+//
+// Ejecuta una tarea
+//________________________________________________________________________________________________________
+
+function ejecutar_tareas(op)
+{
+
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var resul=window.confirm(TbMsg[0]);
+ if (!resul) return
+ var idtarea=currentNodo.toma_identificador() // identificador del ambito
+ var tarea=currentNodo.toma_infonodo() // Nombre de la tarea
+
+ /* LLamada a la gestión */
+ var wurl="../gestores/gestor_ejecutaracciones.php";
+ var prm="opcion="+op+"&idtarea="+idtarea+"&descritarea="+tarea;
+
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+
+function retornoGestion(resul)
+{
+ //alert(resul)
+ if(resul.length>0)
+ eval(resul);
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de ejecutar una tarea
+// Parámetros:
+// - resul: resultado de la operación( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+//________________________________________________________________________________________________________
+
+function resultado_ejecutar_tareas(resul,descrierror)
+{
+ if (!resul){ // Ha habido algún error en la ejecución
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[2])
+}
+//________________________________________________________________________________________________________
+//
+// Muestra formulario de programaciones para tareas y trabajos
+//________________________________________________________________________________________________________
+
+function programacion(tipoaccion)
+{
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcion=currentNodo.toma_infonodo()
+ switch(tipoaccion){
+ case EJECUCION_COMANDO:
+ var whref="../varios/programaciones.php?idcomando="+identificador+"&descripcioncomando="+descripcion+"&tipoaccion="+EJECUCION_COMANDO
+ break;
+ case EJECUCION_TAREA:
+ var whref="../varios/programaciones.php?idtarea="+identificador+"&descripciontarea="+descripcion+"&tipoaccion="+EJECUCION_TAREA
+ break; alert(whref);
+ }
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra información de procedimientos y tareas
+//________________________________________________________________________________________________________
+
+function informacion_acciones(tipo)
+{
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionaccion=currentNodo.toma_infonodo()
+ var whref="../varios/informacion_acciones.php?idtipoaccion="+identificador+"&descripcionaccion="+descripcionaccion+"&tipoaccion="+tipo
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra el formulario de Menús disponibles para gestionar la inclusión de procedimientos, tareas o trabajos en ellos
+//________________________________________________________________________________________________________
+
+function insertar_accionmenu(tipo)
+{
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionaccion=currentNodo.toma_infonodo()
+ var whref="../varios/accionmenu.php?idtipoaccion="+identificador+"&descripcionaccion="+descripcionaccion+"&tipoaccion="+tipo
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+
+function inclusion_acciones(tipo)
+{
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionaccion=currentNodo.toma_infonodo()
+ var ambito=currentNodo.toma_atributoNodo("value");
+ var whref="../varios/inclusionacciones.php";
+ whref+="?idtipoaccion="+identificador+"&descripcionaccion="+descripcionaccion+"&tipoaccion="+tipo+"&ambito="+ambito;
+ window.open(whref,"frame_contenidos")
+}
diff --git a/admin/WebConsole/jscripts/accionmenu.js b/admin/WebConsole/jscripts/accionmenu.js
new file mode 100644
index 00000000..8cef7d9c
--- /dev/null
+++ b/admin/WebConsole/jscripts/accionmenu.js
@@ -0,0 +1,121 @@
+// *************************************************************************************************************************************************
+// 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: accionmenu.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero accionmenu.php
+// *************************************************************************************************************************************************
+var altas,bajas,modificaciones;
+//________________________________________________________________________________________________________
+// Devuelve el valor seleccionado de un desplegable cualquiera
+//________________________________________________________________________________________________________
+function tomavalorDesple(desplegable)
+{
+ var idx=desplegable.selectedIndex; // Indice seleccionado en el desplegable
+ var val=desplegable.options[idx].value; // Valor seleccionado en el desplegable
+ return(val);
+}
+//________________________________________________________________________________________________________
+//
+// Envía la información para dar de alta, baja o modificar items en un menu
+// Parámetros:
+// $op: Indica si esta página se ejecuta desde "acciones" o desde "menus"
+// 1: desde acciones
+// 2: desde menus
+//________________________________________________________________________________________________________
+function confirmar(op)
+{
+ var ELEMENT_NODE=1; // Tipo de nodo
+ altas=bajas=modificaciones="";
+
+ if(op==1){
+ var idtipoaccion=document.fdatos.idtipoaccion.value;
+ var tipoaccion=document.fdatos.tipoaccion.value;
+ }
+ // Indices de campos a recuperar
+ var ichk=0; // Checkbox
+ var imenu=1; // Nombre del menu
+ var itipo=2; // Tipo de item
+ var iurlimg=3; // Url de la imagen
+ var iitem=4; // Literal del item
+ var iorden=5; // Orden de ejecución
+ var iidtipoaccion=6; // Identificación de la acción
+ var itipoaccion=7; // Identificación del tipo de acción
+
+ var trMnu = document.getElementById("TR_menus"); // Recupera la tabla de menu
+ trMnu=trMnu.nextSibling; // Primera fila de particiones
+ while(trMnu){
+ if(trMnu.nodeType==ELEMENT_NODE){
+ var ochk=trMnu.childNodes[ichk].childNodes[0];
+ var otipo=trMnu.childNodes[itipo].childNodes[0];
+ var ourlimg=trMnu.childNodes[iurlimg].childNodes[0];
+ var oitem=trMnu.childNodes[iitem].childNodes[0];
+ var oorden=trMnu.childNodes[iorden].childNodes[0];
+
+ var idmenu=ochk.id; // Identificador del menu
+ var std=ochk.value; // Estado original del checkbox 1=seleccionado 0=No seleccionado
+ var tipo=tomavalorDesple(otipo);
+ var urlimg=tomavalorDesple(ourlimg);
+ var item=oitem.value;
+ var orden=oorden.value;
+
+ if(op==2){
+ var idtipoaccion=trMnu.childNodes[iidtipoaccion].innerHTML;
+ var tipoaccion=trMnu.childNodes[itipoaccion].innerHTML;
+ }
+ /* Control de errores */
+ if(ochk.checked){
+ if(item==""){ // Descripción del item
+ alert(TbMsg[0]);
+ oitem.focus();
+ return(false);
+ }
+ if(orden=="" || orden<0 || !IsNumeric(orden)){
+ alert(TbMsg[1]);
+ oorden.focus();
+ return(false);
+ }
+ }
+ /* Compone parametros */
+ if(ochk.checked){ // El checbox está seleccionado, alta o modificación
+ var prm=idmenu+","+idtipoaccion+","+tipoaccion;
+ prm+=","+tipo +","+urlimg+","+item+","+orden;
+ if(std>0) // Originalmente estaba seleccionado, se trata de una modificación
+ modificaciones+=prm+";";
+ else
+ altas+=prm+";";
+ }
+ else{ // Baja
+ if(std>0){ // Si originariamente estaba marcado se trata de una baja
+ var prm=idmenu+","+idtipoaccion+","+tipoaccion;
+ bajas+=prm+";";
+ }
+ }
+ }
+ trMnu=trMnu.nextSibling; // Primera fila de particiones
+ }
+
+ /* LLamada a la gestión */
+ var wurl="../gestores/gestor_accionmenu.php";
+ var prm="altas="+altas+"&bajas="+bajas+"&modificaciones="+modificaciones;
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul)
+{
+ if(resul.length>0){
+ eval(resul)
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_gestion_accionmenu(resul,descrierror){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[3])
+ location.href="../nada.php";
+}
+
diff --git a/admin/WebConsole/jscripts/administracion.js b/admin/WebConsole/jscripts/administracion.js
new file mode 100644
index 00000000..d055af1c
--- /dev/null
+++ b/admin/WebConsole/jscripts/administracion.js
@@ -0,0 +1,24 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: administracion.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero administracion.php
+// *************************************************************************************************************************************************
+ function Asignar(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var literal=currentNodo.toma_infonodo()
+ var wurl="../varios/administradores_centros.php?idcentro="+identificador+"&nombrecentro="+literal
+ window.open(wurl,"frame_contenidos");
+ }
+ //__________________________________________________________________________________________
+ function Asignar_Usuario(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var literal=currentNodo.toma_infonodo()
+ var wurl="../varios/administradores_usuarios.php?idusuario="+identificador+"&nombre="+literal
+ window.open(wurl,"frame_contenidos");
+ }
diff --git a/admin/WebConsole/jscripts/administradores_centros.js b/admin/WebConsole/jscripts/administradores_centros.js
new file mode 100644
index 00000000..24763b6d
--- /dev/null
+++ b/admin/WebConsole/jscripts/administradores_centros.js
@@ -0,0 +1,41 @@
+// *************************************************************************************************************************************************
+// 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: administradores_centros.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero administradores_centros
+// *************************************************************************************************************************************************
+function gestion_administrador(idusuario,o){
+ idcentro=document.fdatos.idcentro.value
+ if (o.checked)
+ var opcion=op_alta;
+ else
+ var opcion=op_eliminacion;
+ var wurl="../gestores/gestor_administradores_centros.php";
+ var prm="opcion="+opcion+"&idusuario="+idusuario+"&idcentro="+idcentro
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul)
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_administradores_centros(resul,descrierror,nwid,tablanodo){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_administradores_centros(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/administradores_usuarios.js b/admin/WebConsole/jscripts/administradores_usuarios.js
new file mode 100644
index 00000000..97d9368e
--- /dev/null
+++ b/admin/WebConsole/jscripts/administradores_usuarios.js
@@ -0,0 +1,43 @@
+// *************************************************************************************************************************************************
+// 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: administradores_centros.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero administradores_centros
+// *************************************************************************************************************************************************
+function gestion_administrador(idcentro,o){
+ idusuario=document.fdatos.idusuario.value
+ if (o.checked)
+ var opcion=op_alta;
+ else
+ var opcion=op_eliminacion;
+
+ var wurl="../gestores/gestor_administradores_usuarios.php";
+ var prm="opcion="+opcion+"&idcentro="+idcentro+"&idusuario="+idusuario
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul)
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_centros_administradores(resul,descrierror,nwid,tablanodo){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_centros_administradores(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/aula.js b/admin/WebConsole/jscripts/aula.js
new file mode 100644
index 00000000..282127ca
--- /dev/null
+++ b/admin/WebConsole/jscripts/aula.js
@@ -0,0 +1,151 @@
+// *************************************************************************************************************************************************
+// 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: Marzo-2006
+// Nombre del fichero: aula.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero aulas.php
+// *************************************************************************************************************************************************
+ function NodoAux(){
+ this.idambito=0;
+ this.ambito=0;
+ this.litambito=null;
+ this.nombreambito=null;
+
+ this.toma_identificador= function(){
+ return(idambito);
+ }
+ this.toma_sufijo= function(){
+ return(litambito);
+ }
+ this.toma_infonodo= function(){
+ return(nombreambito);
+ }
+ // Fin de la clase
+}
+currentNodo=new NodoAux();
+//________________________________________________________________________________________________________
+function nwmenucontextual(o,idmnctx){
+ var menuctx=document.getElementById(idmnctx); // Toma objeto DIV
+ muestra_contextual(ClickX,ClickY,menuctx) // muestra menu
+ Toma_Datos(o);
+}
+//________________________________________________________________________________________________________
+//
+// Toma datos
+//________________________________________________________________________________________________________
+function Toma_Datos(o){
+ var identificador=o.getAttribute("nod");
+ litambito=identificador.split("-")[0];
+ idambito=identificador.split("-")[1];
+ nombreambito=o.getAttribute("value");
+ currentNodo.idambito=idambito;
+ currentNodo.litambito=litambito;
+ currentNodo.nombreambito=nombreambito;
+}
+//________________________________________________________________________________________________________
+function wactualizar_ordenadores(o){
+ Toma_Datos(o);
+ actualizar_ordenadores();
+}
+//________________________________________________________________________________________________________
+//
+// Refresca la visualizaci� del estado de los ordenadores(Clientes rembo y clientes Windows o Linux)
+//________________________________________________________________________________________________________
+function Sondeo(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var ambito=document.fcomandos.ambito.value; // Ámbito de aplicación
+ var idambito=document.fcomandos.idambito.value; // Identificador del ámbito
+ var wurl="../principal/sondeo.php";
+ var prm="ambito="+ambito+"&idambito="+idambito+"&sw=1"; // La primera vez se manda sondeo a los clientes
+ CallPage(wurl,prm,"retornoSondeo","POST");
+ setTimeout("respuestaSondeo();",100);
+}
+//______________________________________________________________________________________________________
+function retornoSondeo(resul){
+/*
+ if(resul==1)
+ alert(TbMsg[11]);
+ else
+ alert(TbMsg[12]);
+*/
+}
+//________________________________________________________________________________________________________
+function respuestaSondeo(){
+ var ambito=document.fcomandos.ambito.value; // Ámbito de aplicación
+ var idambito=document.fcomandos.idambito.value; // Identificador del ámbito
+ var wurl="../principal/sondeo.php";
+ var prm="ambito="+ambito+"&idambito="+idambito+"&sw=2"; // Las siguientes veces se consulta sólo la tabla de clientes
+ CallPage(wurl,prm,"retornorespuestaSondeo","POST");
+ setTimeout("respuestaSondeo();",5000);
+}
+//______________________________________________________________________________________________________
+function retornorespuestaSondeo(resul)
+{
+ if(resul.length>0){
+ var ip=""; // Dirección IP del ordenador
+ var so=""; // Sistema operativo activo
+ var objOrd=null; // Objeto ordenador
+ var imgOrd="";
+ var cadena=resul.split(";"); // Trocea la cadena devuelta por el servidor de adminsitración
+ for (var i=0;i<cadena.length;i++){
+ var dual=cadena[i].split("/");
+ ip=dual[0];
+ so=dual[1];
+ objOrd=document.getElementById(ip);
+ if(objOrd){ // Si existe el objeto
+ imgOrd=soIMG(so); // Toma url de la imagen según su s.o.
+ if(objOrd.sondeo!=so){ // Si es distinto al que tiene ...se cambia la imagen
+ objOrd.src="../images/"+imgOrd;
+ objOrd.sondeo=imgOrd;
+ }
+ }
+ }
+ }
+}
+//______________________________________________________________________________________________________
+function soIMG(so)
+{
+ var MimgOrdenador="";
+ switch(so){
+ case 'INI':
+ MimgOrdenador="ordenador_INI.gif"; // Cliente ocupado
+ break;
+ case 'BSY':
+ MimgOrdenador="ordenador_BSY.gif"; // Cliente ocupado
+ break;
+ case 'OPG':
+ MimgOrdenador="ordenador_RMB.gif"; // Cliente Rembo
+ break;
+ case 'WS2':
+ MimgOrdenador="ordenador_WS2.gif"; // Windows Server 2003
+ break;
+ case 'W2K':
+ MimgOrdenador="ordenador_W2K.gif"; // Windows 2000
+ break;
+ case 'WXP':
+ MimgOrdenador="ordenador_WXP.gif"; // Windows XP
+ break;
+ case 'WNT':
+ MimgOrdenador="ordenador_WNT.gif"; // Windows NT
+ break;
+ case 'W95':
+ MimgOrdenador="ordenador_W95.gif"; // Windows 95
+ break;
+ case 'W98':
+ MimgOrdenador="ordenador_W98.gif"; // Windows 98
+ break;
+ case 'WML':
+ MimgOrdenador="ordenador_WML.gif"; // Windows Millenium
+ break;
+ case 'LNX':
+ MimgOrdenador="ordenador_LNX.gif"; // Linux
+ default:
+ MimgOrdenador="ordenador_OFF.gif"; // Linux
+ break;
+ }
+ return(MimgOrdenador);
+}
+
+
diff --git a/admin/WebConsole/jscripts/aulas.js b/admin/WebConsole/jscripts/aulas.js
new file mode 100644
index 00000000..fb3fe373
--- /dev/null
+++ b/admin/WebConsole/jscripts/aulas.js
@@ -0,0 +1,337 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: aulas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero aulas.php
+// *************************************************************************************************************************************************
+var TBcon=new Array() // Array para eco de consolas
+var Ambito=null;
+var IdAmbito=null;
+//________________________________________________________________________________________________________
+//
+// Copia al buffer un nodo de ordenador para moverlo posteriormente
+//________________________________________________________________________________________________________
+function mover_ordenador(){
+ reset_contextual(-1,-1)
+ corte_currentNodo=currentNodo
+}
+//________________________________________________________________________________________________________
+//
+// Esta funci� cambia de sitio un ordenador desde un aula a otro aula o bien adentro de un
+// grupo de ordenadores dentro del mismo aula
+//________________________________________________________________________________________________________
+function colocar_ordenador(swsufijo){
+ reset_contextual(-1,-1)
+ if (!corte_currentNodo) {
+ alert(CTbMsg[7]);
+ return
+ }
+ var identificador=currentNodo.toma_identificador()
+ var sufijonodo=currentNodo.toma_sufijo()
+ var identificador_ordenador=corte_currentNodo.toma_identificador()
+ var swsf=parseInt(swsufijo)
+ if (swsf==0) // El ordenador se mueve a un grupo de ordenadores
+ var prm="opcion="+op_movida+"&grupoid="+identificador+"&idordenador="+identificador_ordenador
+ else // El ordenador se mueve a un aula
+ var prm="opcion="+op_movida+"&idaula="+identificador+"&idordenador="+identificador_ordenador
+
+ var wurl="../gestores/gestor_ordenadores.php";
+ CallPage(wurl,prm,"retornoColocar","POST");
+}
+//______________________________________________________________________________________________________
+function retornoColocar(iHTML){
+ if(iHTML.length>0){
+ eval(iHTML)
+ }
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de cambiar un ordenador de sitio
+// Especificaciones:
+// Los par�etros recibidos son:
+// - resul: resultado de la operaci� de eliminaci� ( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador del registro
+//________________________________________________________________________________________________________
+function resultado_cambiar_ordenadores(resul,descrierror,id){
+ if (!resul){
+ alert(descrierror)
+ return
+ }
+ var ncel=corte_currentNodo.CeldaVista;
+
+ var celdaHTML=ncel.parentNode.innerHTML; // Recupera celda del nodo
+ if(IE)
+ var patron = new RegExp("<TD width=16><SPAN><IMG","gi")
+ else
+ if(NS)
+ var patron = new RegExp("<TD width=\"16px\"><SPAN><IMG","gi")
+
+ var p=celdaHTML.search(patron);
+ if(p<0) return // Ha habido algn problema
+ var nwceldaHTML='<TABLE border="0" cellspacing="0" cellpadding="0"><TBODY><TR height=16><TD width=3></TD>';
+ nwceldaHTML+=celdaHTML.substring(p);
+ InsertaNodo(currentNodo,nwceldaHTML);
+ EliminaNodo(corte_currentNodo) // Elimina el nodo
+ corte_currentNodo=null;
+}
+//________________________________________________________________________________________________________
+//
+// Refresca la visualizaci� del estado de los ordenadores(Clientes rembo y clientes Windows o Linux)
+//________________________________________________________________________________________________________
+function actualizar_ordenadores(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var resul=window.confirm(TbMsg[1]);
+ if (!resul)return
+ var idambito=currentNodo.toma_identificador()
+ var ambito=calAmbito(currentNodo.toma_sufijo())
+ var wurl="actualizar.php";
+ var prm="idambito="+idambito+"&ambito="+ambito;
+ CallPage(wurl,prm,"retornoActualizar","POST");
+}
+//________________________________________________________________________________________________________
+//
+// Detiene el programa que corre en el cliente
+//________________________________________________________________________________________________________
+function purgar_ordenadores(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var resul=window.confirm(TbMsg[4]);
+ if (!resul)return
+ var idambito=currentNodo.toma_identificador()
+ var ambito=calAmbito(currentNodo.toma_sufijo())
+ var wurl="purgar.php";
+ var prm="idambito="+idambito+"&ambito="+ambito;
+ CallPage(wurl,prm,"retornoPurgar","POST");
+}
+//______________________________________________________________________________________________________
+function retornoActualizar(resul){
+ if(resul==1)
+ alert(TbMsg[7]);
+ else
+ alert(TbMsg[8]);
+}
+//______________________________________________________________________________________________________
+function retornoPurgar(resul){
+ if(resul==1)
+ alert(TbMsg[9]);
+ else
+ alert(TbMsg[10]);
+}
+//________________________________________________________________________________________________________
+//
+// Conmuta el estado de los ordenadores(Modo Administrado reinici�dolos)
+//________________________________________________________________________________________________________
+function consola_remota(ambito){
+ reset_contextual(-1,-1)
+
+ Ambito=ambito;
+ consola_eco(1);
+}
+//________________________________________________________________________________________________________
+//
+// Abre una ventana para mostrar el eco de una consola
+//________________________________________________________________________________________________________
+function eco_remoto(lit)
+{
+ reset_contextual(-1,-1)
+ if(Ambito==null){
+ alert(TbMsg[6]);
+ return;
+ }
+ else{
+ if(Ambito==AMBITO_ORDENADORES)
+ consola_eco(1);
+ else
+ consola_eco(2);
+ }
+}
+//________________________________________________________________________________________________________
+function consola_eco(sw)
+{
+ var idambito=currentNodo.toma_identificador()
+ if(TBcon[idambito])
+ TBcon[idambito].close();
+
+ if(TBcon[idambito])
+ TBcon[idambito].close();
+ var litambito=currentNodo.toma_sufijo()
+ var nomambito=currentNodo.toma_infonodo()
+ var whref="../principal/consolaremota.php?litambito="+litambito+"&idambito="+idambito+"&nomambito="+nomambito+"&sw="+sw;
+ if(sw==1){
+ IdAmbito=idambito;
+ window.open(whref,"frame_contenidos")
+ }
+ else{
+ var nomw="w_"+litambito+"_"+idambito
+ TBcon[idambito] = window.open(whref,nomw,"width=720,height=640");
+ }
+}
+//________________________________________________________________________________________________________
+//
+// Muestra estatus de los ordenadores
+//________________________________________________________________________________________________________
+function ver_aulas(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var idambito=currentNodo.toma_identificador();
+ var litambito=currentNodo.toma_sufijo();
+ var nombreambito=currentNodo.toma_infonodo();
+ var whref="aula.php?litambito="+litambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Estatus de un aula
+//________________________________________________________________________________________________________
+function veraula(o,sw){
+ var identificador=o.getAttribute("id");
+ var litambito=identificador.split("-")[0];
+ var idambito=identificador.split("-")[1];
+ var nombreambito=o.getAttribute("value");
+ var whref="aula.php?litambito="+litambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+function menucontextual(o,idmnctx){
+ var menuctx=document.getElementById(idmnctx); // Toma objeto DIV
+ muestra_contextual(ClickX,ClickY,menuctx) // muestra menu
+}
+//________________________________________________________________________________________________________
+//
+// Env� un comando para su ejecuci� o incorporaci� a procedimientos o tareas
+//________________________________________________________________________________________________________
+function confirmarcomando(ambito,idcomando,descricomando,pagina,gestor,funcion){
+ reset_contextual(-1,-1); // Oculta menu contextual
+ document.fcomandos.idcomando.value=idcomando; // Identificador del comandos
+ document.fcomandos.descricomando.value=descricomando; // Descripción del comandos
+ document.fcomandos.ambito.value=ambito; // Ámbito de aplicación
+ document.fcomandos.idambito.value=currentNodo.toma_identificador(); // Identificador del ámbito
+ document.fcomandos.nombreambito.value=currentNodo.toma_infonodo() ; // Nombre del ámbito
+ document.fcomandos.action=pagina; // Página interactiva del comando
+ document.fcomandos.gestor.value=gestor; // Página gestora del comando
+ document.fcomandos.funcion.value=funcion; // Página gestora del comando
+ document.fcomandos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Env� un comando para su ejecuci� o incorporaci� a procedimientos o tareas
+//________________________________________________________________________________________________________
+function confirmarprocedimiento(ambito){
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var idambito=currentNodo.toma_identificador() // identificador del ambito
+ var nombreambito=currentNodo.toma_infonodo() // nombre del �bito
+ if(nombreambito=="")
+ var nombreambito=currentNodo.value // nombre del �bito desde p�ina aula.php
+ var wurl="../varios/ejecutaracciones.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ window.open(wurl,"frame_contenidos")}
+//________________________________________________________________________________________________________
+//
+// Muestra la cola de acciones
+//________________________________________________________________________________________________________
+function cola_acciones(tipoaccion){
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var ambito;
+ var litambito=currentNodo.toma_sufijo() // ambito
+ switch(litambito){
+ case LITAMBITO_CENTROS :
+ ambito=AMBITO_CENTROS;
+ break;
+ case LITAMBITO_GRUPOSAULAS :
+ ambito=AMBITO_GRUPOSAULAS;
+ break;
+ case LITAMBITO_AULAS :
+ ambito=AMBITO_AULAS;
+ break;
+ case LITAMBITO_GRUPOSORDENADORES :
+ ambito=AMBITO_GRUPOSORDENADORES;
+ break;
+ case LITAMBITO_ORDENADORES :
+ ambito=AMBITO_ORDENADORES;
+ break;
+ }
+ var idambito=currentNodo.toma_identificador() // identificador del �bito
+ var nombreambito=currentNodo.toma_infonodo() // nombre del ordenador
+ if(nombreambito=="")
+ var nombreambito=currentNodo.value // nombre del �bito desde p�ina aula.php
+ var wurl="../principal/colasacciones.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ window.open(wurl,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra la cola de reservas
+//________________________________________________________________________________________________________
+function cola_reservas(tiporeserva){
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var ambito;
+ var litambito=currentNodo.toma_sufijo() // ambito
+
+ switch(litambito){
+ case LITAMBITO_CENTROS :
+ ambito=AMBITO_CENTROS;
+ break;
+ case LITAMBITO_GRUPOSAULAS :
+ ambito=AMBITO_GRUPOSAULAS;
+ break;
+ case LITAMBITO_AULAS :
+ ambito=AMBITO_AULAS;
+ break;
+ case LITAMBITO_GRUPOSORDENADORES :
+ ambito=AMBITO_GRUPOSORDENADORES;
+ break;
+ case LITAMBITO_ORDENADORES :
+ ambito=AMBITO_ORDENADORES;
+ break;
+ }
+ var idambito=currentNodo.toma_identificador() // identificador del �bito
+ var nombreambito=currentNodo.toma_infonodo() // nombre del ordenador
+ if(nombreambito=="")
+ var nombreambito=currentNodo.value // nombre del �bito desde p�ina aula.php
+ var wurl="../principal/programacionesaulas.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito+"&tipocola="+tiporeserva
+ window.open(wurl,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra el formulario de captura de datos de un ordenador estandar
+//________________________________________________________________________________________________________
+function ordenador_estandar(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var nombreaula=currentNodo.toma_infonodo()
+ var whref="../propiedades/propiedades_ordenadorestandar.php?idaula="+identificador+"&nombreaula="+nombreaula
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+function resultado_ordenadorestandar(resul,descrierror){
+ if (!resul){ // Ha habido algn error
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0]);
+}
+//________________________________________________________________________________________________________
+//
+// Muestra la configuraci� de los ordenadores
+// Par�etros:
+// - ambito: �bito que se quiere investigar
+//________________________________________________________________________________________________________
+function configuraciones(ambito){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador();
+ wurl="configuraciones.php?idambito="+identificador+"&ambito="+ambito;
+ window.open(wurl,"frame_contenidos")
+}
+//___________________________________________________________________________________________________________
+//
+// Muestra formulario para incorporar ordenadores a trav� de un fichero de configuraci� de un servidor dhcp
+//___________________________________________________________________________________________________________
+function incorporarordenador(){
+ reset_contextual(-1,-1)
+ var idaula=currentNodo.toma_identificador()
+ var nombreaula=currentNodo.toma_infonodo()
+ var whref="../varios/incorporaordenadores.php?idaula="+idaula+"&nombreaula="+nombreaula
+ window.open(whref,"frame_contenidos")
+}
+
+
diff --git a/admin/WebConsole/jscripts/cadenas.js b/admin/WebConsole/jscripts/cadenas.js
new file mode 100644
index 00000000..520631e1
--- /dev/null
+++ b/admin/WebConsole/jscripts/cadenas.js
@@ -0,0 +1,45 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: cadenas.js
+// Descripción :
+// Este fichero implementa funciones de uso común para cadenas
+// *************************************************************************************************************************************************
+function TrimLeft( str ) {
+ var resultStr = "";
+ var i = len = 0;
+ if (str+"" == "undefined" || str == null) return null;
+ str += "";
+ if (str.length == 0)
+ resultStr = "";
+ else {
+ len = str.length;
+ while ((i <= len) && (str.charAt(i) == " ")) i++;
+ resultStr = str.substring(i, len);
+ }
+ return resultStr;
+}
+//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+function TrimRight( str ) {
+ var resultStr = "";
+ var i = 0;
+ if (str+"" == "undefined" || str == null) return null;
+ str += "";
+ if (str.length == 0)
+ resultStr = "";
+ else {
+ i = str.length - 1;
+ while ((i >= 0) && (str.charAt(i) == " ")) i--;
+ resultStr = str.substring(0, i + 1);
+ }
+ return resultStr;
+ }
+//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+function Trim( str ) {
+ var resultStr = "";
+ resultStr = TrimLeft(str);
+ resultStr = TrimRight(resultStr);
+ return resultStr;
+} \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/colasacciones.js b/admin/WebConsole/jscripts/colasacciones.js
new file mode 100644
index 00000000..5caa983d
--- /dev/null
+++ b/admin/WebConsole/jscripts/colasacciones.js
@@ -0,0 +1,439 @@
+// *************************************************************************************************************************************************
+// 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: colasacciones.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero colasacciones.php
+// *************************************************************************************************************************************************
+ var currentCol;
+ var currentAcc;
+ var iresul;
+ var ifechafin;
+ var ihorafin;
+ var ifechareg;
+ var ihorareg;
+ var iiconamb;
+ var iamb;
+ var iinfor;
+ var isitu;
+ var iporcen;
+ var curentwprg;
+//________________________________________________________________________________________________________
+
+ function resaltar(o){
+ o.style.color="#999999"
+ o.style.fontWeight="bold"
+
+ }
+//________________________________________________________________________________________________________
+
+ function desresaltar(o){
+ o.style.color="#999999"
+ o.style.fontWeight="normal"
+ }
+//________________________________________________________________________________________________________
+
+ function marcalinea(o){
+ }
+//________________________________________________________________________________________________________
+
+ function chgdespleestados(o)
+ {
+
+ var dplResultados=document.fdatos.resultado;
+ var op=o.selectedIndex;
+ switch(op){
+ case ACCION_DETENIDA:
+ dplResultados.selectedIndex=ACCION_SINRESULTADO;
+ break;
+ case ACCION_INICIADA:
+ dplResultados.selectedIndex=ACCION_SINRESULTADO;
+ break;
+ case ACCION_FINALIZADA:
+ dplResultados.selectedIndex=ACCION_EXITOSA;
+ break;
+ }
+ }
+//________________________________________________________________________________________________________
+
+ function chgdespleresultados(o)
+ {
+ var dplEstados=document.fdatos.estado;
+ var op=o.selectedIndex;
+ switch(op){
+ case ACCION_SINRESULTADO:
+ //dplEstados.selectedIndex=0; // Todos
+ break;
+ case ACCION_EXITOSA:
+ dplEstados.selectedIndex=ACCION_FINALIZADA;
+ break;
+ case ACCION_FALLIDA:
+ dplEstados.selectedIndex=ACCION_FINALIZADA;
+ break;
+ }
+ }
+//________________________________________________________________________________________________________
+
+ function vertabla_calendario(ofecha)
+ {
+ currentFecha=ofecha;
+ url="../varios/calendario_ventana.php?fecha="+ofecha.value
+ window.open(url,"vf","top=160,left=250,height=220,width=160,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+
+ function vertabla_horario(ohora)
+ {
+ currentHora=ohora;
+ url="../varios/horario_ventana.php?hora="+ohora.value
+ window.open(url,"vh","top=120,left=115,height=180,width=590,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+
+ function anade_fecha(fecha)
+ {
+ currentFecha.value=fecha
+ }
+//________________________________________________________________________________________________________
+
+ function anade_hora(hora)
+ {
+ currentHora.value=hora
+ }
+//________________________________________________________________________________________________________
+//
+// Procesa operaciones sobre acciones
+//
+// Parámetros:
+// op: Código de operacion
+// 1- Eliminar
+// 2.-Reiniciar
+// 3.- Parar
+// 4.- Reanudar
+// o: Es nulo si se eligen las opraciones globales, en caso de ser operaciones locales no lo es
+// y la cadena con el formato "tipoaccion,idtipoaccio,sesion,idaccion;" se encuentra en el atributo value
+//
+// Especificaciones;
+//
+// La forma de procesar las operaciones sobre acciones es a través de identificadores con el formato:
+// "tipoaccion,idtipoaccio,sesion,idaccion" separados cada tripla por ";" el gestor recibe esta cadena
+// y el tipo de operación.
+//
+// En caso de que idaccion sea cero se actua atendiendo a la sesion en caso contrario con la propia idaccion
+//________________________________________________________________________________________________________
+
+ function eleccion(op,o)
+ {
+ reset_contextual(-1,-1);
+ if(o==null)
+ var acciones=document.facciones.acciones.value;
+ else
+ var acciones=o.value;
+
+ switch(op){
+ case 1: // Eliminar
+ if(confirm(TbMsg[1]))
+ gestionaAccion(op,acciones);
+
+ break;
+ case 2: // Reiniciar
+ if(confirm(TbMsg[2]))
+ gestionaAccion(op,acciones);
+ break;
+ case 3: // Detener
+ if(confirm(TbMsg[3]))
+ gestionaAccion(op,acciones);
+ break;
+ case 4: // Reanudar
+ if(confirm(TbMsg[4]))
+ gestionaAccion(op,acciones);
+ break;
+ case 5: // Finalizar sin errores
+ if(confirm(TbMsg[5]))
+ gestionaAccion(op,acciones);
+ break;
+ case 6: // Finalizar con errores
+ if(confirm(TbMsg[6]))
+ gestionaAccion(op,acciones);
+ break;
+ }
+ }
+//________________________________________________________________________________________________________
+
+ function gestionaAccion(op,acciones){
+ currentAcc=acciones;
+ /* LLamada a la gestión */
+ var wurl="../gestores/gestor_colasacciones.php";
+ var prm="opcion="+op+"&acciones="+acciones
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+
+ function retornoGestion(op)
+ {
+ //alert("Retorno:"+op)
+ var opcion=parseInt(op);
+ if(opcion==0){ // Error en el proceso anterior
+ alert(TbMsg[0]);
+ return;
+ }
+ var tipoaccion;
+ var idtipoaccion;
+ var sesion;
+ var idaccion;
+ var tbAcciones=currentAcc.split(";");
+
+ /* Busca nodos afectados y los coloca en array para proceso posterior */
+ for(i=0;i<tbAcciones.length-1;i++){
+ var tbAccion=tbAcciones[i].split(",");
+ tipoaccion=tbAccion[0];
+ idtipoaccion=tbAccion[1];
+ sesion=tbAccion[2];
+ idaccion=tbAccion[3];
+ var oTB=document.getElementById("tbAcciones");
+ var oTRs=new Array();
+ var oTIs=new Array();
+ var k=r=0;
+ for(var j=0;j<oTB.childNodes.length;j++){ // Recopila nodos
+ if(idaccion>0){ // Operación sobre un ordenador concreto
+ if(k==0)
+ oTRs[k++]=document.getElementById(idaccion).parentNode;
+ if(oTB.childNodes[j].id==sesion)
+ oTIs[r++]=oTB.childNodes[j];
+ }
+ else{
+ if(oTB.childNodes[j].id==sesion)
+ oTRs[k++]=oTB.childNodes[j];
+ }
+ }
+ for( var j=0;j<k;j++){ // Recorre nodos afectados
+ switch(opcion){
+ case 1:
+ oTB.removeChild(oTRs[j]); // Elimina nodo <TR> completo
+ break;
+ case 2:
+ cambioReinicio(oTRs[j]); // Coloca icono de accion iniciada
+ break;
+ case 3:
+ cambioParada(oTRs[j]); // Coloca icono de accion parada a las que estén activas
+ break;
+ case 4:
+ cambioReanudacion(oTRs[j]); // Coloca icono de accion iniciada a las que estén paradas
+ break;
+ case 5:
+ cambioFinalizar(oTRs[j],true); // Coloca icono de accion finalizada sin errores
+ break;
+ case 6:
+ cambioFinalizar(oTRs[j],false); // Coloca icono de accion finalizada con errores
+ break;
+ }
+ }
+ // Recalculo de porcentaje
+ if(opcion==2 || opcion==5 || opcion==6){
+ if(idaccion>0) // Si es reinicio de un sólo ordenador
+ recalculaAccion(oTIs,r,op);
+ else
+ recalculaAccion(oTRs,k,op);
+ }
+ }
+ alert(TbMsg[10]);
+ }
+//______________________________________________________________________________________________________
+//
+// Gestiona todas las operaciones posteriores al reinicio de la acción
+//______________________________________________________________________________________________________
+
+ function cambioReinicio(nodo)
+ {
+ if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones
+
+ setIndices(nodo);
+
+ nodo.childNodes[ifechafin].innerHTML="&nbsp;";
+ nodo.childNodes[ihorafin].innerHTML="&nbsp;";
+ nodo.childNodes[iinfor].innerHTML="&nbsp;";
+
+ //if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_FINALIZADA){
+ nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acIniciada.gif");
+ nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_INICIADA)
+ nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_SINRESULTADO)
+ nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/nada.gif");
+ nodo.childNodes[iporcen].innerHTML="&nbsp;"
+ //}
+ }
+//______________________________________________________________________________________________________
+//
+// Gestiona todas las operaciones posteriores a la detención de la acción
+//______________________________________________________________________________________________________
+
+ function cambioParada(nodo)
+ {
+ if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones
+ setIndices(nodo);
+ if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_INICIADA){
+ nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acDetenida.gif");
+ nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_DETENIDA)
+ }
+ }
+//______________________________________________________________________________________________________
+//
+// Gestiona todas las operaciones posteriores a la reanudación de la acción
+//______________________________________________________________________________________________________
+
+ function cambioReanudacion(nodo)
+ {
+ if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones
+ setIndices(nodo);
+ if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_DETENIDA){
+ nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acIniciada.gif");
+ nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_INICIADA)
+ }
+ }
+//______________________________________________________________________________________________________
+//
+// Gestiona todas las operaciones posteriores a la finalización de la acción
+//______________________________________________________________________________________________________
+
+ function cambioFinalizar(nodo,sw)
+ {
+ if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones
+ setIndices(nodo);
+ if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_INICIADA){
+ nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_FINALIZADA)
+ nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/nada.gif");
+ if(sw){
+ nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_EXITOSA)
+ nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acExitosa.gif");
+ nodo.childNodes[iinfor].innerHTML=LITACCION_EXITOSA; }
+ else{
+ nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_FALLIDA)
+ nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acFallida.gif");
+ nodo.childNodes[iinfor].innerHTML=LITACCION_FALLIDA;
+ }
+ var ahora = new Date()
+ var fechafin=ahora.getDate()+"-"+(ahora.getMonth()+1)+"-"+ahora.getFullYear();
+ nodo.childNodes[ifechafin].innerHTML=fechafin;
+ var horafin=ahora.getHours()+":"+(ahora.getMinutes()+1)+":"+ahora.getSeconds();
+ nodo.childNodes[ihorafin].innerHTML=horafin;
+ }
+ }
+
+//______________________________________________________________________________________________________
+//
+// Configura indices para acceo a nodos
+//______________________________________________________________________________________________________
+
+ function setIndices(nodo)
+ {
+ if(nodo.getAttribute('value')=="C")
+ iresul=2; // Nodo cabecera de sesion
+ else{
+ if(nodo.getAttribute('value')=="D")
+ iresul=1; // Nodo detalle de sesion
+ else
+ return; // Nodo de cambio de ámbito
+ }
+ ifechafin=iresul+1;
+ ihorafin=ifechafin+1;
+ ifechareg=ihorafin+1;
+ ihorareg=ifechareg+1;
+ iiconamb=ihorareg+1;
+ iamb=iiconamb+1;
+ iinfor=iamb+1;
+ isitu=iinfor+1;
+ iporcen=isitu+1;
+ }
+//______________________________________________________________________________________________________
+//
+// Recalcula porcentaje después de reinicios
+//
+// Especificaciones:
+// El parámetro sw indica si finaliza sin errores (true) o con errore (false)
+//______________________________________________________________________________________________________
+
+ function recalculaAccion(nodos,r,op)
+ {
+ var c,nt,nn;
+ nt=nf=0;
+ var resultado=ACCION_EXITOSA;
+
+ for(var j=0;j<r;j++){ // Recorre nodo para recalcular porcentaje
+ if(nodos[j].getAttribute('value')=="C")
+ c=j; // Guarda indice nodo cabecera de sesión
+ else{
+ if(nodos[j].getAttribute('value')=="D"){
+ nf++;
+ if(nf==1) setIndices(nodos[j]); // Sólo la primera vez
+ if(nodos[j].childNodes[isitu].childNodes[0].getAttribute("value")==ACCION_FINALIZADA)
+ nt++;
+ if(nodos[j].childNodes[iresul].childNodes[0].getAttribute("value")==ACCION_FALLIDA)
+ resultado=ACCION_FALLIDA;
+ if(nodos[j].childNodes[iresul].childNodes[0].getAttribute("value")==ACCION_SINRESULTADO){
+ if(resultado==ACCION_EXITOSA)
+ resultado=ACCION_SINRESULTADO;
+ }
+ }
+ }
+ }
+ var porcen=0;
+ if(nf>0)
+ porcen=nt*100/nf; // Calcula porcentaje de finalización
+ setIndices(nodos[c])
+ nodos[c].childNodes[iporcen].innerHTML=Math.floor(porcen)+"%";
+ switch(resultado){
+ case ACCION_EXITOSA:
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_EXITOSA)
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acExitosa.gif");
+ break;
+
+ case ACCION_FALLIDA:
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_FALLIDA)
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acFallida.gif");
+ break;
+ case ACCION_SINRESULTADO:
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_SINRESULTADO)
+ nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/nada.gif");
+ break;
+ }
+ }
+//______________________________________________________________________________________________________
+//
+// Filtra según una determinada accion o bien elimina ese filtro
+//
+// Parámetros:
+// sw: Indica si hay que filtrar o hay que eliminar el filtro por acción
+//______________________________________________________________________________________________________
+
+ function filtroAccion(sw)
+ {
+ if(sw==0){ // Quitar filtro
+ document.fdatos.sesion.value=0;
+ document.fdatos.visuprm.checked=false;
+ document.fdatos.visucmd.checked=true;
+ document.fdatos.visupro.checked=false;
+ }
+ else{ // Filtrar
+ document.fdatos.sesion.value=document.facciones.sesion.value;
+ document.fdatos.visuprm.checked=true;
+ document.fdatos.visucmd.checked=true;
+ document.fdatos.visupro.checked=true;
+ }
+ document.fdatos.submit();
+ }
+//________________________________________________________________________________________________________
+//
+// Muestra formulario de programaciones para acciones
+//________________________________________________________________________________________________________
+
+function programacion(idcmd,sesion,descripcion)
+{
+ reset_contextual(-1,-1)
+ var whref="../varios/programaciones.php?idcomando="+idcmd+"&sesion="+sesion;
+ whref+="&descripcioncomando="+descripcion+"&tipoaccion="+EJECUCION_COMANDO
+ if(curentwprg)
+ curentwprg.close();
+ curentwprg=window.open(whref,"wprg","left=50,top=20,height=520,width=480,scrollbars=no")
+}
+ \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/colasreservas.js b/admin/WebConsole/jscripts/colasreservas.js
new file mode 100644
index 00000000..3ff9f9cd
--- /dev/null
+++ b/admin/WebConsole/jscripts/colasreservas.js
@@ -0,0 +1,82 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: colasreservas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero colasreservas.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+ function chgdesplereservas(o){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.estadoreserva.value=otip
+ }
+//________________________________________________________________________________________________________
+ function chgdesplesituacion(o){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.situacion.value=otip
+ }
+ //________________________________________________________________________________________________________
+ function vertabla_calendario(ofecha){
+ currentFecha=ofecha;
+ url="../varios/calendario_ventana.php?fecha="+ofecha.value
+ window.open(url,"vf","top=160,left=250,height=220,width=150,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function vertabla_horario(ohora){
+ currentHora=ohora;
+ url="../varios/horareser_ventana.php?hora="+ohora.value
+ window.open(url,"vh","top=200,left=250,height=120,width=160,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function anade_fecha(fecha){
+ currentFecha.value=fecha
+ }
+//________________________________________________________________________________________________________
+ function anade_hora(hora){
+ currentHora.value=hora
+ }
+//________________________________________________________________________________________________________
+ function sobre(){
+}
+//________________________________________________________________________________________________________
+ function fuera(){
+}
+//________________________________________________________________________________________________________
+ function clic(o){
+ var idaula=o.value;
+ var wid=o.getAttribute("id");
+ var aux=wid.split("/") // Toma el identificador
+ var onodo=document.getElementById("nodomes-"+idaula+"-"+aux[1]+"/"+aux[2]);
+ desplieganodo(onodo); // Despliega el mes donde está el día
+ onodo=document.getElementById("nododia-"+idaula+"-"+wid);
+ desplieganodo(onodo);
+ nwhref="#anododia-"+idaula+"-"+wid
+ location.href=nwhref
+ resalta(onodo);
+}
+//________________________________________________________________________________________________________
+ function TH_clic(o){
+ var idaula=o.value;
+ var onodo=document.getElementById("nodomes-"+idaula+"-"+o.getAttribute("id"));
+ desplieganodo(onodo);
+
+ nwhref="#anodomes-"+idaula+"-"+o.getAttribute("id")
+ location.href=nwhref
+ resalta(onodo);
+ }
+//________________________________________________________________________________________________________
+ function desplieganodo(onodo){
+ var pathimg='../images/tsignos';
+ despliega(onodo,pathimg)
+}
+
diff --git a/admin/WebConsole/jscripts/comunes.js b/admin/WebConsole/jscripts/comunes.js
new file mode 100644
index 00000000..5a87c0c2
--- /dev/null
+++ b/admin/WebConsole/jscripts/comunes.js
@@ -0,0 +1,366 @@
+// *************************************************************************************************************************************************
+// 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: Marzo-2006
+// Nombre del fichero: comunes.js
+// Descripción :
+// Este fichero implementa funciones de uso comn a varios fichechos
+// *************************************************************************************************************************************************
+var corte_currentNodo // Copia del Nodo actual para mover y colocar
+var currentTipo=null; // Tipo de Nodo
+//____________________________________________________________________________
+//
+// Recupera el navegador utilizado
+//____________________________________________________________________________
+var IE=(navigator.appName=="Microsoft Internet Explorer");
+var NS=(navigator.appName=="Netscape");
+//document.body.addEventListener("contextmenu",killClick,true);
+//document.oncontextmenu=function(){ return(false);}
+//window.oncontextmenu = function () { alert("pepe"); }
+
+//________________________________________________________________________________________________________
+//
+// Inserta un nuevo grupo
+//________________________________________________________________________________________________________
+function insertar_grupos(tipo,literaltipo,swi,idu){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador();
+ if(swi!=null && swi==1) identificador=0;
+ if(identificador==null) identificador=0
+
+ if(literaltipo==LITAMBITO_AULAS) // Nuevo grupo de ordenador hijo de un aula
+ var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid=0"+"&idaula="+identificador+"&tipo="+AMBITO_GRUPOSORDENADORES +"&literaltipo="+LITAMBITO_GRUPOSORDENADORES;
+ else
+ if(literaltipo==LITAMBITO_GRUPOSORDENADORES) // Nuevo grupo de ordenador hijo de un grupo de ordenadores
+ var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid="+identificador+"&idaula=0"+"&tipo="+AMBITO_GRUPOSORDENADORES +"&literaltipo="+LITAMBITO_GRUPOSORDENADORES;
+ else
+ var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid="+identificador+"&tipo="+tipo +"&literaltipo="+literaltipo
+ if(idu!=null && idu==1) wurl+="&iduniversidad="+idu
+ window.open(wurl,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de insertar un nuevo grupo
+// Par�etros:
+// - resul: resultado de la operaci�(true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un s�o un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_grupos(resul,descrierror,nwid,tablanodo){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ if (!resul){ // Ha habido algn error en la inserci�
+ alert(descrierror)
+ return
+ }
+ InsertaNodo(currentNodo,tablanodo);
+}
+//________________________________________________________________________________________________________
+//
+// Modifica el nombre de un grupo
+//________________________________________________________________________________________________________
+function modificar_grupos(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var literaltipo=currentNodo.toma_sufijo()
+ wurl="../propiedades/propiedades_grupos.php?opcion="+op_modificacion+"&idgrupo="+identificador+"&literaltipo="+literaltipo
+ window.open(wurl,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar el nombre de un grupo de aulas
+// Par�etros:
+// - resul: resultado de la operaci� ( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_grupos(resul,descrierror,lit){
+ if (!resul){
+ alert(descrierror);
+ return;
+ }
+ currentNodo.pone_infonodo(lit);
+ alert(CTbMsg[2]);
+}
+//________________________________________________________________________________________________________
+//
+// Elimina un grupo
+//________________________________________________________________________________________________________
+function eliminar_grupos(){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ if (currentNodo.TieneHijos()){
+ var resul=window.confirm(CTbMsg[0]);
+ if (!resul)return;
+ }
+ var identificador=currentNodo.toma_identificador();
+ var literaltipo=currentNodo.toma_sufijo();
+ wurl="../propiedades/propiedades_grupos.php?opcion="+op_eliminacion+"&idgrupo="+identificador+"&literaltipo="+literaltipo;
+ window.open(wurl,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un grupo
+// Par�etros:
+// - resul: resultado de la operaci� ( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro
+//________________________________________________________________________________________________________
+function resultado_eliminar_grupos(resul,descrierror,id){
+ if (!resul){
+ alert(descrierror);
+ return
+ }
+ var nvp=currentNodo.PapaNodo();
+ var ncel=nvp.CeldaVista;
+ EliminaNodo(currentNodo) // Elimina el nodo del árbol
+ var nwcurrentNodo=TomaDatosNodo(ncel);
+ resalta(nwcurrentNodo);
+ alert(CTbMsg[3]);
+}
+//________________________________________________________________________________________________________
+//
+// Muestra el formulario de captura de datos para insertar
+//________________________________________________________________________________________________________
+function insertar(l,t,w,h,pages,swi,idu){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ var literaltipo=currentNodo.toma_sufijo()
+ if(swi!=null && swi==1) identificador=0; // Nodos directos (sin pertenencia a grupo)
+ if(identificador==null) identificador=0;
+
+ if(literaltipo==LITAMBITO_AULAS){ // Nuevo grupo de ordenador hijo de un aula
+ if( pages=="../propiedades/propiedades_ordenadores.php")
+ var whref="../propiedades/propiedades_ordenadores.php?opcion="+op_alta+"&grupoid=0"+"&idaula="+identificador;
+ else
+ var whref=pages+"&opcion="+op_alta+"&idambito="+identificador;;
+ }
+ else{
+ if(literaltipo==LITAMBITO_GRUPOSORDENADORES) // Nuevo grupo de ordendor hijo de un grupo de ordenadores
+ var whref="../propiedades/propiedades_ordenadores.php?opcion="+op_alta+"&grupoid="+identificador+"&idaula=0"
+ else{
+ var auxsplit= pages.split('?'); // La variable pages lleva parametros
+ if(auxsplit[1]!=null)
+ var whref=pages+"&";
+ else
+ var whref=pages+"?";
+ whref+="opcion="+op_alta+"&grupoid="+identificador;
+ }
+ }
+ if(idu!=null){
+ switch(idu){
+ case 1:
+ whref+="&iduniversidad="+idu;
+ break;
+ case 2:
+ whref+="&identidad="+identificador;
+
+ break;
+ case 3:
+ whref+="&idambito="+identificador;
+ break;
+ }
+ }
+ window.open(whref,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de insertar datos
+// Par�etros:
+// - resul: resultado de la operaci�(true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un s�o un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar(resul,descrierror,nwid,tablanodo){
+ if (!resul){
+ alert(descrierror);
+ }
+ InsertaNodo(currentNodo,tablanodo);
+ alert(CTbMsg[4]);
+}
+//________________________________________________________________________________________________________
+//
+// Muestra el formulario de captura de datos para modificaci�
+//________________________________________________________________________________________________________
+function modificar(l,t,w,h,pages){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador()
+ if (!identificador) identificador=0;
+ var whref=pages+"?opcion="+op_modificacion+"&identificador="+identificador;
+ window.open(whref,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar datos
+// Par�etros:
+// - resul: resultado de la operaci� ( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar(resul,descrierror,lit){
+ if (!resul){
+ alert(descrierror);
+ return;
+ }
+ currentNodo.pone_infonodo(lit);
+ alert(CTbMsg[5]);
+}
+//________________________________________________________________________________________________________
+//
+// Muestra el formulario de captura de datos para eliminaci�
+//________________________________________________________________________________________________________
+function eliminar(l,t,w,h,pages){
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var identificador=currentNodo.toma_identificador();
+ var whref=pages+"?opcion="+op_eliminacion+"&identificador="+identificador;
+ window.open(whref,"frame_contenidos");
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un grupo
+// Par�etros:
+// - resul: resultado de la operaci� ( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro
+//________________________________________________________________________________________________________
+function resultado_eliminar(resul,descrierror,id){
+ if (!resul){
+ alert(descrierror);
+ return
+ }
+ var nvp=currentNodo.PapaNodo();
+ var ncel=nvp.CeldaVista;
+ EliminaNodo(currentNodo) // Elimina el nodo del árbol
+ var nwcurrentNodo=TomaDatosNodo(ncel);
+ resalta(nwcurrentNodo);
+ alert(CTbMsg[6]);
+}
+//________________________________________________________________________________________________________
+//
+// Copia al buffer un nodo para moverlo posteriormente
+//________________________________________________________________________________________________________
+function mover(tipo){
+ reset_contextual(-1,-1)
+ corte_currentNodo=currentNodo
+ currentTipo=tipo
+}
+//________________________________________________________________________________________________________
+//
+// Mueve de sitio un nodo desde un grupo a otro o a la raiz
+//________________________________________________________________________________________________________
+function colocar(pages,tipo){
+ reset_contextual(-1,-1);
+ if (!corte_currentNodo || tipo!=currentTipo) {
+ alert(CTbMsg[7]);
+ corte_currentNodo=null
+ currentTipo=null;
+ return
+ }
+ var identificadorgrupo=currentNodo.toma_identificador();
+ if (!identificadorgrupo) identificadorgrupo=0
+ var identificador=corte_currentNodo.toma_identificador();
+ if (!identificador) identificador=0 // Se trata de la raiz
+ var wurl=pages;
+ var prm="opcion="+op_movida+"&grupoid="+identificadorgrupo+"&identificador="+identificador;
+ CallPage(wurl,prm,"retornoColocar","POST");
+}
+//______________________________________________________________________________________________________
+function retornoColocar(iHTML){
+ //alert(iHTML)
+ if(iHTML.length>0){
+ eval(iHTML)
+ }
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de cambiar un nodo de sitio
+// Par�etros:
+// - resul: resultado de la operaci�( true si tuvo �ito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro
+//________________________________________________________________________________________________________
+function resultado_mover(resul,descrierror,id){
+ if (!resul){
+ alert(descrierror)
+ return
+ }
+ var ncel=corte_currentNodo.CeldaVista;
+ var celdaHTML=ncel.parentNode.innerHTML; // Recupera celda del nodo
+
+ if(IE)
+ var patron = new RegExp("<TD width=16><SPAN><IMG","gi")
+ else
+ if(NS)
+ var patron = new RegExp("<TD width=\"16px\"><SPAN><IMG","gi")
+
+ var p=celdaHTML.search(patron);
+ if(p<0) return // Ha habido algn problema
+ var nwceldaHTML='<TABLE border="0" cellspacing="0" cellpadding="0"><TBODY><TR height=16><TD width=3></TD>';
+ nwceldaHTML+=celdaHTML.substring(p);
+ InsertaNodo(currentNodo,nwceldaHTML);
+ EliminaNodo(corte_currentNodo) // Elimina el nodo
+ corte_currentNodo=null;
+}
+//________________________________________________________________________________________________________
+//
+// Esta funci� muestra un menu contextual
+// Los par�etros recibidos son:
+// - o: Objeto TD literal del nodo
+// - idmnctx: Identificador del DIV que contiene el menu contextual
+//________________________________________________________________________________________________________
+function menu_contextual(o,idmnctx){
+ var menuctx=document.getElementById(idmnctx); // Toma objeto DIV
+ if(o!=null)
+ clickLiteralNodo(o);
+ muestra_contextual(ClickX,ClickY,menuctx) // muestra menu
+}
+//________________________________________________________________________________________________________
+//
+// Calcula el codigo ambito a partir del literal
+//________________________________________________________________________________________________________
+function calAmbito(literal)
+{
+ var ambito;
+ switch(literal){
+ case LITAMBITO_CENTROS :
+ ambito=AMBITO_CENTROS;
+ break;
+ case LITAMBITO_GRUPOSAULAS :
+ ambito=AMBITO_GRUPOSAULAS;
+ break;
+ case LITAMBITO_AULAS :
+ ambito=AMBITO_AULAS;
+ break;
+ case LITAMBITO_GRUPOSORDENADORES :
+ ambito=AMBITO_GRUPOSORDENADORES;
+ break;
+ case LITAMBITO_ORDENADORES :
+ ambito=AMBITO_ORDENADORES;
+ break;
+ }
+ return(ambito);
+}
+//________________________________________________________________________________________________________
+//
+// Comprueba si un dato es numérico
+//________________________________________________________________________________________________________
+
+function IsNumeric(sText)
+{
+ var ValidChars = "0123456789.";
+ var IsNumber=true;
+ var Char;
+
+
+ for (i = 0; i < sText.length && IsNumber == true; i++)
+ {
+ Char = sText.charAt(i);
+ if (ValidChars.indexOf(Char) == -1)
+ {
+ IsNumber = false;
+ }
+ }
+ return IsNumber;
+
+}
diff --git a/admin/WebConsole/jscripts/configuracionaula.js b/admin/WebConsole/jscripts/configuracionaula.js
new file mode 100644
index 00000000..1fdb3c3f
--- /dev/null
+++ b/admin/WebConsole/jscripts/configuracionaula.js
@@ -0,0 +1,93 @@
+// ************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: configuracionaula.js
+// Este fichero implementa las funciones javascript del fichero configuracionaula.php
+// ************************************************************************
+
+var currentOrdenador=null // Ordenador elegido
+var currentNombreordenador=null // Nombre del ordenador
+
+// Código de los ambitos
+
+var AMBITO_ORDENADORES=0x10;
+
+// Literales de los ambitos
+
+var LITAMBITO_ORDENADORES="ordenadores";
+//____________________________________________________________________________
+//
+// Esta función muestra un menu contextual
+//____________________________________________________________________________
+function resalta(id,nom,nomflo){
+ currentOrdenador=id
+ currentNombreordenador=nom
+ var menuctx=document.getElementById(nomflo); // El menu contextual
+ muestra_contextual(event.clientX,event.clientY,menuctx) // muestra menu
+ event.returnValue=false // Cancela efectos del evento
+}
+//____________________________________________________________________________
+//
+// Esta función muestra los comandos a elegir para su ejecución
+//____________________________________________________________________________
+function confirmarcomando(ambito,idc,interac){
+ reset_contextual(-1,-1);
+ var ambito;
+ var idambito;
+ var nombreambito;
+
+ ambito=AMBITO_ORDENADORES
+ idambito=currentOrdenador;
+ nombreambito=currentNombreordenador
+
+ var identificador=idc // identificador del comando
+ var tipotrama='CMD'
+ var wurl="../principal/dialogostramas.php?identificador="+identificador+"&tipotrama="+tipotrama+"&ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ if(interac==0){
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la página gestora
+ }
+ else
+ window.open(wurl,"frame_contenidos")
+}
+//____________________________________________________________________________
+//
+// Esta función muestra las colas de acciones
+//____________________________________________________________________________
+function cola_acciones(tipoaccion){
+ reset_contextual(-1,-1);
+ var ambito;
+ var idambito;
+ var nombreambito;
+
+ ambito=AMBITO_ORDENADORES
+ idambito=currentOrdenador;
+ nombreambito=currentNombreordenador;
+
+ var wurl="../principal/colasacciones.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito+"&tipocola="+tipoaccion
+ window.open(wurl,"frame_contenidos")
+}
+//____________________________________________________________________________
+//
+// Esta función muestra la configuración de los ordenadores de un configuracionaula
+// objeto de argumentos de eventos:
+// Especificaciones:
+// El objeto e tiene las siguientes atributos o propiedades:
+// - literalnodo: El literal del nodo
+// - idnodo: El identificador del nodo
+//____________________________________________________________________________
+function configuraciones(ambito){
+ var identificador=currentOrdenador;
+ switch(ambito){
+ case AMBITO_configuracionaulaS:
+ var identificador=currentconfiguracionaula;
+ wurl="configuracionconfiguracionaula.php?idconfiguracionaula="+identificador
+ window.open(wurl,"frame_contenidos")
+ break;
+ case AMBITO_ORDENADORES:
+ var identificador=currentOrdenador;
+ wurl="configuracionordenador.php?idordenador="+identificador
+ window.open(wurl,"frame_contenidos")
+ break;
+ }
+}
diff --git a/admin/WebConsole/jscripts/configuraciones.js b/admin/WebConsole/jscripts/configuraciones.js
new file mode 100644
index 00000000..1fdb3c3f
--- /dev/null
+++ b/admin/WebConsole/jscripts/configuraciones.js
@@ -0,0 +1,93 @@
+// ************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: configuracionaula.js
+// Este fichero implementa las funciones javascript del fichero configuracionaula.php
+// ************************************************************************
+
+var currentOrdenador=null // Ordenador elegido
+var currentNombreordenador=null // Nombre del ordenador
+
+// Código de los ambitos
+
+var AMBITO_ORDENADORES=0x10;
+
+// Literales de los ambitos
+
+var LITAMBITO_ORDENADORES="ordenadores";
+//____________________________________________________________________________
+//
+// Esta función muestra un menu contextual
+//____________________________________________________________________________
+function resalta(id,nom,nomflo){
+ currentOrdenador=id
+ currentNombreordenador=nom
+ var menuctx=document.getElementById(nomflo); // El menu contextual
+ muestra_contextual(event.clientX,event.clientY,menuctx) // muestra menu
+ event.returnValue=false // Cancela efectos del evento
+}
+//____________________________________________________________________________
+//
+// Esta función muestra los comandos a elegir para su ejecución
+//____________________________________________________________________________
+function confirmarcomando(ambito,idc,interac){
+ reset_contextual(-1,-1);
+ var ambito;
+ var idambito;
+ var nombreambito;
+
+ ambito=AMBITO_ORDENADORES
+ idambito=currentOrdenador;
+ nombreambito=currentNombreordenador
+
+ var identificador=idc // identificador del comando
+ var tipotrama='CMD'
+ var wurl="../principal/dialogostramas.php?identificador="+identificador+"&tipotrama="+tipotrama+"&ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito
+ if(interac==0){
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la página gestora
+ }
+ else
+ window.open(wurl,"frame_contenidos")
+}
+//____________________________________________________________________________
+//
+// Esta función muestra las colas de acciones
+//____________________________________________________________________________
+function cola_acciones(tipoaccion){
+ reset_contextual(-1,-1);
+ var ambito;
+ var idambito;
+ var nombreambito;
+
+ ambito=AMBITO_ORDENADORES
+ idambito=currentOrdenador;
+ nombreambito=currentNombreordenador;
+
+ var wurl="../principal/colasacciones.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito+"&tipocola="+tipoaccion
+ window.open(wurl,"frame_contenidos")
+}
+//____________________________________________________________________________
+//
+// Esta función muestra la configuración de los ordenadores de un configuracionaula
+// objeto de argumentos de eventos:
+// Especificaciones:
+// El objeto e tiene las siguientes atributos o propiedades:
+// - literalnodo: El literal del nodo
+// - idnodo: El identificador del nodo
+//____________________________________________________________________________
+function configuraciones(ambito){
+ var identificador=currentOrdenador;
+ switch(ambito){
+ case AMBITO_configuracionaulaS:
+ var identificador=currentconfiguracionaula;
+ wurl="configuracionconfiguracionaula.php?idconfiguracionaula="+identificador
+ window.open(wurl,"frame_contenidos")
+ break;
+ case AMBITO_ORDENADORES:
+ var identificador=currentOrdenador;
+ wurl="configuracionordenador.php?idordenador="+identificador
+ window.open(wurl,"frame_contenidos")
+ break;
+ }
+}
diff --git a/admin/WebConsole/jscripts/consolaremota.js b/admin/WebConsole/jscripts/consolaremota.js
new file mode 100644
index 00000000..b5f78ba8
--- /dev/null
+++ b/admin/WebConsole/jscripts/consolaremota.js
@@ -0,0 +1,64 @@
+var sw=0;
+var ambito;
+//______________________________________________________________________________________________________
+function confirmar()
+{
+ ambito=document.fdatos.ambito.value;
+ if(ambito==AMBITO_ORDENADORES){
+ var diveco=document.getElementById("diveco"); // Contenedor de salida de cdigo
+ diveco.innerHTML="&nbsp"; //
+ }
+ var Obtcmd=document.getElementById("comando");
+ var cmd=Obtcmd.value;
+ conmuta("visible");
+ sw=1;
+ enviaMsg(cmd);
+}
+//______________________________________________________________________________________________________
+function enviaMsg(cmd)
+{
+ var idambito=document.fdatos.idambito.value;
+ var litambito=document.fdatos.litambito.value;
+ ambito=document.fdatos.ambito.value;
+
+ switch(sw){
+ case 1:
+ var urlRetorno="resultadocmd";
+ var wurl="ecoconsola.php";
+ var prm="idambito="+idambito+"&ambito="+ambito+"&comando="+cmd+"&sw="+sw;
+ break;
+ case 2:
+ var urlRetorno="resultadoeco";
+ var wurl="ecoconsola.php";
+ var prm="idambito="+idambito+"&ambito="+ambito+"&sw="+sw;
+ break;
+ }
+ CallPage(wurl,prm,urlRetorno,"POST");
+}
+//______________________________________________________________________________________________________
+function resultadocmd(resul){
+ if(resul==1){ // Si todo va bien se llama a la funcin que recupera elfichero de eco
+ //alert(TbMsg[1])
+ if(ambito==AMBITO_ORDENADORES){
+ sw=2;
+ enviaMsg(null);
+ }
+ }
+ else
+ alert(TbMsg[0])
+}
+//______________________________________________________________________________________________________
+function resultadoeco(resul){
+ if(resul.length>0){
+ var diveco=document.getElementById("diveco");
+ diveco.innerHTML="<PRE>"+resul+"</PRE>";
+ conmuta("hidden");
+ }
+ setTimeout("enviaMsg()",5000);
+}
+//______________________________________________________________________________________________________
+function conmuta(estado){
+ var layavi=document.getElementById("layer_aviso");
+ if(layavi)
+ layavi.style.visibility=estado;
+}
diff --git a/admin/WebConsole/jscripts/constantes.js b/admin/WebConsole/jscripts/constantes.js
new file mode 100644
index 00000000..59315348
--- /dev/null
+++ b/admin/WebConsole/jscripts/constantes.js
@@ -0,0 +1,118 @@
+// *************************************************************************************************************************************************
+// 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: Marzo005
+// Nombre del fichero: constantes.js
+// Descripción :
+// Este fichero declara variables de uso comun
+// *************************************************************************************************************************************************
+// Código de los ambitos para comandos
+var AMBITO_CENTROS=0x01;
+var AMBITO_GRUPOSAULAS=0x02;
+var AMBITO_AULAS=0x04;
+var AMBITO_GRUPOSORDENADORES=0x08;
+var AMBITO_ORDENADORES=0x10;
+
+// Código del resto de ámbitos
+var AMBITO_IMAGENES=0x20;
+var AMBITO_PROCEDIMIENTOS=0x21;
+var AMBITO_TAREAS=0x22;
+var AMBITO_TRABAJOS=0x23;
+var AMBITO_COMPONENTESHARD=0x24;
+var AMBITO_COMPONENTESSOFT=0x25;
+var AMBITO_PERFILESHARD=0x26;
+var AMBITO_PERFILESSOFT=0x27;
+var AMBITO_MENUS=0x28;
+var AMBITO_SERVIDORESREMBO=0x29;
+var AMBITO_SERVIDORESDHCP=0x30;
+var AMBITO_RESERVAS=0x30;
+var AMBITO_SOFTINCREMENTAL=0x31;
+var AMBITO_RESERVAS=0x32;
+
+// Código del resto de ambitos( grupos )
+var AMBITO_GRUPOSIMAGENES=0x31;
+var AMBITO_GRUPOSPROCEDIMIENTOS=0x32;
+var AMBITO_GRUPOSTAREAS=0x33;
+var AMBITO_GRUPOSTRABAJOS=0x34;
+var AMBITO_GRUPOSCOMPONENTESHARD=0x35;
+var AMBITO_GRUPOSCOMPONENTESSOFT=0x36;
+var AMBITO_GRUPOSPERFILESHARD=0x37;
+var AMBITO_GRUPOSPERFILESSOFT=0x38;
+var AMBITO_GRUPOSMENUS=0x39;
+var AMBITO_GRUPOSSERVIDORESREMBO=0x40;
+var AMBITO_GRUPOSSERVIDORESDHCP=0x41;
+var AMBITO_GRUPOSSOFTINCREMENTAL=0x43;
+var AMBITO_GRUPOSRESERVAS=0x44;
+
+// Literales de los ambitos
+var LITAMBITO_CENTROS="centros";
+var LITAMBITO_AULAS="aulas";
+var LITAMBITO_ORDENADORES="ordenadores";
+var LITAMBITO_IMAGENES="imagenes";
+var LITAMBITO_PROCEDIMIENTOS="procedimientos";
+var LITAMBITO_TAREAS="tareas";
+var LITAMBITO_TRABAJOS="trabajos";
+var LITAMBITO_COMPONENTESHARD="componeneteshard";
+var LITAMBITO_COMPONENTESSOFT="componenetessoft";
+var LITAMBITO_PERFILESHARD="perfileshard";
+var LITAMBITO_PERFILESSOFT="perfilessoft";
+var LITAMBITO_MENUS="menus";
+var LITAMBITO_SERVIDORESREMBO="servidoresrembo";
+var LITAMBITO_SERVIDORESDHCP="servidoresrembo";
+ var LITAMBITO_SOFTINCREMENTAL="softincremental";
+ var LITAMBITO_RESERVAS="reservas";
+
+// Literales de los ambitos ( Grupos )
+var LITAMBITO_GRUPOSAULAS="gruposaulas";
+var LITAMBITO_GRUPOSORDENADORES="gruposordenadores";
+var LITAMBITO_GRUPOSIMAGENES="gruposimagenes";
+var LITAMBITO_GRUPOSPROCEDIMIENTOS="gruposprocedimientos";
+var LITAMBITO_GRUPOSTAREAS="grupostareas";
+var LITAMBITO_GRUPOSTRABAJOS="grupostrabajos";
+var LITAMBITO_GRUPOSCOMPONENTESHARD="gruposcomponenteshard";
+var LITAMBITO_GRUPOSCOMPONENTESSOFT="gruposcomponentessoft";
+var LITAMBITO_GRUPOSPERFILESHARD="gruposperfileshard";
+var LITAMBITO_GRUPOSPERFILESSOFT="gruposperfilessoft";
+var LITAMBITO_GRUPOSMENUS="gruposmenus";
+var LITAMBITO_GRUPOSSERVIDORESREMBO="gruposervidorrembo";
+var LITAMBITO_GRUPOSSERVIDORESDHCP="gruposervidordhcp";
+var LITAMBITO_GRUPOSSOFTINCREMENTAL="grupossoftincremental";
+var LITAMBITO_GRUPOSRESERVAS="gruposreservas";
+
+// Código de los tipo de acciones
+var EJECUCION_COMANDO=0x0001;
+var EJECUCION_PROCEDIMIENTO=0x0002;
+var EJECUCION_TAREA=0x0003;
+var EJECUCION_RESERVA=0x0004;
+var EJECUCION_AUTOEXEC=0x0005;
+
+var ACCION_INICIADA=1; // Acción activa
+var ACCION_DETENIDA=2; // Acción momentanemente parada
+var ACCION_FINALIZADA=3; // Acción finalizada
+
+var ACCION_SINRESULTADO=0; // Sin resultado
+var ACCION_EXITOSA=1; // Finalizada con exito
+var ACCION_FALLIDA=2; // Finalizada con errores
+
+var LITACCION_FALLIDA="Acción CANCELADA manualmente";
+var LITACCION_EXITOSA="Acción TERMINADA manualmente";
+
+var corte_currentNodo=null;
+var currentTipo=null;
+var currentLitTipo=null;
+
+var RESERVA_CONFIRMADA=1; // Reserva confirmada
+var RESERVA_PENDIENTE=2; // Reserva pendiente
+var RESERVA_DENEGADA=3; // Reserva denegada
+
+var SUPERADMINISTRADOR=1; // administrador de la aplicación
+var ADMINISTRADOR=2; // administrador de Centro
+var OPERADOR=3; // operador de aula
+
+// Código de los tipos de mensajes
+var MSG_COMANDO=0x01; // Mensaje del tipo comando
+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
diff --git a/admin/WebConsole/jscripts/ecoremoto.js b/admin/WebConsole/jscripts/ecoremoto.js
new file mode 100644
index 00000000..78d05220
--- /dev/null
+++ b/admin/WebConsole/jscripts/ecoremoto.js
@@ -0,0 +1,23 @@
+//______________________________________________________________________________________________________
+function enviaping(){
+ var idambito=document.fdatos.idambito.value;
+ var litambito=document.fdatos.litambito.value;
+ var wurl="ecoconsola.php";
+ var prm="idambito="+idambito+"&ambito="+AMBITO_ORDENADORES+"&sw=2";
+ CallPage(wurl,prm,"retorno","POST");
+ setTimeout("enviaping();",5000);
+}
+//______________________________________________________________________________________________________
+function retorno(iHTML){
+ if(iHTML.length>0){
+ var diveco=document.getElementById("diveco");
+ diveco.innerHTML="<PRE>"+iHTML+"</PRE>";
+ //setTimeout('conmuta("hidden");',300);
+ //conmuta("hidden");
+ }
+}
+//______________________________________________________________________________________________________
+function conmuta(estado){
+ var layavi=document.getElementById("layer_aviso");
+ layavi.style.visibility=estado;
+}
diff --git a/admin/WebConsole/jscripts/ejecutaracciones.js b/admin/WebConsole/jscripts/ejecutaracciones.js
new file mode 100644
index 00000000..94a108c1
--- /dev/null
+++ b/admin/WebConsole/jscripts/ejecutaracciones.js
@@ -0,0 +1,51 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación:2003-2005
+// Fecha Última modificación: abril-2005
+// Nombre del fichero: ejecutarprocedimientos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero ejecutarprocedimientos.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+//
+// Envía un comando para su ejecución o lo incorpora como procedimientos inicial (Autoexec)
+//________________________________________________________________________________________________________
+function gestion(op)
+{
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var resul=window.confirm(TbMsg[0]);
+ if (!resul) return
+ var ambito=document.fdatos.ambito.value
+ var idambito=document.fdatos.idambito.value
+ var idprocedimiento=currentNodo.toma_identificador() // identificador del ambito
+ var procedimiento=currentNodo.toma_infonodo() // Nombre del procedimiento
+
+ /* LLamada a la gestión */
+ var wurl="../gestores/gestor_ejecutaracciones.php";
+ var prm="opcion="+op+"&ambito="+ambito+"&idambito="+idambito+"&idprocedimiento="+idprocedimiento+"&descriprocedimiento="+procedimiento;
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul)
+{
+ //alert(resul)
+ if(resul.length>0)
+ eval(resul);
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de ejecutar un procedimiento sobre un ámbito
+// Parámetros:
+// - resul: resultado de la operación( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+//________________________________________________________________________________________________________
+function resultado_gestion_procedimiento(resul,descrierror){
+ if (!resul){ // Ha habido algún error en la ejecución
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+ location.href="../nada.php";
+}
+
diff --git a/admin/WebConsole/jscripts/hardwares.js b/admin/WebConsole/jscripts/hardwares.js
new file mode 100644
index 00000000..21c76639
--- /dev/null
+++ b/admin/WebConsole/jscripts/hardwares.js
@@ -0,0 +1,28 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: hardwares.js
+// Este fichero implementa las funciones javascript del fichero hardwares.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+//
+// Muestra formulario para gestionar los componentes incluidos en un perfil hardware
+//________________________________________________________________________________________________________
+function insertar_perfilcomponente(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionperfil=currentNodo.toma_infonodo();
+ var whref="../varios/perfilcomponente_hard.php?idperfilhard="+identificador+"&descripcionperfil="+descripcionperfil
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra información sobre los perfiles hardware
+//________________________________________________________________________________________________________
+function muestra_informacion(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionperfil=currentNodo.toma_infonodo();
+ var whref="../varios/informacion_perfileshardware.php?idperfil="+identificador+"&descripcionperfil="+descripcionperfil
+ window.open(whref,"frame_contenidos")
+} \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/imagenes.js b/admin/WebConsole/jscripts/imagenes.js
new file mode 100644
index 00000000..9a2d2a6f
--- /dev/null
+++ b/admin/WebConsole/jscripts/imagenes.js
@@ -0,0 +1,28 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: imagenes.js
+// Este fichero implementa las funciones javascript del fichero imagenes.php
+// *************************************************************************************************************************************************
+//___________________________________________________________________________________________________________
+//
+// Muestra información sobre las imágenes
+//___________________________________________________________________________________________________________
+function muestra_informacion(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionimagen=currentNodo.toma_infonodo()
+ var whref="../varios/informacion_imagenes.php?idimagen="+identificador+"&descripcionimagen="+descripcionimagen
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra formulario para gestionar el software incremental incluido en una imagen
+//________________________________________________________________________________________________________
+function insertar_imagenincremental(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionimagen=currentNodo.toma_infonodo()
+ var whref="../varios/imagenincremental.php?idimagen="+identificador+"&descripcionimagen="+descripcionimagen
+ window.open(whref,"frame_contenidos")
+}
diff --git a/admin/WebConsole/jscripts/imagenincremental.js b/admin/WebConsole/jscripts/imagenincremental.js
new file mode 100644
index 00000000..5fe7483c
--- /dev/null
+++ b/admin/WebConsole/jscripts/imagenincremental.js
@@ -0,0 +1,35 @@
+// *************************************************************************************************************************************************
+// 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: imagenincremental.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero imagenincremental.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+function gestion_componente(id,o){
+ idimagen=document.fdatos.idimagen.value
+ if (o.checked)
+ var wurl="../gestores/gestor_imagenincremental.php?opcion="+op_alta+"&idimagen="+idimagen+"&idsoftincremental="+id
+ else
+ var wurl="../gestores/gestor_imagenincremental.php?opcion="+op_eliminacion+"&idimagen="+idimagen+"&idsoftincremental="+id
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la página gestora
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_imagenincremental(resul,descrierror,nwid,tablanodo){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_imagenincremental(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/inclusionacciones.js b/admin/WebConsole/jscripts/inclusionacciones.js
new file mode 100644
index 00000000..3fd18c19
--- /dev/null
+++ b/admin/WebConsole/jscripts/inclusionacciones.js
@@ -0,0 +1,87 @@
+// *******************************************************************************************************
+// 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: inclusionacciones.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero inclusionacciones.php
+// ********************************************************************************************************
+ var ichk,iorden,iimg;
+ var altas,bajas,modificaciones;
+//________________________________________________________________________________________________________
+
+function confirmar()
+{
+ altas=bajas=modificaciones="";
+ var conTR=document.fdatos.conTR.value; // Toma número de filas
+ setIndices();
+ for(var i=0;i<conTR;i++){
+ var oTR=document.getElementById("TR-"+i);
+ if(oTR){
+ var identificador=oTR.getAttribute('value');
+ var objChk=oTR.childNodes[ichk].childNodes[0];
+ var std=objChk.value; // Estado original del checkbox 1=seleccionado 0=No seleccionado
+ var objOrden=oTR.childNodes[iorden].childNodes[0];
+ var aorden=objOrden.getAttribute('id'); // Valor originario del orden
+ var orden=objOrden.value;
+ if(objChk.checked){
+ /* Control de errores */
+ if(orden=="" || orden<0 || !IsNumeric(orden)){
+ alert(TbMsg[1]);
+ objOrden.focus();
+ return(false);
+ }
+ /* Compone parametros */
+ if(std>0){ // Originalmente estaba seleccionado, se trata de una modificación
+ if(aorden!=orden) // Si se ha cambiado el orden
+ modificaciones+=identificador+","+orden+";";
+ }
+ else{
+ var objImg=oTR.childNodes[iimg].childNodes[0];
+ var tipoaccion=objImg.getAttribute('value');
+ altas+=identificador+","+orden+","+tipoaccion+";";
+ }
+ }
+ else{ // Baja
+ if(std>0){ // Si originariamente estaba marcado se trata de una baja
+ bajas+=identificador+";";
+ }
+ }
+ }
+ }
+ /* LLamada a la gestión */
+ var wurl="../gestores/gestor_inclusionacciones.php";
+ var prm="tipoaccion="+document.fdatos.tipoaccion.value+"&idtipoaccion="+document.fdatos.idtipoaccion.value
+ prm+="&altas="+altas+"&bajas="+bajas+"&modificaciones="+modificaciones;
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//________________________________________________________________________________________________________
+
+ function retornoGestion(ret)
+ {
+ //alert(ret);
+ eval(ret);
+ }
+//________________________________________________________________________________________________________
+
+function resultado_gestion_inclusionacciones(resul,descrierror)
+{
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[2])
+ location.href="../nada.php";
+}
+//______________________________________________________________________________________________________
+//
+// Configura indices para acceo a nodos
+//______________________________________________________________________________________________________
+
+ function setIndices()
+ {
+ ichk=0;
+ iorden=ichk+1;
+ iimg=iorden+1;
+ } \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/incrementalcomponente_soft.js b/admin/WebConsole/jscripts/incrementalcomponente_soft.js
new file mode 100644
index 00000000..cde17356
--- /dev/null
+++ b/admin/WebConsole/jscripts/incrementalcomponente_soft.js
@@ -0,0 +1,35 @@
+// *************************************************************************************************************************************************
+// 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: incrementalcomponente_soft.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero incrementalcomponente_soft.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+function gestion_componente(id,o){
+ idincremental=document.fdatos.idsoftincremental.value
+ if (o.checked)
+ var wurl="../gestores/gestor_incrementalcomponente_soft.php?opcion="+op_alta+"&idsoftincremental="+idincremental+"&idsoftware="+id
+ else
+ var wurl="../gestores/gestor_incrementalcomponente_soft.php?opcion="+op_eliminacion+"&idsoftincremental="+idincremental+"&idsoftware="+id
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la página gestora
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_incrementalcomponente_soft(resul,descrierror,nwid,tablanodo){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_incrementalcomponente_soft(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/informacion_menus.js b/admin/WebConsole/jscripts/informacion_menus.js
new file mode 100644
index 00000000..d458cd11
--- /dev/null
+++ b/admin/WebConsole/jscripts/informacion_menus.js
@@ -0,0 +1,85 @@
+// *************************************************************************************************************************************************
+// 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: informacion_menus.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero informacion_menus.php
+// *************************************************************************************************************************************************
+var currentItem=null // Item elegido
+var ITEM_PUBLICO=1;
+var ITEM_PRIVADO=2;
+//____________________________________________________________________________
+//
+// Recupera el navegador utilizado
+//____________________________________________________________________________
+var IE=(navigator.appName=="Microsoft Internet Explorer");
+var NS=(navigator.appName=="Netscape");
+//________________________________________________________________________________________________________
+function eliminar_item(){
+ reset_contextual(-1,-1)
+ var resul=window.confirm(TbMsg[0]);
+ if (!resul)return
+ var idaccionmenu=currentNodo.toma_identificador()
+ var wurl="../gestores/gestor_accionmenu.php?opcion="+op_eliminacion+"&idaccionmenu="+idaccionmenu
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la p�ina gestora
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_accionmenu(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algn error en la eliminaci�
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+ eliminar_nodo(currentNodo) // Elimina el nodo del árbol
+}
+//________________________________________________________________________________________________________
+function modificar_items(){
+ reset_contextual(-1,-1)
+ var tipoitem=currentNodo.toma_identificador()
+ var idmenu=document.fdatos.idmenu.value;
+ if(tipoitem==ITEM_PUBLICO)
+ var contitem=document.fdatos.contitempub.value;
+ else
+ var contitem=document.fdatos.contitempri.value;
+ var alto=230+contitem*32
+ if (alto>600) alto=600
+ var descripcionaccion=currentNodo.toma_infonodo() // nombre del ordenador
+ var whref="../varios/accionmenu.php?tipoitem="+tipoitem+"&idmenu="+idmenu+"&descripcionaccion="+descripcionaccion
+ var opciones = "dialogWidth:600px;dialogHeight:"+alto+"px;"
+ opciones += "resizable:yes;scroll:no;status:no;";
+ opciones += "dialogLeft:170px;dialogTop:150px";
+ retorno=window.showModalDialog(whref,"",opciones);
+ if (retorno!=null){
+ var splitRetorno=retorno.split("\t")
+ var resul=splitRetorno[0]
+ var descrierror=splitRetorno[1]
+ if (!resul){ // Ha habido algn error en la inserci�
+ alert(descrierror)
+ return
+ }
+ }
+}
+//________________________________________________________________________________________________________
+function modificar_item(){
+ reset_contextual(-1,-1)
+ var idaccionmenu=currentNodo.toma_identificador()
+ var idmenu=document.fdatos.idmenu.value;
+ var descripcionaccion=currentNodo.toma_infonodo() // nombre del ordenador
+ var whref="../varios/accionmenu.php?idaccionmenu="+idaccionmenu+"&idmenu="+idmenu+"&descripcionaccion="+descripcionaccion
+ var opciones = "dialogWidth:600px;dialogHeight :300px;"
+ opciones += "resizable:yes;scroll:no;status:no;";
+ opciones += "dialogLeft:170px;dialogTop:150px";
+ retorno=window.showModalDialog(whref,"",opciones);
+ if (retorno!=null){
+ var splitRetorno=retorno.split("\t")
+ var resul=splitRetorno[0]
+ var descrierror=splitRetorno[1]
+ if (!resul){ // Ha habido algn error en la inserci�
+ alert(descrierror)
+ return
+ }
+ }
+}
diff --git a/admin/WebConsole/jscripts/menus.js b/admin/WebConsole/jscripts/menus.js
new file mode 100644
index 00000000..3fbc9add
--- /dev/null
+++ b/admin/WebConsole/jscripts/menus.js
@@ -0,0 +1,29 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: menus.js
+// Este fichero implementa las funciones javascript del fichero menus.php
+// *************************************************************************************************************************************************
+//___________________________________________________________________________________________________________
+//
+// Muestra información sobre los menús y gestiona los items de cada uno de ellos
+//___________________________________________________________________________________________________________
+function muestra_informacion(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionperfil=currentNodo.toma_infonodo()
+ var whref="../varios/informacion_menus.php?idmenu="+identificador+"&descripcionmenu="+descripcionperfil
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Gestiona los items incluidos en un menu
+//________________________________________________________________________________________________________
+function gestionar_items(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionmenu=currentNodo.toma_infonodo()
+ var whref="../varios/accionmenu.php?idmenu="+identificador+"&descripcionmenu="+descripcionmenu
+ window.open(whref,"frame_contenidos")
+}
+
diff --git a/admin/WebConsole/jscripts/opciones.js b/admin/WebConsole/jscripts/opciones.js
new file mode 100644
index 00000000..f950b6fc
--- /dev/null
+++ b/admin/WebConsole/jscripts/opciones.js
@@ -0,0 +1,14 @@
+// *************************************************************************************************************************************************
+// 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: Marzo005
+// Nombre del fichero: opciones.js
+// Descripción :
+// Este fichero declara valores para las opciones
+// *************************************************************************************************************************************************
+var op_alta=1;
+var op_modificacion=2;
+var op_eliminacion=3;
+var op_movida=4;
+var op_ejecucion=5;
diff --git a/admin/WebConsole/jscripts/parametrostrabajos.js b/admin/WebConsole/jscripts/parametrostrabajos.js
new file mode 100644
index 00000000..14b3e0ba
--- /dev/null
+++ b/admin/WebConsole/jscripts/parametrostrabajos.js
@@ -0,0 +1,18 @@
+// ************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: parametrostrabajos.js
+// ************************************************************************
+//____________________________________________________________________________
+//
+// Esta función muestra una tabala de parametros de comandos
+// Los parámetros recibidos son:
+// - id: identificador de la tarea
+//____________________________________________________________________________
+function abre_tablaparametros(id){
+ var oTabla=document.getElementById("tablaparametros-"+id); // Toma objeto DIV
+ if (oTabla.style.display=="block")
+ oTabla.style.display="none";
+ else
+ oTabla.style.display="block"
+}
diff --git a/admin/WebConsole/jscripts/perfilcomponente_hard.js b/admin/WebConsole/jscripts/perfilcomponente_hard.js
new file mode 100644
index 00000000..bb9f9ced
--- /dev/null
+++ b/admin/WebConsole/jscripts/perfilcomponente_hard.js
@@ -0,0 +1,42 @@
+// *************************************************************************************************************************************************
+// 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: perfilcomponente_hard.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero perfilcomponente_hard.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+function gestion_componente(id,o){
+ idperfil=document.fdatos.idperfilhard.value
+ if (o.checked)
+ var opcion=op_alta;
+ else
+ var opcion=op_eliminacion;
+ var wurl="../gestores/gestor_perfilcomponente_hard.php";
+ var prm="opcion="+opcion+"&idperfilhard="+idperfil+"&idhardware="+id
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul)
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_perfilcomponente_hard(resul,descrierror,nwid){
+ if (!resul){ // Ha habido algn error en la inserci�
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_perfilcomponente_hard(resul,descrierror,idh){
+ if (!resul){ // Ha habido algn error en la eliminaci�
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/perfilcomponente_soft.js b/admin/WebConsole/jscripts/perfilcomponente_soft.js
new file mode 100644
index 00000000..68c2c913
--- /dev/null
+++ b/admin/WebConsole/jscripts/perfilcomponente_soft.js
@@ -0,0 +1,42 @@
+// *************************************************************************************************************************************************
+// 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: perfilcomponente_soft.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero perfilcomponente_soft.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+function gestion_componente(id,o){
+ idperfil=document.fdatos.idperfilsoft.value
+ if (o.checked)
+ var opcion=op_alta;
+ else
+ var opcion=op_eliminacion;
+ var wurl="../gestores/gestor_perfilcomponente_soft.php";
+ var prm="opcion="+opcion+"&idperfilsoft="+idperfil+"&idsoftware="+id
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul)
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_insertar_perfilcomponente_soft(resul,descrierror,nwid,tablanodo){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_perfilcomponente_soft(resul,descrierror,idp,idh){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[1])
+}
diff --git a/admin/WebConsole/jscripts/procedimientoscomandos.js b/admin/WebConsole/jscripts/procedimientoscomandos.js
new file mode 100644
index 00000000..2e21b85c
--- /dev/null
+++ b/admin/WebConsole/jscripts/procedimientoscomandos.js
@@ -0,0 +1,78 @@
+// *************************************************************************************************************************************************
+// 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: procedimientoscomandos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero procedimientoscomandos.php
+// *************************************************************************************************************************************************
+var currentidprocedimientocomando=null;
+//________________________________________________________________________________________________________
+function gestion_comandos(id,o,orden){
+ if (o.checked)
+ var opcion=op_modificacion;
+ else
+ var opcion=op_eliminacion;
+ var wurl="../gestores/gestor_procedimientoscomandos.php";
+ var prm="opcion="+opcion+"&idprocedimientocomando="+id+"&orden="+orden;
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul);
+ }
+}
+//________________________________________________________________________________________________________
+function ActualizarAccion(id){
+ var objorden=document.getElementById("orden-"+id)
+ var orden=objorden.value
+ if(orden=="" || orden<1){
+ alert(TbMsg[1]);
+ oorden.focus();
+ return
+ }
+ var ocheckbox=document.getElementById("checkbox-"+id);
+ gestion_comandos(id,ocheckbox,orden)
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_procedimientocomando(resul,descrierror,idtt){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[2])
+ var oTABLE=document.getElementById("TABLACOMANDOS");
+ var oTRs=oTABLE.getElementsByTagName('TR')
+ for(var i=0;i<oTRs.length;i++){
+ if(oTRs[i].getAttribute("id")=='TR-'+currentidprocedimientocomando || oTRs[i].getAttribute("id")=='PAR-'+currentidprocedimientocomando)
+ oTRs[i].style.display="none"
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_modificar_procedimientocomando(resul,descrierror,id){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[3])
+}
+//________________________________________________________________________________________________________
+function ver_parametros(o,sw,ida){
+ o=o.parentNode
+ o.childNodes[sw].style.display="none"
+ sw++
+ if(sw>1)sw=0
+ o.childNodes[sw].style.display="block"
+ while (o.tagName!="TBODY"){
+ o=o.parentNode
+ }
+ var oTRs=o.getElementsByTagName('TR')
+ for(var i=0;i<oTRs.length;i++){
+ if(oTRs[i].getAttribute("id")=='NOT_'+ida || oTRs[i].getAttribute("id")=='PAR-'+ida)
+ if (oTRs[i].style.display=="none") oTRs[i].style.display="block"
+ else
+ oTRs[i].style.display="none"
+ }
+ }
diff --git a/admin/WebConsole/jscripts/programaciones.js b/admin/WebConsole/jscripts/programaciones.js
new file mode 100644
index 00000000..74794de6
--- /dev/null
+++ b/admin/WebConsole/jscripts/programaciones.js
@@ -0,0 +1,783 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación:2003-2004
+// Fecha Última modificación: Marzo-2005
+// Nombre del fichero: programaciones.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero programaciones.php
+// *************************************************************************************************************************************************
+var gris="#bbbcb9"
+var rojo="#cc3366"
+var negro="#000000"
+var azul= "#4e4ea6"
+var blanco="#eeeeee"
+var fondooriginal="#EEEECC";
+var colororiginal="#003300";
+var gmes=0;
+var ganno=0;
+var op_alta=1;
+var op_modificacion=2;
+var op_eliminacion=3;
+var op_suspension=4;
+var currenthoras=null;
+var currenthorasini=null;
+var currenthorasfin=null;
+var swpz=false
+var currentVitem;
+var currentcolor;
+//___________________________________________________________________________________________________________
+function ItemSeleccionado(o){
+ if(o==null) return(false);
+ if(o.getAttribute("selitem")==1) return(true);
+ return(false);
+}
+//___________________________________________________________________________________________________________
+function Marca(o){
+ o.style.color=blanco
+ o.style.backgroundColor=rojo
+ o.setAttribute("selitem",1);
+}
+//___________________________________________________________________________________________________________
+function Resalta(o){
+ o.style.color=blanco
+ o.style.backgroundColor=azul
+}
+//___________________________________________________________________________________________________________
+function Desmarca(o){
+ o.style.color=colororiginal
+ o.style.backgroundColor=fondooriginal
+ o.setAttribute("selitem",0);
+}
+//___________________________________________________________________________________________________________
+function TH_clic(o){
+ var tbobj=TBSource(o); // Busca la tabla donde se pulsó
+ var oTD=tbobj.getElementsByTagName('TD')
+ for(var i=0;i<oTD.length;i++){
+ if(oTD[i].getAttribute("id")!="")
+ clic(oTD[i],true)
+ }
+ cuestionesclic(o)
+}
+//___________________________________________________________________________________________________________
+function clic(o,sw){
+ if (!ItemSeleccionado(o))
+ Marca(o);
+ else // Deselección
+ Desmarca(o);
+ if(document.fprogramaciones.tipoaccion.value==EJECUCION_RESERVA){
+ var idtb=Sourcetb(o); // Busca la tabla donde se pulsó
+ if (idtb=="tabla_horas"){
+ if(currenthoras!=o &&currenthoras!=null )
+ Desmarca(currenthoras);
+ currenthoras=o;
+ }
+ if (idtb=="tabla_horasini" && currenthorasini !=null ){
+ if(currenthorasini!=o)
+ Desmarca(currenthorasini);
+ currenthorasini=o;
+ }
+ if (idtb=="tabla_horasfin" && currenthorasfin !=null ){
+ if(currenthorasfin!=o)
+ Desmarca(currenthorasfin);
+ currenthorasfin=o;
+ }
+
+ }
+
+ if(!sw){
+ cuestionesclic(o)
+ }
+}
+//___________________________________________________________________________________________________________
+function cuestionesclic(o){
+ var idtb=Sourcetb(o); // Busca la tabla donde se pulsó
+ if (idtb=="tabla_meses" || idtb=="tabla_annos")
+ cuestion_opciones();
+ if (!swpz){
+ activa("bt_insertar");
+ activa("bt_cancelar");
+ swpz=!swpz;
+ }
+}
+//___________________________________________________________________________________________________________-
+function Sourcetb(o){
+ while (o.tagName!="TABLE"){
+ o=o.parentNode;
+ }
+ return(o.getAttribute("id"));
+}
+//___________________________________________________________________________________________________________-
+function TBSource(o){
+ while (o.tagName!="TABLE"){
+ o=o.parentNode;
+ }
+ return(o);
+}
+//___________________________________________________________________________________________________________
+function activa(idbt){
+ var bt=document.getElementById(idbt);
+ bt.style.visibility="visible"
+ bt.style.color=negro;
+}
+//___________________________________________________________________________________________________________
+function desactiva(idbt){
+ var bt=document.getElementById(idbt);
+ bt.style.visibility="hidden"
+ bt.style.color=gris;
+}
+//___________________________________________________________________________________________________________
+function habilitado(idbt){
+ var bt=document.getElementById(idbt);
+ if (bt.style.visibility=="visible") return true;
+ return false
+}
+//___________________________________________________________________________________________________________
+function sobreboton(bt){
+ currentcolor=bt.style.color;
+ bt.style.color="#999999";
+}
+//___________________________________________________________________________________________________________
+function fueraboton(bt){
+ bt.style.color=currentcolor;
+}
+//___________________________________________________________________________________________________________
+function cuestion_opciones(){
+ swotbm=opcion_simple("tabla_meses");
+ swotba=opcion_simple("tabla_annos");
+ if (swotbm && swotba){
+ var vd=valor_HEX("tabla_mesanno");
+ if (!detecta_cambio(vd))
+ visible_simple();
+ }
+ else{ // Conmutación a opción multiple
+ visible_multiple();
+ }
+}
+//___________________________________________________________________________________________________________
+function detecta_cambio(vitem){ // vitem es el valor hexdecimal a mostrar
+
+ wmes=parseInt(valor_item("tabla_meses")); // Recupera mes
+ wanno=parseInt(valor_item("tabla_annos")); // Recupera año
+ if (wmes>0 && wanno>0){ // Si se ha elegido un año y un mes ...
+ if (gmes!=wmes || ganno!=wanno){ // Cara de nuevo el mes en blanco
+ gmes=wmes;
+ ganno=wanno;
+ var wurl="toma_mes.php";
+ var prm="idmes="+wmes+"&idanno="+wanno
+ currentVitem=vitem;
+ CallPage(wurl,prm,"retornoMesAnno","POST");
+ return(true);
+ }
+ return(false);
+ }
+}
+//______________________________________________________________________________________________________
+function retornoMesAnno(htmlMes){
+ tbm=document.getElementById("tbmesanno");
+ tbm.innerHTML=htmlMes;
+ marca_item("tabla_mesanno",currentVitem);
+ visible_simple();
+}
+//___________________________________________________________________________________________________________
+function visible_multiple(){
+ fm=document.getElementById("fechasmultiples");
+ fs=document.getElementById("fechassimples");
+ fm.style.visibility = "visible"
+ fs.style.visibility = "hidden";
+}
+//___________________________________________________________________________________________________________
+function visible_simple(){
+ fm=document.getElementById("fechasmultiples");
+ fs=document.getElementById("fechassimples");
+ fm.style.visibility = "hidden"
+ fs.style.visibility = "visible";
+}
+//___________________________________________________________________________________________________________
+function modifica_programacion(ida,tia,ses){
+ if (habilitado("bt_modificar")){
+ idprogramacion=valor_programacion();
+ if (idprogramacion>0)
+ gestor_programacion(ida,tia,ses,idprogramacion,op_modificacion);
+ }
+}
+//___________________________________________________________________________________________________________
+function elimina_programacion(){
+ if (habilitado("bt_eliminar")){
+ idprogramacion=valor_programacion();
+ if (idprogramacion>0){
+ var wurl="../gestores/gestor_programaciones.php";
+ var prm="wswop="+op_eliminacion+"&widprogramacion="+idprogramacion;
+ CallPage(wurl,prm,"retornoGestor","POST");
+ }
+ }
+}
+//___________________________________________________________________________________________________________
+function retornoGestor(fncallbck){
+ if(fncallbck.length>0)
+ eval(fncallbck);
+}
+//___________________________________________________________________________________________________________
+function alta_programacion(ida,tia,ses){
+
+ if (habilitado("bt_insertar")){
+ gestor_programacion(ida,tia,ses,0,op_alta)
+ }
+}
+//___________________________________________________________________________________________________________
+function duplicar_programacion(){
+ activa("bt_insertar")
+ desactiva("bt_eliminar");
+ desactiva("bt_modificar");
+ desactiva("bt_duplicar");
+ activa("bt_cancelar");
+ nuevo_bloque();
+}
+
+//___________________________________________________________________________________________________________
+function gestor_programacion(ida,tia,ses,idr,swop)
+{
+ widentificador=ida;
+ wtipoaccion=tia;
+ widprogramacion=idr;
+ wswop=swop;
+ wannos=valor_HEX("tabla_annos");
+ if (wannos==0){
+ alert(TbMsg[0]);
+ return
+ }
+ wmeses=valor_HEX("tabla_meses");
+ if (wmeses==0){
+ alert(TbMsg[1]);
+ return
+ }
+ fm=document.getElementById("fechasmultiples");
+ if (fm.style.visibility == "visible"){ // Activada opciones múltiples
+ wdiario=valor_HEX("tabla_diasmes");
+ wdias=valor_HEX("tabla_dias");
+ wsemanas=valor_HEX("tabla_semanas");
+
+ if (wdiario==0 && wdias==0 && wsemanas==0 ){
+ alert(TbMsg[2]);
+ return
+ }
+ }
+ else{
+ wdiario=valor_HEX("tabla_mesanno");
+ if (wdiario==0){
+ alert(TbMsg[3]);
+ return
+ }
+ wdias=0
+ wsemanas=0
+ }
+
+ whoras=valor_HEX("tabla_horas");
+
+ if (whoras==0){
+ if(wtipoaccion!=EJECUCION_RESERVA){
+ alert(TbMsg[4]);
+ return
+ }
+ }
+
+ if(wtipoaccion==EJECUCION_RESERVA){
+ whorasini=valor_HEX("tabla_horasini");
+ if (whorasini==0){
+ alert(TbMsg[4]);
+ return
+ }
+ whorasfin=valor_HEX("tabla_horasfin");
+ if (whorasfin==0){
+ alert(TbMsg[4]);
+ return
+ }
+ }
+
+ inputprogramacion=document.getElementById("nombrebloque")
+ wnombrebloque=inputprogramacion.value
+ if (wnombrebloque==""){
+ alert(TbMsg[5]);
+ return
+ }
+ wampm=document.getElementById("ampm").value;
+ wminutos=document.getElementById("minutos").value;
+ if (wminutos<0 || wminutos>59){
+ alert(TbMsg[6]);
+ document.getElementById("minutos").focus()
+ return
+ }
+ if(wtipoaccion==EJECUCION_RESERVA){
+ wampmini=document.getElementById("ampmini").value;
+ wminutosini=document.getElementById("minutosini").value;
+ if (wminutosini<0 || wminutosini>59){
+ alert(TbMsg[6]);
+ document.getElementById("minutosini").focus()
+ return;
+ }
+ wampmfin=document.getElementById("ampmfin").value;
+ wminutosfin=document.getElementById("minutosfin").value;
+ if (wminutosfin<0 || wminutosfin>59){
+ alert(TbMsg[6]);
+ document.getElementById("minutosfin").focus()
+ return;
+ }
+ }
+ else{
+ whorasini=0;
+ wampmini=0;
+ wminutosini=0;
+ whorasfin=0;
+ wampmfin=0;
+ wminutosfin=0;
+ }
+
+ wsegundos=0;
+
+ var wurl="../gestores/gestor_programaciones.php";
+ var prm="wswop="+wswop+"&widprogramacion="+widprogramacion+"&widentificador="+widentificador;
+ prm+="&wtipoaccion="+wtipoaccion+"&wnombrebloque="+wnombrebloque+"&wannos="+wannos+"&wmeses="+wmeses;
+ prm+="&wdiario="+wdiario+"&wdias="+wdias+"&wsemanas="+wsemanas+"&whoras="+whoras+"&whorasini="+whorasini;
+ prm+="&whorasfin="+whorasfin+"&wampm="+wampm+"&wminutos="+wminutos+"&wsegundos="+wsegundos;
+ prm+="&wampmini="+wampmini+"&wminutosini="+wminutosini+"&wampmfin="+wampmfin+"&wminutosfin="+wminutosfin;
+
+ wsw_sus=document.getElementById("sw_sus").checked;
+ prm+="&wsw_sus="+wsw_sus
+ prm+="&wsesion="+ses
+ CallPage(wurl,prm,"retornoGestor","POST");
+
+}
+//___________________________________________________________________________________________________________
+function suspender_programacion(ida,tia,ses){
+ var listalen=lista.options.length
+ if(listalen==0){
+ alert(TbMsg[8]);
+ wsw_sus=document.getElementById("sw_sus").checked=false;
+ return
+ }
+ widentificador=ida;
+ wtipoaccion=tia;
+
+ var wurl="../gestores/gestor_programaciones.php";
+ var prm="wswop="+op_suspension+"&widentificador="+widentificador+"&wtipoaccion="+wtipoaccion
+ wsw_sus=document.getElementById("sw_sus").checked;
+ prm+="&wsw_sus="+wsw_sus
+
+ CallPage(wurl,prm,"retornoGestor","POST");
+
+}
+//___________________________________________________________________________________________________________
+function resultado_suspender_programacion(){
+ wsw_sus=document.getElementById("sw_sus").checked;
+ if(wsw_sus)
+ alert(TbMsg[9]);
+ else
+ alert(TbMsg[10]);
+}
+//___________________________________________________________________________________________________________
+// Devualve el valor Hexadecimal que corresponde a los items
+//___________________________________________________________________________________________________________
+function valor_HEX(idtb)
+{
+ var oTD;
+ otb=document.getElementById(idtb);
+ var aux=0x00000000;
+ filas=otb.rows.length
+ for (i=0;i<filas;i++){
+ columnas=otb.rows[i].cells.length
+ for (j=0;j<columnas;j++){
+ oTD=otb.rows[i].cells[j];
+ if(oTD.tagName=="TD"){
+ if (ItemSeleccionado(oTD)){
+ aux=aux | oTD.getAttribute("value")
+ }
+ }
+ }
+ }
+ return(aux)
+}
+//___________________________________________________________________________________________________________
+// Devuelve el valor decimal de un item de la tabla (ID)
+// 0=no elección -1=más de un item n:valor del item
+//___________________________________________________________________________________________________________
+function valor_item(idtb){
+ var valor=0,sw=0;
+ var oTD;
+ otb=document.getElementById(idtb);
+ filas=otb.rows.length
+ for (i=0;i<filas;i++){
+ columnas=otb.rows[i].cells.length
+ for (j=0;j<columnas;j++){
+ oTD=otb.rows[i].cells[j];
+ if(oTD.tagName=="TD"){
+ if (ItemSeleccionado(oTD)){
+ if (sw==0){
+ valor=oTD.getAttribute("id");
+ sw++;
+ }
+ else
+ return(-1);
+ }
+ }
+ }
+ }
+ return(valor)
+}
+//___________________________________________________________________________________________________________
+// Devuelve true si no existe ningún item seleccionado en la tabla
+// y false en caso contrario
+// El parametro de entrada es el identificador dela tabla
+//___________________________________________________________________________________________________________
+function opcion_simple(idtb)
+{
+ var oTD;
+ var conta=0;
+ otb=document.getElementById(idtb);
+ filas=otb.rows.length
+ for (i=0;i<filas;i++){
+ columnas=otb.rows[i].cells.length
+ for (j=0;j<columnas;j++){
+ oTD=otb.rows[i].cells[j];
+ if(oTD.tagName=="TD"){
+ if (ItemSeleccionado(oTD)){
+ conta++;
+ if (conta>1) return(false);
+ }
+ }
+ }
+ }
+ return(true);
+}
+//___________________________________________________________________________________________________________
+function sobre(o){
+ if (!ItemSeleccionado(o))
+ Resalta(o);
+}
+//___________________________________________________________________________________________________________
+function fuera(o){
+ if (!ItemSeleccionado(o))
+ Desmarca(o);
+}
+
+//___________________________________________________________________________________________________________
+// Error al grabar programacion
+//___________________________________________________________________________________________________________
+function error_programacion(){
+ desmarca_tablas();
+ inicializa_variables();
+ nuevo_bloque();
+}
+//___________________________________________________________________________________________________________
+// Recibe una notificación de la acción ejecutada
+//___________________________________________________________________________________________________________
+function registro_programacion(idr,nombrere,swop)
+{
+ wswop=parseInt(swop); // Toma la opción ALTA,MODIFICACION O ELIMINACION
+ switch (wswop){
+ case op_alta:
+ alert(TbMsg[11]);
+ programacion_metelista(idr,nombrere);
+ break;
+ case op_modificacion:
+ alert(TbMsg[12]);
+ modifica_texto(nombrere);
+ break;
+ case op_eliminacion:
+ alert(TbMsg[13]);
+ elimina_item();
+ break;
+ }
+ desmarca_tablas();
+ inicializa_variables();
+ nuevo_bloque();
+
+ visible_simple();
+ activa("bt_insertar")
+ desactiva("bt_eliminar");
+ desactiva("bt_modificar");
+ desactiva("bt_duplicar");
+ desactiva("bt_cancelar");
+ swpz=false;
+}
+//___________________________________________________________________________________________________________
+// Devuelve el valor del item seleccionado
+//___________________________________________________________________________________________________________
+function valor_programacion(){
+ var lista=document.getElementById("lista_programaciones");
+ p=lista.selectedIndex;
+ if (p==-1){
+ alert(TbMsg[14]);
+ return(-1);
+ }
+ else
+ return(lista.options[p].value)
+}
+//___________________________________________________________________________________________________________
+// Modifica el texto del item seleccionado
+//___________________________________________________________________________________________________________
+function modifica_texto(nombrere){
+ var lista=document.getElementById("lista_programaciones");
+ p=lista.selectedIndex;
+ lista.options[p].text=nombrere
+}
+//___________________________________________________________________________________________________________
+// Elimina el item seleccionado
+//___________________________________________________________________________________________________________
+function elimina_item(){
+ var lista=document.getElementById("lista_programaciones");
+ p=lista.selectedIndex;
+ lista.remove(p);
+}
+//___________________________________________________________________________________________________________
+// Recibe una notificación de grabación correcta programacion
+//___________________________________________________________________________________________________________
+function inicializa_variables(){
+ gmes=0;
+ ganno=0;
+}
+//___________________________________________________________________________________________________________
+// Desmarca todos los items de todas las tablas
+//___________________________________________________________________________________________________________
+function desmarca_tablas(){
+ desmarca_tabla("tabla_annos");
+ desmarca_tabla("tabla_meses");
+ desmarca_tabla("tabla_mesanno");
+ desmarca_tabla("tabla_dias");
+ desmarca_tabla("tabla_semanas");
+ desmarca_tabla("tabla_diasmes");
+ desmarca_tabla("tabla_horas");
+
+ document.getElementById("ampm").selectedIndex=1;
+ document.getElementById("minutos").value="";
+ //document.getElementById("segundos").value="";
+
+ whorasini= document.getElementById("tabla_horasini")
+ if(whorasini!=null){
+ desmarca_tabla("tabla_horasini");
+ wampmini= document.getElementById("ampmini")
+ wminutosini= document.getElementById("minutosini")
+ wampmini.selectedIndex=1;
+ wminutosini.value="";
+ }
+ whorasfin= document.getElementById("tabla_horasfin")
+ if(whorasfin!=null){
+ desmarca_tabla("tabla_horasfin");
+ wampmfin= document.getElementById("ampmfin")
+ wminutosfin= document.getElementById("minutosfin")
+ wampmfin.selectedIndex=1;
+ wminutosfin.value="";
+ }
+}
+//___________________________________________________________________________________________________________
+// Averigua el nombre del bloque según lo que ya existe
+//___________________________________________________________________________________________________________
+function nuevo_bloque(){
+ var lista=document.getElementById("lista_programaciones");
+ var listalen=lista.options.length
+ var nb=1
+ var cbloque="bloque";
+ var nbloque=cbloque+nb
+ var swb=false;
+ while(true){
+ swb=false;
+ for(var i=0;i<listalen;i++){
+ if(lista.options[i].text==nbloque){
+ swb=true
+ break;
+ }
+ }
+ if(swb){
+ nb++;
+ nbloque=cbloque+nb
+ }
+ else
+ break;
+ }
+ document.getElementById("nombrebloque").value=nbloque;
+ var lista=document.getElementById("lista_programaciones");
+ lista.selectedIndex=-1;
+}
+//___________________________________________________________________________________________________________
+// Desmarca todos los items de una tabla
+//___________________________________________________________________________________________________________
+function desmarca_tabla(idtb){
+ otb=document.getElementById(idtb);
+ if (!otb) return
+ desmarcando_tabla(otb);
+}
+//___________________________________________________________________________________________________________
+// Desmarca todos los items de una tabla ( parametro objeto tabla)
+//___________________________________________________________________________________________________________
+function desmarcando_tabla(otb)
+{
+ var oTD
+ filas=otb.rows.length
+ for (var i=0;i<filas;i++){
+ columnas=otb.rows[i].cells.length
+ for (var j=0;j<columnas;j++){
+ oTD=otb.rows[i].cells[j];
+ if(oTD.tagName=="TD"){
+ if (ItemSeleccionado(oTD))
+ Desmarca(oTD)
+ }
+ }
+ }
+}
+//___________________________________________________________________________________________________________
+// Añade la programacion a la caja de lista
+//___________________________________________________________________________________________________________
+function programacion_metelista(valor,texto){
+ var lista=document.getElementById("lista_programaciones");
+ var e=document.createElement("OPTION");
+
+ e.value=valor;
+ e.text=texto;
+
+ lista.appendChild(e);
+}
+//___________________________________________________________________________________________________________
+function consulta_programacion(){
+ idprogramacion=valor_programacion();
+ if (idprogramacion>0){
+ desmarca_tablas();
+ var wurl="consulta_programaciones.php";
+ var prm="idprogramacion="+idprogramacion;
+ CallPage(wurl,prm,"retornoConsulta","POST");
+ desactiva("bt_insertar")
+ activa("bt_eliminar");
+ activa("bt_modificar");
+ activa("bt_duplicar");
+ activa("bt_cancelar");
+ }
+}
+//______________________________________________________________________________________________________
+function retornoConsulta(programacion){
+ if(programacion.length>0)
+ muestra_programacion(programacion);
+ else
+ error_programacion
+}
+//___________________________________________________________________________________________________________
+function muestra_programacion(cadena_campos)
+{
+ campos=cadena_campos.split(";");
+ var pnombrebloque=campos[3];
+ var pannos=campos[4];
+ var pmeses=campos[5];
+ var pdiario=campos[6];
+ var pdias=campos[7];
+ var psemanas=campos[8];
+ var phoras=campos[9];
+ var pampm=campos[10];
+ var pminutos=campos[11];
+ var psegundos=campos[12];
+ var phorasini=campos[13];
+ var pampmini=campos[14];
+ var pminutosini=campos[15];
+ var phorasfin=campos[16];
+ var pampmfin=campos[17];
+ var pminutosfin=campos[18];
+
+ document.getElementById("nombrebloque").value=pnombrebloque;
+ marca_item("tabla_annos",pannos);
+ marca_item("tabla_meses",pmeses);
+ if (opcion_multiple(pannos) || opcion_multiple(pmeses)){
+ marca_item("tabla_diasmes",pdiario);
+ marca_item("tabla_dias",pdias);
+ marca_item("tabla_semanas",psemanas);
+ visible_multiple();
+ }
+ else{
+ gmes=pmeses;
+ ganno=pannos;
+ wmes=parseInt(valor_item("tabla_meses")); // Recupera mes
+ wanno=parseInt(valor_item("tabla_annos")); // Recupera año
+ var wurl="toma_mes.php";
+ var prm="idmes="+wmes+"&idanno="+wanno
+ currentVitem=pdiario;
+ CallPage(wurl,prm,"retornoMesAnno","POST");
+ }
+ marca_item("tabla_horas",phoras);
+ document.getElementById("ampm").value=pampm;
+ document.getElementById("minutos").value=pminutos;
+ //document.getElementById("segundos").value=psegundos;
+
+ wtabla_horasini= document.getElementById("tabla_horasini")
+ if(wtabla_horasini!=null)
+ marca_item("tabla_horasini",phorasini);
+ wampmini= document.getElementById("ampmini")
+ wminutosini= document.getElementById("minutosini")
+ if(wampmini!=null){
+ wampmini.value=pampmini;
+ wminutosini.value=pminutosini;
+ }
+ wtabla_horasfin= document.getElementById("tabla_horasfin")
+ if(wtabla_horasfin!=null)
+ marca_item("tabla_horasfin",phorasfin);
+ wampmfin= document.getElementById("ampmfin")
+ wminutosfin= document.getElementById("minutosfin")
+ if(wampmfin!=null){
+ wampmfin.value=pampmfin;
+ wminutosfin.value=pminutosfin;
+ }
+}
+// ___________________________________________________________________________________________________________
+//
+// Devuelve true si hay más de un item seleccionado, false al contrario
+// El parametro de entrada es el valor HEXadecimal
+//___________________________________________________________________________________________________________
+function opcion_multiple(valor){
+ var conta=0;
+ var auxhex=0x00000001;
+ for (auxhex=0x00000001;auxhex!=0x00000000;auxhex=auxhex<<1){
+ if (valor & auxhex){
+ conta++;
+ if (conta>1) return(true);
+ }
+ }
+ return(false);
+}
+// ___________________________________________________________________________________________________________
+//
+// Marca todos los items de una tabla según el valor HEX enviado
+//___________________________________________________________________________________________________________
+function marca_item(idtabla,vhex)
+{
+ var oTD;
+ otb=document.getElementById(idtabla);
+ filas=otb.rows.length
+ for (i=0;i<filas;i++){
+ columnas=otb.rows[i].cells.length
+ for (j=0;j<columnas;j++){
+ oTD=otb.rows[i].cells[j];
+ if(oTD.tagName=="TD"){
+ if (oTD.getAttribute("value") & vhex){
+ Marca(oTD);
+ if (idtabla=="tabla_horas")
+ currenthoras=oTD
+ if (idtabla=="tabla_horasini")
+ currenthorasini=oTD
+ if (idtabla=="tabla_horasfin")
+ currenthorasfin=oTD
+ }
+ }
+ }
+ }
+}
+// ___________________________________________________________________________________________________________
+//
+// Cancela todos los items de las tabalas e inicia variables
+//___________________________________________________________________________________________________________
+function cancela_programacion(){
+ desmarca_tablas();
+ inicializa_variables();
+ nuevo_bloque();
+ visible_simple();
+ activa("bt_insertar")
+ desactiva("bt_eliminar");
+ desactiva("bt_modificar");
+ desactiva("bt_duplicar");
+ desactiva("bt_cancelar");
+ swpz=false;
+
+} \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/programacionesaulas.js b/admin/WebConsole/jscripts/programacionesaulas.js
new file mode 100644
index 00000000..01c59807
--- /dev/null
+++ b/admin/WebConsole/jscripts/programacionesaulas.js
@@ -0,0 +1,88 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: programacionesaulas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero programacionesaulas.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+ function chgdesplereservas(o){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.estadoreserva.value=otip
+ }
+//________________________________________________________________________________________________________
+ function chgdesplesituacion(o,swevt){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.situacion.value=otip
+ }
+ //________________________________________________________________________________________________________
+ function vertabla_calendario(ofecha){
+ currentFecha=ofecha;
+ url="../varios/calendario_ventana.php?fecha="+ofecha.value
+ window.open(url,"vf","top=160,left=250,height=220,width=150,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function vertabla_horario(ohora){
+ currentHora=ohora;
+ url="../varios/horareser_ventana.php?hora="+ohora.value
+ window.open(url,"vh","top=200,left=250,height=120,width=160,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function anade_fecha(fecha){
+ currentFecha.value=fecha
+ }
+//________________________________________________________________________________________________________
+ function anade_hora(hora){
+ currentHora.value=hora
+ }
+//________________________________________________________________________________________________________
+ function sobre(){
+}
+//________________________________________________________________________________________________________
+ function fuera(){
+}
+//________________________________________________________________________________________________________
+ function clic(o){
+}
+//________________________________________________________________________________________________________
+ function TH_clic(o){
+ currentFecha=o.getAttribute("id");
+ document.fdatos.fechainicio.value="1/"+currentFecha
+ document.fdatos.fechafin.value="31/"+currentFecha
+ document.fdatos.submit();
+ }
+//________________________________________________________________________________________________________
+ function AnnoReserva(anno){
+ var wfechainicio=document.fdatos.fechainicio.value.split("/");
+ var wfechafin=document.fdatos.fechafin.value.split("/");
+
+ if(wfechainicio[2]==wfechafin[2]){
+ document.fdatos.submit();
+ return
+ }
+
+ if(wfechainicio[2]==anno) // El mismo año que el de inicio
+ document.fdatos.fechafin.value="31/12/"+anno;
+ else{
+ document.fdatos.fechainicio.value="1/1/"+anno
+ }
+
+ if(wfechafin[2]==anno) // El mismo año que el de fin
+ document.fdatos.fechainicio.value="1/1/"+anno
+ else{
+ document.fdatos.fechafin.value="31/12/"+anno;
+ }
+
+ document.fdatos.submit();
+ }
+
diff --git a/admin/WebConsole/jscripts/programacionesreservas.js b/admin/WebConsole/jscripts/programacionesreservas.js
new file mode 100644
index 00000000..f03a7d6b
--- /dev/null
+++ b/admin/WebConsole/jscripts/programacionesreservas.js
@@ -0,0 +1,88 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: programacionesreservas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero programacionesreservas.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+ function chgdesplereservas(o){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.estadoreserva.value=otip
+ }
+//________________________________________________________________________________________________________
+ function chgdesplesituacion(o,swevt){
+ var otip="";
+ for (var i=0; i< o.options.length; i++){
+ if(o.options[i].selected)
+ otip+=o.options[i].value+"="+o.options[i].text+";"
+ }
+ document.fdatos.situacion.value=otip
+ }
+ //________________________________________________________________________________________________________
+ function vertabla_calendario(ofecha){
+ currentFecha=ofecha;
+ url="../varios/calendario_ventana.php?fecha="+ofecha.value
+ window.open(url,"vf","top=160,left=250,height=220,width=150,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function vertabla_horario(ohora){
+ currentHora=ohora;
+ url="../varios/horareser_ventana.php?hora="+ohora.value
+ window.open(url,"vh","top=200,left=250,height=120,width=160,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function anade_fecha(fecha){
+ currentFecha.value=fecha
+ }
+//________________________________________________________________________________________________________
+ function anade_hora(hora){
+ currentHora.value=hora
+ }
+//________________________________________________________________________________________________________
+ function sobre(){
+}
+//________________________________________________________________________________________________________
+ function fuera(){
+}
+//________________________________________________________________________________________________________
+ function clic(o){
+}
+//________________________________________________________________________________________________________
+ function TH_clic(o){
+ currentFecha=o.getAttribute("id");
+ document.fdatos.fechainicio.value="1/"+currentFecha
+ document.fdatos.fechafin.value="31/"+currentFecha
+ document.fdatos.submit();
+ }
+//________________________________________________________________________________________________________
+ function AnnoReserva(anno){
+ var wfechainicio=document.fdatos.fechainicio.value.split("/");
+ var wfechafin=document.fdatos.fechafin.value.split("/");
+
+ if(wfechainicio[2]==wfechafin[2]){
+ document.fdatos.submit();
+ return
+ }
+
+ if(wfechainicio[2]==anno) // El mismo año que el de inicio
+ document.fdatos.fechafin.value="31/12/"+anno;
+ else{
+ document.fdatos.fechainicio.value="1/1/"+anno
+ }
+
+ if(wfechafin[2]==anno) // El mismo año que el de fin
+ document.fdatos.fechainicio.value="1/1/"+anno
+ else{
+ document.fdatos.fechafin.value="31/12/"+anno;
+ }
+
+ document.fdatos.submit();
+ }
+
diff --git a/admin/WebConsole/jscripts/propiedades_aulas.js b/admin/WebConsole/jscripts/propiedades_aulas.js
new file mode 100644
index 00000000..0d37ec12
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_aulas.js
@@ -0,0 +1,115 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_aulas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_aulas.php
+// *************************************************************************************************************************************************
+var currentHora=null;
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_aulas(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_aulas(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_aulas(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Esta función desabilita la marca de un checkbox en opcion "bajas"
+//________________________________________________________________________________________________________
+ function desabilita(o) {
+ var b
+ b=o.checked
+ o.checked=!b
+ }
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombreaula.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.nombreaula.focus();
+ return(false);
+ }
+ if (document.fdatos.puestos.value=="" || document.fdatos.puestos.value=="0") {
+ alert(TbMsg[1]);
+ document.fdatos.puestos.focus();
+ return(false);
+ }
+ if (parseInt(document.fdatos.horaresevini.value)>parseInt(document.fdatos.horaresevfin.value)) {
+ alert(TbMsg[3]);
+ document.fdatos.horaresevini.focus();
+ return(false);
+ }
+
+ return(true);
+}
+//________________________________________________________________________________________________________
+ function vertabla_horas(ohora){
+ currentHora=ohora;
+ url="../varios/horareser_ventana.php?hora="+ohora.value
+ window.open(url,"vh","top=200,left=250,height=120,width=160,scrollbars=no")
+ }
+//________________________________________________________________________________________________________
+ function anade_hora(hora){
+ currentHora.value=hora
+ }
+
diff --git a/admin/WebConsole/jscripts/propiedades_centros.js b/admin/WebConsole/jscripts/propiedades_centros.js
new file mode 100644
index 00000000..763e6906
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_centros.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_centros.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_centros.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_centros(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_centros(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_centros(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombrecentro==""){
+ alert(TbMsg[0])
+ document.forms.fdatos.nombrecentro.focus()
+ return(false)
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_componentehardwares.js b/admin/WebConsole/jscripts/propiedades_componentehardwares.js
new file mode 100644
index 00000000..695ecea3
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_componentehardwares.js
@@ -0,0 +1,89 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_componentehardwares.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_componentehardwares.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_componentehardwares(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_componentehardwares(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_componentehardwares(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ var p=document.fdatos.idtipohardware.selectedIndex
+ if (p==0){
+ alert(TbMsg[1])
+ document.forms.fdatos.idtipohardware.focus()
+ return(false)
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_componentesoftwares.js b/admin/WebConsole/jscripts/propiedades_componentesoftwares.js
new file mode 100644
index 00000000..f1b4c317
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_componentesoftwares.js
@@ -0,0 +1,116 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_componentesoftwares.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_componentesoftwares.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_componentesoftwares(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_componentesoftwares(resul,descrierror,lit,uri){
+ farbol.resultado_modificar(resul,descrierror,lit,uri);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_componentesoftwares(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ var p=document.fdatos.idtiposoftware.selectedIndex
+ if (p==0){
+ alert(TbMsg[1])
+ document.forms.fdatos.idtiposoftware.focus()
+ return(false)
+ }
+ else{
+ if(p==3){ // Tipo de software: sistema operativo
+ p=document.fdatos.idtiposo.selectedIndex
+ if (p==0){
+ alert(TbMsg[2])
+ document.forms.fdatos.idtiposo.focus()
+ return(false)
+ }
+ }
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function seleccion(o){
+ if(o.name=="idtiposoftware"){
+ var otiposo=document.getElementById("tridtiposo"); // Toma objeto Iframe
+ if(otiposo!=null){
+ if(o.value!=1){
+ otiposo.style.display="none"
+ document.fdatos.idtiposo.selectedIndex=0
+ }
+ else
+ otiposo.style.display="block"
+ }
+ }
+}
diff --git a/admin/WebConsole/jscripts/propiedades_entidades.js b/admin/WebConsole/jscripts/propiedades_entidades.js
new file mode 100644
index 00000000..f3c4494f
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_entidades.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_entidades.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_entidades.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_entidades(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_entidades(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_entidades(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombreentidad==""){
+ alert(TbMsg[0])
+ document.forms.fdatos.nombreentidad.focus()
+ return(false)
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_entornos.js b/admin/WebConsole/jscripts/propiedades_entornos.js
new file mode 100644
index 00000000..df175d0e
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_entornos.js
@@ -0,0 +1,73 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_entornos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_entornos.php
+// *************************************************************************************************************************************************
+
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+//________________________________________________________________________________________________________
+function resultado_modificar_entornos(resul,descrierror){
+ if(resul>0)
+ alert(CTbMsg[5]);
+ else
+ alert(descrierror);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Esta función desabilita la marca de un checkbox en opcion "bajas"
+//________________________________________________________________________________________________________
+ function desabilita(o) {
+ var b
+ b=o.checked
+ o.checked=!b
+ }
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.ipserveradm.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.ipserveradm.focus();
+ return(false);
+ }
+ if (document.fdatos.portserveradm.value=="") {
+ alert(TbMsg[1]);
+ document.fdatos.portserveradm.focus();
+ return(false);
+ }
+ return(true);
+}
+
diff --git a/admin/WebConsole/jscripts/propiedades_grupos.js b/admin/WebConsole/jscripts/propiedades_grupos.js
new file mode 100644
index 00000000..73636cc1
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_grupos.js
@@ -0,0 +1,93 @@
+// *************************************************************************************************************************************************
+// 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: Marzo-2006
+// Nombre del fichero: propiedades_grupos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_grupos.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ var opcion=op;
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ if(document.fdatos.literaltipo.value==LITAMBITO_GRUPOSORDENADORES){
+ document.fdatos.action="../gestores/gestor_gruposordenadores.php";
+ }
+ else
+ document.fdatos.action="../gestores/gestor_grupos.php?opcion="+opcion
+
+ if (opcion!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombregrupo.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.nombregrupo.focus();
+ return(false);
+ }
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de insertar una nueva grupo en la base de datos a traves del IFRAME
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_grupos(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar_grupos(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un grupo a traves del IFRAME
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_grupos(resul,descrierror,lit){
+ farbol.resultado_modificar_grupos(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un grupo a traves del IFRAME
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_grupos(resul,descrierror,id){
+ farbol.resultado_eliminar_grupos(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+
diff --git a/admin/WebConsole/jscripts/propiedades_imagenes.js b/admin/WebConsole/jscripts/propiedades_imagenes.js
new file mode 100644
index 00000000..dc1ac94e
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_imagenes.js
@@ -0,0 +1,96 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_imagenes.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_imagenes.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_imagenes(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_imagenes(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_imagenes(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombreca.value=="") {
+ alert(TbMsg[3]);
+ document.fdatos.nombreca.focus();
+ return(false);
+ }
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ /*
+ var p=document.fdatos.idperfilsoft.selectedIndex
+ if (p==0){
+ alert(TbMsg[1])
+ document.forms.fdatos.idperfilsoft.focus()
+ return(false)
+ }
+ */
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_menus.js b/admin/WebConsole/jscripts/propiedades_menus.js
new file mode 100644
index 00000000..b270eebf
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_menus.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_menus.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_menus.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_menus(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_menus(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_menus(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_ordenadores.js b/admin/WebConsole/jscripts/propiedades_ordenadores.js
new file mode 100644
index 00000000..22de9adf
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_ordenadores.js
@@ -0,0 +1,99 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_ordenadores.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_ordenadores.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_ordenadores(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_ordenadores(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_ordenadores(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ //document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombreordenador.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.nombreordenador.focus();
+ return(false);
+ }
+ if (document.fdatos.ip.value=="") {
+ alert(TbMsg[1]);
+ document.fdatos.ip.focus();
+ return(false);
+ }
+ if (document.fdatos.mac.value=="") {
+ alert(TbMsg[2]);
+ document.fdatos.mac.focus();
+ return(false);
+ }
+ var p=document.fdatos.idrepositorio.selectedIndex
+ if (p==0){
+ alert(TbMsg[5])
+ document.forms.fdatos.idrepositorio.focus()
+ return(false)
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_ordenadorestandar.js b/admin/WebConsole/jscripts/propiedades_ordenadorestandar.js
new file mode 100644
index 00000000..cff4c351
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_ordenadorestandar.js
@@ -0,0 +1,76 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_ordenadorestandar.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_ordenadorestandar.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function resultado_ordenadorestandar(resul,descrierror){
+ farbol.resultado_ordenadorestandar(resul,descrierror);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_ordenadores(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_ordenadores(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(ida){
+ var wurl="../gestores/gestor_ordenadorestandar.php?idaula="+ida
+ var valor
+ var o
+ var nit=document.forms[0].elements.length // Prepara la cadena de parámetros metodo get
+ for (i=0;i<nit;i++){
+ o=document.forms[0].elements[i]
+ valor=o.value
+ if (valor=="on") {
+ if(o.checked )
+ valor=1;
+ else
+ valor=0
+ }
+ wurl+="&"+o.name+"="+valor
+ }
+ ifr=document.getElementById("iframes_comodin"); // Toma objeto Iframe
+ ifr.src=wurl; // LLama a la página gestora
+}
diff --git a/admin/WebConsole/jscripts/propiedades_perfilhardwares.js b/admin/WebConsole/jscripts/propiedades_perfilhardwares.js
new file mode 100644
index 00000000..e7df0b02
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_perfilhardwares.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_perfilhardwares.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_perfilhardwares.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_perfilhardwares(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_perfilhardwares(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_perfilhardwares(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_perfilsoftwares.js b/admin/WebConsole/jscripts/propiedades_perfilsoftwares.js
new file mode 100644
index 00000000..ec604826
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_perfilsoftwares.js
@@ -0,0 +1,83 @@
+// *****************************************************************************************************************************************************
+// 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: propiedades_perfilsoftwares.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_perfilsoftwares.php
+// *****************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_perfilsoftwares(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_perfilsoftwares(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_perfilsoftwares(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_procedimientos.js b/admin/WebConsole/jscripts/propiedades_procedimientos.js
new file mode 100644
index 00000000..3b7b310d
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_procedimientos.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_procedimientos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_procedimientos.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_procedimientos(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_procedimientos(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_procedimientos(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_repositorios.js b/admin/WebConsole/jscripts/propiedades_repositorios.js
new file mode 100644
index 00000000..abe90b46
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_repositorios.js
@@ -0,0 +1,110 @@
+// *****************************************************************************************************************************************************
+// 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: propiedades_repositorios.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_repositorios.php
+// *****************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_repositorios(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_repositorios(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_repositorios(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ else{
+ if(document.fdatos.ordenadores.value>0){
+ var res=confirm(TbMsg[2])
+ if(!res) return;
+ }
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombrerepositorio.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.nombrerepositorio.focus();
+ return(false);
+ }
+ if (document.fdatos.ip.value=="") {
+ alert(TbMsg[1]);
+ document.fdatos.ip.focus();
+ return(false);
+ }
+ if (document.fdatos.puertorepo.value=="") {
+ alert(TbMsg[3]);
+ document.fdatos.puertorepo.focus();
+ return(false);
+ }
+ if (document.fdatos.pathrepod.value=="") {
+ alert(TbMsg[4]);
+ document.fdatos.pathrepod.focus();
+ return(false);
+ }
+ if (document.fdatos.pathpxe.value=="") {
+ alert(TbMsg[5]);
+ document.fdatos.pathpxe.focus();
+ return(false);
+ }
+
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_reservas.js b/admin/WebConsole/jscripts/propiedades_reservas.js
new file mode 100644
index 00000000..26c594d7
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_reservas.js
@@ -0,0 +1,104 @@
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: propiedades_reservas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_reservas.php
+// *************************************************************************************************************************************************
+var tbimg=Array();
+
+tbimg[RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+tbimg[RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+tbimg[RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_reservas(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_reservas(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_reservas(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ if (document.fdatos.solicitante.value=="") {
+ alert(TbMsg[1]);
+ document.fdatos.solicitante.focus();
+ return(false);
+ }
+ p=document.fdatos.idaula.selectedIndex
+ if(p==0){
+ alert(TbMsg[2]);
+ document.fdatos.idaula.focus();
+ return(false);
+ }
+ if (document.fdatos.estado.value=="" || document.fdatos.estado.value==0) {
+ alert(TbMsg[3]);
+ document.fdatos.xestado[0].focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_softincrementales.js b/admin/WebConsole/jscripts/propiedades_softincrementales.js
new file mode 100644
index 00000000..9b62c37e
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_softincrementales.js
@@ -0,0 +1,83 @@
+// *****************************************************************************************************************************************************
+// 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: propiedades_softincrementales.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_softincrementales.php
+// *****************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_softincrementales(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_softincrementales(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_softincrementales(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_tareas.js b/admin/WebConsole/jscripts/propiedades_tareas.js
new file mode 100644
index 00000000..6a978b93
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_tareas.js
@@ -0,0 +1,120 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_tareas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_tareas.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_tareas(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_tareas(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_tareas(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+
+ if (document.fdatos.ambito.selectedIndex==0) {
+ var res=confirm(TbMsg[2])
+ if(!res){
+ document.fdatos.ambito.focus();
+ return(false);
+ }
+ }
+
+ var o=document.getElementById("despleambito");
+ var desple=o.childNodes[0];
+ var p=desple.selectedIndex;
+ if (p==0){
+ alert(TbMsg[1]);
+ desple.focus();
+ return(false);
+ }
+ document.fdatos.idambito.value=desple.options[p].value
+ return(true);
+}
+//________________________________________________________________________________________________________
+//
+// Cambia desplegable de ámbitos
+//________________________________________________________________________________________________________
+function chgdespleambito(o){
+
+ var idx = o.selectedIndex
+ var ambito = o.options[idx].value
+
+ var wurl="../varios/desplegablesambitos.php";
+ var prm="ambito="+ambito;
+ CallPage(wurl,prm,"retorno","POST");
+}
+//______________________________________________________________________________________________________
+function retorno(ret)
+{
+ var o=document.getElementById("despleambito");
+ o.innerHTML=ret;
+}
diff --git a/admin/WebConsole/jscripts/propiedades_tipohardwares.js b/admin/WebConsole/jscripts/propiedades_tipohardwares.js
new file mode 100644
index 00000000..e136a788
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_tipohardwares.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_tipohardwares.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_tipohardwares.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_tipohardwares(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_tipohardwares(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_tipohardwares(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_trabajos.js b/admin/WebConsole/jscripts/propiedades_trabajos.js
new file mode 100644
index 00000000..32d4b44c
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_trabajos.js
@@ -0,0 +1,83 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_trabajos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_trabajos.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_trabajos(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_trabajos(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_trabajos(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.descripcion.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.descripcion.focus();
+ return(false);
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/propiedades_universidades.js b/admin/WebConsole/jscripts/propiedades_universidades.js
new file mode 100644
index 00000000..99494e09
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_universidades.js
@@ -0,0 +1,58 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_universidades.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_universidades.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_universidades(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//___________________________________________________________________________________________________________
+//
+// Confirma la edición
+//___________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//___________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//___________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.nombreuniversidad.value=="") {
+ alert(TbMsg[0]);
+ document.fdatos.nombreuniversidad.focus();
+ return(false);
+ }
+ return(true);
+}
+
diff --git a/admin/WebConsole/jscripts/propiedades_usuarios.js b/admin/WebConsole/jscripts/propiedades_usuarios.js
new file mode 100644
index 00000000..d48cc031
--- /dev/null
+++ b/admin/WebConsole/jscripts/propiedades_usuarios.js
@@ -0,0 +1,99 @@
+// *************************************************************************************************************************************************
+// 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: propiedades_usuarios.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero propiedades_usuarios.php
+// *************************************************************************************************************************************************
+var wpadre=window.parent; // Toma frame padre
+var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+//
+// Cancela la edición
+//________________________________________________________________________________________________________
+function cancelar(){
+ selfclose();
+}
+//________________________________________________________________________________________________________
+// Devuelve el resultado de insertar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción (true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - nwid: Identificador asignado al nuevo registro
+// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un sólo un elemento)
+//________________________________________________________________________________________________________
+function resultado_insertar_usuarios(resul,descrierror,nwid,tablanodo){
+ farbol.resultado_insertar(resul,descrierror,nwid,tablanodo);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de modificar algún dato de un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - lit: Nuevo nombre del grupo
+//________________________________________________________________________________________________________
+function resultado_modificar_usuarios(resul,descrierror,lit){
+ farbol.resultado_modificar(resul,descrierror,lit);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+//
+// Devuelve el resultado de eliminar un registro
+// Especificaciones:
+// Los parámetros recibidos son:
+// - resul: resultado de la operación de inserción ( true si tuvo éxito)
+// - descrierror: Descripción del error en su caso
+// - id: Identificador del registro que se quiso modificar
+//________________________________________________________________________________________________________
+function resultado_eliminar_usuarios(resul,descrierror,id){
+ farbol.resultado_eliminar(resul,descrierror,id);
+ selfclose();
+}
+//________________________________________________________________________________________________________
+function selfclose(){
+ document.location.href="../nada.php";
+}
+//________________________________________________________________________________________________________
+//
+// Confirma la edición
+//________________________________________________________________________________________________________
+function confirmar(op){
+ if (op!=op_eliminacion){
+ if(!comprobar_datos()) return;
+ }
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+//
+// Comprobar_datos
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.usuario.value==""){
+ alert(TbMsg[0])
+ document.forms.fdatos.usuario.focus()
+ return(false)
+ }
+ if (document.fdatos.pasguor.value==""){
+ alert(TbMsg[1])
+ document.forms.fdatos.pasguor.focus()
+ return(false)
+ }
+ if (document.fdatos.nombre.value==""){
+ alert(TbMsg[2])
+ document.forms.fdatos.nombre.focus()
+ return(false)
+ }
+ p=document.fdatos.ididioma.selectedIndex
+ if (p==0){
+ alert(TbMsg[4])
+ document.forms.fdatos.ididioma.focus()
+ return(false)
+ }
+ return(true);
+}
diff --git a/admin/WebConsole/jscripts/repositorios.js b/admin/WebConsole/jscripts/repositorios.js
new file mode 100644
index 00000000..7aa829c1
--- /dev/null
+++ b/admin/WebConsole/jscripts/repositorios.js
@@ -0,0 +1,18 @@
+// *****************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: servidores.js
+// Este fichero implementa las funciones javascript del fichero servidores.php
+// *****************************************************************************************************************************************************
+//___________________________________________________________________________________________________________
+//
+// Muestra información sobre un servidor rembo
+//___________________________________________________________________________________________________________
+function muestra_inforRepositorios(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionrepositorio=currentNodo.toma_infonodo()
+ var whref="../varios/informacion_repositorios.php?idrepositorio="+identificador+"&descripcionrepositorio="+descripcionrepositorio
+ window.open(whref,"frame_contenidos")
+}
+
diff --git a/admin/WebConsole/jscripts/reservas.js b/admin/WebConsole/jscripts/reservas.js
new file mode 100644
index 00000000..339c6f52
--- /dev/null
+++ b/admin/WebConsole/jscripts/reservas.js
@@ -0,0 +1,30 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: reservas.js
+// Este fichero implementa las funciones javascript del fichero reservas.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+//
+// Muestra formulario de programaciones para tareas y trabajos
+//________________________________________________________________________________________________________
+function programacion(tipoaccion){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcion=currentNodo.toma_infonodo()
+ var whref="../varios/programaciones.php?idreserva="+identificador+"&descripcionreserva="+descripcion+"&tipoaccion="+EJECUCION_RESERVA
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra la cola de reservas
+//________________________________________________________________________________________________________
+function cola_reservas(tiporeserva){
+ reset_contextual(-1,-1); // Oculta menu contextual
+ var ambito=AMBITO_GRUPOSRESERVAS;
+ var idambito=currentNodo.toma_identificador() // identificador del ámbito
+ if(idambito==null) idambito=0;
+ var nombreambito= currentNodo.toma_infonodo() // nombre del ámbito desde página aula.php
+ var wurl="../principal/programacionesaulas.php?ambito="+ambito+"&idambito="+idambito+"&nombreambito="+nombreambito+"&tipocola="+tiporeserva
+ window.open(wurl,"frame_contenidos")
+}
diff --git a/admin/WebConsole/jscripts/softwares.js b/admin/WebConsole/jscripts/softwares.js
new file mode 100644
index 00000000..558ccdc0
--- /dev/null
+++ b/admin/WebConsole/jscripts/softwares.js
@@ -0,0 +1,51 @@
+// *************************************************************************************************************************************************
+// Libreria de scripts de Javascript
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fichero: softwares.js
+// Este fichero implementa las funciones javascript del fichero softwares.php
+// *************************************************************************************************************************************************
+//________________________________________________________________________________________________________
+//
+// Muestra formulario para gestionar los componentes incluidos en un perfil software
+//________________________________________________________________________________________________________
+function insertar_perfilcomponente(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionperfil=currentNodo.toma_infonodo();
+ var whref="../varios/perfilcomponente_soft.php?idperfilsoft="+identificador+"&descripcionperfil="+descripcionperfil
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra información sobre los perfiles software
+//________________________________________________________________________________________________________
+function informacion_perfiles(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionperfil=currentNodo.toma_infonodo();
+ var whref="../varios/informacion_perfilessoftware.php?idperfil="+identificador+"&descripcionperfil="+descripcionperfil
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra formulario para gestionar los componentes incluidos en un software incremental
+//________________________________________________________________________________________________________
+function insertar_incrementalcomponente(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador()
+ var descripcionincremental=currentNodo.toma_infonodo();
+ var whref="../varios/incrementalcomponente_soft.php?idsoftincremental="+identificador+"&descripcionincremental="+descripcionincremental
+ window.open(whref,"frame_contenidos")
+}
+//________________________________________________________________________________________________________
+//
+// Muestra información sobre los perfiles software
+//________________________________________________________________________________________________________
+function informacion_incrementales(){
+ reset_contextual(-1,-1)
+ var identificador=currentNodo.toma_identificador();
+ var descripcionincremental=currentNodo.toma_infonodo();
+ var whref="../varios/informacion_incrementales.php?idsoftincremental="+identificador+"&descripcionincremental="+descripcionincremental
+ window.open(whref,"frame_contenidos")
+}
+ \ No newline at end of file
diff --git a/admin/WebConsole/jscripts/tareascomandos.js b/admin/WebConsole/jscripts/tareascomandos.js
new file mode 100644
index 00000000..d8151954
--- /dev/null
+++ b/admin/WebConsole/jscripts/tareascomandos.js
@@ -0,0 +1,78 @@
+// *************************************************************************************************************************************************
+// 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: tareascomandos.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero tareascomandos.php
+// *************************************************************************************************************************************************
+var currentidtareacomando=null;
+//________________________________________________________________________________________________________
+function gestion_comandos(id,o,orden){
+ if (o.checked)
+ var opcion=op_modificacion;
+ else
+ var opcion=op_eliminacion;
+ var wurl="../gestores/gestor_tareascomandos.php";
+ var prm="opcion="+opcion+"&idtareacomando="+id+"&orden="+orden;
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul);
+ }
+}
+//________________________________________________________________________________________________________
+function ActualizarAccion(id){
+ var objorden=document.getElementById("orden-"+id)
+ var orden=objorden.value
+ if(orden=="" || orden<1){
+ alert(TbMsg[1]);
+ oorden.focus();
+ return
+ }
+ var ocheckbox=document.getElementById("checkbox-"+id);
+ gestion_comandos(id,ocheckbox,orden)
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_tareacomando(resul,descrierror,idtt){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[2])
+ var oTABLE=document.getElementById("TABLACOMANDOS");
+ var oTRs=oTABLE.getElementsByTagName('TR')
+ for(var i=0;i<oTRs.length;i++){
+ if(oTRs[i].getAttribute("id")=='TR-'+currentidtareacomando || oTRs[i].getAttribute("id")=='PAR-'+currentidtareacomando)
+ oTRs[i].style.display="none"
+ }
+}
+//________________________________________________________________________________________________________
+function resultado_modificar_tareacomando(resul,descrierror,id){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[3])
+}
+//________________________________________________________________________________________________________
+function ver_parametros(o,sw,ida){
+ o=o.parentNode
+ o.childNodes[sw].style.display="none"
+ sw++
+ if(sw>1)sw=0
+ o.childNodes[sw].style.display="block"
+ while (o.tagName!="TBODY"){
+ o=o.parentNode
+ }
+ var oTRs=o.getElementsByTagName('TR')
+ for(var i=0;i<oTRs.length;i++){
+ if(oTRs[i].getAttribute("id")=='PAR-'+ida)
+ if (oTRs[i].style.display=="none") oTRs[i].style.display="block"
+ else
+ oTRs[i].style.display="none"
+ }
+ }
diff --git a/admin/WebConsole/jscripts/trabajostareas.js b/admin/WebConsole/jscripts/trabajostareas.js
new file mode 100644
index 00000000..3c45400c
--- /dev/null
+++ b/admin/WebConsole/jscripts/trabajostareas.js
@@ -0,0 +1,80 @@
+// *************************************************************************************************************************************************
+// 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: trabajostareas.js
+// Descripción :
+// Este fichero implementa las funciones javascript del fichero trabajostareas.php
+// *************************************************************************************************************************************************
+var currentidtarea=null;
+//____________________________________________________________________________
+function gestion_tareas(id,o,op){
+ var idtrabajo=document.fdatos.idtrabajo.value
+ var oorden=document.getElementById("orden-"+id)
+ var orden=oorden.value
+ if(orden=="" || orden<1){
+ alert(TbMsg[1]);
+ if(op==null) o.checked=false
+ oorden.focus();
+ return
+ }
+ if (o.checked){
+ if(op==null)
+ var opcion=op_alta;
+ else
+ var opcion=op_modificacion;
+ }
+ else
+ var opcion=op_eliminacion;
+
+ var wurl="../gestores/gestor_trabajostareas.php";
+ var prm="opcion="+opcion+"&idtrabajo="+idtrabajo+"&idtarea="+id+"&orden="+orden
+ CallPage(wurl,prm,"retornoGestion","POST");
+}
+//______________________________________________________________________________________________________
+function retornoGestion(resul){
+ if(resul.length>0){
+ eval(resul);
+ }
+}
+
+
+
+//________________________________________________________________________________________________________
+function resultado_insertar_trabajostareas(resul,descrierror,resultado_modificar_trabajostareas){
+ if (!resul){ // Ha habido algún error en la inserción
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[0])
+ var imgact=document.getElementById("imgact-"+currentidtarea);
+ var imgHTML='<TD id="imgact-'+currentidtarea+'"><IMG src="../images/iconos/actualizar.gif" style="cursor:hand" onclick="ActualizarAccion('+currentidtarea+')">';
+ imgact.innerHTML=imgHTML
+}
+//________________________________________________________________________________________________________
+function resultado_eliminar_trabajostareas(resul,descrierror,idtt){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[2])
+ var imgact=document.getElementById("imgact-"+currentidtarea);
+ var imgHTML='&nbsp;';
+ imgact.innerHTML=imgHTML
+ var oorden=document.getElementById("orden-"+currentidtarea)
+ oorden.value="";
+}
+//________________________________________________________________________________________________________
+function resultado_modificar_trabajostareas(resul,descrierror,id){
+ if (!resul){ // Ha habido algún error en la eliminación
+ alert(descrierror)
+ return
+ }
+ alert(TbMsg[3])
+}
+//____________________________________________________________________________
+function ActualizarAccion(id){
+ var ocheckbox=document.getElementById("checkbox-"+id);
+ gestion_tareas(id,ocheckbox,op_modificacion)
+}
diff --git a/admin/WebConsole/jscripts/util.js b/admin/WebConsole/jscripts/util.js
new file mode 100644
index 00000000..27f7b484
--- /dev/null
+++ b/admin/WebConsole/jscripts/util.js
@@ -0,0 +1,19 @@
+function IsNumeric(sText)
+{
+ var ValidChars = "0123456789.";
+ var IsNumber=true;
+ var Char;
+
+
+ for (i = 0; i < sText.length && IsNumber == true; i++)
+ {
+ Char = sText.charAt(i);
+ if (ValidChars.indexOf(Char) == -1)
+ {
+ IsNumber = false;
+ }
+ }
+ return IsNumber;
+
+}
+
diff --git a/admin/WebConsole/menus/images/linux.png b/admin/WebConsole/menus/images/linux.png
new file mode 100644
index 00000000..d4ad6c6c
--- /dev/null
+++ b/admin/WebConsole/menus/images/linux.png
Binary files differ
diff --git a/admin/WebConsole/menus/images/opengnsys.png b/admin/WebConsole/menus/images/opengnsys.png
new file mode 100644
index 00000000..cea3b03e
--- /dev/null
+++ b/admin/WebConsole/menus/images/opengnsys.png
Binary files differ
diff --git a/admin/WebConsole/menus/images/xp.png b/admin/WebConsole/menus/images/xp.png
new file mode 100644
index 00000000..b4fcf480
--- /dev/null
+++ b/admin/WebConsole/menus/images/xp.png
Binary files differ
diff --git a/admin/WebConsole/menus/menuaula1.html b/admin/WebConsole/menus/menuaula1.html
new file mode 100644
index 00000000..b24b101f
--- /dev/null
+++ b/admin/WebConsole/menus/menuaula1.html
@@ -0,0 +1,37 @@
+<html>
+ <head>
+ <style type="text/css">
+ * { font-size: 10px; }
+ h2 { font-size: 2em;}
+ br {font-size: 0.2em; }
+ a:link, a:visited { text-decoration: none; font-weight: normal; color:#505e6b; font-weight: bold; } </style>
+ </head>
+
+ <body>
+ <table width=100%>
+ <tr><td colspan=3 height=50px >
+ <h2><img style="margin:0px 100px 0px 0px" align=middle src=images/opengnsys.png>Men&uacute; de opciones</h2></p></td></tr>
+
+ <tr><td width=10% rowspan="2" align=right valign=top><img width="40px" heigth="40px" src=images/xp.png>
+ <td width=30%><a href="command:bootOs 1 1">1.- Arrancar Windows XP</a>
+ <td width=60%>Arranque normal sin modificaciones.
+ <tr>
+ <td width=30%><a href="command: restoreImage REPO /aula1/xp 1 1">2.- Reinstalar Windows XP</a></td>
+ <td width=60%><br>El proceso de instalaci&oacute;n puede tardar unos minutos.
+ <br><font color=red>Durante la instalaci&oacute;n se bloquean teclado y rat&oacute;n.</font></td>
+
+ <tr><td colspan=3 text=white bgcolor=#ffffff align=center height=10px>
+
+
+ <tr><td width=10% rowspan="2" align=right valign=top><img width="40px" heigth="40px" src=images/linux.png>
+ <td width=30%><a href="command:bootOs 1 2">3.- Arrancar Ubuntu 9.04</a>
+ <td width=60%>Arranque normal sin modificaciones.
+ <tr>
+ <td width=30%><a href="command: restoreImage REPO /aula1/ubuntu9 1 2"><br>4.- Reinstalar Ubuntu 9.04</a>
+ <td width=60%><br>El proceso de instalaci&oacute;n puede tardar unos minutos.
+ <br><font color=red>Durante la instalaci&oacute;n se bloquean teclado y rat&oacute;n.</font>
+
+
+ </table>
+ <body>
+</html>
diff --git a/admin/WebConsole/nada.php b/admin/WebConsole/nada.php
new file mode 100644
index 00000000..d12380bb
--- /dev/null
+++ b/admin/WebConsole/nada.php
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <SCRIPT language="javascript">
+ </SCRIPT>
+</HEAD>
+<BODY>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/pagerror.php b/admin/WebConsole/pagerror.php
new file mode 100644
index 00000000..cd19cc4f
--- /dev/null
+++ b/admin/WebConsole/pagerror.php
@@ -0,0 +1,33 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero redirecciona a la página principal con un código de error
+// *************************************************************************************************************************************************
+$herror=0;
+if (isset($_GET["herror"])) $herror=$_GET["herror"];
+//________________________________________________________________________________________________________
+?>
+<HTML>
+ <TITLE> Administración 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">
+ </HEAD>
+ <BODY>
+ <?
+ echo '<SCRIPT LANGUAGE="JAVASCRIPT">'.chr(13);
+ echo ' var o=window.top;'.chr(13);
+ echo ' var ao=o.parent;'.chr(13);
+ echo ' while (o!=ao){ // Busca la primera ventana del navegador'.chr(13);
+ echo ' ao=o;'.chr(13);
+ echo ' o=o.parent;';
+ echo ' };'.chr(13);
+ echo ' ao.location="./acceso.php?herror='.$herror.'";'.chr(13);
+ echo '</SCRIPT>'.chr(13);
+ ?>
+ </BODY>
+</HTML>
diff --git a/admin/WebConsole/principal/acciones.php b/admin/WebConsole/principal/acciones.php
new file mode 100644
index 00000000..72f0be9f
--- /dev/null
+++ b/admin/WebConsole/principal/acciones.php
@@ -0,0 +1,688 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: acciones.php
+// Descripción :
+// Administra procedimientos,y tareas de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/acciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idcentro); // Crea el arbol XML con todos los datos de las acciones registradas en el Centro
+// Creación del árbol
+$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>
+<TITLE>Administración web de aulas</TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1">
+ <LINK rel="stylesheet" type="text/css" href="../estilos.css">
+ <SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/acciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/acciones_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+$XMLcontextual=CreacontextualXMLComandos(); // comandos
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLComando(); // comando
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de los procedimientos
+$XMLcontextual=CreacontextualXMLProcedimientos();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposProcedimientos(); // Grupo de Procedimientos
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLProcedimiento(); // Procedimientos
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de las tareas
+$XMLcontextual=CreacontextualXMLTareas();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposTareas(); // Grupo de Tareas
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLTarea(); // Tareas
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+?>
+</BODY>
+</HTML>
+<?
+// ********************************************************************************************************
+// Devuelve una cadena con formato XML con toda la informaci� de las acciones registradas en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexiónabierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro)
+{
+ global $TbMsg;
+ global $LITAMBITO_COMANDOS;
+ global $LITAMBITO_PROCEDIMIENTOS;
+ global $LITAMBITO_TAREAS;
+
+ $cadenaXML='<ACCIONES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/acciones.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[33].'"';
+ $cadenaXML.=' nodoid="RaizAcciones"';
+ $cadenaXML.='>';
+
+ $cadenaXML.='<COMANDOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[30].'"';
+ $cadenaXML.=' nodoid="RaizComandos"';
+ //$cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_Raiz".$LITAMBITO_COMANDOS."'" .');"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_Comandos($cmd);
+ $cadenaXML.='</COMANDOS>';
+
+ $cadenaXML.='<PROCEDIMIENTOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[29].'"';
+ $cadenaXML.=' nodoid=Raizpro'.$LITAMBITO_PROCEDIMIENTOS;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_PROCEDIMIENTOS."'".')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_procedimientos($cmd,$idcentro,0);
+ $cadenaXML.='</PROCEDIMIENTOS>';
+
+ $cadenaXML.='<TAREAS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[31].'"';
+ $cadenaXML.=' nodoid=Raiz'.$LITAMBITO_TAREAS;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_TAREAS."'".')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_tareas($cmd,$idcentro,0);
+ $cadenaXML.='</TAREAS>';
+
+ $cadenaXML.='</ACCIONES>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Comandos($cmd)
+{
+ global $LITAMBITO_COMANDOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idcomando,descripcion,urlimg FROM comandos Where activo=1 order by descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<COMANDO';
+ // Atributos
+ //$cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_COMANDOS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/comandos.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid=comando-'.$rs->campos["idcomando"];
+ $cadenaXML.='>';
+ $cadenaXML.='</COMANDO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_procedimientos($cmd,$idcentro,$grupoid){
+ global $AMBITO_GRUPOSPROCEDIMIENTOS;
+ global $LITAMBITO_GRUPOSPROCEDIMIENTOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos
+ WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSPROCEDIMIENTOS."
+ ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSPROCEDIMIENTOS';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSPROCEDIMIENTOS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSPROCEDIMIENTOS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_procedimientos($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSPROCEDIMIENTOS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Procedimientos($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Procedimientos($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_PROCEDIMIENTOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idprocedimiento,descripcion FROM procedimientos
+ WHERE idcentro=".$idcentro." AND grupoid=".$grupoid."
+ ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<PROCEDIMIENTO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/procedimiento.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PROCEDIMIENTOS.'-'.$rs->campos["idprocedimiento"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PROCEDIMIENTOS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROCEDIMIENTO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_tareas($cmd,$idcentro,$grupoid){
+ global $AMBITO_GRUPOSTAREAS;
+ global $LITAMBITO_GRUPOSTAREAS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid
+ FROM grupos
+ WHERE grupoid=".$grupoid."
+ AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSTAREAS."
+ ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSTAREAS';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSTAREAS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSTAREAS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_tareas($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSTAREAS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Tareas($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Tareas($cmd,$idcentro,$grupoid)
+{
+ global $LITAMBITO_TAREAS;
+
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT tareas.idtarea,tareas.descripcion,tareas.ambito
+ FROM tareas
+ WHERE tareas.idcentro=".$idcentro."
+ AND grupoid=".$grupoid."
+ ORDER by tareas.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<TAREA';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_TAREAS.'-'.$rs->campos["idtarea"];
+ $cadenaXML.=' nodovalue="'.$rs->campos["ambito"].'"';
+
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_TAREAS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</TAREA>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Mens Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLComandos()
+{
+ global $LITAMBITO_COMANDOS;
+ global $EJECUCION_COMANDO;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_COMANDOS.'"';
+ $layerXML.=' maxanchu=165';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="programacion('.$EJECUCION_COMANDO.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[21].'"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLComando()
+{
+ global $LITAMBITO_COMANDOS;
+ global $EJECUCION_COMANDO;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_COMANDOS.'"';
+ $layerXML.=' maxanchu=120';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="programacion('.$EJECUCION_COMANDO.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[21].'"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLProcedimientos(){
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_GRUPOSPROCEDIMIENTOS;
+ global $LITAMBITO_GRUPOSPROCEDIMIENTOS;
+ global $LITAMBITO_PROCEDIMIENTOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_PROCEDIMIENTOS.'"';
+ $layerXML.=' maxanchu=195';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPROCEDIMIENTOS.',' . "'".$LITAMBITO_GRUPOSPROCEDIMIENTOS."'" . ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_procedimientos.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_procedimientos.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PROCEDIMIENTOS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposProcedimientos(){
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_GRUPOSPROCEDIMIENTOS;
+ global $LITAMBITO_GRUPOSPROCEDIMIENTOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSPROCEDIMIENTOS.'"';
+ $layerXML.=' maxanchu=200';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPROCEDIMIENTOS.',' ."'".$LITAMBITO_GRUPOSPROCEDIMIENTOS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_procedimientos.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_procedimientos.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PROCEDIMIENTOS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLProcedimiento(){
+ global $EJECUCION_PROCEDIMIENTO;
+ global $AMBITO_PROCEDIMIENTOS;
+ global $LITAMBITO_PROCEDIMIENTOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_PROCEDIMIENTOS.'"';
+ $layerXML.=' maxanchu=170';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="informacion_acciones('.$AMBITO_PROCEDIMIENTOS.')"';
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="inclusion_acciones('.$AMBITO_PROCEDIMIENTOS.')"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[20].'"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_PROCEDIMIENTOS.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_procedimientos.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_accionmenu('.$EJECUCION_PROCEDIMIENTO.')"';
+ $layerXML.=' imgitem="../images/iconos/menus.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLTareas(){
+ global $AMBITO_TAREAS;
+ global $AMBITO_GRUPOSTAREAS;
+ global $LITAMBITO_GRUPOSTAREAS;
+ global $LITAMBITO_TAREAS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_TAREAS.'"';
+ $layerXML.=' maxanchu=150';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSTAREAS.',' ."'".$LITAMBITO_GRUPOSTAREAS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=270;
+ $wpages="../propiedades/propiedades_tareas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/tareas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_tareas.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_TAREAS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposTareas(){
+ global $AMBITO_TAREAS;
+ global $AMBITO_GRUPOSTAREAS;
+ global $LITAMBITO_GRUPOSTAREAS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSTAREAS.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSTAREAS.',' ."'".$LITAMBITO_GRUPOSTAREAS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=270;
+ $wpages="../propiedades/propiedades_tareas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/tareas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_tareas.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_TAREAS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLTarea(){
+ global $EJECUCION_TAREA;
+ global $AMBITO_TAREAS;
+ global $LITAMBITO_TAREAS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_TAREAS.'"';
+ $layerXML.=' maxanchu=150';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ejecutar_tareas('.$EJECUCION_TAREA.')"';
+ $layerXML.=' imgitem="../images/iconos/tareas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[15];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="programacion('.$EJECUCION_TAREA.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem='.$TbMsg[16];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="informacion_acciones('.$AMBITO_TAREAS.')"';
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.=' textoitem='.$TbMsg[17];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="inclusion_acciones('.$AMBITO_TAREAS.')"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[20].'"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_TAREAS.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[18];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=270;
+ $wpages="../propiedades/propiedades_tareas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[19];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_accionmenu('.$EJECUCION_TAREA.')"';
+ $layerXML.=' imgitem="../images/iconos/menus.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/actualizar.php b/admin/WebConsole/principal/actualizar.php
new file mode 100644
index 00000000..3647c87d
--- /dev/null
+++ b/admin/WebConsole/principal/actualizar.php
@@ -0,0 +1,63 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Abril-2010
+// Nombre del fichero: actualizar.php
+// Descripción :
+// Obliga a los clientes a reiniciar la sesión en el sistema
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/SockHidra.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/CreaComando.php");
+ include_once("../includes/RecopilaIpesMacs.php");
+ //________________________________________________________________________________________________________
+ $ambito=0;
+ $idambito=0;
+
+ if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+ if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+ //________________________________________________________________________________________________________
+ $cmd=CreaComando($cadenaconexion);
+ if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+ //________________________________________________________________________________________________________
+ $funcion="Actualizar"; // Nombre de la función que procesa la petición
+ $atributos=""; // Parametros adicionales la petición
+ $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
+ $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
+ //________________________________________________________________________________________________________
+ // Ámbito de aplicación de la petición
+ //________________________________________________________________________________________________________
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
+ $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
+ //________________________________________________________________________________________________________
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $trama="";
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros="nfn=".$funcion.chr(13);
+ $parametros.=$aplicacion;
+ $parametros.=$atributos;
+ $parametros.=$acciones;
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["res"];
+ echo $trama_notificacion; // Devuelve respuesta
+ }
+ else
+ echo "0"; // Error de conexión
+?>
+
diff --git a/admin/WebConsole/principal/administracion.php b/admin/WebConsole/principal/administracion.php
new file mode 100644
index 00000000..8303ea6e
--- /dev/null
+++ b/admin/WebConsole/principal/administracion.php
@@ -0,0 +1,604 @@
+<?
+// *********************************************************************************************************
+// 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
+// Nombre del fichero: administracion.php
+// Descripción :
+// Presenta opciones de admistración de la Aplicación
+// **********************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/administracion_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+$cadenaXML="";
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexi� con servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd); // Crea el arbol XML con todos los datos de administracion
+// Creaci� del �bol
+$baseurlimg="../images/signos"; // Url de las imágenes de signo
+$clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del �bol
+$arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault,2,0,5); // Crea el �bol (formato XML)
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administraci� 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/administracion.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/administracion_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea �bol (HTML) a partir del XML
+
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+// Crea contextual de las imágenes
+ $XMLcontextual=CreacontextualXMLUniversidades();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLUsuarios();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLAdministradores();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLGruposEntidades();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLEntidades();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLCentros();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML con toda la informaci� de aulas y ordenadores registrados en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexi� abierta)
+// - idcentro: El identificador del centro
+// - nombrecentro: El nombre del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd){
+ global $TbMsg;
+ global $LITAMBITO_ADMINISTRACION;
+ global $cadenaXML;
+
+ $cadenaXML='<RAIZ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/administracion.gif"';
+ $cadenaXML.=' nodoid=Raiz'.$LITAMBITO_ADMINISTRACION;
+ $cadenaXML.=' infonodo='.$TbMsg[0];
+ $cadenaXML.='>';
+ SubarbolXML_universidades($cmd);
+ $cadenaXML.='</RAIZ>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_universidades($cmd){
+ global $TbMsg;
+ global $LITAMBITO_GRUPOSUNIVERSIDADES;
+ global $LITAMBITO_UNIVERSIDADES;
+ global $AMBITO_GRUPOSUNIVERSIDADES;
+ global $cadenaXML;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT iduniversidad,nombreuniversidad FROM universidades";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<UNIVERSIDAD ';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_UNIVERSIDADES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/universidades.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreuniversidad"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_UNIVERSIDADES;
+ $cadenaXML.='>';
+ SubarbolXML_usuarios($cmd,$rs->campos["iduniversidad"],0);
+ SubarbolXML_universidades_entidades($cmd,$rs->campos["iduniversidad"],0);
+ $cadenaXML.='</UNIVERSIDAD>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_usuarios($cmd){
+ global $TbMsg;
+ global $cadenaXML;
+
+ $cadenaXML.='<USUARIOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/usuarioslog.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_administradores'" .')"';
+ $cadenaXML.=' infonodo="'.$TbMsg[11].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS;
+ $cadenaXML.='>';
+ SubarbolXML_superadministradores($cmd);
+ $cadenaXML.='</USUARIOS>';
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_superadministradores($cmd){
+ global $TbMsg;
+ global $LITAMBITO_USUARIOS;
+ global $cadenaXML;
+ global $SUPERADMINISTRADOR;
+ global $ADMINISTRADOR;
+ $rs=new Recordset;
+ $cmd->texto="SELECT idusuario,nombre,idtipousuario FROM usuarios WHERE idtipousuario=".$SUPERADMINISTRADOR." OR idtipousuario=".$ADMINISTRADOR." ORDER by idtipousuario,nombre";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<USUARIO';
+ // Atributos
+ if($rs->campos["idtipousuario"]==$SUPERADMINISTRADOR)
+ $cadenaXML.=' imagenodo="../images/iconos/superadministradores.gif"';
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/administradores.gif"';
+
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_USUARIOS."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombre"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS.'-'.$rs->campos["idusuario"];
+ $cadenaXML.='>';
+ SubarbolXML_centros_asignados($cmd,$rs->campos["idusuario"]);
+ $cadenaXML.='</USUARIO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_universidades_entidades($cmd,$iduniversidad,$grupoid){
+ global $TbMsg;
+ global $LITAMBITO_GRUPOSENTIDADES;
+ global $LITAMBITO_ENTIDADES;
+ global $cadenaXML;
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=0 AND iduniversidad=".$iduniversidad." ORDER BY nombregrupo";
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSENTIDADES';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_GRUPOSENTIDADES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSENTIDADES.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ SubarbolXML_universidades_entidades($cmd,$iduniversidad,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSENTIDADES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cmd->texto="SELECT identidad,nombreentidad FROM entidades WHERE grupoid=".$grupoid." AND iduniversidad=".$iduniversidad." ORDER by nombreentidad desc";
+ $rs->Comando=&$cmd;
+
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<ENTIDAD';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/entidades.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_ENTIDADES."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreentidad"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_ENTIDADES.'-'.$rs->campos["identidad"];
+ $cadenaXML.='>';
+ SubarbolXML_entidades_centros($cmd,$rs->campos["identidad"]);
+ $cadenaXML.='</ENTIDAD>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+
+//________________________________________________________________________________________________________
+function SubarbolXML_entidades_centros($cmd,$identidad){
+ global $TbMsg;
+ global $LITAMBITO_CENTROS;
+ global $cadenaXML;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE identidad=".$identidad." ORDER by nombrecentro";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<CENTRO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/centros.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_CENTROS."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombrecentro"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS.'-'.$rs->campos["idcentro"];
+ $cadenaXML.='>';
+ SubarbolXML_administradores($cmd,$rs->campos["idcentro"]);
+ $cadenaXML.='</CENTRO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_administradores($cmd,$idambito){
+ global $TbMsg;
+ global $LITAMBITO_USUARIOS;
+ global $cadenaXML;
+ global $ADMINISTRADOR;
+ $rs=new Recordset;
+ $cmd->texto="SELECT usuarios.idusuario,usuarios.nombre FROM usuarios
+ INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario
+ WHERE administradores_centros.idcentro=".$idambito." ORDER by usuarios.nombre";
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<USUARIO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/administradores.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_USUARIOS."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombre"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS.'-'.$rs->campos["idusuario"];
+ $cadenaXML.='></USUARIO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+
+//________________________________________________________________________________________________________
+function SubarbolXML_centros_asignados($cmd,$idambito){
+ global $TbMsg;
+ global $LITAMBITO_CENTROS;
+ global $cadenaXML;
+ global $ADMINISTRADOR;
+ $rs=new Recordset;
+ $cmd->texto="SELECT centros.idcentro,centros.nombrecentro FROM centros
+ INNER JOIN administradores_centros ON administradores_centros.idcentro=centros.idcentro
+ WHERE administradores_centros.idusuario=".$idambito." ORDER by centros.nombrecentro";
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<CENTRO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/centros.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_CENTROS."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombrecentro"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS.'-'.$rs->campos["idcentro"];
+ $cadenaXML.='></CENTRO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+//
+// Mens Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLUniversidades(){
+ global $LITAMBITO_GRUPOSENTIDADES;
+ global $AMBITO_GRUPOSENTIDADES;
+ global $LITAMBITO_UNIVERSIDADES;
+ global $SUPERADMINISTRADOR;
+ global $ADMINISTRADOR;
+ global $TbMsg;
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_UNIVERSIDADES.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ // Crear grupos de entidades
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSENTIDADES.',' ."'".$LITAMBITO_GRUPOSENTIDADES."'". ',1,1)"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Crear entidades
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_entidades.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',1,1)"';
+ $layerXML.=' imgitem="../images/iconos/entidades.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Modificar Universidad
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_universidades.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Variables de entorno
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_entornos.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/entornos.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLUsuarios(){
+ global $ADMINISTRADOR;
+ global $TbMsg;
+ global $SUPERADMINISTRADOR;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_administradores"';
+ $layerXML.=' maxanchu=170';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+
+ // Crear superadministrador
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php?idtipousuario=".$SUPERADMINISTRADOR;
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/superadministradores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Crear administrador
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php?idtipousuario=".$ADMINISTRADOR;
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',0,3)"';
+ $layerXML.=' imgitem="../images/iconos/administradores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLAdministradores(){
+ global $LITAMBITO_USUARIOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_USUARIOS.'"';
+ $layerXML.=' maxanchu=180';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+
+ // Asignar usuarios
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="Asignar_Usuario()"';
+ $layerXML.=' imgitem="../images/iconos/centros.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Modificar usuarios
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLGruposEntidades(){
+ global $LITAMBITO_GRUPOSENTIDADES;
+ global $AMBITO_GRUPOSENTIDADES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSENTIDADES.'"';
+ $layerXML.=' maxanchu=180';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ // Crear grupos de entidades
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSENTIDADES.',' ."'".$LITAMBITO_GRUPOSENTIDADES."'". ',0,1)"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ // Crear entidades
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_entidades.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',0,1)"';
+ $layerXML.=' imgitem="../images/iconos/entidades.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLEntidades(){
+ global $LITAMBITO_ENTIDADES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_ENTIDADES.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ // Crear centros
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_centros.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',0,2)"';
+ $layerXML.=' imgitem="../images/iconos/centros.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+// Modificar entidades
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_entidades.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLCentros(){
+ global $ADMINISTRADOR;
+ global $LITAMBITO_CENTROS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_CENTROS.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ // Asignar administrador
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="Asignar()"';
+ $layerXML.=' imgitem="../images/iconos/administradores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_centros.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/aula.php b/admin/WebConsole/principal/aula.php
new file mode 100644
index 00000000..b7b878ae
--- /dev/null
+++ b/admin/WebConsole/principal/aula.php
@@ -0,0 +1,527 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: aula.php
+// Descripción :
+// Visualiza los ordenadores de las aulas de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/MenuContextual.php");
+include_once("../clases/SockHidra.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/aulas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$litambito=0;
+$idambito=0;
+$nombreambito="";
+$idsrvrembo=0;
+$idsrvdhcp=0;
+
+if (isset($_GET["litambito"])) $litambito=$_GET["litambito"]; // Recoge parametros
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+
+$Midordenador= Array();
+$Mnombreordenador= Array();
+$MimgOrdenador=Array();
+$Mip= Array();
+$Mmac= Array();
+$k=0; // Indice de la Matriz
+
+$cadenaip="";
+$idaula=0;
+$nombreaula="";
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+ <HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ <LINK rel="stylesheet" type="text/css" href="../estilos.css">
+ </HEAD>
+<BODY OnContextMenu="return false">
+ <SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/aula.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/aulas.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/aulas_'.$idioma.'.js"></SCRIPT>'?>
+<?
+//________________________________________________________________________________________________________
+switch($litambito){
+ case $LITAMBITO_CENTROS :
+ $ambito=$AMBITO_CENTROS;
+ echo '<p align=center class=cabeceras>'.$TbMsg[22].'<br>'.$TbMsg[24].'<br><span class=subcabeceras>'.$nombreambito.'</span></p>';
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $ambito=$AMBITO_GRUPOSAULAS;
+ echo '<p align=center class=cabeceras>'.$TbMsg[22].'<br>'.$TbMsg[25].'<br><span class=subcabeceras>'.$nombreambito.'</span></p>';
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE tipo=".$AMBITO_GRUPOSAULAS." AND idgrupo=".$idambito;
+ RecorreGruposAulas($cmd);
+ break;
+ case $LITAMBITO_AULAS :
+ $ambito=$AMBITO_AULAS;
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES :
+ $ambito=$AMBITO_GRUPOSORDENADORES;
+ echo '<p align=center class=cabeceras>'.$TbMsg[22].'<br>'.$TbMsg[26].'<br><span class=subcabeceras>'.$nombreambito.'</span></p>';
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
+ RecorreGruposOrdenadores($cmd);
+ pintaordenadores();
+ break;
+}
+?>
+<FORM name="fcomandos" action="" method="post" target="frame_contenidos">
+ <INPUT type="hidden" name="idcomando" value="">
+ <INPUT type="hidden" name="descricomando" value="">
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+ <INPUT type="hidden" name="idambito" value="<? echo $idambito?>">
+ <INPUT type="hidden" name="nombreambito" value="">
+ <INPUT type="hidden" name="gestor" value="">
+ <INPUT type="hidden" name="funcion" value="">
+ <INPUT type="hidden" name="script" value="">
+</FORM>
+<?
+$flotante=new MenuContextual(); // Crea objeto menu contextual
+$XMLcontextual=ContextualXMLAulas(); // Crea contextual de aulas
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLOrdenadores(); // Crea contextual de ordenadores
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de los comandos para los distintosn ámbitos
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_AULAS,$AMBITO_AULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+<SCRIPT language="javascript">
+ Sondeo();
+</SCRIPT>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function RecorreCentro($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo ";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ global $idaula;
+ global $nombreaula;
+ global $k; // Indice de la Matriz
+ global $cadenaip;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $nombreaula=$rs->campos["nombreaula"];
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula;
+ $k=0;
+ $cadenaip="";
+ RecorreOrdenadores($cmd);
+ pintaordenadores();
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposOrdenadores($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreOrdenadores($cmd){
+ global $Midordenador;
+ global $Mnombreordenador;
+ global $MimgOrdenador;
+ global $Mip;
+ global $Mmac;
+ global $k; // Indice de la Matriz
+
+ global $cadenaip;
+
+ $cmd->texto.= " ORDER BY nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+
+ while (!$rs->EOF){
+ $idordenador=$rs->campos["idordenador"];
+ $Midordenador[$k]=$rs->campos["idordenador"];
+ $Mnombreordenador[$k]=$rs->campos["nombreordenador"];
+ $MimgOrdenador[$k]="ordenador_OFF.gif";
+ $Mip[$k]=$rs->campos["ip"];
+ $Mmac[$k]=$rs->campos["mac"];
+ $cadenaip.=$rs->campos["ip"].";";
+ $k++;
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function pintaordenadores(){
+ global $AMBITO_AULAS;
+ global $AMBITO_ORDENADORES;
+ global $LITAMBITO_AULAS;
+ global $LITAMBITO_ORDENADORES;
+ global $LONCABECERA;
+ global $Midordenador;
+ global $Mnombreordenador;
+ global $MimgOrdenador;
+ global $Mip;
+ global $Mmac;
+ global $k; // Indice de la Matriz
+ global $cadenaip;
+ global $idaula;
+ global $nombreaula;
+ global $servidorhidra,$hidraport;
+ global $TbMsg;
+
+ $ntr=0; // Numero de ordenadores por fila
+ if ($nombreaula!=""){
+ echo '<DIV>';
+ echo '<p align=center class=cabeceras><img border=0 nod="'.$LITAMBITO_AULAS.'-'.$idaula.'" value="'.$nombreaula.'"
+ style="cursor:pointer" src="../images/iconos/aula.gif" oncontextmenu="nwmenucontextual(this,' ."'flo_".$LITAMBITO_AULAS."'" .')" >&nbsp;&nbsp;'.$TbMsg[23].'</br><span id="'.$LITAMBITO_AULAS.'-'.$idaula.'" class=subcabeceras>'.$nombreaula.'</span></p>';
+ }
+ echo '<TABLE style="BORDER-BOTTOM: #d4d0c8 1px solid;BORDER-LEFT: #d4d0c8 1px solid;BORDER-RIGHT: #d4d0c8 1px solid;BORDER-TOP: #d4d0c8 1px solid" align=center><TR>';
+ for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML
+ $ntr++;
+ echo '<TD>';
+ echo '<table border=0>';
+ echo '<tr>';
+ echo ' <td align=center width=70 height=40>';
+ echo ' <a href="#"><img id="'.$Mip[$i].'" border=0 sondeo="" nod="'.$LITAMBITO_ORDENADORES.'-'.$Midordenador[$i].'"
+ value="'.$Mnombreordenador[$i].'" src="../images/'.$MimgOrdenador[$i].'" oncontextmenu="nwmenucontextual(this,'."'flo_".$LITAMBITO_ORDENADORES."'" .')" width="32" height="32"></A>';
+ echo ' </td>';
+ echo '</tr>';
+ echo '<tr>';
+ echo '<td align=center id="'.$LITAMBITO_ORDENADORES.'-'.$Midordenador[$i].'">';
+ echo ' <font color="#003300" size="1" face="Arial, Helvetica, sans-serif">'.$Mnombreordenador[$i].'</font>';
+ echo ' </br>';
+ echo ' <font color="#003300" size="1" face="Arial, Helvetica, sans-serif">';
+ echo ' <strong><font color="#D0A126">'.$Mip[$i].'</font></strong>';
+ echo ' </br>';
+ echo ' <font color="#003300" size="1" face="Arial, Helvetica, sans-serif">'.$Mmac[$i].'</font>';
+ echo '</td>';
+ echo '</tr>';
+ echo '</table>';
+ echo '</TD>';
+ if ($ntr>4){
+ $ntr=0;
+ echo '</TR><TR>';
+ }
+ }
+ echo '</TABLE>';
+ if ($nombreaula!="")
+ echo '</DIV>';
+}
+//________________________________________________________________________________________________________
+function ContextualXMLAulas(){
+ global $TbMsg;
+ global $AMBITO_AULAS;
+ global $LITAMBITO_AULAS;
+ global $RESERVA_CONFIRMADA;
+ global $OPERADOR;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' maxanchu=185';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores(this)"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota()"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_AULAS.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="incorporarordenador()"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[27];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ordenador_estandar()"';
+ $layerXML.=' imgitem="../images/iconos/ordenadores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="configuraciones('.$AMBITO_AULAS.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/configuraciones.gif"';
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_aulas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Crear operador
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php?idtipousuario=".$OPERADOR;
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',3)"';
+ $layerXML.=' imgitem="../images/iconos/operadores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[37];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[29];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLOrdenadores(){
+ global $TbMsg;
+ global $AMBITO_ORDENADORES;
+ global $LITAMBITO_ORDENADORES;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' maxanchu=140';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota()"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eco_remoto()"';
+ $layerXML.=' imgitem="../images/iconos/ecocon.gif"';
+ $layerXML.=' textoitem='.$TbMsg[39];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_ORDENADORES.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="configuraciones('.$AMBITO_ORDENADORES.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/configuraciones.gif"';
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=400;
+ $wpages="../propiedades/propiedades_ordenadores.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[18];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLComandos($litambito,$ambito){
+ global $cmd;
+ $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";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $layerXML="";
+ $rs->Primero();
+ while (!$rs->EOF){
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
+ $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"';
+ $layerXML.='></ITEM>';
+ if($maxlongdescri<strlen($rs->campos["descripcion"])) // Toma la Descripción de mayor longitud
+ $maxlongdescri=strlen($rs->campos["descripcion"]);
+ $rs->Siguiente();
+ }
+ $layerXML.='</MENUCONTEXTUAL>';
+ $prelayerXML='<MENUCONTEXTUAL';
+ $prelayerXML.=' idctx="flo_comandos_'.$litambito.'"';
+ $prelayerXML.=' maxanchu='.$maxlongdescri*7;
+ $prelayerXML.=' clase="menu_contextual"';
+ $prelayerXML.='>';
+ $finallayerXML=$prelayerXML.$layerXML;
+ return($finallayerXML);
+ }
+}
diff --git a/admin/WebConsole/principal/aulas.php b/admin/WebConsole/principal/aulas.php
new file mode 100644
index 00000000..bcb68755
--- /dev/null
+++ b/admin/WebConsole/principal/aulas.php
@@ -0,0 +1,890 @@
+<?
+// *************************************************************************
+// 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: Marzo-2006
+// Nombre del fichero: aulas.php
+// Descripción :
+// Administra grupos,aulas y ordenadores de un determinado Centro
+// ****************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/aulas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idcentro,$nombrecentro); // Crea el arbol XML con todos los datos de aulas del Centro
+// Creación del árbol
+$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,2,0,5); // Crea el árbol (formato XML)
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/aulas.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/aulas_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<FORM name="fcomandos" action="" method="post" target="frame_contenidos">
+ <INPUT type="hidden" name="idcomando" value="">
+ <INPUT type="hidden" name="descricomando" value="">
+ <INPUT type="hidden" name="ambito" value="">
+ <INPUT type="hidden" name="idambito" value="">
+ <INPUT type="hidden" name="nombreambito" value="">
+ <INPUT type="hidden" name="gestor" value="">
+ <INPUT type="hidden" name="funcion" value="">
+</FORM>
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de los Centros y aulas
+$XMLcontextual=ContextualXMLCentros(); // Centros
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposAulas(); // Grupos de aulas
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLAulas(); // Aulas
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLUsuarios(); // Operadores
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposOrdenadores(); // Grupos de ordenadores
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLOrdenadores(); // Ordenadores
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de los comandos para los distintos �bitos
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_CENTROS,$AMBITO_CENTROS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_GRUPOSAULAS,$AMBITO_GRUPOSAULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_AULAS,$AMBITO_AULAS);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_GRUPOSORDENADORES,$AMBITO_GRUPOSORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES);
+echo $flotante->CreaMenuContextual($XMLcontextual);
+//___________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML con toda la informaci� de aulas y ordenadores registrados en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexiónabierta)
+// - idcentro: El identificador del centro
+// - nombrecentro: El nombre del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro,$nombrecentro){
+ global $TbMsg;
+ global $LITAMBITO_CENTROS;
+ $cadenaXML='<CENTRO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/centros.gif"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS."-".$idcentro;
+ $cadenaXML.=' infonodo="'.$nombrecentro.'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_CENTROS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_aulas($cmd,$idcentro,0);
+ $cadenaXML.='</CENTRO>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_aulas($cmd,$idcentro,$grupoid){
+ global $TbMsg;
+ global $LITAMBITO_GRUPOSAULAS;
+ global $LITAMBITO_AULAS;
+ global $AMBITO_GRUPOSAULAS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSAULAS';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSAULAS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSAULAS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_aulas($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSAULAS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." order by nombreaula";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<AULA ';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_AULAS."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_AULAS.'-'.$rs->campos["idaula"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_aulas_ordenadores($cmd,$rs->campos["idaula"],0);
+ $cadenaXML.=SubarbolXML_aulas_operadores($cmd,$rs->campos["idaula"],&$cc);
+ $cadenaXML.='</AULA>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_aulas_operadores($cmd,$idaula,$cont){
+ global $TbMsg;
+ global $LITAMBITO_USUARIOS;
+ global $cadenaXML;
+ global $OPERADOR;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idusuario,nombre FROM usuarios WHERE idtipousuario=".$OPERADOR." AND idambito=".$idaula." ORDER by nombre";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->EOF) return("");
+ while (!$rs->EOF){
+ $cont++;
+ $cadenaXML.='<USUARIO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/operadores.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_USUARIOS."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombre"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_USUARIOS.'-'.$rs->campos["idusuario"];
+ $cadenaXML.='></USUARIO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_aulas_ordenadores($cmd,$idaula,$grupoid){
+ global $TbMsg;
+ global $LITAMBITO_GRUPOSORDENADORES;
+ global $LITAMBITO_ORDENADORES;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador,grupoid FROM gruposordenadores WHERE grupoid=".$grupoid." AND idaula=".$idaula." ORDER BY nombregrupoordenador";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSORDENADORES';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_GRUPOSORDENADORES."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupoordenador"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSORDENADORES.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_aulas_ordenadores($cmd,$idaula,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSORDENADORES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cmd->texto="SELECT idordenador,nombreordenador FROM ordenadores WHERE grupoid=".$grupoid." AND idaula=".$idaula." order by nombreordenador desc";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_ORDENADORES."'" .')"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_ORDENADORES.'-'.$rs->campos["idordenador"];
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Mens Contextuales
+//________________________________________________________________________________________________________
+function ContextualXMLCentros(){
+ global $TbMsg;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSAULAS;
+ global $LITAMBITO_GRUPOSAULAS;
+ global $AMBITO_CENTROS;
+ global $LITAMBITO_CENTROS;
+ global $RESERVA_CONFIRMADA;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_CENTROS.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ver_aulas()"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/ordenadores.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSAULAS.',' ."'".$LITAMBITO_GRUPOSAULAS."',1". ')"';
+
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_aulas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',1)"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota('.$AMBITO_CENTROS.')"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_CENTROS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_CENTROS.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[29];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposAulas(){
+ global $TbMsg;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSAULAS;
+ global $LITAMBITO_GRUPOSAULAS;
+ global $RESERVA_CONFIRMADA;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSAULAS.'"';
+ $layerXML.=' maxanchu=155';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ver_aulas()"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/ordenadores.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSAULAS.',' ."'".$LITAMBITO_GRUPOSAULAS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_aulas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota('.$AMBITO_GRUPOSAULAS.')"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_GRUPOSAULAS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_GRUPOSAULAS.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[29];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLAulas(){
+ global $TbMsg;
+ global $AMBITO_AULAS;
+ global $LITAMBITO_AULAS;
+ global $RESERVA_CONFIRMADA;
+ global $OPERADOR;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' maxanchu=190';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ver_aulas()"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/ordenadores.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_AULAS.',' ."'".$LITAMBITO_AULAS."'". ')"';
+
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar_ordenador(1)"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_ordenadores.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/ordenador.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="incorporarordenador()"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[27];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota('.$AMBITO_AULAS.')"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_AULAS.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_AULAS.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="configuraciones('.$AMBITO_AULAS.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/configuraciones.gif"';
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_aulas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ // Crear operador
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php?idtipousuario=".$OPERADOR;
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.',3)"';
+ $layerXML.=' imgitem="../images/iconos/operadores.gif"';
+ $layerXML.=' textoitem='.$TbMsg[37];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[29];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLUsuarios(){
+ global $LITAMBITO_USUARIOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_USUARIOS.'"';
+ $layerXML.=' maxanchu=130';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ // Modificar usuarios
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=400;
+ $wHeight=320;
+ $wpages="../propiedades/propiedades_usuarios.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[36];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposOrdenadores(){
+ global $TbMsg;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $LITAMBITO_GRUPOSORDENADORES;
+ $layerXML='<MENUCONTEXTUAL';
+
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSORDENADORES.'"';
+ $layerXML.=' maxanchu=195';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="ver_aulas()"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/ordenadores.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSORDENADORES.',' ."'".$LITAMBITO_GRUPOSORDENADORES."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_ordenadores.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/ordenador.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota('.$AMBITO_GRUPOSORDENADORES.')"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_GRUPOSORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_GRUPOSORDENADORES.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar_ordenador(0)"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="configuraciones('.$AMBITO_GRUPOSORDENADORES.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/configuraciones.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[16];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLOrdenadores(){
+ global $TbMsg;
+ global $AMBITO_ORDENADORES;
+ global $LITAMBITO_ORDENADORES;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' maxanchu=140';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_acciones()"';
+ $layerXML.=' imgitem="../images/iconos/acciones.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover_ordenador()"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[17];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="actualizar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/actualizar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="purgar_ordenadores()"';
+ $layerXML.=' imgitem="../images/iconos/purgar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="consola_remota('.$AMBITO_ORDENADORES.')"';
+ $layerXML.=' imgitem="../images/iconos/shell.gif"';
+ $layerXML.=' textoitem='.$TbMsg[33];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eco_remoto()"';
+ $layerXML.=' imgitem="../images/iconos/ecocon.gif"';
+ $layerXML.=' textoitem='.$TbMsg[39];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' subflotante="flo_comandos_'.$LITAMBITO_ORDENADORES.'"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarprocedimiento('.$AMBITO_ORDENADORES.')"';
+ $layerXML.=' imgitem="../images/iconos/procedimiento.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="configuraciones('.$AMBITO_ORDENADORES.')"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.=' imgitem="../images/iconos/configuraciones.gif"';
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=80;
+ $wWidth=480;
+ $wHeight=400;
+ $wpages="../propiedades/propiedades_ordenadores.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[18];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLComandos($litambito,$ambito){
+ global $cmd;
+ $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";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $layerXML="";
+ $rs->Primero();
+ while (!$rs->EOF){
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="confirmarcomando('."'".$ambito."'".','.$rs->campos["idcomando"].',\''.$rs->campos["descripcion"].'\',\''.$rs->campos["pagina"]. '\',\''.$rs->campos["gestor"]. '\',\''.$rs->campos["funcion"]. '\')"';
+ $layerXML.=' textoitem="'.$rs->campos["descripcion"].'"';
+ $layerXML.='></ITEM>';
+ if($maxlongdescri<strlen($rs->campos["descripcion"])) // Toma la Descripción de mayor longitud
+ $maxlongdescri=strlen($rs->campos["descripcion"]);
+ $rs->Siguiente();
+ }
+ $layerXML.='</MENUCONTEXTUAL>';
+ $prelayerXML='<MENUCONTEXTUAL';
+ $prelayerXML.=' idctx="flo_comandos_'.$litambito.'"';
+ $prelayerXML.=' maxanchu='.$maxlongdescri*7;
+ $prelayerXML.=' clase="menu_contextual"';
+ $prelayerXML.='>';
+ $finallayerXML=$prelayerXML.$layerXML;
+ return($finallayerXML);
+ }
+}
+?>
diff --git a/admin/WebConsole/principal/colasacciones.php b/admin/WebConsole/principal/colasacciones.php
new file mode 100644
index 00000000..955d9bfd
--- /dev/null
+++ b/admin/WebConsole/principal/colasacciones.php
@@ -0,0 +1,1239 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: colasacciones.php
+// Descripción :
+// Visualiza las acciones pendientes y finalizadas con los resultados de estatus y horas de inicio y finalización
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../clases/MenuContextual.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/RecopilaIpesMacs.php");
+ include_once("../includes/InvFecha.php");
+ include_once("../clases/XmlPhp.php");
+ include_once("../includes/HTMLSELECT.php");
+ include_once("../includes/HTMLCTESELECT.php");
+ include_once("../includes/TomaDato.php");
+ include_once("../includes/CreaComando.php");
+ include_once("../idiomas/php/".$idioma."/colasacciones_".$idioma.".php");
+ //________________________________________________________________________________________________________
+ //
+ // Captura de parámetros
+ //________________________________________________________________________________________________________
+
+ $ambito="";
+ $idambito=0;
+ $nombreambito="";
+
+ $fechainicio="";
+ $fechafin="";
+ $horainicio="";
+ $horafin="";
+ $tipoaccion="";
+ $estado="";
+ $resultado="";
+ $porcendesde="";
+ $porcenhasta="";
+ $swPOST="";
+ $visupro="";
+ $visuprm="";
+ $visucmd="";
+
+ if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+ if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+ if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+
+ if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+ if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+ if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"];
+
+ if (isset($_POST["tipoaccion"])) $tipoaccion=$_POST["tipoaccion"];
+ if (isset($_POST["estado"])) $estado=$_POST["estado"];
+ if (isset($_POST["resultado"])) $resultado=$_POST["resultado"];
+
+ if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"];
+ if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"];
+ if (isset($_POST["horainicio"])) $horainicio=$_POST["horainicio"];
+ if (isset($_POST["horafin"])) $horafin=$_POST["horafin"];
+
+ if (isset($_POST["swPOST"])) $swPOST=$_POST["swPOST"];
+ if (isset($_POST["visuprm"])) $visuprm=$_POST["visuprm"];
+ if (isset($_POST["visupro"])) $visupro=$_POST["visupro"];
+ if (isset($_POST["visucmd"])) $visucmd=$_POST["visucmd"];
+
+
+ if (isset($_POST["sesion"])) $sesion=$_POST["sesion"];
+
+ if(empty($swPOST)){ // Valores por defecto
+ $wfechainicio=mktime(0, 0, 0, date("m") , date("d")-3, date("Y")); // Acciones desde tres días antes
+ $wfechafin=mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
+ $fechainicio=date("d/m/Y",$wfechainicio);
+ $fechafin=date("d/m/Y ",$wfechafin);
+ $estado=0;
+ $resultado=0;
+ $tipoaccion=0;
+ $visuprm=0;
+ $visupro=0;
+ $visucmd=1;
+ }
+
+ if (isset($_POST["porcendesde"])) $porcendesde=$_POST["porcendesde"];
+ if (isset($_POST["porcenhasta"])) $porcenhasta=$_POST["porcenhasta"];
+ if($porcendesde=="") $porcendesde=0;
+ if($porcenhasta=="") $porcenhasta=100;
+
+ //________________________________________________________________________________________________________
+
+ $cmd=CreaComando($cadenaconexion);
+ if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+
+ $tbParametros=CreaTablaParametros($cmd); // Crea tabla en memmoria para acceder a detalles de comandos
+
+ //________________________________________________________________________________________________________
+ //
+ // Clausula WHERE ( construcción )
+ //________________________________________________________________________________________________________
+
+ $ClausulaWhere="";
+
+ // Cuestion de fechas
+ $WhereFechaInicio="";
+ $WhereFechaFin="";
+ $WhereFechaReg="";
+ if($fechainicio!="")
+ $WhereFechaInicio="acciones.fechahorareg>='".InvFecha($fechainicio).' ' .$horainicio."'";
+ if($fechafin!="")
+ $WhereFechaFin.=" acciones.fechahorareg<='".InvFecha($fechafin).' ' .$horafin."'";
+ if($WhereFechaInicio!=""){
+ if($WhereFechaFin!="")
+ $WhereFechaReg=" (".$WhereFechaInicio." AND ".$WhereFechaFin.") ";
+ else
+ $WhereFechaReg=" (".$WhereFechaInicio.") ";
+ }
+ else{
+ if($WhereFechaFin!="")
+ $WhereFechaReg=" (".$WhereFechaFin.") ";
+ }
+ $ClausulaWhere.=$WhereFechaReg;
+
+ // Cuestion tipos de acciones
+ if(!empty($tipoaccion)) $ClausulaWhere.=" AND tipoaccion=".$tipoaccion;
+
+ // Cuestion identificador del Centro que ha ejecutado la acción
+ $WhereCentroAccion="";
+ $WhereCentroAccion='acciones.idcentro='.$idcentro;
+ $ClausulaWhere.=" AND (".$WhereCentroAccion.")";
+ //________________________________________________________________________________________________________
+ ?>
+ <HTML>
+ <TITLE>Administración 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="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/colasacciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/colasacciones_'.$idioma.'.js"></SCRIPT>'?>
+ </HEAD>
+ <BODY oncontextmenu="return false">
+ <?
+ echo '<P align=center class=cabeceras><img src="../images/iconos/acciones.gif">&nbsp;'.$TbMsg[0].'&nbsp;</P>';
+
+ echo '<FORM name="fdatos" action="colasacciones.php" method="post">';
+ echo '<INPUT type="hidden" name="ambito" value="'.$ambito.'">';
+ echo '<INPUT type="hidden" name="idambito" value="'.$idambito.'">';
+ echo '<INPUT type="hidden" name="nombreambito" value="'.$nombreambito.'">';
+ echo '<INPUT type="hidden" name="swPOST" value="1">';
+ echo '<INPUT type="hidden" name="tiposacciones" value="'.$tiposacciones.'">';
+ echo '<INPUT type="hidden" name="estados" value="'.$estados.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$resultados.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$fechainicio.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$fechafin.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$horainicio.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$horafin.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$porcendesde.'">';
+ echo '<INPUT type="hidden" name="resultados" value="'.$porcenhasta.'">';
+ echo '<INPUT type="hidden" name="sesion" value="'.$sesion.'">';
+
+
+ $HTMLCriterios="";
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'; // Filtro de búsquedas
+ $HTMLCriterios.=' <TR HEIGHT=30>';
+ $HTMLCriterios.=' <TD style=" BORDER-BOTTOM:#5a86b5 1px solid;"colspan=2 align="center" >';
+ $HTMLCriterios.=' <SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
+ FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">____ '.$TbMsg[1].'____</SPAN></TD></TR>';
+
+ $HTMLCriterios.='<TR>';
+ $HTMLCriterios.=' <TD>'; // Desplegables de tipo de acciones y estados
+ $HTMLCriterios.=' <TABLE class=tabla_standar align=center border="0">';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[2].'&nbsp;</TH></TR>';
+
+ // Desplegable con los tipos de acciones
+ $parametros="0=".$TbMsg[61].chr(13);
+ $parametros.=$EJECUCION_COMANDO."=".$LITEJECUCION_COMANDO.chr(13);
+ $parametros.=$EJECUCION_PROCEDIMIENTO."=".$LITEJECUCION_PROCEDIMIENTO.chr(13);
+ $parametros.=$EJECUCION_TAREA."=".$LITEJECUCION_TAREA;
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TD>'.HTMLCTESELECT($parametros,"tipoaccion","estilodesple","",$tipoaccion,100).'</TD></TR>';
+
+ // Desplegable con los distintos estados
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[4].'&nbsp;</TH></TR>';
+ $HTMLCriterios.= '<TR>';
+ $parametros="0=".$TbMsg[60].chr(13);
+ $parametros.=$ACCION_INICIADA."=".$LITACCION_INICIADA.chr(13);
+ $parametros.=$ACCION_DETENIDA."=".$LITACCION_DETENIDA.chr(13);
+ $parametros.=$ACCION_FINALIZADA."=".$LITACCION_FINALIZADA.chr(13);;
+ $parametros.=$ACCION_PROGRAMADA."=".$LITACCION_PROGRAMADA;
+ $HTMLCriterios.=' <TD colspan=3>'.HTMLCTESELECT($parametros,"estado","estilodesple","",$estado,100,"chgdespleestados").'</TD></TR>';
+ $HTMLCriterios.= '</TABLE>';
+ $HTMLCriterios.=' </TD>'; // Fin Desplegables de tipo de acciones y estados
+
+ $HTMLCriterios.=' <TD valign=top>'; // Desplegables de resultados y porcentajes
+ // Desplegable con los distintos resultados
+ $HTMLCriterios.=' <TABLE class=tabla_standar align=center border="0">';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[3].'&nbsp;</TH></TR>';
+ $HTMLCriterios.=' <TR>';
+
+ $parametros=$ACCION_SINRESULTADO."=".$TbMsg[60].chr(13);
+ $parametros.=$ACCION_EXITOSA."=".$LITACCION_EXITOSA.chr(13);
+ $parametros.=$ACCION_FALLIDA."=".$LITACCION_FALLIDA;
+ $HTMLCriterios.=' <TD colspan=3>'.HTMLCTESELECT($parametros,"resultado","estilodesple","",$resultado,250,"chgdespleresultados").'</TD></TR>';
+ // Porcentajes
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH>&nbsp;'.$TbMsg[5].':&nbsp;<INPUT size=1 name="porcendesde" value="'.$porcendesde.'">&nbsp;'.$TbMsg[6].':&nbsp;
+ <INPUT size =1 name="porcenhasta" value="'.$porcenhasta.'"></TH></TR>';
+ $HTMLCriterios.=' </TABLE>';
+ $HTMLCriterios.=' </TD>'; // Fin Desplegables de resultados y porcentajes
+ $HTMLCriterios.='</TR>';
+
+
+ $HTMLCriterios.='<TR>';
+ $HTMLCriterios.=' <TD style="BORDER-BOTTOM:#5a86b5 1px solid;" colspan=2>'; // Fechas y horas
+ // Fechas
+ $HTMLCriterios.=' <TABLE WIDTH=100% class=tabla_standar align=center border="0">';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH>&nbsp;'.$TbMsg[7].':&nbsp;</TH>';
+ $HTMLCriterios.=' <TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>';
+ $HTMLCriterios.=' <TH align=right>&nbsp;'.$TbMsg[8].':&nbsp;&nbsp;</TH>';
+ $HTMLCriterios.=' <TD align=right><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>';
+ $HTMLCriterios.=' </TR>';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH>&nbsp;'.$TbMsg[9].':&nbsp;</TH>';
+ $HTMLCriterios.=' <TD><INPUT class="cajatexto" onclick="vertabla_horario(this)" style="WIDTH:80" name="horainicio" value="'.$horainicio.'"></TD>';
+ $HTMLCriterios.=' <TH align=right>&nbsp;'.$TbMsg[10].':&nbsp;&nbsp;</TH>';
+ $HTMLCriterios.=' <TD align=right><INPUT class="cajatexto" onclick="vertabla_horario(this)" style="WIDTH:80" name="horafin" value="'.$horafin.'"></TD>';
+ $HTMLCriterios.=' </TR>';
+ $HTMLCriterios.=' </TABLE>';
+ $HTMLCriterios.=' </TD>';
+ $HTMLCriterios.='</TR>';
+ $HTMLCriterios.='</TABLE>';// Fin filtro de búsquedas
+
+ $HTMLCriterios.='<BR>';
+ // _________________________________________________________________________
+ //
+ // Tabla de checkbox para elegir visualizar detalles
+ // _________________________________________________________________________
+
+ $HTMLCriterios.='<TABLE class="tabla_busquedas" align=center border=0 cellPadding=0 cellSpacing=0>';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TH height=15 align="center" colspan=14>&nbsp;'.$TbMsg[47].'&nbsp;</TH>';
+ $HTMLCriterios.=' </TR>';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TD align=right>'.$TbMsg[48].'</TD>';
+ $HTMLCriterios.=' <TD align=center><INPUT type="checkbox" value="1" name="visuprm"';
+ if($visuprm==1) $HTMLCriterios.=' checked ';
+ $HTMLCriterios.='></TD>';
+ $HTMLCriterios.=' <TD width="20" align=center>&nbsp;</TD>';
+ $HTMLCriterios.=' <TD align=right>'.$TbMsg[49].'</TD>';
+ $HTMLCriterios.=' <TD align=center><INPUT type="checkbox" value="1" name="visupro"';
+ if($visupro==1) $HTMLCriterios.=' checked ';
+ $HTMLCriterios.='></TD>';
+ $HTMLCriterios.=' <TD width="20" align=center>&nbsp;</TD>';
+ $HTMLCriterios.=' <TD align=right>'.$TbMsg[50].'</TD>';
+ $HTMLCriterios.=' <TD align=center><INPUT type="checkbox" value="1" name="visucmd"';
+ if($visucmd==1) $HTMLCriterios.=' checked ';
+ $HTMLCriterios.='></TD>';
+ $HTMLCriterios.=' </TR>';
+ $HTMLCriterios.='</TABLE>';
+
+ $HTMLCriterios.='<BR>';
+
+ $HTMLCriterios.='<TABLE class="tabla_busquedas" align=center border="0">';
+ $HTMLCriterios.=' <TR>';
+ $HTMLCriterios.=' <TD>'; // Lupa
+ $HTMLCriterios.=' <A href="#busca"><IMG border=0 src="../images/iconos/busquedas.gif" onclick="javascript:fdatos.submit()" alt="Buscar"></A>';
+ $HTMLCriterios.=' </TD>';
+ $HTMLCriterios.='</TR>';
+ $HTMLCriterios.='</TABLE>';
+
+ echo $HTMLCriterios;
+ echo '</FORM>'; // Fin formulario de criterios de busquedas
+
+ /* Cabeceras */
+ tomaAmbito($ambito,&$urlimg,&$textambito);
+ echo '<DIV align=center>'; // Cabecera
+ echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>,
+ &nbsp;'.$nombreambito.'</span>&nbsp;&nbsp;<IMG src="'.$urlimg.'"></span>';
+ if(!empty($sesion))
+ echo '<BR><span align=center class="presentaciones">'.$TbMsg[51].'</span>&nbsp;&nbsp;
+ <IMG src="../images/iconos/filtroaccion.gif">';
+ ?>
+ <BR>
+ <BR>
+ <?
+ // _________________________________________________________________________
+ //
+ // Tabla de opciones que afectan a todas las acciones mostradas
+ // _________________________________________________________________________
+ ?>
+ <TABLE align=center border=0 align=left cellPadding=2 cellSpacing=5 >
+ <TR>
+ <? // Eliminar ?>
+ <TD onclick=eleccion(1)>&nbsp;
+ <TABLE class="filtros" >
+ <TR>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/eliminar.gif"></A>&nbsp;</TD>
+ <TD><A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[12]?><span></A></TD>
+ </TR>
+ </TABLE>
+ </TD>
+
+ <TD onclick=eleccion(2)>&nbsp;
+ <TABLE class=filtros>
+ <TR>
+ <? // Resaltar ?>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/reiniciar.gif"></A>&nbsp;</TD>
+ <TD><A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[13]?><span></A></TD>
+ </TR>
+ </TABLE>
+ </TD>
+
+ <TD onclick=eleccion(3)>&nbsp;
+ <TABLE class=filtros>
+ <TR>
+ <? // Parar ?>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/acDetenida.gif"></A>&nbsp;</TD>
+ <TD><A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[14]?><span></A></TD>
+
+ </TR>
+ </TABLE>
+ </TD>
+
+ <TD onclick=eleccion(4)>&nbsp;
+ <TABLE class=filtros>
+ <TR>
+ <? // Seguir ?>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/acIniciada.gif"></A>&nbsp;</TD>
+ <TD>&nbsp;<A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[15]?></span></A>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </TD>
+
+ <TD onclick=eleccion(5)>&nbsp;
+ <TABLE class=filtros>
+ <TR>
+ <? // Seguir ?>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/acExitosa.gif"></A>&nbsp;</TD>
+ <TD>&nbsp;<A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[55]?></span></A>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </TD>
+ <TD onclick=eleccion(6)>&nbsp;
+ <TABLE class=filtros>
+ <TR>
+ <? // Seguir ?>
+ <TD><A href="#op"><IMG border=0 src="../images/iconos/acFallida.gif"></A>&nbsp;</TD>
+ <TD>&nbsp;<A style="text-decoration:none;COLOR:#999999;" href="#op">
+ <span onmouseout=desresaltar(this) onmouseover=resaltar(this)><?echo $TbMsg[56]?></span></A>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ </TABLE>
+ <?
+ // _________________________________________________________________________
+ //
+ // Tabla de registros de acciones
+ // _________________________________________________________________________
+ ?>
+ <TABLE border=0 class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TBODY id="tbAcciones">
+ <?
+ cabeceraAcciones();
+ listaAcciones($ambito,$idambito);
+
+ ?>
+ </TBODY>
+ </TABLE>
+ </DIV>
+ <FORM name="facciones">
+ <INPUT type="hidden" name=acciones value="<? echo $acciones?>">
+ <INPUT type="hidden" name=localaccion value="">
+ <INPUT type="hidden" name="sesion" value="<? echo $sesion?>">
+ </FORM>
+ <?
+ $flotante=new MenuContextual(); // Crea objeto MenuContextual
+ $XMLcontextual=ContextualXMLAcciones(); // Crea contextual de las acciones
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+
+ $XMLcontextual=ContextualXMLNotificaciones(); // Crea contextual de las acciones
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ ?>
+</BODY>
+</HTML>
+<?
+/********************************************************************/
+// Escribe la cabecera de los registros de acciones
+// _________________________________________________________________________
+
+function cabeceraAcciones()
+{
+ global $TbMsg;
+
+ $html="";
+ $html.='<TR height=20>';
+ $html.='<TH colspan=2>&nbsp;</TH>';
+ $html.='<TH>&nbsp;R&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[19].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[20].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[21].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[22].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[23].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;'.$TbMsg[57].'&nbsp;</TH>';
+ $html.='<TH>&nbsp;S&nbsp;</TH>';
+ $html.='<TH>&nbsp;%&nbsp;</TH>';
+ $html.='</TR>';
+ echo $html;
+}
+// _________________________________________________________________________
+
+function listaAcciones($ambito,$idambito)
+{
+ global $cmd;
+ global $ClausulaWhere;
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ global $EJECUCION_COMANDO;
+ global $EJECUCION_PROCEDIMIENTO;
+ global $EJECUCION_TAREA;
+ global $ACCION_PROGRAMADA;
+ global $acciones;
+ global $sesion;
+ global $estado;
+
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Recopila Ipes del ámbito
+ $cadenasesion="(SELECT DISTINCT sesion FROM acciones WHERE idordenador NOT IN (".$cadenaid."))";
+
+ $cmd->texto="SELECT acciones.*,comandos.descripcion as comando,acciones.parametros,comandos.visuparametros,
+ ordenadores.nombreordenador,procedimientos.descripcion as procedimiento,
+ tareas.descripcion as tarea,programaciones.sesion as sesionprog
+ FROM acciones";
+ $cmd->texto.=" INNER JOIN comandos ON comandos.idcomando=acciones.idcomando";
+ $cmd->texto.=" INNER JOIN ordenadores ON ordenadores.idordenador=acciones.idordenador";
+ $cmd->texto.=" LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=acciones.idprocedimiento";
+ $cmd->texto.=" LEFT OUTER JOIN tareas ON tareas.idtarea=acciones.idtarea";
+ $cmd->texto.=" LEFT OUTER JOIN programaciones ON programaciones.sesion=acciones.sesion";
+ if(!empty($sesion)) // Filtro por acción
+ $cmd->texto.=" WHERE acciones.sesion =".$sesion;
+ else
+ $cmd->texto.=" WHERE acciones.sesion NOT IN (".$cadenasesion.")";
+
+ if($estado==$ACCION_PROGRAMADA)
+ $cmd->texto.=" AND (acciones.idprogramacion=0 AND programaciones.sesion>0)"; // Comando programado
+ else{
+ if(!empty($ClausulaWhere))
+ $cmd->texto.=" AND (".$ClausulaWhere.")";
+ }
+ $cmd->texto.=" ORDER BY acciones.idaccion desc,acciones.sesion desc ";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ //echo $cmd->texto;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+
+ $acciones=""; // Variable que recogerá las acciones que cumplan los criterios
+ // con formato "ambito,idambito" concadenando con ";" a otro identificador
+ // Esta variable se usara para las operaciones globales de Eliminar, etc...
+
+ // Recorre acciones
+ $html="";
+ while (!$rs->EOF){
+ switch($rs->campos["tipoaccion"]){
+ case $EJECUCION_COMANDO:
+ $html.=listaComado($rs,$rs->campos["sesion"]);
+ break;
+ case $EJECUCION_PROCEDIMIENTO:
+ $html.=listaProcedimiento($rs,$rs->campos["sesion"]);
+ break;
+ case $EJECUCION_TAREA:
+ $html.=listaTarea($rs,$rs->campos["sesion"]);
+ break;
+ }
+ }
+ echo $html;
+}
+// _________________________________________________________________________
+
+function listaTarea($rs,$sesion)
+{
+ global $acciones;
+
+ $oA=new clsAccion; // Crea objeto acción para procesar comandos
+ iniAccion($rs,$oA);
+ $html=recorreTarea($rs,$sesion,$oA);
+ if(cumpleCriterios($oA)){
+ $acciones.=$oA->tipoaccion.",".$oA->idtipoaccion.",".$oA->sesion.",0;"; // Concadena identificador
+ $html=cabeceraSesion($oA).$html; // Escribe la cabecera del comando
+ }
+ else
+ $html=""; // No cumple con los criterios
+ return($html);
+}
+// _________________________________________________________________________
+
+function recorreTarea($rs,$sesion,$oA)
+{
+ $html="";
+ do{
+ $html.=listaProcedimiento($rs,$sesion,$rs->campos["idtarea"],$oA);
+ }while(!$rs->EOF
+ && $rs->campos["sesion"]==$sesion);
+ return($html);
+}
+// _________________________________________________________________________
+
+function listaProcedimiento($rs,$sesion,$idtarea=0,$oA=null)
+{
+ global $acciones;
+
+ if($oA!=null){ // Si la función es invocada por una tarea ...
+ $html=recorreProcedimiento($rs,$sesion,$idtarea,$oA);
+ }
+ else{
+ $oA=new clsAccion; // Crea objeto acción para procesar comandos
+ iniAccion($rs,$oA);
+ $html=recorreProcedimiento($rs,$sesion,$idtarea,$oA);
+ if(cumpleCriterios($oA)){
+ $acciones.=$oA->tipoaccion.",".$oA->idtipoaccion.",".$oA->sesion.",0;"; // Concadena identificador
+ if($rs->campos["sesion"]!=$sesion
+ || $rs->campos["idtarea"]!=$idtarea
+ || $rs->EOF)
+ $html=cabeceraSesion($oA).$html; // Escribe la cabecera del procedimiento
+ }
+ else
+ $html=""; // No cumple con los criterios
+ }
+ return($html);
+}
+// _________________________________________________________________________
+
+function recorreProcedimiento($rs,$sesion,$idtarea,$oA)
+{
+ $html="";
+ do{
+ $html.=listaComado($rs,$sesion,$idtarea,$rs->campos["idprocedimiento"],$oA);
+ }while(!$rs->EOF
+ && $rs->campos["sesion"]==$sesion
+ && $rs->campos["idtarea"]==$idtarea);
+ return($html);
+}
+// _________________________________________________________________________
+
+function listaComado($rs,$sesion,$idtarea=0,$idprocedimiento=0,$oA=null)
+{
+ global $acciones;
+ global $visupro;
+
+ if($oA!=null){ // Si la función es invocada por un procedimiento...
+ $html.=recorreComando($rs,$sesion,$idtarea,$idprocedimiento,$oA);
+ }
+ else{
+ $oA=new clsAccion; // Crea objeto acción para procesar comandos
+ iniAccion($rs,$oA);
+ $html=recorreComando($rs,$sesion,$idtarea,$idprocedimiento,$oA);
+
+ $acciones.=$oA->tipoaccion.",".$oA->idtipoaccion.",".$oA->sesion.",0;"; // Concadena identificador
+ if($rs->campos["sesion"]!=$sesion
+ || $rs->campos["idtarea"]!=$idtarea
+ || $rs->campos["idprocedimiento"]!=$idprocedimiento
+ || $rs->EOF)
+ if($oA->linot>0)
+ $html=cabeceraSesion($oA).$html; // Escribe la cabecera del comando
+ }
+ return($html);
+}
+// _________________________________________________________________________
+
+function recorreComando($rs,$sesion,$idtarea,$idprocedimiento,$oA)
+{
+ $html="";
+ do{
+ $html.=listaNotificacion($rs,$sesion,$idtarea,$idprocedimiento,$rs->campos["idcomando"],$oA);
+ }while(!$rs->EOF
+ && $rs->campos["sesion"]==$sesion
+ && $rs->campos["idtarea"]==$idtarea
+ && $rs->campos["idprocedimiento"]==$idprocedimiento);
+ return($html);
+}
+// _________________________________________________________________________
+//
+// Recorre todas las notificaciones de un mismo comando registrando
+// los datos que servirán para resumen de la Acción
+// _________________________________________________________________________
+
+function listaNotificacion($rs,$sesion,$idtarea,$idprocedimiento,$idcomando,$oA)
+{
+ global $ACCION_EXITOSA;
+ global $ACCION_FALLIDA;
+ global $ACCION_SINRESULTADO;
+
+ global $ACCION_DETENIDA;
+ global $ACCION_INICIADA;
+ global $ACCION_FINALIZADA;
+
+ global $EJECUCION_TAREA;
+ global $visuprm;
+ global $visucmd;
+ global $visupro;
+
+ $html="";
+
+ if($visupro==1)
+ $html.=cambiaAmbito($rs,$oA); // Escribe cambio de ámbito
+
+ if($visuprm==1)
+ $html.=escribeParametros($rs->campos["comando"],$rs->campos["parametros"],$rs->campos["visuparametros"],$oA);
+
+
+
+ do{
+ if(cumpleCriteriosNot($rs,$oA)){
+ if($visucmd==1){
+ $html.=escribeNotificacion($rs,$oA);
+ $oA->linot++; // Contador de lineas de notificaciones escritas cumpliendo criterios
+ }
+ }
+ /* Fechas y horas */
+ $fechahorareg=strtotime($rs->campos["fechahorareg"]);
+ if($fechahorareg>0)
+ if($oA->fechahorareg>$fechahorareg) $oA->fechahorareg=$fechahorareg;
+ $fechahorafin=strtotime($rs->campos["fechahorafin"]);
+ if($fechahorafin>0)
+ if($oA->fechahorafin<$fechahorafin) $oA->fechahorafin=$fechahorafin;
+
+ $oA->notif++; // Contador de notificaciones en el comando
+ switch($rs->campos["estado"]){
+ case $ACCION_INICIADA:
+ $oA->notini++; // Incrementa contador de comandos con estado de finalizado
+ break;
+ case $ACCION_DETENIDA:
+ $oA->notdet++; // Incrementa contador de comandos con estado de finalizado
+ break;
+ case $ACCION_FINALIZADA:
+ $oA->noter++; // Incrementa contador de comandos con estado de finalizado
+ break;
+ }
+ /* Cuestión resultados */
+ /* Si existe al menos una notificación de error, la acción tiene ya resultado de error */
+ if($rs->campos["resultado"]==$ACCION_FALLIDA){
+ $oA->resultado=$ACCION_FALLIDA;
+ }
+ /* Si existe aún alguna notificación pendiente, la acción no tiene resultado global */
+ if($rs->campos["resultado"]==$ACCION_SINRESULTADO){
+ if($oA->resultado==$ACCION_EXITOSA)
+ $oA->resultado=$ACCION_SINRESULTADO;
+ }
+ $rs->Siguiente();
+
+ }while(!$rs->EOF
+ && $rs->campos["sesion"]==$sesion
+ && $rs->campos["idtarea"]==$idtarea
+ && $rs->campos["idprocedimiento"]==$idprocedimiento
+ && $rs->campos["idcomando"]==$idcomando);
+
+ if($oA->notif>0)
+ $oA->porcen=floor($oA->noter*100/$oA->notif); // Calcula porcentaje de finalización
+
+ if($oA->notif==$oA->noter)
+ $oA->estado=$ACCION_FINALIZADA; // Todas las acciones finalizadas
+ else{
+ if($oA->notif==$oA->notdet)
+ $oA->estado=$ACCION_DETENIDA; // Todas las acciones detenidas
+ else
+ $oA->estado=$ACCION_INICIADA;
+ }
+ if(cumpleCriterios($oA)){
+ if($rs->campos["sesion"]!=$sesion && !$rs->EOF ) // Separación entre sesiones distintas
+ $html.='<TR id="'.$oA->sesion.'" value="A"><TD colspan=12 style="BACKGROUND-COLOR:white;BORDER-BOTTOM:#999999 1px solid;">&nbsp;</TD></TR>';
+ }
+ return($html);
+}
+// _________________________________________________________________________
+
+function escribeNotificacion($rs,$oA)
+{
+ global $ACCION_EXITOSA;
+ global $ACCION_FALLIDA;
+ global $ACCION_SINRESULTADO;
+
+ global $ACCION_DETENIDA;
+ global $ACCION_INICIADA;
+ global $ACCION_FINALIZADA;
+
+ global $TbMsg;
+ global $visupro;
+ global $visuprm;
+
+ $html="";
+ $html.='<TR id="'.$oA->sesion.'" value="D">';
+ if($visupro==0 )
+ $html.='<TD align=right colspan=2>'.$rs->campos["comando"].'&nbsp;</TD>';
+ else
+ $html.='<TD align=right colspan=2>&nbsp;</TD>';
+
+ /* Resultado */
+ switch($rs->campos["resultado"]){
+ case $ACCION_EXITOSA:
+ $html.='<TD align=center><IMG value="'.$ACCION_EXITOSA.'" src="../images/iconos/acExitosa.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_FALLIDA:
+ $html.='<TD align=center><IMG value="'.$ACCION_FALLIDA.'" src="../images/iconos/acFallida.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_SINRESULTADO:
+ $html.='<TD align=center><IMG value="'.$ACCION_SINRESULTADO.'" src="../images/iconos/nada.gif" width=16 height=16></TD>';
+ break;
+ }
+ if($oA->swcp){ // Comando programado
+ $html.='<TD align=center>&nbsp;</TD>';
+ $html.='<TD align=center>&nbsp;</TD>';
+ $html.='<TD align=center>&nbsp;</TD>';
+ $html.='<TD align=center>&nbsp;</TD>';
+ }
+ else{
+ /* Fechas y horas */
+ list($fecha,$hora)=split(" ",substr($rs->campos["fechahorafin"],0));
+ if ($fecha=="0000-00-00") $hora="";
+ $html.='<TD align=center>&nbsp;'.InvFecha($fecha).'&nbsp;</TD>';
+ $html.='<TD align=center>&nbsp;'.$hora.'&nbsp;</TD>';
+
+ list($fecha,$hora)=split(" ",substr($rs->campos["fechahorareg"],0));
+ if ($fecha=="0000-00-00") $hora="";
+ $html.='<TD align=center>&nbsp;'.InvFecha($fecha).'&nbsp;</TD>';
+ $html.='<TD align=center>&nbsp;'.$hora.'&nbsp;</TD>';
+ }
+
+ /* Ámbito de aplicación */
+ $urlimg='../images/iconos/ordenador.gif';
+ $accion=$oA->tipoaccion.",".$oA->idtipoaccion.",".$oA->sesion.",".$rs->campos["idaccion"].";"; // Tripla clave
+ $oncontxt="document.facciones.localaccion.value='".$accion."';";
+ $oncontxt.="menu_contextual(null,'flo_notificaciones');";
+
+ $html.='<TD id="'.$rs->campos["idaccion"].'" align=center><A href="#cmd"><IMG border=0 src="'.$urlimg.'"
+ oncontextmenu="'.$oncontxt.'" ></A></TD>';
+ $html.='<TD align=left>&nbsp;'.$rs->campos["nombreordenador"].'&nbsp;</TD>';
+
+ /* Descripción de la notificación (Descripción del error si se ha producido alguno) */
+ $html.='<TD>&nbsp;'.$rs->campos["descrinotificacion"].'&nbsp;</TD>';
+
+ /* Estado */
+ if($oA->swcp) // Comando programado
+ $html.='<TD align=center><IMG value="'.$ACCION_DETENIDA.'"
+ src="../images/iconos/reloj.gif" width=16 height=16 style="cursor:pointer"
+ onclick="programacion('.$rs->campos["idtipoaccion"].','.$rs->campos["sesion"].',\''.$rs->campos["comando"].'\')"></TD>';
+ else{
+ switch($rs->campos["estado"]){
+ case $ACCION_DETENIDA:
+ $html.='<TD align=center><IMG value="'.$ACCION_DETENIDA.'" src="../images/iconos/acDetenida.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_INICIADA:
+ $html.='<TD align=center><IMG value="'.$ACCION_INICIADA.'" src="../images/iconos/acIniciada.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_FINALIZADA:
+ $html.='<TD align=center><IMG value="'.$ACCION_FINALIZADA.'" src="../images/iconos/acFinalizada.gif" width=16 height=16></TD>';
+ break;
+ }
+ }
+
+ /* Porcentaje */
+ $html.='<TD align=center>&nbsp;</TD>';
+ $html.='</TR>';
+ return($html);
+}
+// _________________________________________________________________________
+//
+// Inicializa la clase acción
+//
+// Parámetros:
+// oA: Objeto acción a inicializar
+// _________________________________________________________________________
+
+function iniAccion($rs,$oA)
+{
+ global $ACCION_EXITOSA;
+ global $ACCION_DETENIDA;
+
+ $oA->ambito=$rs->campos["ambito"];
+ $oA->idambito=$rs->campos["idambito"];
+ $oA->tipoaccion=$rs->campos["tipoaccion"];
+ $oA->idtipoaccion=$rs->campos["idtipoaccion"];
+ $oA->descriaccion=$rs->campos["descriaccion"];
+ $oA->sesion=$rs->campos["sesion"];
+ $oA->fechahorareg=strtotime($rs->campos["fechahorareg"]);
+ $oA->fechahorafin=0;
+ $oA->estado=$ACCION_DETENIDA;
+ $oA->resultado=$ACCION_EXITOSA;
+ $oA->notif=$oA->noter=$oA->notini=$oA->notdet=$oA->linot=$oA->porcen=0;
+ if(empty($rs->campos["idprogramacion"]) && !empty($rs->campos["sesionprog"])) // switch de Comando programado
+ $oA->swcp=true;
+ else
+ $oA->swcp=false;
+}
+// _________________________________________________________________________
+
+function cabeceraSesion($oA)
+{
+ global $EJECUCION_COMANDO;
+ global $EJECUCION_PROCEDIMIENTO;
+ global $EJECUCION_TAREA;
+
+ $html="";
+ $html.='<TR id="'.$oA->sesion.'" value="C">';
+
+ $accion=$oA->tipoaccion.",".$oA->idtipoaccion.",".$oA->sesion.",0;"; // Tripla clave
+ $oncontxt="document.facciones.sesion.value='".$oA->sesion."';";
+ $oncontxt.="document.facciones.localaccion.value='".$accion."';menu_contextual(null,'flo_acciones');";
+ switch($oA->tipoaccion){
+ case $EJECUCION_COMANDO:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG style="cursor:pointer" border=0
+ oncontextmenu="'.$oncontxt.'"
+ src="../images/iconos/comandos.gif"></TD>';
+ break;
+ case $EJECUCION_PROCEDIMIENTO:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG style="cursor:pointer" border=0
+ oncontextmenu="'.$oncontxt.'"
+ src="../images/iconos/procedimiento.gif"></TD>';
+ break;
+ case $EJECUCION_TAREA:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG style="cursor:pointer" border=0
+ oncontextmenu="'.$oncontxt.'"
+ src="../images/iconos/tareas.gif"></TD>';
+ break;
+ }
+ /* Cabeceras */
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=left><b>'.$oA->descriaccion.'</b></TD>';
+ $html.=escribeResumen($oA);
+ $html.='</TR>';
+
+ return($html);
+}
+// _________________________________________________________________________
+
+function escribeResumen($oA)
+{
+ global $cmd;
+ global $TbMsg;
+
+ global $ACCION_EXITOSA;
+ global $ACCION_FALLIDA;
+ global $ACCION_SINRESULTADO;
+
+ global $EJECUCION_TAREA;
+
+ $html="";
+
+ if($oA->swcp){ // Comando programado
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ /* Ámbito de aplicación */
+ tomaAmbito($oA->ambito,&$urlimg,&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG src="'.$urlimg.'"></TD>';
+ tomaDescriAmbito($cmd,$oA->ambito,$oA->idambito,&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=left>&nbsp;'.$textambito.'&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+
+ $html.='<TH align=center><IMG value="'.$ACCION_DETENIDA.'"
+ src="../images/iconos/reloj.gif" width=16 height=16 style="cursor:pointer"
+ onclick="programacion('.$oA->idtipoaccion.','.$oA->sesion.',\''.$oA->descriaccion.'\')"></TH>';
+
+
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ return($html);
+ }
+
+ /* Resultado */
+ switch($oA->resultado){
+ case $ACCION_EXITOSA:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG value="'.$ACCION_EXITOSA.'" src="../images/iconos/acExitosa.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_FALLIDA:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG value="'.$ACCION_FALLIDA.'" src="../images/iconos/acFallida.gif" width=16 height=16></TD>';
+ break;
+ case $ACCION_SINRESULTADO:
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG value="'.$ACCION_SINRESULTADO.'" src="../images/iconos/nada.gif" width=16 height=16></TD>';
+ }
+ /* Fechas y horas */
+ if($oA->porcen==100){ // Si está acabada la acción
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;'.strftime("%d-%m-%Y",$oA->fechahorafin).'&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;'.strftime("%H:%M:%S",$oA->fechahorafin).'&nbsp;</TD>';
+ }
+ else
+ {
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+ }
+
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;'.strftime("%d-%m-%Y",$oA->fechahorareg).'&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;'.strftime("%H:%M:%S",$oA->fechahorareg).'&nbsp;</TD>';
+
+ if($oA->tipoaccion==$EJECUCION_TAREA){
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=left>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=left>&nbsp;</TD>';
+ }
+ else{
+ /* Ámbito de aplicación */
+ tomaAmbito($oA->ambito,&$urlimg,&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center><IMG src="'.$urlimg.'"></TD>';
+ tomaDescriAmbito($cmd,$oA->ambito,$oA->idambito,&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=left>&nbsp;'.$textambito.'&nbsp;</TD>';
+ }
+
+ /* Descripción de la notificación (Descripción del error si se ha producido alguno) */
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" >&nbsp;'.$rs->campos["descrinotificacion"].'&nbsp;</TD>';
+
+ /* Estado */
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>&nbsp;</TD>';
+
+ /* Porcentaje */
+ $html.='<TD style="BACKGROUND-COLOR: #b5daad" align=center>'.$oA->porcen.'%</TD>';
+
+
+ return($html);
+}
+// _________________________________________________________________________
+
+function cambiaAmbito($rs,$oA)
+{
+ global $cmd;
+ global $TbMsg;
+
+ $bgcolor="#f6c8f5";
+ $html="";
+ $html.='<TR id="'.$oA->sesion.'" value="A">';
+ $procedimiento=TomaDato($cmd,0,'procedimientos',$rs->campos["idprocedimiento"],'idprocedimiento','descripcion');
+ $html.='<TD colspan=2 align="right" style="BACKGROUND-COLOR:'.$bgcolor.'">'.$rs->campos["comando"].'&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR:'.$bgcolor.'"><IMG style="cursor:pointer" src="../images/iconos/nada.gif">&nbsp;</TD>';
+ $html.='<TD colspan=4 style="BACKGROUND-COLOR:'.$bgcolor.'" align=right>'.$procedimiento.'&nbsp;</TD>';
+
+ /* Ámbito de aplicación */
+ tomaAmbito($rs->campos["ambito"],&$urlimg,&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR:'.$bgcolor.'" align=center><IMG src="'.$urlimg.'"></TD>';
+ tomaDescriAmbito($cmd,$rs->campos["ambito"],$rs->campos["idambito"],&$textambito);
+ $html.='<TD style="BACKGROUND-COLOR:'.$bgcolor.'" align=left>&nbsp;'.$textambito.'&nbsp;</TD>';
+ $html.='<TD colspan=3 style="BACKGROUND-COLOR:'.$bgcolor.'" align=center>&nbsp;</TD>';
+ $html.='</TR>';
+ return($html);
+}
+// _________________________________________________________________________
+//
+// Comprueba si se cumplen los criterios para visualizar la acción
+// _________________________________________________________________________
+
+function cumpleCriterios($oA)
+{
+ global $porcendesde;
+ global $porcenhasta;
+ global $estado;
+ global $resultado;
+ global $ACCION_PROGRAMADA;
+
+ if($estado==$ACCION_PROGRAMADA){
+ if(!$oA->swcp)
+ return(false); // Comandos programados
+ else
+ return(true);
+ }
+ if($oA->swcp){
+ if($estado!=$ACCION_PROGRAMADA && $estado>0)
+ return(false); // Comandos programados
+ else
+ return(true);
+ }
+
+ // Cuestion estados
+ if(!empty($estado))
+ if($oA->estado!=$estado) return(false);
+
+ if(!empty($resultado))
+ if($oA->resultado!=$resultado) return(false);
+
+ if($oA->porcen<$porcendesde || $oA->porcen>$porcenhasta) return(false);
+ return(true);
+}
+// _________________________________________________________________________
+//
+// Comprueba si se cumplen los criterios para visualizar la notificación
+// _________________________________________________________________________
+function cumpleCriteriosNot($rs,$oA)
+{
+ global $porcendesde;
+ global $porcenhasta;
+ global $estado;
+ global $resultado;
+ global $ACCION_PROGRAMADA;
+
+ if($estado==$ACCION_PROGRAMADA){
+ if(!$oA->swcp)
+ return(false); // Comandos programados
+ else
+ return(true);
+ }
+ if($oA->swcp){
+ if($estado!=$ACCION_PROGRAMADA && $estado>0)
+ return(false); // Comandos programados
+ else
+ return(true);
+ }
+ // Cuestion estados
+ if(!empty($estado))
+ if($rs->campos["estado"]!=$estado) return(false);
+
+ if(!empty($resultado))
+ if($rs->campos["resultado"]!=$resultado) return(false);
+
+ return(true);
+}
+// _________________________________________________________________________
+//
+// Clase para procesar las acciones
+// _________________________________________________________________________
+
+class clsAccion
+{
+ var $ambito;
+ var $idambito;
+ var $tipoaccion;
+ var $idtipoaccion;
+ var $descriaccion;
+ var $sesion;
+ var $fechahorafin;
+ var $fechahorareg;
+ var $estado;
+ var $resultado;
+ var $porcen;
+ var $notif;
+ var $noter;
+ var $notdet;
+ var $notini;
+ var $linot;
+ var $swcp;
+ function clsAccion(){ // Constructor
+
+ }
+}
+//________________________________________________________________________________________________________
+
+function escribeParametros($comando,$parametros,$visuparametros,$oA)
+{
+ global $cmd;
+ global $visupro;
+ global $visupro;
+ global $visucmd;
+
+ $html="";
+ $tbParametrosValor=array();
+ ParametrosValor($cmd,$parametros,&$tbParametrosValor); // Toma valores de cada parámetro
+ $vprm=split(";",$visuparametros);
+
+ if($visupro==1 || ($visupro=0 && $visucmd==0)) $comando="&nbsp;"; // No se muestra el nombre del comando
+ for($i=0;$i<sizeof($vprm);$i++){
+ $nemo=$vprm[$i]; // Para cada parámetro visualizable ...
+ 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
+ $valor=$tbParametrosValor[$nemo]["valor"];
+ $html.=escribiendoParametros($comando,$descripcion,$valor,$oA);
+ }
+ }
+ }
+ if(empty($visuparametros)){ // Sin parametros
+ $bgcolor="#cedcec";
+ $html.='<TR id="'.$oA->sesion.'" value="A">';
+ $html.='<TD align=right style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=2>'.$comando.'</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';">&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=9>&nbsp;</TD>';
+ $html.='</TR>';
+ }
+ return($html);
+}
+//________________________________________________________________________________________________________
+
+function escribiendoParametros($comando,$descripcion,$valor,$oA)
+{
+ $sw=true;
+ $html="";
+
+ $bgcolor="#cedcec";
+ $html.='<TR id="'.$oA->sesion.'" value="A">';
+ if($sw){
+ $html.='<TD align=right style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=2>'.$comando.'</TD>';
+ $sw=false;
+ }
+ else
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=2>&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';">&nbsp;</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=4><b>'.$descripcion.'</b>:
+ '.$valor.'</TD>';
+ $html.='<TD style="BACKGROUND-COLOR: '.$bgcolor.';" colspan=5 >&nbsp;</TD>';
+ $html.='</TR>';
+ return($html);
+}
+//________________________________________________________________________________________________________
+
+function escribeCheck()
+{
+ echo'
+ <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 type="checkbox" checked></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+ </TR>
+ </TABLE>';
+}
+//________________________________________________________________________________________________________
+
+function ContextualXMLAcciones()
+{
+ global $TbMsg;
+ global $sesion;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_acciones"';
+ $layerXML.=' maxanchu=140';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ if(empty($sesion)){
+ $layerXML.=' alpulsar="filtroAccion(1)"';
+ $layerXML.=' imgitem="../images/iconos/filtroaccion.gif"';
+ $layerXML.=' textoitem='.$TbMsg[41];
+ }
+ else{
+ $layerXML.=' alpulsar="filtroAccion(0)"';
+ $layerXML.=' imgitem="../images/iconos/filtro_off.gif"';
+ $layerXML.=' textoitem='.$TbMsg[43];
+ }
+
+ $layerXML.=' textoitem='.$TbMsg[41];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+ $layerXML.=ContextualXMLComun();
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+
+function ContextualXMLNotificaciones()
+{
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_notificaciones"';
+ $layerXML.=' maxanchu=140';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.=ContextualXMLComun();
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+
+function ContextualXMLComun()
+{
+ global $TbMsg;
+ global $idcmdtskwrk;
+ global $codtipoaccion;
+ global $accionid;
+ global $EJECUCION_TAREA;
+ global $sesion;
+
+ $layerXML="";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(1,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[46];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(2,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/reiniciar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[45];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(3,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/acDetenida.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(4,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/acIniciada.gif"';
+ $layerXML.=' textoitem='.$TbMsg[15];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(5,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/acExitosa.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[55].'"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eleccion(6,document.facciones.localaccion)"';
+ $layerXML.=' imgitem="../images/iconos/acFallida.gif"';
+ $layerXML.=' textoitem="'.$TbMsg[56].'"';
+ $layerXML.='></ITEM>';
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/colasreservas.php b/admin/WebConsole/principal/colasreservas.php
new file mode 100644
index 00000000..6b16f06f
--- /dev/null
+++ b/admin/WebConsole/principal/colasreservas.php
@@ -0,0 +1,970 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: colasreservas.php
+// Descripción :
+// Visualiza las reservas pendientes, confirmadas, denegadas y fecha y hora de la reserva
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLCTEMULSELECT.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/colasreservas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$ambito="";
+$idambito=0;
+$nombreambito="";
+$fechainicio="";
+$fechafin="";
+$estadoreserva="";
+$situacion="";
+
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+if (isset($_GET["tipocola"])) $tipocola=$_GET["tipocola"];
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+// Criterios por defecto
+if($ambito!="" && $idambito!="" && $nombreambito!="" && $tipocola!=""){
+ $wfechainicio=mktime(0, 0, 0, date("m") , date("d"), date("Y")); // Reservas desde un mes anterior
+ $wfechafin=mktime(0, 0, 0, date("m")+6 , date("d"), date("Y"));
+ $fechainicio=date("d/m/Y",$wfechainicio);
+ $fechafin=date("d/m/Y ",$wfechafin);
+ // Tipos de reservas
+ switch($tipocola){
+ case 0:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $westadoreserva[1]=$RESERVA_PENDIENTE;
+ $westadoreserva[2]=$RESERVA_DENEGADA;
+
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ $estadoreserva.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ $estadoreserva.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ case $RESERVA_CONFIRMADA:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ break;
+ case $RESERVA_PENDIENTE:
+ $westadoreserva[0]=$RESERVA_PENDIENTE;
+ $estadoreserva=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ break;
+ case $RESERVA_DENEGADA:
+ $westadoreserva[0]=$RESERVA_DENEGADA;
+ $estadoreserva=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ }
+ // Estados default
+ $wsituacion[0]=$RESERVA_PARADA;
+ $wsituacion[1]=$RESERVA_ACTIVA;
+ $situacion=$RESERVA_PARADA."=".$LITRESERVA_PARADA.";";
+ $situacion.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA.";";
+}
+//________________________________________________________________________________________________________
+// Recupera parametros del formulario
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"];
+if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"];
+if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"];
+
+if (isset($_POST["estadoreserva"])) {
+ $estadoreserva=$_POST["estadoreserva"];
+ $auxP=split(";",$estadoreserva);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $westadoreserva[$cont++]=$dualparam[0];
+ }
+}
+if (isset($_POST["situacion"])){
+ $situacion=$_POST["situacion"];
+ $auxP=split(";",$situacion);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $wsituacion[$cont++]=$dualparam[0];
+ }
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/colasreservas.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/colasreservas_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[12];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[13];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[14];
+ break;
+}
+echo '<p align=center class=cabeceras><img src="../images/iconos/reservas.gif">&nbsp;'.$TbMsg[0].'&nbsp;';
+echo '<FORM name="fdatos" action="colasreservas.php" method="post">'.chr(13);
+// Campos ocultos
+echo '<INPUT type=hidden name=ambito value="'.$ambito.'">';
+echo '<INPUT type=hidden name=idambito value="'.$idambito.'">';
+echo '<INPUT type=hidden name=nombreambito value="'.$nombreambito.'">';
+echo '<INPUT type=hidden name=estadoreserva value="'.$estadoreserva.'">';
+echo '<INPUT type=hidden name=situacion value="'.$situacion.'">';
+echo CriteriosBusquedas(); // Opciones de búsqueda
+echo '</FORM>'.chr(13);
+
+echo '<DIV align=center >';
+echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>,&nbsp'.$nombreambito.'</span>&nbsp;&nbsp;<IMG src="'.$urlimg.'"></span></DIV></p>';
+//________________________________________________________________________________________________________
+// Localiza las aulas pertenecientes al ámbito
+
+$cadenaaulas="";
+$cont_aulas=0;
+
+$sw=false;
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $AMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+}
+//________________________________________________________________________________________________________
+// Proceso de selección de reservas
+$ClausulaWhere="";
+//________________________________________________________________________________________________________
+// Cuestion identificador del Centro que ha ejecutado la acción
+$WhereCentroAccion="";
+$WhereCentroAccion='reservas.idcentro='.$idcentro;
+$ClausulaWhere.=" AND (".$WhereCentroAccion.")";
+//________________________________________________________________________________________________________
+// Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas )
+$WhereEstadosReservas="";
+for($i=0;$i<sizeof($westadoreserva);$i++){
+ if (isset($westadoreserva[$i]))
+ $WhereEstadosReservas.=" reservas.estado=".$westadoreserva[$i]." OR ";
+}
+if($WhereEstadosReservas!=""){
+ $WhereEstadosReservas=substr($WhereEstadosReservas,0,strlen($WhereEstadosReservas)-3);
+ $ClausulaWhere.=" AND (".$WhereEstadosReservas.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion situación de la programación
+$WhereSituaciones="";
+for($i=0;$i<sizeof($wsituacion);$i++){
+ if (isset($wsituacion[$i]))
+ $WhereSituaciones.=" programaciones.suspendida=".$wsituacion[$i]." OR ";
+}
+if($WhereSituaciones!=""){
+ $WhereSituaciones=substr($WhereSituaciones,0,strlen($WhereSituaciones)-3);
+ $ClausulaWhere.=" AND (".$WhereSituaciones.")";
+}
+//________________________________________________________________________________________________________
+$cadenaaulas=substr($cadenaaulas,0,strlen($cadenaaulas)-1); // Quita la coma
+$ClausulaWhere.=" AND idaula in(".$cadenaaulas.")";
+//________________________________________________________________________________________________________
+// Cuestion de fechas
+if(empty($fechainicio)) $fechainicio=date("d/m/Y",mktime(0, 0, 0, date("m") , date("d"), date("Y")));
+if(empty($fechafin)) $fechafin=date("d/m/Y",mktime(0, 0, 0, date("m")+1 , date("d"), date("Y")));
+
+list($dia_i,$mes_i,$anno_i)=split("/",$fechainicio);
+list($dia_f,$mes_f,$anno_f)=split("/",$fechafin);
+
+// Elimina registros en tabla temporal
+$cmd->texto="DELETE FROM reservastemporal where idcentro=".$idcentro." AND usuario='".$usuario."'"; // Elimina todos los registros de la tabla temporal
+$resul=$cmd->Ejecutar();
+
+//Recorre de fecha inicio a fecha fin
+$calendario=new Calendario("tabla_reservas");
+$anno_c=$anno_i;
+$mes_c=$mes_i;
+
+// Calcula el rango de meses dependiendo del intervalo de fechas solicitado
+while($anno_c<=$anno_f){
+ if($anno_c==$anno_i){
+ $mes_c=$mes_i;
+ if($anno_f>$anno_c)
+ $mes_t=12;
+ else
+ $mes_t=$mes_f;
+ }
+ else{
+ if($anno_c>$anno_i){
+ if($anno_c==$anno_f){
+ $mes_c=1;
+ $mes_t=$mes_f;
+ }
+ else{
+ $mes_c=1;
+ $mes_t=12;
+ }
+ }
+ }
+ $HEXanno=$calendario->numero_annos[$anno_c-2003][1]; // Primera referencia: 2004
+ $HEXmeses=0;
+ $mes_desde=$mes_c;
+ $mes_hasta=$mes_t;
+ while($mes_c<=$mes_t){
+ $HEXmeses=$HEXmeses | $calendario->nombre_mes[$mes_c][1];
+ $mes_c++;
+ }
+ // Cadena SQL para seleccionar reservas
+ $cmd->texto="SELECT reservas.idreserva,reservas.descripcion,programaciones.idprogramacion, programaciones.nombrebloque,programaciones.annos, programaciones.meses, programaciones.diario, programaciones.dias, programaciones.semanas, programaciones.horasini, programaciones.ampmini, programaciones.minutosini, programaciones.horasfin, programaciones.ampmfin, programaciones.minutosfin FROM reservas";
+ $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador";
+ $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ;
+ $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)";
+ $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ;
+ CreaReservasTemporal($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f);
+ $anno_c++;
+}
+$cadenaXML="";
+$cont_a=0;
+$cont_m=0;
+$cont_d=0;
+$HTMLannos="";
+$HTMLmeses="";
+$HTMLdias="";
+$HTMLhoras="";
+
+$sw=true;
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $AMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+}
+
+// Creación del árbol
+$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
+$clasedefault="texto_arbol";
+$titulotabla=$TbMsg[0];
+$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,2,20,270,2,$titulotabla);
+$salidaHTML=$arbol->CreaArbolVistaXml(); // Muestra árbol
+echo "<BR>";
+echo "<DIV align=center width=100%>";
+echo " <TABLE align=center width=100%>";
+echo " <TR><TD>";
+echo urldecode($salidaHTML);
+echo " </TD></TR><TABLE></DIV>";
+
+//________________________________________________________________________________________________________
+include_once("../includes/iframecomun.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function CreaReservasTemporal($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f){
+ global $usuario;
+ global $idcentro;
+
+ $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i);
+ $fechamaxima=mktime(0, 0, 0, $mes_f, $dia_f, $anno_f);
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ // Recorre reservas
+ while (!$rs->EOF){
+ $cadenafechas=FechasReservas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]);
+ $fechas_reservas=split(";",$cadenafechas);
+ for ($i=0;$i<sizeof($fechas_reservas)-1;$i++){
+ list($auxdia,$auxmes,$auxanno)=split("/",$fechas_reservas[$i]);
+ $auxfecha=mktime(0, 0, 0, $auxmes,$auxdia, $auxanno);
+
+ if($auxfecha>=$fechaminima && $auxfecha<=$fechamaxima){
+ $cmd->texto="INSERT INTO reservastemporal(idcentro,usuario,idprogramacion,idreserva,fecha) VALUES (".$idcentro.",'".$usuario."',".$rs->campos["idprogramacion"].",".$rs->campos["idreserva"].",'".$fechas_reservas[$i]."')";
+ $resul=$cmd->Ejecutar();
+ }
+ }
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+// Función : FechasReservas
+// Descripción :
+// Devuelve una cadena de fechas separada por comas que son precisamente las fechas que forman parte de una reserva concreta
+// Parametros:
+// - anno_c: Un año determinado
+// - mes_desde: El mes desde que se considera la reserva
+// - mes_hasta: El mes hasta que se considera la reserva
+// - meses: Campo con información hexadecimal de los meses de la reserva ( la información contenida en el campo de la tabla con este nombre
+// - diario: Idem para los dias de un mes
+// - dias: idem para los nombres de los días
+// - semanas: Idem para las semanas
+//________________________________________________________________________________________________________
+function FechasReservas($anno_c,$mes_desde,$mes_hasta,$meses,$diario,$dias,$semanas){
+ global $calendario;
+
+ $cadenafechas="";
+ $mascara=0x0001;
+ $cadenameses="";
+ $meses=$meses>>($mes_desde-1);
+ for($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($meses&$mascara>0){
+ $cadenameses.=$i.";";
+ // Dias de la semAna
+ if($dias>0){
+ $auxdias=$dias;
+ for($j=1;$j<=7;$j++){
+ if($auxdias&$mascara>0){
+ $cadenadias=$calendario->DiasPorMes($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxdias=$auxdias>>1;
+ }
+ }
+ // Semanas
+ if($semanas>0){
+ $auxsemanas=$semanas;
+ for($j=1;$j<=6;$j++){
+ if($auxsemanas&$mascara>0){
+ if($j==6){
+ $ulse=$calendario->UltimaSemana($i,$anno_c);
+ $cadenadias=$calendario->DiasPorSemanas($i,$anno_c,$ulse);
+ }
+ else
+ $cadenadias=$calendario->DiasPorSemanas($i,$anno_c,$j);
+ $tbdias=split(";",$cadenadias);
+ for ($k=0;$k<sizeof($tbdias)-1;$k++)
+ $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";";
+ }
+ $auxsemanas=$auxsemanas>>1;
+ }
+ }
+ }
+ $meses=$meses>>1;
+ }
+ $cadenadiario="";
+ for($i=1;$i<32;$i++){
+ if($diario&$mascara>0) $cadenadiario.=$i.";";
+ $diario=$diario>>1;
+ }
+ $tbmeses=split(";",$cadenameses);
+ $tbdiario=split(";",$cadenadiario);
+ for ($i=0;$i<sizeof($tbmeses)-1;$i++){
+ for ($j=0;$j<sizeof($tbdiario)-1;$j++){
+ $cadenafechas.=$tbdiario[$j]."/".$tbmeses[$i]."/".$anno_c.";";
+ }
+ }
+ return($cadenafechas);
+}
+/*________________________________________________________________________________________________________
+ Recorrea los distintos ámbitos
+________________________________________________________________________________________________________*/
+function RecorreCentro($cmd){
+ global $AMBITO_CENTROS;
+ global $LITAMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $cadenaXML;
+ global $sw;
+ global $idambito,$nombreambito;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ if($sw) {
+ $cadenaXML.='<CENTRO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/centros.gif"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS."-".$idambito;
+ $cadenaXML.=' infonodo='.$nombreambito;
+ $cadenaXML.='>';
+ }
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0";
+ RecorreAulas($cmd);
+ if($sw) $cadenaXML.='</CENTRO>';
+
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ global $LITAMBITO_GRUPOSAULAS;
+ global $cadenaXML;
+ global $sw;
+
+ $rs=new Recordset;
+ $cmd->texto.="ORDER by nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+
+ while (!$rs->EOF){
+ if($sw) {
+ $cadenaXML.='<GRUPOSAULAS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSAULAS."-".$rs->campos["idgrupo"];
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.='>';
+ }
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE grupoid=".$idgrupo;
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ if($sw) $cadenaXML.='</GRUPOSAULAS>';
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ global $AMBITO_AULAS;
+ global $LITAMBITO_AULAS;
+ global $cadenaaulas;
+ global $cont_aulas;
+ global $sw;
+ global $cadenaXML;
+
+ $rs=new Recordset;
+ $cmd->texto.="ORDER by nombreaula";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+
+ while (!$rs->EOF){
+ if($sw && $rs->campos["horaresevfin"]>0) {
+ $cadenaXML.='<AULA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_AULAS.'-'.$rs->campos["idaula"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#B5DAAD;";
+ $cadenaXML.='>';
+ }
+ $idaula=$rs->campos["idaula"];
+ $cadenaaulas.=$idaula.",";
+ $cont_aulas++;
+ if($sw && $rs->campos["horaresevfin"]>0) ListaReservas($cmd,$idaula,$rs->campos["nombreaula"]);
+ $rs->Siguiente();
+ if($sw && $rs->campos["horaresevfin"]>0) $cadenaXML.='</AULA>';
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function ListaReservas($cmd,$idaula,$nombreaula){
+ global $idcentro;
+ global $usuario;
+ global $TbMsg;
+ global $calendario;
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $EJECUCION_RESERVA;
+
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+
+ global $cadenaXML;
+
+ global $cont_a;
+ global $cont_m;
+ global $cont_d;
+ global $HTMLannos;
+ global $HTMLmeses;
+ global $HTMLdias;
+ global $HTMLhoras;
+
+ $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+ $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+ $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+
+ $tbampm[0]="a.m.";
+ $tbampm[1]="p.m.";
+
+ $cmd->texto="SELECT DISTINCT aulas.horaresevini,aulas.horaresevfin,reservastemporal.idreserva, reservastemporal.fecha,programaciones.horasini,programaciones.ampmini,programaciones.minutosini,trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,reservas.idreserva,reservas.descripcion,DAY(reservastemporal.fecha) as dia,MONTH(reservastemporal.fecha) as mes,YEAR(reservastemporal.fecha) as anno,reservas.descripcion,aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen,";
+ $cmd->texto.=" programaciones.horasini,programaciones.minutosini,programaciones.horasfin,programaciones.minutosfin,programaciones.ampmini,programaciones.ampmfin";
+ $cmd->texto.=" FROM reservas";
+ $cmd->texto.=" INNER JOIN reservastemporal ON reservas.idreserva = reservastemporal.idreserva";
+ $cmd->texto.=" INNER JOIN aulas ON reservas.idaula = aulas.idaula";
+ $cmd->texto.=" LEFT OUTER JOIN imagenes ON reservas.idimagen = imagenes.idimagen";
+ $cmd->texto.=" LEFT OUTER JOIN tareas ON reservas.idtarea = tareas.idtarea";
+ $cmd->texto.=" LEFT OUTER JOIN trabajos ON reservas.idtrabajo = trabajos.idtrabajo";
+ $cmd->texto.=" INNER JOIN programaciones ON reservastemporal.idprogramacion = programaciones.idprogramacion";
+ $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ";
+ $cmd->texto.=" AND (aulas.idaula = ".$idaula.") ";
+ $cmd->texto.=" AND (reservastemporal.idcentro='".$idcentro."') ";
+ $cmd->texto.=" AND (reservastemporal.usuario='".$usuario."') ";
+ $cmd->texto.=" ORDER by reservastemporal.fecha,programaciones.ampmini,programaciones.horasini,programaciones.minutosini";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+
+ $calendario->aula=$idaula;
+ $calendario->horaresevini=$rs->campos["horaresevini"];
+ $calendario->horaresevfin=$rs->campos["horaresevfin"];
+ $swa=false;
+ $swm=false;
+ $swd=false;
+ $ganno=0;
+ $gmes=0;
+ $gdia=0;
+
+ $cont_a=0;
+ $HTMLannos="";
+
+ // Recorre reservas temporales
+ while (!$rs->EOF){
+ // Año
+ if($ganno<>$rs->campos["anno"]){
+ if($swd){
+ GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes);
+ $cadenaXML.='</DIA> ';
+ }
+ if($swm){
+ GuardaMesAnno($ganno,$gmes,$CntMes);
+ $cadenaXML.='</MES> ';
+ }
+ if($swa){
+ GuardaAnno($ganno);
+ $cadenaXML.='</ANNO> ';
+ }
+ $ganno=$rs->campos["anno"];
+ $cadenaXML.='<ANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E&nbsp; '.$TbMsg[15].': %3C/b%3E'.$ganno.'"';
+ $cadenaXML.=' nodoid=nodoanno-'.$ganno;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#B5B7B9;";
+ $cadenaXML.='>';
+ $gmes=0;
+ $gdia=0;
+ $swa=true;
+ $swm=false;
+ $swd=false;
+ PintaAnno($ganno);
+ $HTMLmeses="";
+ $cont_m=0;
+ }
+
+ // Mes
+ if($gmes<>$rs->campos["mes"]){
+ if($swd){
+ GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes);
+ $cadenaXML.='</DIA> ';
+ }
+ if($swm){
+ GuardaMesAnno($ganno,$gmes,$CntMes);
+ $cadenaXML.='</MES> ';
+ }
+ $gmes=$rs->campos["mes"];
+ $nombremes=$calendario->nombre_mes[$rs->campos["mes"]][0];
+
+ $cadenaXML.='<MES ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="%3CA name=anodomes-'.$idaula."-".$gmes.'/'.$ganno.'%3E%3Cb%3E&nbsp; '.$TbMsg[16].': %3C/b%3E'.$nombremes.' %3C/A%3E "';
+ $cadenaXML.=' nodoid=nodomes-'.$idaula."-".$gmes.'/'.$ganno;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#E3D8C6";
+ $cadenaXML.='>';
+ $gdia=0;
+ $swm=true;
+ $swd=false;
+ $CntMes="";
+ PintaMesAnno($ganno,$gmes);
+ $HTMLdias="";
+ $cont_d=0;
+ }
+ // Dia
+ if($gdia<>$rs->campos["dia"]){
+ if($swd){
+ GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes);
+ $cadenaXML.='</DIA> ';
+ }
+ $gdia=$rs->campos["dia"];
+ $nombredia=$rs->campos["dia"]." - ".$nombremes." - ".$rs->campos["anno"];
+ $cadenaXML.='<DIA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="%3CA name=anododia-'.$idaula."-".$gdia.'/'.$gmes.'/'.$ganno.'%3E%3Cb%3E&nbsp;'.$TbMsg[17].': %3C/b%3E'.$nombredia.' %3C/A%3E "';
+ $cadenaXML.=' nodoid=nododia-'.$idaula."-".$gdia.'/'.$gmes.'/'.$ganno;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#CFDAE6";
+ $cadenaXML.='>';
+ $swd=true;
+ //$CntMes[$gdia]=1;
+ $CntDia="";
+ PintaHorasDias($ganno,$gmes,$gdia);
+ $HTMLhoras="";
+ }
+
+ // Cuestion Ocupación
+ $hexhoradesde=$rs->campos["horasini"];
+ $minutosdesde=$rs->campos["minutosini"];
+ if($minutosdesde==0) $minutosdesde="00";
+ $minutosdesde.=" ".$tbampm[$rs->campos["ampmini"]];
+ $hexhorahasta=$rs->campos["horasfin"];
+ $minutoshasta=$rs->campos["minutosfin"];
+ if($minutoshasta==0) $minutoshasta="00";
+ $minutoshasta.=" ".$tbampm[$rs->campos["ampmfin"]];
+ $cont=0;
+ while($hexhoradesde>0){
+ $cont++;
+ $hexhoradesde=$hexhoradesde>>1;
+ }
+ $horadesde=$cont-1;
+ $cont=0;
+ while($hexhorahasta>0){
+ $cont++;
+ $hexhorahasta=$hexhorahasta>>1;
+ }
+ $horahasta=$cont-1;
+
+ $mulmin=floor($minutosdesde/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmini"]][(int)$horadesde][(int)$currentminutos]=1;
+ $mulmin=floor($minutoshasta/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmfin"]][(int)$horahasta][(int)$currentminutos]=0;
+
+
+ // Descripción de la reserva
+ $cadenaXML.='<RESERVA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/reservas.gif"';
+ $cadenaXML.=' infonodo="%3CIMG src='.$tbimg[$rs->campos["estado"]].'%3E&nbsp;%3Cb%3E'.$rs->campos["descripcion"].': %3C/b%3E';
+ $cadenaXML.='&nbsp;%3CIMG src="../images/iconos/reloj.gif"%3E&nbsp;('.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.')"';
+
+ $cadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#EEEECC;";
+ $cadenaXML.='>';
+
+ $cadenaXML.='<OCUPACION ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[19].':%3C/b%3E '.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.'"';
+ $cadenaXML.=' nodoid=opcupacion-'.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</OCUPACION>';
+
+
+ $cadenaXML.='<AULA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$nombreaula.'"';;
+ $cadenaXML.=' nodoid=aula-'.$idaula;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</AULA>';
+
+ $nombreimagen=$rs->campos["nombreimagen"];
+ if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23];
+ // Descripción de la imagen a restaurar
+ $cadenaXML.='<IMAGEN ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[20].': %3C/b%3E'.$nombreimagen.'"';
+ $cadenaXML.=' nodoid=imagen-'.$rs->campos["idimagen"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</IMAGEN>';
+
+ $nombretarea=$rs->campos["nombretarea"];
+ if(!empty($nombretarea) ){
+ // Descripción de la tarea a restaurar
+ $cadenaXML.='<TAREA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[28].': %3C/b%3E'.$nombretarea.'"';
+ $cadenaXML.=' nodoid=tarea-'.$rs->campos["idtarea"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</TAREA>';
+ }
+
+ $nombretrabajo=$rs->campos["nombretrabajo"];
+ if(!empty($nombretrabajo) ){
+ // Descripción del trabajo a restaurar
+ $cadenaXML.='<TRABAJO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/trabajos.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[29].': %3C/b%3E'.$nombretrabajo.'"';
+ $cadenaXML.=' nodoid=trabajo-'.$rs->campos["idtrabajo"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</TRABAJO>';
+ }
+
+ $cadenaXML.='<EMAIL ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/email.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[25].':%3C/b%3E&nbsp;'.$rs->campos["solicitante"].' &nbsp;(%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"';
+ $cadenaXML.=' nodoid=email-'.$idaula;
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#FBECFA;";
+ $cadenaXML.='>';
+ $cadenaXML.='</EMAIL>';
+
+
+
+ $cadenaXML.='</RESERVA>';
+
+ $rs->Siguiente();
+ }
+ if($swd){
+ GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes);
+ $cadenaXML.='</DIA> ';
+ }
+ if($swm){
+ GuardaMesAnno($ganno,$gmes,$CntMes);
+ $cadenaXML.='</MES> ';
+ }
+ if($swa){
+ GuardaAnno($ganno);
+ $cadenaXML.='</ANNO> ';
+ }
+}
+//________________________________________________________________________________________________________
+function PintaAnno($ganno){
+ global $cadenaXML;
+ global $cont_a;
+
+ $cadenaXML.='<TBANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ $cadenaXML.=' infonodo=%anno-'.$ganno.'%';
+ $cadenaXML.=' nodoid=anno-'.$ganno;
+ $cadenaXML.=' fondonodo='."#FFFFFF";
+ $cadenaXML.='>';
+ $cadenaXML.='</TBANNO> ';
+}
+//________________________________________________________________________________________________________
+function GuardaAnno($ganno){
+ global $cadenaXML;
+ global $cont_a;
+ global $cont_m;
+ global $HTMLmeses;
+ global $HTMLannos;
+ global $calendario;
+
+$HTMLannos[$cont_a]="<TABLE><TR>";
+$j=0;
+ for($i=0;$i<$cont_m;$i++){
+ if(isset($HTMLmeses[$i])){
+ $HTMLannos[$cont_a].='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>'.$HTMLmeses[$i].'</TD>';
+ $j++;
+ if($j==4) {
+ $HTMLannos[$cont_a].="</TR><TR>";
+ $j=0;
+ }
+ }
+ }
+ $HTMLannos[$cont_a].="</TR></TABLE>";
+ $cadenaXML=ereg_replace( "%anno-".$ganno.'%',urlencode($HTMLannos[$cont_a]), $cadenaXML );
+ $cont_a++;
+}
+//________________________________________________________________________________________________________
+function PintaMesAnno($ganno,$gmes){
+ global $cadenaXML;
+
+ $cadenaXML.='<TBMES ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ $cadenaXML.=' infonodo=%mes-'.$ganno.'-'.$gmes.'%';
+ $cadenaXML.=' nodoid=mes-'.$ganno.'-'.$gmes;
+ $cadenaXML.=' fondonodo='."#FFFFFF";
+ $cadenaXML.='>';
+ $cadenaXML.='</TBMES> ';
+}
+//________________________________________________________________________________________________________
+function GuardaMesAnno($ganno,$gmes,$CntMes){
+ global $cadenaXML;
+ global $cont_m;
+ global $calendario;
+ global $HTMLmeses;
+
+ $HTMLmeses[$cont_m]="<TABLE cellspacing=3><TR><TD valign=top>";
+ $HTMLmeses[$cont_m].=$calendario->MesAnno($gmes,$ganno,$CntMes);
+ $HTMLmeses[$cont_m].="</TD></TR></TABLE>";
+ $cadenaXML=ereg_replace('%mes-'.$ganno.'-'.$gmes.'%',urlencode($HTMLmeses[$cont_m]), $cadenaXML );
+ $cont_m++;
+}
+//________________________________________________________________________________________________________
+function PintaHorasDias($ganno,$gmes,$gdia){
+ global $cadenaXML;
+
+ $cadenaXML.='<TBDIA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ $cadenaXML.=' infonodo=%horas-'.$ganno.'-'.$gmes.'-'.$gdia.'%';
+ $cadenaXML.=' nodoid=horas-'.$ganno.'-'.$gmes.'-'.$gdia;
+ $cadenaXML.=' fondonodo='."#FFFFFF";
+ $cadenaXML.='>';
+ $cadenaXML.='</TBDIA> ';
+}
+//________________________________________________________________________________________________________
+function GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,$CntMes){
+ global $cadenaXML;
+ global $calendario;
+ global $HTMLhorasdias;
+
+ $HTMLhorasdias="<TABLE cellspacing=3><TR><TD valign=top>";
+ $HTMLhorasdias.=$calendario->HorasDias($CntDia,&$porcenhoras);
+ $HTMLhorasdias.="</TD></TR></TABLE>";
+
+ $CntMes[$gdia]=$porcenhoras;
+ $cadenaXML=ereg_replace('%horas-'.$ganno.'-'.$gmes.'-'.$gdia.'%',urlencode($HTMLhorasdias), $cadenaXML );
+}
+//________________________________________________________________________________________________________
+function CriteriosBusquedas(){
+ global $idcentro;
+ global $TbMsg;
+
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $LITRESERVA_CONFIRMADA;
+ global $LITRESERVA_PENDIENTE;
+ global $LITRESERVA_DENEGADA;
+
+ global $RESERVA_PARADA; // reserva momentanemente parada
+ global $RESERVA_ACTIVA; // Reserva activa
+ global $LITRESERVA_PARADA;
+ global $LITRESERVA_ACTIVA;
+
+ global $fechainicio;
+ global $fechafin;
+
+ global $westadoreserva;
+ global $wsituacion;
+
+ $HTMLCriterios="";
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR HEIGHT=30>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN align=center style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">_______________ '.$TbMsg[1].' _______________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Desplegable con los tipos de reservas
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[2].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13);
+ $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13);
+ $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ // Desplegable con los distintos situacion
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[4].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13);
+ $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Fechas
+ $HTMLCriterios.='<TD COLSPAN=2>'.chr(13);
+ $HTMLCriterios.='<TABLE WIDTH=100% class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH>&nbsp;'.$TbMsg[7].':&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH align=right>&nbsp;'.$TbMsg[8].':&nbsp;&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD> <INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ $HTMLCriterios.='<TR height=5>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">__________________________________________________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ // Lupa
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD COLSPAN=4>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>';
+
+ $HTMLCriterios.='<IMG src="../images/iconos/busquedas.gif" onclick="javascript:fdatos.submit()" style="cursor:hand" alt="Buscar">';
+ $HTMLCriterios.='</TD>';
+ $HTMLCriterios.='<TD>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+$HTMLCriterios.='</TABLE>';
+return($HTMLCriterios);
+}?> \ No newline at end of file
diff --git a/admin/WebConsole/principal/comandos.php b/admin/WebConsole/principal/comandos.php
new file mode 100644
index 00000000..6d28f9e2
--- /dev/null
+++ b/admin/WebConsole/principal/comandos.php
@@ -0,0 +1,147 @@
+<?
+include_once("../includes/ctrlacc.php");
+
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+
+$identificador=0;
+$ambicom=""; // Ambito del comando
+$literalnodo="";
+
+if (isset($_GET["identificador"])) $identificador=$_GET["identificador"];
+if (isset($_GET["ambicom"])) $ambicom=$_GET["ambicom"];
+if (isset($_GET["literalnodo"])) $literalnodo=$_GET["literalnodo"];
+
+$literal="";
+switch($ambicom){
+ case $LITAMBITO_GRUPOSAULAS:
+ $literal="Comando aplicado al grupo de aulas:";
+ break;
+ case $LITAMBITO_AULAS:
+ $literal="Comando aplicado al aula:";
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES:
+ $literal="Comando aplicado al grupo de ordenadores:";
+ break;
+ case $LITAMBITO_ORDENADORES:
+ $literal="Comando aplicado al ordenador:";
+ break;
+}
+$literal=$literal.$literalnodo;
+?>
+<HTML>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+</HEAD>
+<SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/comandos.js"></SCRIPT>
+<BODY>
+ <input type=hidden value="<? echo $identificador?>" id=identificador>
+ <input type=hidden value="<? echo $ambicom?>" id=ambicom>
+
+ <p align=center class=cabeceras>COMANDOS&nbsp<img src="../images/iconos/comandos.gif"><br>
+ <span align=center class=subcabeceras><? echo $literal ?></span></p>
+<?
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if ($cmd){
+ $rs=new Recordset;
+ $cmd->texto="SELECT idcomando,descripcion,urlimg FROM comandos ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ echo '<TABLE align=center>';
+ echo ' <TR bgcolor="#003300">';
+ echo '<TD><strong><font color="#FFFFFF" size="1" face="Arial, Helvetica,sans-serif">Comando</font></strong></TD>';
+ echo '<TD><strong><font color="#FFFFFF" size="1" face="Arial, Helvetica,sans-serif">Descripcion</font></strong></TD>';
+ echo '</TR>';
+ $swcolor=true;
+ while (!$rs->EOF){
+ if ($swcolor){
+ $swcolor=false;
+ $bgcolor="#EEEECC";
+ $color="#003300";
+ }
+ else{
+ $swcolor=true;
+ //$bgcolor="#999999";
+ //$color="#FFFFFF";
+ $bgcolor="#EEEECC";
+ $color="#003300";
+ }
+ echo '<TR bgcolor="'.$bgcolor.'">';
+ echo '<TD><INPUT class="formulariodatos" id='.$rs->campos["idcomando"].' type=radio onclick="SeleccionaComando(this)"></TD>';
+ echo '<TD id="comando-'.$rs->campos["idcomando"].'">';
+ echo ' <font color="#003300" size="1" face="Arial, Helvetica, sans-serif">'.$rs->campos["descripcion"].'</font>';
+ echo '</TR>';
+ echo '<TR>';
+ echo ' <TD></TD>';
+ echo '<TD> ';
+ echo '</TD>';
+ echo '</TR>';
+ //}
+ echo '<TR bgcolor="#999999"><td colspan=3></td></tr>';
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ }
+}
+?>
+<br>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotones.php");
+//________________________________________________________________________________________________________
+
+//________________________________________________________________________________________________________
+include_once("../includes/iframecomun.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<? $cmd->Conexion->Cerrar(); // Cierra la conexión ?>
+<?
+/******************************************************************
+ Devuelve una objeto comando totalmente operativo (con la conexión abierta)
+ Parametros:
+ - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor
+ usuario,password,base de datos,etc separados por coma
+---------------------------------------------------------------------------------------------*/
+function CreaComando($cadenaconexion){
+ $strcn=split(";",$cadenaconexion);
+ $cn=new Conexion;
+ $cmd=new Comando;
+ $cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]);
+ if (!$cn->Abrir()) return (false);
+ $cmd->Conexion=&$cn;
+ return($cmd);
+}
+/* -------------------------------------------------------------------------------------------
+ Crea la etiqueta html <SELECT> de cualquier tabla
+ Parametros:
+ - cmd:Una comando ya operativo (con conexión abierta)
+ - nombretabla: El nombre de la tabla origen de los datos
+ - identificador: Un identificador de la tabla ( el que aparecerá seleccionado)
+ - nombreid: El nombre del identificador de la tabla
+ - nombreliteral: El nombre del literal de la tabla
+ - largo: longitud del desplegable
+---------------------------------------------------------------------------------------------*/
+function HTMLSELECT($cmd,$nombretabla,$identificador,$nombreid,$nombreliteral,$largo){
+ $SelectHtml="";
+ $rs=new Recordset;
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE '. $nombreid.'='.$identificador.' ORDER BY '.$nombreliteral;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $SelectHtml.= '<SELECT class="formulariodatos" name="'.$nombreid.'" style="WIDTH: '.$largo.'">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos[$nombreid].'"';
+ If ($rs->campos[$nombreid]==$identificador) $SelectHtml.= ' selected ' ;
+ $SelectHtml.= '>'.$rs->campos[$nombreliteral].'</OPTION>';
+ $rs->Siguiente();
+ }$SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/principal/configuraciones.php b/admin/WebConsole/principal/configuraciones.php
new file mode 100644
index 00000000..c49c3a6d
--- /dev/null
+++ b/admin/WebConsole/principal/configuraciones.php
@@ -0,0 +1,341 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: configuraciones.php
+// Descripción :
+// Muestra la configuración de las particiones de los ordenadores de un aula
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/comunes.php");
+include_once("../includes/constantes.php");
+include_once("../includes/ConfiguracionesParticiones.php");
+include_once("../idiomas/php/".$idioma."/configuraciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+//
+// Captura parámetros
+//________________________________________________________________________________________________________
+
+$ambito=0;
+$idambito=0;
+$swp=0; // Switch que indica si viene de las propiedades de ordenadores
+// Agrupamiento por defecto
+$fk_sysFi=0;
+$fk_nombreSO=0;
+$fk_tamano=0;
+$fk_imagen=0;
+$fk_perfil=0;
+
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["swp"])) $swp=$_GET["swp"];
+
+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_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"];
+if (isset($_POST["fk_tamano"])) $fk_tamano=$_POST["fk_tamano"];
+if (isset($_POST["fk_imagen"])) $fk_imagen=$_POST["fk_imagen"];
+if (isset($_POST["fk_perfil"])) $fk_perfil=$_POST["fk_perfil"];
+
+//________________________________________________________________________________________________________
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<BODY>
+<?
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ }
+ if(!$swp){
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[0].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[1].'
+ : '.$textambito.'</U></span>&nbsp;&nbsp;</span></p>';
+ }
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $resul=datosAulas($cmd,$idambito);
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $resul=datosGruposOrdenadores($cmd,$idambito);
+ break;
+ case $AMBITO_ORDENADORES :
+ if(!$swp)
+ $resul=datosOrdenadores($cmd,$idambito);
+ break;
+ }
+ if($ambito!=$AMBITO_ORDENADORES){
+ ?>
+ <P align=center><SPAN align=center class=subcabeceras><? echo $TbMsg[19]?></SPAN></P>
+ <FORM action="configuraciones.php" name="fdatos" method="POST">
+ <INPUT type="hidden" name="idambito" value="<? echo $idambito?>">
+ <INPUT type="hidden" name="ambito" value="<? echo $ambito?>">
+ <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 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[31]?></TD>
+ <TD align=center><INPUT type="checkbox" value="<? echo $msk_nombreSO?>" name="fk_nombreSO" <? if($fk_nombreSO==$msk_nombreSO) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+ <TD align=right><? echo $TbMsg[32]?></TD>
+ <TD align=center><INPUT 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[33]?></TD>
+ <TD align=center><INPUT type="checkbox" value="<? echo $msk_imagen?>" name="fk_imagen" <? if($fk_imagen==$msk_imagen) echo " checked "?>></TD>
+ <TD width="20" align=center>&nbsp;</TD>
+ <TD align=right><? echo $TbMsg[34]?></TD>
+ <TD align=center><INPUT type="checkbox" value="<? echo $msk_perfil?>" name="fk_perfil" <? if($fk_perfil==$msk_perfil) echo " checked "?>></TD>
+ </TR>
+ <TR>
+ <TD height=2 style="BORDER-TOP:#999999 1px solid;" align="center" colspan=14>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD height=20 align="center" colspan=14>
+ <A href=#>
+ <IMG border=0 src="../images/boton_confirmar.gif" onclick="document.fdatos.submit()"></A></TD>
+ </TR>
+ </TABLE>
+ </FORM>
+<?
+ }
+ $sws=$fk_sysFi | $fk_nombreSO | $fk_tamano | $fk_imagen | $fk_perfil;
+ pintaConfiguraciones($cmd,$idambito,$ambito,7,$sws,false);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Descripción:
+// 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
+// sería una secuencia de cadenas del tipo "clave de configuración" separados por "@"
+// Ejemplo:1;7;30000000;3;3;0;@2;130;20000000;5;4;0;@3;131;1000000;0;0;0;0
+//________________________________________________________________________________________________________
+function pintaParticiones($cmd,$configuraciones,$idordenadores,$cc)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
+ global $TbMsg;
+
+ $colums=7;
+ echo '<TR height=16>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[20].'&nbsp;</TH>'; // Número de partición
+ echo '<TH align=center>&nbsp;'.$TbMsg[24].'&nbsp;</TH>'; // Tipo de partición
+ echo '<TH align=center>&nbsp;'.$TbMsg[27].'&nbsp;</TH>'; // Sistema de ficheros
+ echo '<TH align=center>&nbsp;'.$TbMsg[21].'&nbsp;</TH>'; // Sistema Operativo Instalado
+ echo '<TH align=center>&nbsp;'.$TbMsg[22].'&nbsp;</TH>'; // Tamaño
+ echo '<TH align=center>&nbsp;'.$TbMsg[25].'&nbsp;</TH>'; // Imagen instalada
+ echo '<TH align=center>&nbsp;'.$TbMsg[26].'&nbsp;</TH>'; // Perfil software
+ 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 partición
+ if($tbKeys[$k]["cfg"]==$auxCfg[$i]){ // Claves encontradas
+ echo'<TR height=16>'.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;'.$tbKeys[$k]["sistemafichero"].'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo '<TD>&nbsp;'.$tbKeys[$k]["nombreso"].'&nbsp;</TD>'.chr(13);
+ echo '<TD align=center>&nbsp;'.tomaNombresSO($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo'<TD align=rigth>&nbsp;'.formatomiles($tbKeys[$k]["tamano"]).'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaTamano($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo'<TD>&nbsp;'.$tbKeys[$k]["imagen"].'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaImagenes($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ //echo'<TD>&nbsp;'.$tbKeys[$k]["perfilsoft"].'&nbsp;</TD>'.chr(13);
+ echo'<TD align=center>&nbsp;'.tomaPerfiles($tbKeys[$k]["numpar"],$idordenadores).'&nbsp;</TD>'.chr(13);
+
+ echo'</TR>'.chr(13);
+ break;
+ }
+ }
+ }
+ echo '<TR height=5><TD colspan='.$colums.' style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #FFFFFF;">&nbsp;</TD></TR>';
+}
+//________________________________________________________________________________________________________
+function datosAulas($cmd,$idaula)
+{
+ global $TbMsg;
+
+ $cmd->texto="SELECT DISTINCT aulas.*,count(*) as numordenadores
+ FROM aulas
+ INNER JOIN ordenadores ON ordenadores.idaula=aulas.idaula
+ WHERE aulas.idaula=".$idaula;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreaula=$rs->campos["nombreaula"];
+ $urlfoto=$rs->campos["urlfoto"];
+ $cagnon=$rs->campos["cagnon"];
+ $pizarra=$rs->campos["pizarra"];
+ $ubicacion=$rs->campos["ubicacion"];
+ $comentarios=$rs->campos["comentarios"];
+ $puestos=$rs->campos["puestos"];
+ $ordenadores=$rs->campos["numordenadores"];
+ }
+ $rs->Cerrar();
+ }
+?>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ echo '<TD>'. $nombreaula.'</TD>';
+ echo '<TH align=center>&nbsp;'.$TbMsg[7].'&nbsp;</TH>';
+ echo '<TD><INPUT class="formulariodatos" name=cagnon type=checkbox ';
+ if ($cagnon) echo ' checked ';
+ echo '></TD>';
+ ?>
+ <TD valign=top align=center rowspan=3>
+ <IMG border=3 style="border-color:#63676b"
+ src="<? if ($urlfoto=="") echo "../images/aula.jpg"; else echo $urlfoto;?>">
+ <BR><center>&nbsp;<? echo $TbMsg[13].':&nbsp;'. $ordenadores?></center></TD>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?
+ echo '<TD>'.$ubicacion.'</TD>';
+ ?>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ echo '<TD><INPUT class="formulariodatos" name=pizarra type=checkbox ';
+ if ($pizarra) echo ' checked ';
+ echo '></TD>';
+ ?>
+ </TR>
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[9]?>&nbsp;</TD>
+ <?
+ echo '<TD>'.$puestos.'</TD>';
+ ?>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
+ <?
+ echo '<TD>'.$comentarios.'</TD>';
+ ?>
+ </TR>
+ </TABLE>
+<?
+}
+//________________________________________________________________________________________________________
+function datosOrdenadores($cmd,$idordenador)
+{
+ global $TbMsg;
+
+ $cmd->texto="SELECT nombreordenador,ip,mac,perfileshard.descripcion as perfilhard
+ FROM ordenadores
+ INNER JOIN perfileshard ON perfileshard.idperfilhard=ordenadores.idperfilhard
+ WHERE ordenadores.idordenador=".$idordenador;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreordenador=$rs->campos["nombreordenador"];
+ $ip=$rs->campos["ip"];
+ $mac=$rs->campos["mac"];
+ $perfilhard=$rs->campos["perfilhard"];
+ }
+ $rs->Cerrar();
+ }
+?>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[14]?>&nbsp;</TD>
+ <? echo '<TD>'.$nombreordenador.'</TD>';?>
+ <TD colspan=2 valign=top align=left rowspan=4><IMG border=2 style="border-color:#63676b" src="../images/fotoordenador.gif"></TD>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[15]?>&nbsp;</TD>
+ <?echo '<TD>'.$ip.'</TD>';?>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[16]?>&nbsp;</TD>
+ <? echo '<TD>'.$mac.'</TD>';?>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[17]?>&nbsp;</TD>
+ <? echo '<TD>'.$perfilhard.'</TD>';?>
+ </TR>
+ <TR>
+ </TABLE>
+<?
+}
+?>
+<?
+//________________________________________________________________________________________________________
+function datosGruposOrdenadores($cmd,$idgrupo)
+{
+ global $TbMsg;
+
+ $cmd->texto="SELECT DISTINCT gruposordenadores.*,count(*) as numordenadores
+ FROM gruposordenadores
+ INNER JOIN ordenadores ON ordenadores.grupoid=gruposordenadores.idgrupo
+ WHERE gruposordenadores.idgrupo=".$idgrupo;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombregrupoordenador=$rs->campos["nombregrupoordenador"];
+ $ordenadores=$rs->campos["numordenadores"];
+ }
+ $rs->Cerrar();
+ }
+?>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ echo '<TD>'.$nombregrupoordenador.'</TD>
+ <TD colspan=2 valign=top align=center rowspan=2>
+ <IMG border=3 style="border-color:#63676b" src="../images/aula.jpg"><br>
+ <center>&nbsp;'.$TbMsg[13].':&nbsp;'. $ordenadores.'</center>
+ </TD>';
+
+ ?>
+ </TR>
+ </TABLE>
+<?
+}
+?>
+
diff --git a/admin/WebConsole/principal/consolaremota.php b/admin/WebConsole/principal/consolaremota.php
new file mode 100644
index 00000000..72dd24c5
--- /dev/null
+++ b/admin/WebConsole/principal/consolaremota.php
@@ -0,0 +1,143 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: consolaremota.php
+// Descripción :
+// Crea una consola remota para escribir comandos de la shell de forma remota
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/consolaremota_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//___________________________________________________________________________________________________
+$idambito="";
+$litambito="";
+$nomambito="";
+$ambito="";
+$sw=0; // Controla priemas y segundas llamadas al cliente (ejecución previa o sólo eco)
+
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["litambito"])) $litambito=$_GET["litambito"];
+if (isset($_GET["nomambito"])) $nomambito=$_GET["nomambito"];
+if (isset($_GET["sw"])) $sw=$_GET["sw"];
+
+/* Tamaño del textarea de código */
+$cols="95";
+$rows="10";
+switch($litambito){
+ case $LITAMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ $ambito=$AMBITO_CENTROS;
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ $ambito=$AMBITO_GRUPOSAULAS;
+ break;
+ case $LITAMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ $ambito=$AMBITO_AULAS;
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ $ambito=$AMBITO_GRUPOSORDENADORES;
+ break;
+ case $LITAMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ $ambito=$AMBITO_ORDENADORES;
+ break;
+ }
+
+//___________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<BODY>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/consolaremota.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/consolaremota_'.$idioma.'.js"></SCRIPT>'?>
+
+ <FORM name="fdatos">
+ <INPUT type=hidden name="idambito" value=<?echo $idambito?>>
+ <INPUT type=hidden name="litambito" value=<?echo $litambito?>>
+ <INPUT type=hidden name="ambito" value=<?echo $ambito?>>
+ <INPUT type=hidden name="nomambito" value=<?echo $nomambito?>>
+ </FORM>
+
+ <P align=center class=cabeceras><?echo $TbMsg[7]?><BR>
+ <SPAN align=center class=subcabeceras>
+ <IMG src="<? echo $urlimg?>">&nbsp;<?echo $textambito.": ".$nomambito?></SPAN></P>
+ <TABLE align=center border="0" cellpadding="0" cellspacing="1">
+ <TR>
+ <TD align=center class="presentaciones"><? echo $TbMsg[11]?></TD></TR>
+
+ <?
+ if($sw==1){ // caja para código del script
+ echo '<TR>
+ <TD align=center><textarea onfocus="conmuta(\'hidden\');" class="cajacomandos" name id="comando" cols="'.$cols.'"
+ rows="'.$rows.'"></textarea></TD></TR>
+ <TR>
+ <TD align=center>
+ <BR><IMG border=0 style="cursor:pointer" src="../images/boton_confirmar.gif"
+ onclick="confirmar()"></TD></TR>';
+ }
+ if($ambito==$AMBITO_ORDENADORES) //Mensaje de espera
+ $msg=$TbMsg[14];
+ else
+ $msg=$TbMsg[15];
+ echo '<TR><TD align=center>';
+ // Layer de las notificaciones de envío
+ echo '<DIV id="layer_aviso" align=center style="visibility:hidden">';
+ echo '<BR>';
+ echo '<SPAN align=center class="marco">&nbsp;'.$msg.'&nbsp;</SPAN>';
+ echo '</DIV>';
+ echo '</TD></TR>';
+ if($ambito==$AMBITO_ORDENADORES){ // Nota al pie
+ echo '<TR>
+ <TD align=center class="presentaciones">'.$TbMsg[12].'</TD></TR>';
+ echo '<TR>
+ <TD align=center>';
+ echo ' <div id="diveco" class="marco" align=left style="width:700px;height:400px;overflow:scroll"></div>';
+ echo ' </TD>
+ </TR>';
+ }
+ ?>
+ </TABLE>
+<?
+ if($ambito!=$AMBITO_ORDENADORES){ // Nota al pie
+ echo '<DIV id="Layer_nota" align=center>';
+ echo '<BR>';
+ echo '<SPAN align=center class=notas><I><b>'.$TbMsg[13].'</b></I></SPAN>';
+ echo '</DIV>';
+
+ }
+?>
+<SCRIPT language="javascript">
+ <?
+ if($sw==2){ // Llama a eco
+ echo 'sw=2;';
+ echo 'enviaMsg();';
+ }
+ ?>
+</SCRIPT>
+
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/principal/ecoconsola.php b/admin/WebConsole/principal/ecoconsola.php
new file mode 100644
index 00000000..e5722678
--- /dev/null
+++ b/admin/WebConsole/principal/ecoconsola.php
@@ -0,0 +1,81 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: sondeo.php
+// Descripción :
+// Consulta el eco de los clientes a traqvés de la consola remota
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/SockHidra.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/CreaComando.php");
+ include_once("../includes/RecopilaIpesMacs.php");
+ //________________________________________________________________________________________________________
+ $ambito=0;
+ $idambito=0;
+ $sw=0; // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
+
+ if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+ if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+ if (isset($_POST["comando"])) $comando=$_POST["comando"];
+ if (isset($_POST["sw"])) $sw=$_POST["sw"];
+ //________________________________________________________________________________________________________
+ $cmd=CreaComando($cadenaconexion);
+ if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+ //________________________________________________________________________________________________________
+ switch($sw){
+ case 1: // Envío del código de scrip
+ $funcion="nfn=ConsolaRemota".chr(13);
+ $atributos="scp=".rawurlencode($comando).chr(13);
+ break;
+ case 2: // Recupera el archivo de eco
+ $funcion="nfn=EcoConsola".chr(13); // Nombre de la función que procesa la petición
+ $atributos=chr(13);
+ }
+ $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
+ $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
+ //________________________________________________________________________________________________________
+ // Ámbito de aplicación de la petición
+ //________________________________________________________________________________________________________
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
+ $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
+ //________________________________________________________________________________________________________
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $resul=false;
+ $trama="";
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros=$funcion.$aplicacion.$atributos.$acciones;
+ $resul=$shidra->envia_peticion($parametros);
+ if($resul)
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ }
+ if($resul){
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ switch($sw){
+ case 1: // Envío del código de scrip
+ $trama_notificacion=$ValorParametros["res"];
+ echo $trama_notificacion; // Devuelve respuesta
+ break;
+ case 2: // Recupera el archivo de eco
+ $trama_notificacion=$ValorParametros["res"];
+ echo $trama_notificacion; // Devuelve respuesta
+ }
+
+ }
+
+?>
diff --git a/admin/WebConsole/principal/ecoremoto.php b/admin/WebConsole/principal/ecoremoto.php
new file mode 100644
index 00000000..4c9a656e
--- /dev/null
+++ b/admin/WebConsole/principal/ecoremoto.php
@@ -0,0 +1,92 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2010
+// Fecha Última modificación: Marzo-2010
+// Nombre del fichero: ecoremoto.php
+// Descripción :
+// Crea una consola remota para escribir comandos de la shell de forma remota
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/ecoremoto_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//___________________________________________________________________________________________________
+$idambito="";
+$litambito="";
+$nomambito="";
+
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["litambito"])) $litambito=$_GET["litambito"];
+if (isset($_GET["nomambito"])) $nomambito=$_GET["nomambito"];
+//___________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Eco-<? echo $nomambito?></TITLE>
+<HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<LINK rel="stylesheet" type="text/css" href="../estilos.css">
+</HEAD>
+<BODY>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/ecoremoto.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<SCRIPT language="javascript">
+//______________________________________________________________________________________________________
+</SCRIPT>
+ <FORM name="fdatos" action="shellconsola.php">
+ <INPUT type=hidden name="idambito" value=<?echo $idambito?>>
+ <INPUT type=hidden name="litambito" value=<?echo $litambito?>>
+ <INPUT type=hidden name="nomambito" value=<?echo $nomambito?>>
+ </FORM>
+
+<?
+switch($litambito){
+ case $LITAMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $LITAMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $LITAMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+?>
+ <P align=center class=cabeceras><?echo $TbMsg[7]?><BR>
+ <SPAN align=center class=subcabeceras>
+ <IMG src="<? echo $urlimg?>">&nbsp;<?echo $textambito.": ".$nomambito?></SPAN></P>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[8]?></I></SPAN>
+
+ <table align=center border="0" cellpadding="0" cellspacing="1">
+ <tr><td class="presentaciones">Salida</td></tr>
+ <tr><td>
+ <div id="diveco" class="marco" align=left style="width:700px;height:500px;overflow:scroll"><P><? echo $TbMsg[11]?></P></div>
+ </td></tr>
+ </table>
+ </DIV>
+
+<SCRIPT language="javascript">
+ enviaping();
+</SCRIPT>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/principal/hardwares.php b/admin/WebConsole/principal/hardwares.php
new file mode 100644
index 00000000..734d282f
--- /dev/null
+++ b/admin/WebConsole/principal/hardwares.php
@@ -0,0 +1,637 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: hardwares.php
+// Descripción :
+// Administra el hardware de los ordenadores de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/hardwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idcentro); // Crea el arbol XML con todos los datos del Centro
+// Creación del árbol
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/hardwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/hardwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de tipos de hardware
+$XMLcontextual=CreacontextualXMLTipos_Hardware();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLTipoHardware();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de componentes hardware
+$XMLcontextual=CreacontextualXMLComponentes_Hardware();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposComponentes(); // Grupos de componentes
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLComponente_Hardware(); // Componentes
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de perfiles hardware
+$XMLcontextual=CreacontextualXMLPerfiles_Hardware();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposPerfiles(); // Grupos de perfiles
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLPerfil_Hardware(); // Perfiles
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML de toda la informaci� del hardware registrado en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexiónabierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro){
+ global $TbMsg;
+ $cadenaXML='<HARDWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"';
+ $cadenaXML.=' nodoid=RaizHardwares';
+ $cadenaXML.=' infonodo="Hardware"';
+ $cadenaXML.='>';
+ $cadenaXML.='<TIPOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[18];
+ $cadenaXML.=' nodoid=RaizTipoHardwares';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizTipoHardwares'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_TiposHardwares($cmd);
+ $cadenaXML.='</TIPOS>';
+ $cadenaXML.='<COMPONENTES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[19];
+ $cadenaXML.=' nodoid=RaizComponentesHardwares';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizComponentesHardwares'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_componenteshard($cmd,$idcentro,0);
+ $cadenaXML.='</COMPONENTES>';
+ $cadenaXML.='<PERFILES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[20];
+ $cadenaXML.=' nodoid=RaizPerfilesHardwares';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizPerfilesHardwares'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_perfileshard($cmd,$idcentro,0);
+ $cadenaXML.='</PERFILES>';
+ $cadenaXML.='</HARDWARES>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_TiposHardwares($cmd){
+ global $LITAMBITO_TIPOHARDWARES;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idtipohardware,descripcion,urlimg FROM tipohardwares order by descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<TIPOHARDWARES';
+ // Atributos
+ if ($rs->campos["urlimg"]!="")
+ $cadenaXML.=' imagenodo="'.$rs->campos["urlimg"].'"';
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_TIPOHARDWARES."'" .')"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_TIPOHARDWARES.'-'.$rs->campos["idtipohardware"];
+
+ $cadenaXML.='>';
+ $cadenaXML.='</TIPOHARDWARES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_componenteshard($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSCOMPONENTESHARD;
+ global $AMBITO_GRUPOSCOMPONENTESHARD;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSCOMPONENTESHARD." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSCOMPONENTESHARD';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSCOMPONENTESHARD."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSCOMPONENTESHARD.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_componenteshard($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSCOMPONENTESHARD>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_ComponentesHardwares($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ComponentesHardwares($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_COMPONENTESHARD;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT hardwares.idhardware,hardwares.descripcion,tipohardwares.urlimg FROM hardwares INNER JOIN tipohardwares ON hardwares.idtipohardware=tipohardwares.idtipohardware WHERE idcentro=".$idcentro." AND grupoid=". $grupoid." order by tipohardwares.idtipohardware,hardwares.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<COMPONENTES';
+ // Atributos
+ if ($rs->campos["urlimg"]!="")
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confihard.gif"';
+
+
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_COMPONENTESHARD.'-'.$rs->campos["idhardware"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_COMPONENTESHARD."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</COMPONENTES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_perfileshard($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSPERFILESHARD;
+ global $AMBITO_GRUPOSPERFILESHARD;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSPERFILESHARD." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSPERFILESHARD';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSPERFILESHARD."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSPERFILESHARD.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_perfileshard($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSPERFILESHARD>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_PerfilesHardwares($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_PerfilesHardwares($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_PERFILESHARD;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT perfileshard.idperfilhard ,perfileshard.descripcion FROM perfileshard WHERE perfileshard.idcentro=".$idcentro." AND perfileshard.grupoid=". $grupoid;
+ $cmd->texto.=" ORDER by perfileshard.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<PERFILESHARDWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilhardware.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PERFILESHARD.'-'.$rs->campos["idperfilhard"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PERFILESHARD."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILESHARDWARES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Mens Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLTipos_Hardware(){
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizTipoHardwares"';
+ $layerXML.=' maxanchu=175';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=240;
+ $wpages="../propiedades/propiedades_tipohardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLTipoHardware(){
+ global $LITAMBITO_TIPOHARDWARES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_TIPOHARDWARES.'"';
+ $layerXML.=' maxanchu=165';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=240;
+ $wpages="../propiedades/propiedades_tipohardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLComponentes_Hardware(){
+ global $AMBITO_COMPONENTESHARD;
+ global $AMBITO_GRUPOSCOMPONENTESHARD;
+ global $LITAMBITO_GRUPOSCOMPONENTESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizComponentesHardwares"';
+ $layerXML.=' maxanchu=185';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSCOMPONENTESHARD.',' . "'".$LITAMBITO_GRUPOSCOMPONENTESHARD."'" . ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=230;
+ $wpages="../propiedades/propiedades_componentehardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_componentehardwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_COMPONENTESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposComponentes(){
+ global $AMBITO_COMPONENTESHARD;
+ global $AMBITO_GRUPOSCOMPONENTESHARD;
+ global $LITAMBITO_GRUPOSCOMPONENTESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSCOMPONENTESHARD.'"';
+ $layerXML.=' maxanchu=195';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSCOMPONENTESHARD.',' ."'".$LITAMBITO_GRUPOSCOMPONENTESHARD."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=230;
+ $wpages="../propiedades/propiedades_componentehardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_componentehardwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_COMPONENTESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLComponente_Hardware(){
+ global $AMBITO_COMPONENTESHARD;
+ global $LITAMBITO_COMPONENTESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_COMPONENTESHARD.'"';
+ $layerXML.=' maxanchu=145';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_COMPONENTESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=230;
+ $wpages="../propiedades/propiedades_componentehardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLPerfiles_Hardware(){
+ global $AMBITO_PERFILESHARD;
+ global $AMBITO_GRUPOSPERFILESHARD;
+ global $LITAMBITO_GRUPOSPERFILESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizPerfilesHardwares"';
+ $layerXML.=' maxanchu=155';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPERFILESHARD.',' ."'".$LITAMBITO_GRUPOSPERFILESHARD."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilhardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_perfilhardwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PERFILESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposPerfiles(){
+ global $AMBITO_PERFILESHARD;
+ global $AMBITO_GRUPOSPERFILESHARD;
+ global $LITAMBITO_GRUPOSPERFILESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSPERFILESHARD.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPERFILESHARD.',' ."'".$LITAMBITO_GRUPOSPERFILESHARD."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilhardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_perfilhardwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PERFILESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLPerfil_Hardware(){
+ global $AMBITO_PERFILESHARD;
+ global $LITAMBITO_PERFILESHARD;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_PERFILESHARD.'"';
+ $layerXML.=' maxanchu=155';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_perfilcomponente()"';
+ $layerXML.=' imgitem="../images/iconos/confihard.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="muestra_informacion()"';
+ $layerXML.=' textoitem='.$TbMsg[15];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_PERFILESHARD.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[16];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilhardwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[17];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/imagenes.php b/admin/WebConsole/principal/imagenes.php
new file mode 100644
index 00000000..ff2f372c
--- /dev/null
+++ b/admin/WebConsole/principal/imagenes.php
@@ -0,0 +1,304 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// 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");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+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
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/imagenes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/imagenes_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// 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);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// 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){
+ global $TbMsg;
+ global $LITAMBITO_IMAGENES;
+ $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.='</RAIZ>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_imagenes($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSIMAGENES;
+ global $AMBITO_GRUPOSIMAGENES;
+ $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";
+ $rs->Comando=&$cmd;
+ 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.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSIMAGENES.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_imagenes($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSIMAGENES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Imagenes($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Imagenes($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_IMAGENES;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idimagen,descripcion FROM imagenes WHERE idcentro=".$idcentro." AND grupoid=".$grupoid." ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<IMAGEN';
+ // 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.='>';
+ $cadenaXML.='</IMAGEN>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLImagenes(){
+ global $AMBITO_IMAGENES;
+ global $AMBITO_GRUPOSIMAGENES;
+ global $LITAMBITO_GRUPOSIMAGENES;
+ global $LITAMBITO_IMAGENES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_IMAGENES.'"';
+ $layerXML.=' maxanchu=170';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSIMAGENES.',' ."'".$LITAMBITO_GRUPOSIMAGENES."'".')"';
+ $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.=' imgitem="../images/iconos/imagen.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_imagenes.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_IMAGENES.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//__________________________________________________________________________________________
+function ContextualXMLGruposImagenes(){
+ global $AMBITO_IMAGENES;
+ global $AMBITO_GRUPOSIMAGENES;
+ global $LITAMBITO_GRUPOSIMAGENES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSIMAGENES.'"';
+ $layerXML.=' maxanchu=175';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSIMAGENES.',' ."'".$LITAMBITO_GRUPOSIMAGENES."'". ')"';
+ $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.=' imgitem="../images/iconos/imagen.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_imagenes.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_IMAGENES.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//---------------------------------------------------------------------------------------------------------------------------
+function CreacontextualXMLImagen(){
+ global $AMBITO_IMAGENES;
+ global $LITAMBITO_IMAGENES;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_IMAGENES.'"';
+ $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];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_IMAGENES.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $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.=' textoitem='.$TbMsg[7];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/menus.php b/admin/WebConsole/principal/menus.php
new file mode 100644
index 00000000..70e12283
--- /dev/null
+++ b/admin/WebConsole/principal/menus.php
@@ -0,0 +1,307 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: menus.php
+// Descripción :
+// Administra los menus de los clientes rembo de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/menus_".$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 los datos del Centro
+// Creación del árbol
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/menus.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/opciones_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/menus_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de los menus
+$XMLcontextual=CreacontextualXMLMenus();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposMenus(); // Grupos de menus
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLMenu(); // Menús
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML con toda la información de los menus iniciales de los clientes rembo de un Centro
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexión abierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro){
+ global $TbMsg;
+ global $LITAMBITO_MENUS;
+ $cadenaXML='<MENUS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/menus.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[9];
+ $cadenaXML.=' nodoid=Raiz'.$LITAMBITO_MENUS;
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_MENUS."'".')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_menus($cmd,$idcentro,0);
+ $cadenaXML.='</MENUS>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_menus($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSMENUS;
+ global $AMBITO_GRUPOSMENUS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSMENUS." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSMENU';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSMENUS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSMENUS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_menus($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSMENU>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Menus($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Menus($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_MENUS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idmenu,descripcion FROM menus WHERE idcentro=".$idcentro." AND grupoid=". $grupoid." ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<MENU';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/menu.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_MENUS.'-'.$rs->campos["idmenu"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_MENUS."'" .')"';
+ $cadenaXML.=' >';
+ $cadenaXML.='</MENU>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLMenus(){
+ global $AMBITO_MENUS;
+ global $AMBITO_GRUPOSMENUS;
+ global $LITAMBITO_GRUPOSMENUS;
+ global $LITAMBITO_MENUS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_MENUS.'"';
+ $layerXML.=' maxanchu=155';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSMENUS.',' . "'".$LITAMBITO_GRUPOSMENUS."'" . ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=480;
+ $wpages="../propiedades/propiedades_menus.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/menu.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_menus.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_MENUS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposMenus(){
+ global $AMBITO_MENUS;
+ global $AMBITO_GRUPOSMENUS;
+ global $LITAMBITO_GRUPOSMENUS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSMENUS.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSMENUS.',' ."'".$LITAMBITO_GRUPOSMENUS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=480;
+
+ $wpages="../propiedades/propiedades_menus.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/menu.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_menus.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_MENUS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLMenu(){
+ global $AMBITO_MENUS;
+ global $LITAMBITO_MENUS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_MENUS.'"';
+ $layerXML.=' maxanchu=130';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="gestionar_items()"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="muestra_informacion()"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_MENUS.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=480;
+
+ $wpages="../propiedades/propiedades_menus.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/programacionesaulas.php b/admin/WebConsole/principal/programacionesaulas.php
new file mode 100644
index 00000000..d83087da
--- /dev/null
+++ b/admin/WebConsole/principal/programacionesaulas.php
@@ -0,0 +1,834 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: programacionesaulas.php
+// Descripción :
+// Visualiza las reservas pendientes, confirmadas, denegadas y fecha y hora de la reserva
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLCTEMULSELECT.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/programacionesaulas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$ambito="";
+$idambito=0;
+$nombreambito="";
+$fechainicio="";
+$fechafin="";
+$estadoreserva="";
+$situacion="";
+
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+if (isset($_GET["tipocola"])) $tipocola=$_GET["tipocola"];
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+// Criterios por defecto
+if($ambito!="" && $idambito!="" && $nombreambito!="" && $tipocola!=""){
+ $wfechainicio=mktime(0, 0, 0, date("m") , date("d"), date("Y")); // Reservas desde un mes anterior
+ $wfechafin=mktime(0, 0, 0, date("m")+6 , date("d"), date("Y"));
+ $fechainicio=date("d/m/Y",$wfechainicio);
+ $fechafin=date("d/m/Y ",$wfechafin);
+ // Tipos de reservas
+ switch($tipocola){
+ case 0:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $westadoreserva[1]=$RESERVA_PENDIENTE;
+ $westadoreserva[2]=$RESERVA_DENEGADA;
+
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ $estadoreserva.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ $estadoreserva.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ case $RESERVA_CONFIRMADA:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ break;
+ case $RESERVA_PENDIENTE:
+ $westadoreserva[0]=$RESERVA_PENDIENTE;
+ $estadoreserva=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ break;
+ case $RESERVA_DENEGADA:
+ $westadoreserva[0]=$RESERVA_DENEGADA;
+ $estadoreserva=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ }
+ // Estados default
+ $wsituacion[0]=$RESERVA_PARADA;
+ $wsituacion[1]=$RESERVA_ACTIVA;
+ $situacion=$RESERVA_PARADA."=".$LITRESERVA_PARADA.";";
+ $situacion.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA.";";
+}
+//________________________________________________________________________________________________________
+// Recupera parametros del formulario
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"];
+if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"];
+if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"];
+
+if (isset($_POST["estadoreserva"])) {
+ $estadoreserva=$_POST["estadoreserva"];
+ $auxP=split(";",$estadoreserva);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $westadoreserva[$cont++]=$dualparam[0];
+ }
+}
+if (isset($_POST["situacion"])){
+ $situacion=$_POST["situacion"];
+ $auxP=split(";",$situacion);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $wsituacion[$cont++]=$dualparam[0];
+ }
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/programacionesaulas.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/programacionesaulas_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[12];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[13];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[14];
+ break;
+ case $AMBITO_GRUPOSRESERVAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[30];
+ break;
+}
+echo '<p align=center class=cabeceras><img src="../images/iconos/reservas.gif">&nbsp;'.$TbMsg[0].'&nbsp;';
+echo '<FORM name="fdatos" action="programacionesaulas.php" method="post">'.chr(13);
+// Campos ocultos
+echo '<INPUT type=hidden name=ambito value="'.$ambito.'">';
+echo '<INPUT type=hidden name=idambito value="'.$idambito.'">';
+echo '<INPUT type=hidden name=nombreambito value="'.$nombreambito.'">';
+echo '<INPUT type=hidden name=estadoreserva value="'.$estadoreserva.'">';
+echo '<INPUT type=hidden name=situacion value="'.$situacion.'">';
+echo CriteriosBusquedas(); // Opciones de búsqueda
+echo '</FORM>'.chr(13);
+
+echo '<DIV align=center >';
+echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>,&nbsp'.$nombreambito.'</span>&nbsp;&nbsp;<IMG src="'.$urlimg.'"></span></DIV></p>';
+//________________________________________________________________________________________________________
+// Proceso de selección de reservas
+$ClausulaWhere="";
+//________________________________________________________________________________________________________
+// Cuestion identificador del ámbito
+$WhereCentroAccion="";
+$WhereCentroAccion='reservas.idcentro='.$idcentro;
+$ClausulaWhere.=" AND (".$WhereCentroAccion.")";
+
+$cadenaaulas="";
+$cadenareservas="";
+$swa=false; // Para saber que ámbitos se han seleccionado
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $AMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $AMBITO_GRUPOSRESERVAS :
+ $swa=true;
+ if(!empty($idambito)){
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+ }
+ else{
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=0 AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+ $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=0";
+ RecorreReservas($cmd);
+ }
+ break;
+}
+if(strlen($cadenaaulas)>0){
+ $cadenaaulas=substr($cadenaaulas,0,strlen($cadenaaulas)-1); // Quita la coma
+ $ClausulaWhere.=" AND aulas.idaula IN(".$cadenaaulas.")";
+}
+if(strlen($cadenareservas)>0){
+ $cadenareservas=substr($cadenareservas,0,strlen($cadenareservas)-1); // Quita la coma
+ $ClausulaWhere.=" AND idreserva in(".$cadenareservas.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas )
+$WhereEstadosReservas="";
+for($i=0;$i<sizeof($westadoreserva);$i++){
+ if (isset($westadoreserva[$i]))
+ $WhereEstadosReservas.=" reservas.estado=".$westadoreserva[$i]." OR ";
+}
+if($WhereEstadosReservas!=""){
+ $WhereEstadosReservas=substr($WhereEstadosReservas,0,strlen($WhereEstadosReservas)-3);
+ $ClausulaWhere.=" AND (".$WhereEstadosReservas.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion situación de la programación
+$WhereSituaciones="";
+for($i=0;$i<sizeof($wsituacion);$i++){
+ if (isset($wsituacion[$i]))
+ $WhereSituaciones.=" programaciones.suspendida=".$wsituacion[$i]." OR ";
+}
+if($WhereSituaciones!=""){
+ $WhereSituaciones=substr($WhereSituaciones,0,strlen($WhereSituaciones)-3);
+ $ClausulaWhere.=" AND (".$WhereSituaciones.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion de fechas
+$calendario=new Calendario("tabla_reservas");
+
+if(empty($fechainicio)) $fechainicio=date("d/m/Y",mktime(0, 0, 0, date("m") , date("d"), date("Y")));
+if(empty($fechafin)) $fechafin=date("d/m/Y",mktime(0, 0, 0, date("m")+1 , date("d"), date("Y")));
+
+$sumahoras=0;
+$JDif=0;
+$TBfechas="";
+$TOTfechas="";
+$cadenaXML=ProcesoAnual($fechainicio,$fechafin,$swa);
+// Creación del árbol
+$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[0];
+$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,270,2,$titulotabla);
+$salidaHTML=$arbol->CreaArbolVistaXml(); // Muestra árbol
+echo "<BR>";
+echo "<DIV align=center width=100%>";
+echo " <TABLE align=center width=100%>";
+echo " <TR><TD>";
+echo urldecode($salidaHTML);
+echo " </TD></TR><TABLE></DIV>";
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function ProcesoAnual($fechainicio,$fechafin,$swa){
+ global $EJECUCION_RESERVA;
+ global $calendario;
+ global $cmd;
+ global $ClausulaWhere;
+ global $sumahoras;
+ global $TbMsg;
+ global $TOTfechas;
+ global $TBfechas;
+ global $JDif;
+
+ list($sdia,$smes,$sanno)=split("/",$fechainicio);
+ $dia_i=(int)$sdia;
+ $mes_i=(int)$smes;
+ $anno_i=(int)$sanno;
+
+ list($sdia,$smes,$sanno)=split("/",$fechafin);
+ $dia_f=(int)$sdia;
+ $mes_f=(int)$smes;
+ $anno_f=(int)$sanno;
+
+ $udm=$calendario->dias_meses[(int)$mes_f]; // Último día del mes
+ if($calendario->bisiesto($anno_f) && $mes_f==2) $udm++;
+
+ $JDif=$calendario->juliana("1/".$mes_i."/".$anno_i); // calcula valor de resta para indices de fechas en tabla de memoria
+ $JDesde=0;
+ $JHasta=$calendario->juliana($udm."/".$mes_f."/".$anno_f)-$JDif;
+ $TOTfechas=""; // tabla en memoria para acumulado de horas por fecha
+ $TBfechas=""; // tabla en memoria para acumulado de horas por fecha
+
+ $cmd->texto="SELECT SUM(horaresevfin - horaresevini) as sumahoras FROM aulas";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) $sumahoras=0; // Error al abrir recordset
+ if(!$rs->EOF){
+ $sumahoras=$rs->campos["sumahoras"]*60;
+ }
+
+ //Recorre de fecha inicio a fecha fin
+ $anno_c=$anno_i;
+ $mes_c=$mes_i;
+
+ $cadenaXML="";
+
+ // Calcula el rango de meses dependiendo del intervalo de fechas solicitado
+ while($anno_c<=$anno_f){
+ if($anno_c==$anno_i){
+ $mes_c=$mes_i;
+ if($anno_f>$anno_c)
+ $mes_t=12;
+ else
+ $mes_t=$mes_f;
+ }
+ else{
+ if($anno_c>$anno_i){
+ if($anno_c==$anno_f){
+ $mes_c=1;
+ $mes_t=$mes_f;
+ }
+ else{
+ $mes_c=1;
+ $mes_t=12;
+ }
+ }
+ }
+ $HEXanno=$calendario->numero_annos[$anno_c-2003][1]; // Primera referencia: 2004
+ $HEXmeses=0;
+ $mes_desde=$mes_c;
+ $mes_hasta=$mes_t;
+ while($mes_c<=$mes_t){
+ $HEXmeses=$HEXmeses | $calendario->nombre_mes[(int)$mes_c][1];
+ $mes_c++;
+ }
+ // Cadena SQL para seleccionar reservas
+ $cmd->texto="SELECT programaciones.idprogramacion, programaciones.nombrebloque,programaciones.annos, programaciones.meses, programaciones.diario, programaciones.dias, programaciones.semanas, programaciones.horasini, programaciones.ampmini, programaciones.minutosini, programaciones.horasfin, programaciones.ampmfin, programaciones.minutosfin,";
+ $cmd->texto.="trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,";
+ $cmd->texto.="reservas.idreserva,reservas.descripcion,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,";
+ $cmd->texto.="aulas.horaresevfin ,aulas.horaresevini ,aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen";
+ $cmd->texto.=" FROM reservas";
+ $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador";
+ $cmd->texto.=" INNER JOIN aulas ON reservas.idaula = aulas.idaula";
+ $cmd->texto.=" LEFT OUTER JOIN imagenes ON reservas.idimagen = imagenes.idimagen";
+ $cmd->texto.=" LEFT OUTER JOIN tareas ON reservas.idtarea = tareas.idtarea";
+ $cmd->texto.=" LEFT OUTER JOIN trabajos ON reservas.idtrabajo = trabajos.idtrabajo";
+ $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ;
+ $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)";
+ $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ;
+ $cmd->texto.=" ORDER BY programaciones.annos,programaciones.meses,";
+ if($swa)
+ $cmd->texto.="programaciones.ampmini,programaciones.horasini,programaciones.minutosini";
+ else
+ $cmd->texto.="aulas.idaula,programaciones.ampmini,programaciones.horasini,programaciones.minutosini";
+
+ $AuxcadenaXML=ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f,$swa);
+
+ $cadenaXML.='<TBANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
+ $cadenaXML.=' clickimg="AnnoReserva('.$anno_c.');"';
+ $cadenaXML.=' infonodo="%3Cb%3E&nbsp; '.$TbMsg[15].': %3C/b%3E'.$anno_c.'"';
+ $cadenaXML.=' nodoid=anno-'.$anno_c;
+ $cadenaXML.='>';
+ $cadenaXML.='<ANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ //___________________________________________________________________________
+ $HTMLannos="<TABLE><TR>";
+ for ($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($i%7==0) $HTMLannos.="</TR><TR>";
+ $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
+ $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TOTfechas,$sumahoras);
+ $HTMLannos.='</TD>';
+ }
+ $HTMLannos.="</TR></TABLE>";
+ //___________________________________________________________________________
+ $cadenaXML.=' infonodo='.urlencode($HTMLannos);
+ $cadenaXML.=' nodoid=tablameses-'.$anno_c;
+ $cadenaXML.=' fondonodo='."#FFFFFF";
+ $cadenaXML.='>';
+ $cadenaXML.='</ANNO> ';
+ $cadenaXML.=$AuxcadenaXML;
+ $cadenaXML.='</TBANNO> ';
+
+ $anno_c++;
+ }
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function CriteriosBusquedas(){
+ global $idcentro;
+ global $TbMsg;
+
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $LITRESERVA_CONFIRMADA;
+ global $LITRESERVA_PENDIENTE;
+ global $LITRESERVA_DENEGADA;
+
+ global $RESERVA_PARADA; // reserva momentanemente parada
+ global $RESERVA_ACTIVA; // Reserva activa
+ global $LITRESERVA_PARADA;
+ global $LITRESERVA_ACTIVA;
+
+ global $fechainicio;
+ global $fechafin;
+
+ global $westadoreserva;
+ global $wsituacion;
+
+ $HTMLCriterios="";
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR HEIGHT=30>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN align=center style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">_______________ '.$TbMsg[1].' _______________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Desplegable con los tipos de reservas
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[2].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13);
+ $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13);
+ $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ // Desplegable con los distintos situacion
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[4].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13);
+ $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Fechas
+ $HTMLCriterios.='<TD COLSPAN=2>'.chr(13);
+ $HTMLCriterios.='<TABLE WIDTH=100% class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH>&nbsp;'.$TbMsg[7].':&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH align=right>&nbsp;'.$TbMsg[8].':&nbsp;&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD> <INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ $HTMLCriterios.='<TR height=5>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">__________________________________________________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ // Lupa
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD COLSPAN=4>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>';
+
+ $HTMLCriterios.='<IMG src="../images/iconos/busquedas.gif" onclick="javascript:fdatos.submit()" style="cursor:hand" alt="Buscar">';
+ $HTMLCriterios.='</TD>';
+ $HTMLCriterios.='<TD>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+$HTMLCriterios.='</TABLE>';
+return($HTMLCriterios);
+}
+//________________________________________________________________________________________________________
+function ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f,$swa){
+ global $calendario;
+ global $JDif;
+ global $TBfechas;
+ global $TOTfechas;
+ global $sumahoras;
+ global $TbMsg;
+
+ $cadenaXML="";
+
+ $udm=$calendario->dias_meses[(int)$mes_hasta]; // Último día del mes
+ if($calendario->bisiesto($anno_f) && $mes_hasta==2) $udm++;
+ $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i);
+ $fechamaxima=mktime(0, 0, 0, $mes_f,$udm, $anno_f);
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $gidaula=0;
+
+ if($swa)
+ $wsumahoras=$sumahoras;
+
+ // Recorre reservas
+ while (!$rs->EOF){
+ if(!$swa){
+ if($gidaula!=$rs->campos["idaula"]){
+ $wsumahoras=($rs->campos["horaresevfin"]-$rs->campos["horaresevini"])*60;;
+ if($gidaula>0)
+ $cadenaXML.='</AULA>';
+ $gidaula=$rs->campos["idaula"];
+ $nombreaula=$rs->campos["nombreaula"];
+ $cadenaXML.='<AULA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$rs->campos["nombreaula"].'"';;
+ $cadenaXML.=' nodoid=aula-'.$rs->campos["idaula"];
+ $cadenaXML.=' colornodo='."#000000";
+ $cadenaXML.=' fondonodo='."#B5DAAD;";
+ $cadenaXML.='>';
+ }
+ }
+ $swr=false; // detecta si la reserva es válida
+ $TBfechas=""; // tabla en memoria para acumulado de horas por fecha de cada reserva
+ $cf=$calendario->Fechas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]);
+ $fechas_reservas=split(";",$cf);
+ for ($i=0;$i<sizeof($fechas_reservas)-1;$i++){
+ list($auxdia,$auxmes,$auxanno)=split("/",$fechas_reservas[$i]);
+ $auxfecha=mktime(0, 0, 0, $auxmes,$auxdia, $auxanno);
+ if($auxfecha>=$fechaminima && $auxfecha<=$fechamaxima){
+ $swr=true;
+ $Jreserva=$calendario->juliana($fechas_reservas[$i]);
+ $idx=$Jreserva-$JDif;
+ // Cálculo de los minutos
+ $sOcupacion=CalculaMinutos($rs);
+ if (!isset($TBfechas[$idx])) $TBfechas[$idx]=0;
+ if (!isset($TOTfechas[$idx])) $TOTfechas[$idx]=0;
+ $TBfechas[$idx]+=$sOcupacion;
+ $TOTfechas[$idx]+=$sOcupacion;
+ }
+ }
+ if($swr)
+ $cadenaXML.=TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c,$wsumahoras);
+ $rs->Siguiente();
+ }
+ if(!$swa){
+ if($gidaula>0)
+ $cadenaXML.='</AULA>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c,$wsumahoras){
+ global $TbMsg;
+ global $calendario;
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $EJECUCION_RESERVA;
+ global $TBfechas;
+ global $sumahoras;
+ global $JDif;
+
+ $AuxcadenaXML="";
+
+ $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+ $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+ $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+
+ $tbampm[0]="a.m.";
+ $tbampm[1]="p.m.";
+
+ // Descripción de la reserva
+ $AuxcadenaXML.='<RESERVAS ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/reservas.gif"';
+
+ // Construye tabla de ocupación
+
+ $AuxcadenaXML.=' infonodo="%3CIMG border=0 src='.$tbimg[$rs->campos["estado"]].'%3E&nbsp;%3Cb%3E'.$rs->campos["descripcion"].' %3C/b%3E';
+ $AuxcadenaXML.='&nbsp;(%3Cb%3E'.$TbMsg[15].":%3C/b%3E".$anno_c.')"';
+
+ $AuxcadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#EEEECC;";
+ $AuxcadenaXML.='>';
+
+ $AuxcadenaXML.='<OCUPACION ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ //___________________________________________________________________________
+ $HTMLannos="<TABLE><TR>";
+ for ($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($i%7==0) $HTMLannos.="</TR><TR>";
+ $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
+ $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TBfechas,$wsumahoras);
+ $HTMLannos.='</TD>';
+ }
+ $HTMLannos.="</TR></TABLE>";
+ //___________________________________________________________________________
+ $AuxcadenaXML.=' infonodo='.urlencode($HTMLannos);
+ $AuxcadenaXML.=' nodoid=opcupacion';
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FFFFFF;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</OCUPACION>';
+
+/*
+ $AuxcadenaXML.='<RESERVA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[30].':%3C/b%3E "';
+ $AuxcadenaXML.=' nodoid=reserva';
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.='>';
+*/
+
+// Cuestion Ocupación
+ $hexhoradesde=$rs->campos["horasini"];
+ $minutosdesde=$rs->campos["minutosini"];
+ if($minutosdesde==0) $minutosdesde="00";
+ $minutosdesde.=" ".$tbampm[$rs->campos["ampmini"]];
+ $hexhorahasta=$rs->campos["horasfin"];
+ $minutoshasta=$rs->campos["minutosfin"];
+ if($minutoshasta==0) $minutoshasta="00";
+ $minutoshasta.=" ".$tbampm[$rs->campos["ampmfin"]];
+ $cont=0;
+ while($hexhoradesde>0){
+ $cont++;
+ $hexhoradesde=$hexhoradesde>>1;
+ }
+ $horadesde=$cont-1;
+ $cont=0;
+ while($hexhorahasta>0){
+ $cont++;
+ $hexhorahasta=$hexhorahasta>>1;
+ }
+ $horahasta=$cont-1;
+
+ $mulmin=floor($minutosdesde/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmini"]][(int)$horadesde][(int)$currentminutos]=1;
+ $mulmin=floor($minutoshasta/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmfin"]][(int)$horahasta][(int)$currentminutos]=0;
+
+ $AuxcadenaXML.='<OCUPACION ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[19].':%3C/b%3E '.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.'"';
+ $AuxcadenaXML.=' nodoid=opcupacion-'.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta;
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</OCUPACION>';
+
+ $idaula=$rs->campos["idaula"];
+ $nombreaula=$rs->campos["nombreaula"];
+ $AuxcadenaXML.='<AULA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$nombreaula.'"';;
+ $AuxcadenaXML.=' nodoid=aula-'.$rs->campos["idaula"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</AULA>';
+
+ $nombreimagen=$rs->campos["nombreimagen"];
+ if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23];
+ // Descripción de la imagen a restaurar
+ $AuxcadenaXML.='<IMAGEN ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[20].': %3C/b%3E'.$nombreimagen.'"';
+ $AuxcadenaXML.=' nodoid=imagen-'.$rs->campos["idimagen"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</IMAGEN>';
+
+ $nombretarea=$rs->campos["nombretarea"];
+ if(!empty($nombretarea) ){
+ // Descripción de la tarea a restaurar
+ $AuxcadenaXML.='<TAREA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[28].': %3C/b%3E'.$nombretarea.'"';
+ $AuxcadenaXML.=' nodoid=tarea-'.$rs->campos["idtarea"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</TAREA>';
+ }
+ $nombretrabajo=$rs->campos["nombretrabajo"];
+ if(!empty($nombretrabajo) ){
+ // Descripción del trabajo a restaurar
+ $AuxcadenaXML.='<TRABAJO ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/trabajos.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[29].': %3C/b%3E'.$nombretrabajo.'"';
+ $AuxcadenaXML.=' nodoid=trabajo-'.$rs->campos["idtrabajo"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</TRABAJO>';
+ }
+ $AuxcadenaXML.='<EMAIL ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/email.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[25].':%3C/b%3E&nbsp;'.$rs->campos["solicitante"].' &nbsp;(%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"';
+ $AuxcadenaXML.=' nodoid=email-'.$idaula;
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</EMAIL>';
+
+
+ //$AuxcadenaXML.='</RESERVA> ';
+ $AuxcadenaXML.='</RESERVAS>';
+ return($AuxcadenaXML);
+}
+//________________________________________________________________________________________________________
+function CalculaMinutos($rs){
+ $hexhoradesde=$rs->campos["horasini"];
+ $hexhorahasta=$rs->campos["horasfin"];
+ $cont=0;
+ while($hexhoradesde>0){
+ $cont++;
+ $hexhoradesde=$hexhoradesde>>1;
+ }
+ $shorasini=$cont-1;
+ $cont=0;
+ while($hexhorahasta>0){
+ $cont++;
+ $hexhorahasta=$hexhorahasta>>1;
+ }
+ $shorasfin=$cont-1;
+ $sminutosini=$rs->campos["minutosini"];
+ $sminutosfin=$rs->campos["minutosfin"];
+ if($rs->campos["ampmini"]==1) $shorasini+=12;
+ if($rs->campos["ampmfin"]==1) $shorasfin+=12;
+ $socupacion=($shorasfin-$shorasini)*60+($sminutosfin-$sminutosini);
+ return($socupacion);
+}
+/*________________________________________________________________________________________________________
+ Recorrea los distintos ámbitos
+________________________________________________________________________________________________________*/
+function RecorreCentro($cmd){
+ global $AMBITO_CENTROS;
+ global $LITAMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $idambito,$nombreambito;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ global $LITAMBITO_GRUPOSAULAS;
+
+ $rs=new Recordset;
+ $cmd->texto.="ORDER by nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula FROM aulas WHERE grupoid=".$idgrupo;
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ global $AMBITO_AULAS;
+ global $LITAMBITO_AULAS;
+ global $cadenaaulas;
+
+ $rs=new Recordset;
+ $cmd->texto.="ORDER by nombreaula";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $cadenaaulas.=$idaula.",";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposReservas($cmd){
+ global $AMBITO_GRUPOSRESERVAS;
+ global $LITAMBITO_GRUPOSRESERVAS;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+ $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=".$idgrupo;
+ RecorreReservas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreReservas($cmd){
+ global $AMBITO_RESERVAS;
+ global $LITAMBITO_RESERVAS;
+ global $cadenareservas;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idreserva=$rs->campos["idreserva"];
+ $cadenareservas.=$idreserva.",";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/principal/programacionesreservas.php b/admin/WebConsole/principal/programacionesreservas.php
new file mode 100644
index 00000000..02eaddc7
--- /dev/null
+++ b/admin/WebConsole/principal/programacionesreservas.php
@@ -0,0 +1,715 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: programaciones.php
+// Descripción :
+// Visualiza las reservas pendientes, confirmadas, denegadas y fecha y hora de la reserva
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLCTEMULSELECT.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/programacionesreservas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$ambito="";
+$idambito=0;
+$nombreambito="";
+$fechainicio="";
+$fechafin="";
+$estadoreserva="";
+$situacion="";
+
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+if (isset($_GET["tipocola"])) $tipocola=$_GET["tipocola"];
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+// Criterios por defecto
+if($ambito!="" && $idambito!="" && $nombreambito!="" && $tipocola!=""){
+ $wfechainicio=mktime(0, 0, 0, date("m") , date("d"), date("Y")); // Reservas desde un mes anterior
+ $wfechafin=mktime(0, 0, 0, date("m")+6 , date("d"), date("Y"));
+ $fechainicio=date("d/m/Y",$wfechainicio);
+ $fechafin=date("d/m/Y ",$wfechafin);
+ // Tipos de reservas
+ switch($tipocola){
+ case 0:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $westadoreserva[1]=$RESERVA_PENDIENTE;
+ $westadoreserva[2]=$RESERVA_DENEGADA;
+
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ $estadoreserva.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ $estadoreserva.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ case $RESERVA_CONFIRMADA:
+ $westadoreserva[0]=$RESERVA_CONFIRMADA;
+ $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
+ break;
+ case $RESERVA_PENDIENTE:
+ $westadoreserva[0]=$RESERVA_PENDIENTE;
+ $estadoreserva=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
+ break;
+ case $RESERVA_DENEGADA:
+ $westadoreserva[0]=$RESERVA_DENEGADA;
+ $estadoreserva=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
+ break;
+ }
+ // Estados default
+ $wsituacion[0]=$RESERVA_PARADA;
+ $wsituacion[1]=$RESERVA_ACTIVA;
+ $situacion=$RESERVA_PARADA."=".$LITRESERVA_PARADA.";";
+ $situacion.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA.";";
+}
+//________________________________________________________________________________________________________
+// Recupera parametros del formulario
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"];
+if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"];
+if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"];
+
+if (isset($_POST["estadoreserva"])) {
+ $estadoreserva=$_POST["estadoreserva"];
+ $auxP=split(";",$estadoreserva);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $westadoreserva[$cont++]=$dualparam[0];
+ }
+}
+if (isset($_POST["situacion"])){
+ $situacion=$_POST["situacion"];
+ $auxP=split(";",$situacion);
+ $cont=0;
+ for ($i=0;$i<sizeof($auxP)-1;$i++){
+ $dualparam=split("=",$auxP[$i]);
+ $wsituacion[$cont++]=$dualparam[0];
+ }
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/programacionesreservas.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/programacionesreservas_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<?
+switch($ambito){
+ case $AMBITO_GRUPOSRESERVAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[13];
+ break;
+ case $AMBITO_RESERVAS :
+ $urlimg='../images/iconos/reservas.gif';
+ $textambito=$TbMsg[14];
+ break;
+}
+echo '<p align=center class=cabeceras><img src="../images/iconos/reservas.gif">&nbsp;'.$TbMsg[0].'&nbsp;';
+echo '<FORM name="fdatos" action="programacionesreservas.php" method="post">'.chr(13);
+// Campos ocultos
+echo '<INPUT type=hidden name=ambito value="'.$ambito.'">';
+echo '<INPUT type=hidden name=idambito value="'.$idambito.'">';
+echo '<INPUT type=hidden name=nombreambito value="'.$nombreambito.'">';
+echo '<INPUT type=hidden name=estadoreserva value="'.$estadoreserva.'">';
+echo '<INPUT type=hidden name=situacion value="'.$situacion.'">';
+echo CriteriosBusquedas(); // Opciones de búsqueda
+echo '</FORM>'.chr(13);
+
+echo '<DIV align=center >';
+echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>,&nbsp'.$nombreambito.'</span>&nbsp;&nbsp;<IMG src="'.$urlimg.'"></span></DIV></p>';
+
+//________________________________________________________________________________________________________
+// Proceso de selección de reservas
+$ClausulaWhere="";
+//________________________________________________________________________________________________________
+// Cuestion identificador del ámbito
+$WhereCentroAccion="";
+$WhereCentroAccion='reservas.idcentro='.$idcentro;
+$ClausulaWhere.=" AND (".$WhereCentroAccion.")";
+
+$cadenareservas="";
+if(!empty($idambito)){
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+}
+else{
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=0 AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+ $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=0";
+ RecorreReservas($cmd);
+}
+if(strlen($cadenareservas)>0){
+ $cadenareservas=substr($cadenareservas,0,strlen($cadenareservas)-1); // Quita la coma
+ $ClausulaWhere.=" AND idreserva in(".$cadenareservas.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas )
+$WhereEstadosReservas="";
+for($i=0;$i<sizeof($westadoreserva);$i++){
+ if (isset($westadoreserva[$i]))
+ $WhereEstadosReservas.=" reservas.estado=".$westadoreserva[$i]." OR ";
+}
+if($WhereEstadosReservas!=""){
+ $WhereEstadosReservas=substr($WhereEstadosReservas,0,strlen($WhereEstadosReservas)-3);
+ $ClausulaWhere.=" AND (".$WhereEstadosReservas.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion situación de la programación
+$WhereSituaciones="";
+for($i=0;$i<sizeof($wsituacion);$i++){
+ if (isset($wsituacion[$i]))
+ $WhereSituaciones.=" programaciones.suspendida=".$wsituacion[$i]." OR ";
+}
+if($WhereSituaciones!=""){
+ $WhereSituaciones=substr($WhereSituaciones,0,strlen($WhereSituaciones)-3);
+ $ClausulaWhere.=" AND (".$WhereSituaciones.")";
+}
+//________________________________________________________________________________________________________
+// Cuestion de fechas
+$calendario=new Calendario("tabla_reservas");
+
+if(empty($fechainicio)) $fechainicio=date("d/m/Y",mktime(0, 0, 0, date("m") , date("d"), date("Y")));
+if(empty($fechafin)) $fechafin=date("d/m/Y",mktime(0, 0, 0, date("m")+1 , date("d"), date("Y")));
+
+$sumahoras=0;
+$JDif=0;
+$TBfechas="";
+$TOTfechas="";
+$cadenaXML=ProcesoAnual($fechainicio,$fechafin);
+// Creación del árbol
+$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[0];
+$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,270,2,$titulotabla);
+$salidaHTML=$arbol->CreaArbolVistaXml(); // Muestra árbol
+echo "<BR>";
+echo "<DIV align=center width=100%>";
+echo " <TABLE align=center width=100%>";
+echo " <TR><TD>";
+echo urldecode($salidaHTML);
+echo " </TD></TR><TABLE></DIV>";
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function ProcesoAnual($fechainicio,$fechafin){
+ global $EJECUCION_RESERVA;
+ global $calendario;
+ global $cmd;
+ global $ClausulaWhere;
+ global $sumahoras;
+ global $TbMsg;
+ global $TOTfechas;
+ global $TBfechas;
+ global $JDif;
+
+ list($sdia,$smes,$sanno)=split("/",$fechainicio);
+ $dia_i=(int)$sdia;
+ $mes_i=(int)$smes;
+ $anno_i=(int)$sanno;
+
+ list($sdia,$smes,$sanno)=split("/",$fechafin);
+ $dia_f=(int)$sdia;
+ $mes_f=(int)$smes;
+ $anno_f=(int)$sanno;
+
+ $udm=$calendario->dias_meses[(int)$mes_f]; // Último día del mes
+ if($calendario->bisiesto($anno_f) && $mes_f==2) $udm++;
+
+ $JDif=$calendario->juliana("1/".$mes_i."/".$anno_i); // calcula valor de resta para indices de fechas en tabla de memoria
+ $JDesde=0;
+ $JHasta=$calendario->juliana($udm."/".$mes_f."/".$anno_f)-$JDif;
+ $TOTfechas=""; // tabla en memoria para acumulado de horas por fecha
+ $TBfechas=""; // tabla en memoria para acumulado de horas por fecha
+
+ $cmd->texto="SELECT SUM(horaresevfin - horaresevini) as sumahoras FROM aulas";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) $sumahoras=0; // Error al abrir recordset
+ if(!$rs->EOF){
+ $sumahoras=$rs->campos["sumahoras"]*60;
+ }
+
+ //Recorre de fecha inicio a fecha fin
+ $anno_c=$anno_i;
+ $mes_c=$mes_i;
+
+ $cadenaXML="";
+
+ // Calcula el rango de meses dependiendo del intervalo de fechas solicitado
+ while($anno_c<=$anno_f){
+ if($anno_c==$anno_i){
+ $mes_c=$mes_i;
+ if($anno_f>$anno_c)
+ $mes_t=12;
+ else
+ $mes_t=$mes_f;
+ }
+ else{
+ if($anno_c>$anno_i){
+ if($anno_c==$anno_f){
+ $mes_c=1;
+ $mes_t=$mes_f;
+ }
+ else{
+ $mes_c=1;
+ $mes_t=12;
+ }
+ }
+ }
+ $HEXanno=$calendario->numero_annos[$anno_c-2003][1]; // Primera referencia: 2004
+ $HEXmeses=0;
+ $mes_desde=$mes_c;
+ $mes_hasta=$mes_t;
+ while($mes_c<=$mes_t){
+ $HEXmeses=$HEXmeses | $calendario->nombre_mes[(int)$mes_c][1];
+ $mes_c++;
+ }
+ // Cadena SQL para seleccionar reservas
+ $cmd->texto="SELECT programaciones.idprogramacion, programaciones.nombrebloque,programaciones.annos, programaciones.meses, programaciones.diario, programaciones.dias, programaciones.semanas, programaciones.horasini, programaciones.ampmini, programaciones.minutosini, programaciones.horasfin, programaciones.ampmfin, programaciones.minutosfin,";
+ $cmd->texto.="trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,";
+ $cmd->texto.="reservas.idreserva,reservas.descripcion,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,";
+ $cmd->texto.="aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen";
+ $cmd->texto.=" FROM reservas";
+ $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador";
+ $cmd->texto.=" LEFT OUTER JOIN aulas ON reservas.idaula = aulas.idaula";
+ $cmd->texto.=" LEFT OUTER JOIN imagenes ON reservas.idimagen = imagenes.idimagen";
+ $cmd->texto.=" LEFT OUTER JOIN tareas ON reservas.idtarea = tareas.idtarea";
+ $cmd->texto.=" LEFT OUTER JOIN trabajos ON reservas.idtrabajo = trabajos.idtrabajo";
+ $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ;
+ $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)";
+ $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ;
+ $cmd->texto.=" ORDER BY programaciones.annos,programaciones.meses,";
+ $cmd->texto.=" programaciones.ampmini,programaciones.horasini,programaciones.minutosini"; ;
+
+ $AuxcadenaXML=ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f);
+
+ $cadenaXML.='<TBANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
+ $cadenaXML.=' clickimg="AnnoReserva('.$anno_c.');"';
+ $cadenaXML.=' infonodo="%3Cb%3E&nbsp; '.$TbMsg[15].': %3C/b%3E'.$anno_c.'"';
+ $cadenaXML.=' nodoid=anno-'.$anno_c;
+ $cadenaXML.='>';
+ $cadenaXML.='<ANNO ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ //___________________________________________________________________________
+ $HTMLannos="<TABLE><TR>";
+ for ($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($i%7==0) $HTMLannos.="</TR><TR>";
+ $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
+ $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TOTfechas,$sumahoras);
+ $HTMLannos.='</TD>';
+ }
+ $HTMLannos.="</TR></TABLE>";
+ //___________________________________________________________________________
+ $cadenaXML.=' infonodo='.urlencode($HTMLannos);
+ $cadenaXML.=' nodoid=tablameses-'.$anno_c;
+ $cadenaXML.=' fondonodo='."#FFFFFF";
+ $cadenaXML.='>';
+ $cadenaXML.='</ANNO> ';
+ $cadenaXML.=$AuxcadenaXML;
+ $cadenaXML.='</TBANNO> ';
+
+ $anno_c++;
+ }
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function CriteriosBusquedas(){
+ global $idcentro;
+ global $TbMsg;
+
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $LITRESERVA_CONFIRMADA;
+ global $LITRESERVA_PENDIENTE;
+ global $LITRESERVA_DENEGADA;
+
+ global $RESERVA_PARADA; // reserva momentanemente parada
+ global $RESERVA_ACTIVA; // Reserva activa
+ global $LITRESERVA_PARADA;
+ global $LITRESERVA_ACTIVA;
+
+ global $fechainicio;
+ global $fechafin;
+
+ global $westadoreserva;
+ global $wsituacion;
+
+ $HTMLCriterios="";
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR HEIGHT=30>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN align=center style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">_______________ '.$TbMsg[1].' _______________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Desplegable con los tipos de reservas
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[2].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13);
+ $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13);
+ $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ // Desplegable con los distintos situacion
+ $HTMLCriterios.='<TD>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.=' <TH align=center>&nbsp;'.$TbMsg[4].'&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13);
+ $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA;
+ $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'</TD>';
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+
+ // Fechas
+ $HTMLCriterios.='<TD COLSPAN=2>'.chr(13);
+ $HTMLCriterios.='<TABLE WIDTH=100% class=tabla_standar align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH>&nbsp;'.$TbMsg[7].':&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TH align=right>&nbsp;'.$TbMsg[8].':&nbsp;&nbsp;</TH>'.chr(13);
+ $HTMLCriterios.='<TD> <INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>'.chr(13);
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ $HTMLCriterios.='<TR height=5>'.chr(13);
+ $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
+ $HTMLCriterios.='<SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">__________________________________________________</SPAN>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+
+ // Lupa
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD COLSPAN=4>'.chr(13);
+ $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
+ $HTMLCriterios.='<TR>'.chr(13);
+ $HTMLCriterios.='<TD>';
+
+ $HTMLCriterios.='<IMG src="../images/iconos/busquedas.gif" onclick="javascript:fdatos.submit()" style="cursor:hand" alt="Buscar">';
+ $HTMLCriterios.='</TD>';
+ $HTMLCriterios.='<TD>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+ $HTMLCriterios.='</TABLE>';
+ $HTMLCriterios.='</TD>'.chr(13);
+ $HTMLCriterios.='</TR>'.chr(13);
+$HTMLCriterios.='</TABLE>';
+return($HTMLCriterios);
+}
+//________________________________________________________________________________________________________
+function ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f){
+ global $calendario;
+ global $JDif;
+ global $TBfechas;
+ global $TOTfechas;
+ global $sumahoras;
+ global $TbMsg;
+
+ $cadenaXML="";
+
+ $udm=$calendario->dias_meses[(int)$mes_hasta]; // Último día del mes
+ if($calendario->bisiesto($anno_f) && $mes_hasta==2) $udm++;
+ $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i);
+ $fechamaxima=mktime(0, 0, 0, $mes_f,$udm, $anno_f);
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ // Recorre reservas
+ while (!$rs->EOF){
+ $swr=false; // detecta si la reserva es válida
+ $TBfechas=""; // tabla en memoria para acumulado de horas por fecha de cada reserva
+ $cf=$calendario->Fechas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]);
+ $fechas_reservas=split(";",$cf);
+ for ($i=0;$i<sizeof($fechas_reservas)-1;$i++){
+ list($auxdia,$auxmes,$auxanno)=split("/",$fechas_reservas[$i]);
+ $auxfecha=mktime(0, 0, 0, $auxmes,$auxdia, $auxanno);
+ if($auxfecha>=$fechaminima && $auxfecha<=$fechamaxima){
+ $swr=true;
+ $Jreserva=$calendario->juliana($fechas_reservas[$i]);
+ $idx=$Jreserva-$JDif;
+ // Cálculo de los minutos
+ $sOcupacion=CalculaMinutos($rs);
+ if (!isset($TBfechas[$idx])) $TBfechas[$idx]=0;
+ if (!isset($TOTfechas[$idx])) $TOTfechas[$idx]=0;
+ $TBfechas[$idx]+=$sOcupacion;
+ $TOTfechas[$idx]+=$sOcupacion;
+ }
+ }
+ if($swr)
+ $cadenaXML.=TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c){
+ global $TbMsg;
+ global $calendario;
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_DENEGADA;
+ global $EJECUCION_RESERVA;
+ global $TBfechas;
+ global $sumahoras;
+ global $JDif;
+
+ $AuxcadenaXML="";
+
+ $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+ $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+ $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+
+ $tbampm[0]="a.m.";
+ $tbampm[1]="p.m.";
+
+ // Descripción de la reserva
+ $AuxcadenaXML.='<RESERVAS ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/reservas.gif"';
+
+ // Construye tabla de ocupación
+
+ $AuxcadenaXML.=' infonodo="%3CIMG src='.$tbimg[$rs->campos["estado"]].'%3E&nbsp;%3Cb%3E'.$rs->campos["descripcion"].' %3C/b%3E';
+ $AuxcadenaXML.='&nbsp;(%3Cb%3E'.$TbMsg[15].":%3C/b%3E".$anno_c.')"';
+
+ $AuxcadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#EEEECC;";
+ $AuxcadenaXML.='>';
+
+ $AuxcadenaXML.='<OCUPACION ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/nada.gif"';
+ //___________________________________________________________________________
+ $HTMLannos="<TABLE><TR>";
+ for ($i=$mes_desde;$i<=$mes_hasta;$i++){
+ if($i%7==0) $HTMLannos.="</TR><TR>";
+ $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
+ $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TBfechas,$sumahoras);
+ $HTMLannos.='</TD>';
+ }
+ $HTMLannos.="</TR></TABLE>";
+ //___________________________________________________________________________
+ $AuxcadenaXML.=' infonodo='.urlencode($HTMLannos);
+ $AuxcadenaXML.=' nodoid=opcupacion';
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FFFFFF;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</OCUPACION>';
+
+/*
+ $AuxcadenaXML.='<RESERVA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[30].':%3C/b%3E "';
+ $AuxcadenaXML.=' nodoid=reserva';
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.='>';
+*/
+
+// Cuestion Ocupación
+ $hexhoradesde=$rs->campos["horasini"];
+ $minutosdesde=$rs->campos["minutosini"];
+ if($minutosdesde==0) $minutosdesde="00";
+ $minutosdesde.=" ".$tbampm[$rs->campos["ampmini"]];
+ $hexhorahasta=$rs->campos["horasfin"];
+ $minutoshasta=$rs->campos["minutosfin"];
+ if($minutoshasta==0) $minutoshasta="00";
+ $minutoshasta.=" ".$tbampm[$rs->campos["ampmfin"]];
+ $cont=0;
+ while($hexhoradesde>0){
+ $cont++;
+ $hexhoradesde=$hexhoradesde>>1;
+ }
+ $horadesde=$cont-1;
+ $cont=0;
+ while($hexhorahasta>0){
+ $cont++;
+ $hexhorahasta=$hexhorahasta>>1;
+ }
+ $horahasta=$cont-1;
+
+ $mulmin=floor($minutosdesde/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmini"]][(int)$horadesde][(int)$currentminutos]=1;
+ $mulmin=floor($minutoshasta/15);
+ $currentminutos=$mulmin*15;
+ $CntDia[(int)$rs->campos["ampmfin"]][(int)$horahasta][(int)$currentminutos]=0;
+
+ $AuxcadenaXML.='<OCUPACION ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[19].':%3C/b%3E '.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.'"';
+ $AuxcadenaXML.=' nodoid=opcupacion-'.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta;
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</OCUPACION>';
+
+ $idaula=$rs->campos["idaula"];
+ $nombreaula=$rs->campos["nombreaula"];
+ $AuxcadenaXML.='<AULA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$nombreaula.'"';;
+ $AuxcadenaXML.=' nodoid=aula-'.$rs->campos["idaula"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</AULA>';
+
+ $nombreimagen=$rs->campos["nombreimagen"];
+ if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23];
+ // Descripción de la imagen a restaurar
+ $AuxcadenaXML.='<IMAGEN ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[20].': %3C/b%3E'.$nombreimagen.'"';
+ $AuxcadenaXML.=' nodoid=imagen-'.$rs->campos["idimagen"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</IMAGEN>';
+
+ $nombretarea=$rs->campos["nombretarea"];
+ if(!empty($nombretarea) ){
+ // Descripción de la tarea a restaurar
+ $AuxcadenaXML.='<TAREA ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[28].': %3C/b%3E'.$nombretarea.'"';
+ $AuxcadenaXML.=' nodoid=tarea-'.$rs->campos["idtarea"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</TAREA>';
+ }
+ $nombretrabajo=$rs->campos["nombretrabajo"];
+ if(!empty($nombretrabajo) ){
+ // Descripción del trabajo a restaurar
+ $AuxcadenaXML.='<TRABAJO ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/trabajos.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[29].': %3C/b%3E'.$nombretrabajo.'"';
+ $AuxcadenaXML.=' nodoid=trabajo-'.$rs->campos["idtrabajo"];
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</TRABAJO>';
+ }
+ $AuxcadenaXML.='<EMAIL ';
+ // Atributos
+ $AuxcadenaXML.=' imagenodo="../images/iconos/email.gif"';
+ $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[25].':%3C/b%3E&nbsp;'.$rs->campos["solicitante"].' &nbsp;(%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"';
+ $AuxcadenaXML.=' nodoid=email-'.$idaula;
+ $AuxcadenaXML.=' colornodo='."#000000";
+ $AuxcadenaXML.=' fondonodo='."#FBECFA;";
+ $AuxcadenaXML.='>';
+ $AuxcadenaXML.='</EMAIL>';
+
+
+ //$AuxcadenaXML.='</RESERVA> ';
+ $AuxcadenaXML.='</RESERVAS>';
+ return($AuxcadenaXML);
+}
+//________________________________________________________________________________________________________
+function CalculaMinutos($rs){
+ $hexhoradesde=$rs->campos["horasini"];
+ $hexhorahasta=$rs->campos["horasfin"];
+ $cont=0;
+ while($hexhoradesde>0){
+ $cont++;
+ $hexhoradesde=$hexhoradesde>>1;
+ }
+ $shorasini=$cont-1;
+ $cont=0;
+ while($hexhorahasta>0){
+ $cont++;
+ $hexhorahasta=$hexhorahasta>>1;
+ }
+ $shorasfin=$cont-1;
+ $sminutosini=$rs->campos["minutosini"];
+ $sminutosfin=$rs->campos["minutosfin"];
+ if($rs->campos["ampmini"]==1) $shorasini+=12;
+ if($rs->campos["ampmfin"]==1) $shorasfin+=12;
+ $socupacion=($shorasfin-$shorasini)*60+($sminutosfin-$sminutosini);
+ return($socupacion);
+}
+//________________________________________________________________________________________________________
+function RecorreGruposReservas($cmd){
+ global $AMBITO_GRUPOSRESERVAS;
+ global $LITAMBITO_GRUPOSRESERVAS;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSRESERVAS;
+ RecorreGruposReservas($cmd);
+ $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=".$idgrupo;
+ RecorreReservas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreReservas($cmd){
+ global $AMBITO_RESERVAS;
+ global $LITAMBITO_RESERVAS;
+ global $cadenareservas;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idreserva=$rs->campos["idreserva"];
+ $cadenareservas.=$idreserva.",";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/principal/purgar.php b/admin/WebConsole/principal/purgar.php
new file mode 100644
index 00000000..d305ab3f
--- /dev/null
+++ b/admin/WebConsole/principal/purgar.php
@@ -0,0 +1,63 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Abril-2010
+// Nombre del fichero: purgar.php
+// Descripción :
+// Obliga a los clientes a reiniciar la sesión en el sistema
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/SockHidra.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/CreaComando.php");
+ include_once("../includes/RecopilaIpesMacs.php");
+ //________________________________________________________________________________________________________
+ $ambito=0;
+ $idambito=0;
+
+ if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+ if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+ //________________________________________________________________________________________________________
+ $cmd=CreaComando($cadenaconexion);
+ if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+ //________________________________________________________________________________________________________
+ $funcion="Purgar"; // Nombre de la función que procesa la petición
+ $atributos=""; // Parametros adicionales la petición
+ $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
+ $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
+ //________________________________________________________________________________________________________
+ // Ámbito de aplicación de la petición
+ //________________________________________________________________________________________________________
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
+ $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
+ //________________________________________________________________________________________________________
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $trama="";
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros="nfn=".$funcion.chr(13);
+ $parametros.=$aplicacion;
+ $parametros.=$atributos;
+ $parametros.=$acciones;
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["res"];
+ echo $trama_notificacion; // Devuelve respuesta
+ }
+ else
+ echo "0"; // Error de conexión
+?>
+
diff --git a/admin/WebConsole/principal/repositorios.php b/admin/WebConsole/principal/repositorios.php
new file mode 100644
index 00000000..7ebcfd4a
--- /dev/null
+++ b/admin/WebConsole/principal/repositorios.php
@@ -0,0 +1,292 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: repositorios.php
+// Descripción :
+// Administra los repositorios de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/repositorios_".$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 los datos del Centro
+// Creación del árbol
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/repositorios.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/repositorios_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de repositorios
+$XMLcontextual=CreacontextualXMLRepositorios();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLGruposRepositorios(); // Grupos de repositorios
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLRepositorio(); // Repositorio
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY OnContextMenu="return false">
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML de toda la información de los repositorios de un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexión abierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro)
+{
+ global $TbMsg;
+ global $LITAMBITO_REPOSITORIOS;
+ $cadenaXML='<REPOSITORIOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/repositorio.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_REPOSITORIOS."'" .')"';
+ $cadenaXML.=' nodoid=Raiz'.$LITAMBITO_REPOSITORIOS;
+ $cadenaXML.=' infonodo='.$TbMsg[12];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_repositorios($cmd,$idcentro,0);
+ $cadenaXML.='</REPOSITORIOS>';
+ return($cadenaXML);
+}
+// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+function SubarbolXML_grupos_repositorios($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSREPOSITORIOS;
+ global $AMBITO_GRUPOSREPOSITORIOS;
+ global $LITAMBITO_REPOSITORIOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSREPOSITORIOS." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSREPOSITORIOS ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSREPOSITORIOS."'" .');"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSREPOSITORIOS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_repositorios($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSREPOSITORIOS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cmd->texto="SELECT idrepositorio,nombrerepositorio FROM repositorios WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." order by idrepositorio desc" ;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<REPOSITORIO';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_REPOSITORIOS."'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/repositorio.gif" ';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombrerepositorio"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_REPOSITORIOS.'-'.$rs->campos["idrepositorio"];
+ $cadenaXML.='>';
+ $cadenaXML.='</REPOSITORIO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLRepositorios(){
+ global $AMBITO_REPOSITORIOS;
+ global $AMBITO_GRUPOSREPOSITORIOS;
+ global $LITAMBITO_GRUPOSREPOSITORIOS;
+ global $LITAMBITO_REPOSITORIOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_REPOSITORIOS.'"';
+ $layerXML.=' maxanchu=185';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSREPOSITORIOS.',' . "'".$LITAMBITO_GRUPOSREPOSITORIOS."'" . ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_repositorios.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_repositorios.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_REPOSITORIOS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLGruposRepositorios(){
+ global $AMBITO_REPOSITORIOS;
+ global $AMBITO_GRUPOSREPOSITORIOS;
+ global $LITAMBITO_GRUPOSREPOSITORIOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSREPOSITORIOS.'"';
+ $layerXML.=' maxanchu=185';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSREPOSITORIOS.',' ."'".$LITAMBITO_GRUPOSREPOSITORIOS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_repositorios.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/aula.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_repositorios.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_REPOSITORIOS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLRepositorio(){
+ global $AMBITO_REPOSITORIOS;
+ global $LITAMBITO_REPOSITORIOS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_REPOSITORIOS.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="muestra_inforRepositorios()"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_REPOSITORIOS.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_repositorios.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/reservas.php b/admin/WebConsole/principal/reservas.php
new file mode 100644
index 00000000..c7969d0e
--- /dev/null
+++ b/admin/WebConsole/principal/reservas.php
@@ -0,0 +1,336 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: reservas.php
+// Descripción :
+// Administra reservas de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/reservas_".$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
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/reservas.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/reservas_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de las imágenes
+ $XMLcontextual=CreacontextualXMLReservas();
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=ContextualXMLGruposReservas(); // Grupos de reservas
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+ $XMLcontextual=CreacontextualXMLReserva(); // Reervas
+ echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML con toda la información de las reservas registradas en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexión abierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro){
+ global $TbMsg;
+ global $LITAMBITO_RESERVAS;
+ $cadenaXML='<RAIZ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/reservas.gif"';
+ $cadenaXML.=' nodoid=Raiz'.$LITAMBITO_RESERVAS;
+ $cadenaXML.=' infonodo="'.$TbMsg[9].'"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Raiz".$LITAMBITO_RESERVAS."'".')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_reservas($cmd,$idcentro,0);
+ $cadenaXML.='</RAIZ>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_reservas($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSRESERVAS;
+ global $AMBITO_GRUPOSRESERVAS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSRESERVAS." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSRESERVAS';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSRESERVAS."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSRESERVAS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_reservas($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSRESERVAS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Reservas($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Reservas($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_RESERVAS;
+ global $RESERVA_PENDIENTE;
+ global $RESERVA_CONFIRMADA;
+ global $RESERVA_DENEGADA;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idreserva,descripcion,estado FROM reservas WHERE idcentro=".$idcentro." AND grupoid=".$grupoid." ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<RESERVA';
+ // Atributos
+ switch($rs->campos["estado"]){
+ case $RESERVA_PENDIENTE :
+ $urlimg='../images/iconos/pendientes.gif';
+ break;
+ case $RESERVA_CONFIRMADA :
+ $urlimg='../images/iconos/confirmadas.gif';
+ break;
+ case $RESERVA_DENEGADA :
+ $urlimg='../images/iconos/denegadas.gif';
+ break;
+ default:
+ $urlimg="";
+ }
+
+ $cadenaXML.=' imagenodo="'.$urlimg.'"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_RESERVAS.'-'.$rs->campos["idreserva"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_RESERVAS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</RESERVA>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLReservas(){
+ global $AMBITO_RESERVAS;
+ global $AMBITO_GRUPOSRESERVAS;
+ global $LITAMBITO_GRUPOSRESERVAS;
+ global $LITAMBITO_RESERVAS;
+ global $RESERVA_CONFIRMADA;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_Raiz'.$LITAMBITO_RESERVAS.'"';
+ $layerXML.=' maxanchu=165';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSRESERVAS.',' ."'".$LITAMBITO_GRUPOSRESERVAS."'".')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=500;
+ $wpages="../propiedades/propiedades_reservas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_reservas.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_RESERVAS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//__________________________________________________________________________________________
+function ContextualXMLGruposReservas(){
+ global $AMBITO_RESERVAS;
+ global $AMBITO_GRUPOSRESERVAS;
+ global $LITAMBITO_GRUPOSRESERVAS;
+ global $RESERVA_CONFIRMADA;
+
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSRESERVAS.'"';
+ $layerXML.=' maxanchu=175';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSRESERVAS.',' ."'".$LITAMBITO_GRUPOSRESERVAS."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[0];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=500;
+ $wpages="../propiedades/propiedades_reservas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/reservas.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_reservas.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_RESERVAS.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[2];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="cola_reservas('.$RESERVA_CONFIRMADA.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//---------------------------------------------------------------------------------------------------------------------------
+function CreacontextualXMLReserva(){
+ global $EJECUCION_RESERVA;
+ global $AMBITO_RESERVAS;
+ global $LITAMBITO_RESERVAS;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_RESERVAS.'"';
+ $layerXML.=' maxanchu=120';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="programacion('.$EJECUCION_RESERVA.')"';
+ $layerXML.=' imgitem="../images/iconos/reloj.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_RESERVAS.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[6];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=500;
+ $wpages="../propiedades/propiedades_reservas.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/shellconsola.php b/admin/WebConsole/principal/shellconsola.php
new file mode 100644
index 00000000..1f3c95d3
--- /dev/null
+++ b/admin/WebConsole/principal/shellconsola.php
@@ -0,0 +1,192 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: shellconsola.php
+// Descripción :
+// Crea una consola remota para enviar comandos de la shell de forma remota y recibir el eco
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/SockHidra.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/consolaremota_".$idioma.".php");
+//________________________________________________________________________________________________________
+$litambito=0;
+$idambito=0;
+$comando="";
+
+if (isset($_POST["litambito"])) $litambito=$_POST["litambito"]; // Recoge parametros
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+if (isset($_POST["comando"])) $comando=$_POST["comando"];
+
+$nombrefuncion="ConsolaRemota";
+$ejecutor="1";
+$cadenaip="";
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+if($cmd){ // Compone cadena ip recorriendo ámbitos
+ switch($litambito){
+ case $LITAMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $LITAMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES :
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
+ RecorreGruposOrdenadores($cmd);
+ break;
+ case $LITAMBITO_ORDENADORES :
+ $cmd->texto="SELECT ip FROM ordenadores WHERE idordenador=".$idambito;
+ RecorreOrdenadores($cmd);
+ break;
+ }
+}
+$resul=false;
+if($cmd){
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ $cadenaip=ereg_replace( ";", "','", $cadenaip );
+ $cmd->texto="SELECT ordenadores.ip as ipord,servidoresrembo.ip FROM ordenadores INNER JOIN servidoresrembo ON ordenadores.idservidorrembo =servidoresrembo.idservidorrembo WHERE ordenadores.ip IN ('".$cadenaip."') ORDER BY servidoresrembo.ip";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) $resul=false; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $resul=true;
+ $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
+ $cadenaip="";
+ while(!$rs->EOF && $resul){
+ if($ipservidorrembo!=trim($rs->campos["ip"])){ // compara si cambia el servidor rembo
+ $parametros=$ejecutor;
+ $parametros.="nfn=".$nombrefuncion.chr(13);
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $parametros.="iph=".$cadenaip.chr(13);
+ $parametros.="rmb=".$ipservidorrembo.chr(13);
+ $resul=manda_trama();
+ $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
+ $cadenaip="";
+ }
+ $cadenaip.=trim($rs->campos["ipord"]).";"; // toma ip del cliente
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ if($resul){
+ $parametros=$ejecutor;
+ $parametros.="nfn=".$nombrefuncion.chr(13);
+ $parametros.="cmd=".$comando.chr(13);
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $parametros.="iph=".$cadenaip.chr(13);
+ $parametros.="rmb=".$ipservidorrembo.chr(13);
+
+ $resul=manda_trama();
+ }
+}
+
+ if(!$resul)
+ echo "alert('".$TbMsg[10]."');";
+
+//=======================================================================================================
+// Manda una trama del comando shellconsola
+//________________________________________________________________________________________________________
+function manda_trama(){
+ global $parametros;
+ global $shidra;
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($parametros);
+ $shidra->desconectar();
+ return(true);
+ }
+ return(false);
+}
+//________________________________________________________________________________________________________
+function RecorreCentro($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula;
+ $k=0;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposOrdenadores($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreOrdenadores($cmd){
+ global $cadenaip;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaip.=$rs->campos["ip"].";";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?>
diff --git a/admin/WebConsole/principal/softwares.php b/admin/WebConsole/principal/softwares.php
new file mode 100644
index 00000000..79c16831
--- /dev/null
+++ b/admin/WebConsole/principal/softwares.php
@@ -0,0 +1,798 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: software.php
+// Descripción :
+// Administra el software de los ordenadores de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/softwares_".$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 los datos del Centro
+// Creación del árbol
+$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>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/softwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/softwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de componentes componentes software
+$XMLcontextual=CreacontextualXMLComponentes_Software();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposComponentes(); // Grupos de componentes
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLComponente_Software(); // Crea menu contextual de componentes softwares
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de perfiles software
+$XMLcontextual=CreacontextualXMLPerfiles_Software();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposPerfiles(); // Grupos de perfiles
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLPerfil_Software(); // Crea menu contextual de perfiles softwares
+echo $flotante->CreaMenuContextual($XMLcontextual);
+
+// Crea contextual de softtware incremental
+$XMLcontextual=CreacontextualXMLSoftwares_Incrementales();
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=ContextualXMLGruposIncrementales(); // Grupos de software incremental
+echo $flotante->CreaMenuContextual($XMLcontextual);
+$XMLcontextual=CreacontextualXMLSoftware_Incremental(); // Crea menu contextual de software incremental
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML de toda la información del software registrado en un Centro concreto
+// Parametros:
+// - cmd:Una comando ya operativo ( con conexión abierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro){
+ global $TbMsg;
+ $cadenaXML='<SOFTWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/confisoft.gif"';
+ $cadenaXML.=' infonodo="Software"';
+ $cadenaXML.=' nodoid="RaizSoftwares"';
+ $cadenaXML.='>';
+ $cadenaXML.='<TIPOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[18];
+ $cadenaXML.=' nodoid="RaizTipoSoftwares"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_TiposSoftwares($cmd);
+ $cadenaXML.='</TIPOS>';
+ $cadenaXML.='<COMPONENTES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[19];
+ $cadenaXML.=' nodoid="RaizComponentesSoftwares"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizComponentesSoftwares'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_componentessoft($cmd,$idcentro,0);
+ $cadenaXML.='</COMPONENTES>';
+
+ $cadenaXML.='<PERFILES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[20];
+ $cadenaXML.=' nodoid="RaizPerfilesSoftwares"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizPerfilesSoftwares'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_perfilessoft($cmd,$idcentro,0);
+ $cadenaXML.='</PERFILES>';
+
+/*
+ $cadenaXML.='<SOFTINCREMENTALES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo='.$TbMsg[21];
+ $cadenaXML.=' nodoid="RaizSoftwaresIncrementales"';
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_RaizSoftwaresIncrementales'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_softincremental($cmd,$idcentro,0);
+ $cadenaXML.='</SOFTINCREMENTALES>';
+*/
+ $cadenaXML.='</SOFTWARES>';
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_TiposSoftwares($cmd){
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idtiposoftware,descripcion,urlimg FROM tiposoftwares order by descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<TIPOSOFTWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid="TipoSoftwares"';
+ $cadenaXML.='>';
+ $cadenaXML.='</TIPOSOFTWARES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_componentessoft($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSCOMPONENTESSOFT;
+ global $AMBITO_GRUPOSCOMPONENTESSOFT;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSCOMPONENTESSOFT." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSCOMPONENTESSOFT';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSCOMPONENTESSOFT."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSCOMPONENTESSOFT.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_componentessoft($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSCOMPONENTESSOFT>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_ComponentesSoftwares($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ComponentesSoftwares($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_COMPONENTESSOFT;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.urlimg FROM softwares INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware WHERE idcentro=".$idcentro." AND grupoid=". $grupoid." order by tiposoftwares.idtiposoftware,softwares.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<COMPONENTES';
+ // Atributos
+ if ($rs->campos["urlimg"]!="")
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ else
+ $cadenaXML.=' imagenodo="../images/iconos/confisoft.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_COMPONENTESSOFT.'-'.$rs->campos["idsoftware"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_COMPONENTESSOFT."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</COMPONENTES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_perfilessoft($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSPERFILESSOFT;
+ global $AMBITO_GRUPOSPERFILESSOFT;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSPERFILESSOFT." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSPERFILESSOFT';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSPERFILESSOFT."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSPERFILESSOFT.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_perfilessoft($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSPERFILESSOFT>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_PerfilesSoftwares($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_PerfilesSoftwares($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_PERFILESSOFT;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT perfilessoft.idperfilsoft ,perfilessoft.descripcion FROM perfilessoft WHERE perfilessoft.idcentro=".$idcentro." AND perfilessoft.grupoid=". $grupoid;
+ $cmd->texto.=" ORDER by perfilessoft.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<PERFILESSOFTWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilsoftware.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PERFILESSOFT.'-'.$rs->campos["idperfilsoft"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PERFILESSOFT."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILESSOFTWARES>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_softincremental($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_GRUPOSSOFTINCREMENTAL;
+ global $AMBITO_GRUPOSSOFTINCREMENTAL;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSSOFTINCREMENTAL." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSSOFTINCREMENTAL';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,'. " 'flo_".$LITAMBITO_GRUPOSSOFTINCREMENTAL."'" .');"';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSSOFTINCREMENTAL.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_softincremental($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSSOFTINCREMENTAL>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_SoftwaresIncrementales($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_SoftwaresIncrementales($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_SOFTINCREMENTAL;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT softincrementales.idsoftincremental ,softincrementales.descripcion FROM softincrementales WHERE softincrementales.idcentro=".$idcentro." AND softincrementales.grupoid=". $grupoid;
+ $cmd->texto.=" ORDER by softincrementales.descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<SOFTINCREMENTAL';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/incremental.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_SOFTINCREMENTAL.'-'.$rs->campos["idsoftincremental"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_SOFTINCREMENTAL."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</SOFTINCREMENTAL>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLComponentes_Software(){
+ global $AMBITO_COMPONENTESSOFT;
+ global $AMBITO_GRUPOSCOMPONENTESSOFT;
+ global $LITAMBITO_GRUPOSCOMPONENTESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizComponentesSoftwares"';
+ $layerXML.=' maxanchu=185';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSCOMPONENTESSOFT.',' . "'".$LITAMBITO_GRUPOSCOMPONENTESSOFT."'" . ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_componentesoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_componentesoftwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_COMPONENTESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposComponentes(){
+ global $AMBITO_COMPONENTESSOFT;
+ global $AMBITO_GRUPOSCOMPONENTESSOFT;
+ global $LITAMBITO_GRUPOSCOMPONENTESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSCOMPONENTESSOFT.'"';
+ $layerXML.=' maxanchu=195';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSCOMPONENTESSOFT.',' ."'".$LITAMBITO_GRUPOSCOMPONENTESSOFT."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[3];
+ $layerXML.='></ITEM>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_componentesoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[4];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_componentesoftwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_COMPONENTESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[5];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[7];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLComponente_Software(){
+ global $AMBITO_COMPONENTESSOFT;
+ global $LITAMBITO_COMPONENTESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_COMPONENTESSOFT.'"';
+ $layerXML.=' maxanchu=140';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_COMPONENTESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[8];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=140;
+ $wTop=115;
+ $wWidth=550;
+ $wHeight=250;
+ $wpages="../propiedades/propiedades_componentesoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLPerfiles_Software(){
+ global $AMBITO_PERFILESSOFT;
+ global $AMBITO_GRUPOSPERFILESSOFT;
+ global $LITAMBITO_GRUPOSPERFILESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizPerfilesSoftwares"';
+ $layerXML.=' maxanchu=155';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPERFILESSOFT.',' ."'".$LITAMBITO_GRUPOSPERFILESSOFT."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilsoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_perfilsoftwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PERFILESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposPerfiles(){
+ global $AMBITO_PERFILESSOFT;
+ global $AMBITO_GRUPOSPERFILESSOFT;
+ global $LITAMBITO_GRUPOSPERFILESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSPERFILESSOFT.'"';
+ $layerXML.=' maxanchu=175';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSPERFILESSOFT.',' ."'".$LITAMBITO_GRUPOSPERFILESSOFT."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilsoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[11];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_perfilsoftwares.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_PERFILESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[12];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[13];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLPerfil_Software(){
+ global $AMBITO_PERFILESSOFT;
+ global $LITAMBITO_PERFILESSOFT;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_PERFILESSOFT.'"';
+ $layerXML.=' maxanchu=150';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_perfilcomponente()"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="informacion_perfiles()"';
+ $layerXML.=' textoitem='.$TbMsg[15];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_PERFILESSOFT.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[16];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_perfilsoftwares.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[17];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLSoftwares_Incrementales(){
+ global $AMBITO_SOFTINCREMENTAL;
+ global $AMBITO_GRUPOSSOFTINCREMENTAL;
+ global $LITAMBITO_GRUPOSSOFTINCREMENTAL;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_RaizSoftwaresIncrementales"';
+ $layerXML.=' maxanchu=190';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSSOFTINCREMENTAL.',' ."'".$LITAMBITO_GRUPOSSOFTINCREMENTAL."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[22];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_softincrementales.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[23];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_softincrementales.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_SOFTINCREMENTAL.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[24];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function ContextualXMLGruposIncrementales(){
+ global $AMBITO_SOFTINCREMENTAL;
+ global $AMBITO_GRUPOSSOFTINCREMENTAL;
+ global $LITAMBITO_GRUPOSSOFTINCREMENTAL;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_GRUPOSSOFTINCREMENTAL.'"';
+ $layerXML.=' maxanchu=195';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_grupos('.$AMBITO_GRUPOSSOFTINCREMENTAL.',' ."'".$LITAMBITO_GRUPOSSOFTINCREMENTAL."'". ')"';
+ $layerXML.=' imgitem="../images/iconos/carpeta.gif"';
+ $layerXML.=' textoitem='.$TbMsg[22];
+ $layerXML.='></ITEM>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_softincrementales.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[23];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wParam="../gestores/gestor_softincrementales.php";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="colocar('."'".$wParam."'".','.$AMBITO_SOFTINCREMENTAL.')"';
+ $layerXML.=' imgitem="../images/iconos/colocar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[24];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/modificar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar_grupos()"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[25];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+//________________________________________________________________________________________________________
+function CreacontextualXMLSoftware_Incremental(){
+ global $AMBITO_SOFTINCREMENTAL;
+ global $LITAMBITO_SOFTINCREMENTAL;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_SOFTINCREMENTAL.'"';
+ $layerXML.=' maxanchu=160';
+ $layerXML.=' swimg=1';
+ $layerXML.=' clase="menu_contextual"';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="insertar_incrementalcomponente()"';
+ $layerXML.=' imgitem="../images/iconos/confisoft.gif"';
+ $layerXML.=' textoitem='.$TbMsg[14];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="informacion_incrementales()"';
+ $layerXML.=' textoitem='.$TbMsg[26];
+ $layerXML.=' imgitem="../images/iconos/informacion.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="mover('.$AMBITO_SOFTINCREMENTAL.')"';
+ $layerXML.=' imgitem="../images/iconos/mover.gif"';
+ $layerXML.=' textoitem='.$TbMsg[27];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $wLeft=170;
+ $wTop=150;
+ $wWidth=480;
+ $wHeight=280;
+ $wpages="../propiedades/propiedades_softincrementales.php";
+ $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'";
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="modificar('.$wParam.')"';
+ $layerXML.=' textoitem='.$TbMsg[1];
+ $layerXML.=' imgitem="../images/iconos/propiedades.gif"';
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="eliminar('.$wParam.')"';
+ $layerXML.=' imgitem="../images/iconos/eliminar.gif"';
+ $layerXML.=' textoitem='.$TbMsg[28];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/principal/sondeo.php b/admin/WebConsole/principal/sondeo.php
new file mode 100644
index 00000000..e2d0bd78
--- /dev/null
+++ b/admin/WebConsole/principal/sondeo.php
@@ -0,0 +1,68 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: sondeo.php
+// Descripción :
+// Consulta el estado de los ordenadores
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/SockHidra.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/CreaComando.php");
+ include_once("../includes/RecopilaIpesMacs.php");
+ //________________________________________________________________________________________________________
+ $ambito=0;
+ $idambito=0;
+ $sw=0; // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
+
+ if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
+ if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+ if (isset($_POST["sw"])) $sw=$_POST["sw"];
+ //________________________________________________________________________________________________________
+ $cmd=CreaComando($cadenaconexion);
+ if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+ //________________________________________________________________________________________________________
+ $funcion="Sondeo"; // Nombre de la función que procesa la petición
+ if($sw==2)
+ $funcion="respuestaSondeo"; // Nombre de la función que procesa la petición
+ $atributos="";
+ $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
+ $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
+ //________________________________________________________________________________________________________
+ // Ámbito de aplicación de la petición
+ //________________________________________________________________________________________________________
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+ RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
+ $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
+ //________________________________________________________________________________________________________
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $resul=false;
+ $trama="";
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $parametros="nfn=".$funcion.chr(13);
+ $parametros.=$aplicacion;
+ $parametros.=$atributos;
+ $parametros.=$acciones;
+ $resul=$shidra->envia_peticion($parametros);
+ if($resul)
+ $trama=$shidra->recibe_respuesta();
+ $shidra->desconectar();
+ }
+ if($resul){
+ $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
+ $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["tso"];
+ echo $trama_notificacion; // Devuelve respuesta
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_aulas.php b/admin/WebConsole/propiedades/propiedades_aulas.php
new file mode 100644
index 00000000..72c61e98
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_aulas.php
@@ -0,0 +1,417 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_aulas.php
+// Descripción :
+// Presenta el formulario de captura de datos de un aula para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_aulas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idaula=0;
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idaula=$_GET["identificador"];
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idaula);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+else
+ $urlfoto="../images/aula.jpg";
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_aulas.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_aulas_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_aulas.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idaula value="<? echo $idaula?>">
+ <INPUT type=hidden name=grupoid value="<? echo $grupoid?>">
+ <INPUT type=hidden name=ordenadores value="<? echo $ordenadores?>">
+
+ <INPUT type=hidden name=gidmenu value="<? echo $gidmenu?>">
+ <INPUT type=text name=gidprocedimiento value="<? echo $gidprocedimiento?>">
+ <INPUT type=hidden name=gidrepositorio value="<? echo $gidrepositorio?>">
+ <INPUT type=hidden name=gidperfilhard value="<? echo $gidperfilhard?>">
+ <INPUT type=hidden name=gcache value="<? echo $gcache?>">
+
+
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ echo '<TD>'. $nombreaula.'</TD>';
+ echo '<TD colspan=2 valign=top align=center rowspan=2>
+ <IMG border=3 style="border-color:#63676b" src="'.$urlfoto.'"
+ <br><center>&nbsp;Computers:&nbsp;'. $ordenadores.'</center></TD>';
+ }
+ else{
+ echo '<TD><INPUT class="formulariodatos" name=nombreaula style="width:215" type=text value="'. $nombreaula.'"></TD>';
+ echo'<TD colspan=2 valign=top align=left rowspan=2><IMG border=3 style="border-color:#63676b" src="'.$urlfoto.'"<br><center>&nbsp;Computers:&nbsp;'. $ordenadores.'</center></TD>';
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$ubicacion.'&nbsp; </TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=ubicacion rows=3 cols=42>'.$ubicacion.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=cagnon type=checkbox onclick="desabilita(this)" ';
+ if ($cagnon) echo ' checked ';
+ echo '></TD>';
+ }
+ else{
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=cagnon type=checkbox value="1" ';
+ if ($cagnon) echo ' checked ';
+ echo '></TD>';
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=pizarra type=checkbox onclick="desabilita(this)" ';
+ if ($pizarra) echo ' checked ';
+ echo '></TD>';
+ }
+ else{
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=pizarra type=checkbox value="1" ';
+ if ($pizarra) echo ' checked ';
+ echo '></TD>';
+ }
+ ?>
+ </TR >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[9]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$puestos.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=puestos style="width:30" type=text value='.$puestos.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[13]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$TbMsg[14].$horaresevini.'&nbsp;&nbsp;&nbsp&nbsp;'.$TbMsg[15].$horaresevfin.'</TD>';
+ else
+ echo '<TD colspan=3>'.$TbMsg[14].'&nbsp<INPUT class="formulariodatos" onclick="vertabla_horas(this)" name=horaresevini style="width:30" type=text value='.$horaresevini.'>&nbsp;&nbsp;&nbsp&nbsp;'.$TbMsg[15].'&nbsp<INPUT class="formulariodatos" onclick="vertabla_horas(this)" name=horaresevfin style="width:30" type=text value='.$horaresevfin.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$urlfoto.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=urlfoto style="width:330" type=text value='.$urlfoto.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[12]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$comentarios.'</TD>';
+ else
+ echo '<TD colspan=3><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=65>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[22]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ $TBMetodos[0]="";
+ $TBMetodos[1]="Half-Duplex";
+ $TBMetodos[2]="Full-Duplex";
+ echo '<TD colspan=3>'.$TBMetodos[$modomul].'</TD>';
+ }
+ else
+ echo '<TD colspan=3>';
+ $metodos="0=".chr(13);
+ $metodos.="1=Half-Duplex".chr(13);
+ $metodos.="2=Full-Duplex";
+ echo HTMLCTESELECT($metodos,"modomul","estilodesple","",$modomul,100).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[23]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$ipmul.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=ipmul style="width:100" type=text value='.$ipmul.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[24]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$pormul.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=pormul style="width:100" type=text value='.$pormul.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[25]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$velmul.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=velmul style="width:100" type=text value='.$velmul.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH style="BACKGROUND-COLOR:#FFFFFF;COLOR:#999999" colspan=4 align=center>&nbsp;<?echo $TbMsg[18]?>&nbsp;</TH>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'menus',$idmenu,'idmenu','descripcion').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'menus',$idmenu,'idmenu','descripcion',330).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[16]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio',330).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[20]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'procedimientos',$idprocedimiento,'idprocedimiento','descripcion').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'procedimientos',$idprocedimiento,'idprocedimiento','descripcion',330).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[17]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion',330).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[19]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$cache.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=cache style="width:100" type=text value='.$cache.'></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un aula
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del aula
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$ida)
+{
+ global $idaula;
+ global $nombreaula;
+ global $urlfoto;
+ global $cagnon;
+ global $pizarra;
+ global $ubicacion;
+ global $comentarios;
+ global $ordenadores;
+ global $puestos;
+ global $horaresevini;
+ global $horaresevfin;
+ global $grupoid;
+
+
+
+ global $idmenu;
+ global $idprocedimiento;
+ global $idrepositorio;
+ global $idperfilhard;
+ global $cache;
+
+ global $gidmenu;
+ global $gidprocedimiento;
+ global $gidrepositorio;
+ global $gidperfilhard;
+ global $gcache;
+
+ global $modomul;
+ global $ipmul;
+ global $pormul;
+ global $velmul;
+
+ $idaula=0;
+ $nombreaula="";
+ $urlfoto="";
+ $cagnon=false;
+ $pizarra=false;
+ $ubicacion="";
+ $comentarios="";
+ $ordenadores=0;
+ $puestos=0;
+ $horaresevini=0;
+ $horaresevfin=0;
+ $grupoid=0;
+ $modomul=0;
+ $ipmul=0;
+ $pormul=0;
+ $velmul=0;
+
+ $idmenu=0;
+ $idprocedimiento=0;
+ $idrepositorio=0;
+ $idperfilhard=0;
+ $cache=0;
+
+ $gidmenu=0;
+ $gidprocedimiento=0;
+ $gidrepositorio=0;
+ $gidperfilhard=0;
+ $gcache=0;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT count( * ) AS numordenadores, aulas.* ,
+ group_concat(DISTINCT cast( ordenadores.idmenu AS char( 11 ) )
+ ORDER BY ordenadores.idmenu SEPARATOR ',' ) AS idmenus,
+ group_concat(DISTINCT cast( ordenadores.idrepositorio AS char( 11 ) )
+ ORDER BY ordenadores.idrepositorio SEPARATOR ',' ) AS idrepositorios,
+ group_concat(DISTINCT cast( ordenadores.idperfilhard AS char( 11 ) )
+ ORDER BY ordenadores.idperfilhard SEPARATOR ',' ) AS idperfileshard,
+ group_concat(DISTINCT cast( ordenadores.cache AS char( 11 ) )
+ ORDER BY ordenadores.cache SEPARATOR ',' ) AS caches,
+ group_concat(DISTINCT cast( ordenadores.idproautoexec AS char( 11 ) )
+ ORDER BY ordenadores.idproautoexec SEPARATOR ',' ) AS idprocedimientos
+ FROM aulas
+ LEFT OUTER JOIN ordenadores ON ordenadores.idaula = aulas.idaula
+ WHERE aulas.idaula =".$ida."
+ GROUP BY aulas.idaula";
+
+ // echo $cmd->texto;
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $nombreaula=$rs->campos["nombreaula"];
+ $urlfoto=$rs->campos["urlfoto"];
+ if ($urlfoto=="" ) $urlfoto="../images/aula.jpg";
+ $cagnon=$rs->campos["cagnon"];
+ $pizarra=$rs->campos["pizarra"];
+ $ubicacion=$rs->campos["ubicacion"];
+ $comentarios=$rs->campos["comentarios"];
+ $puestos=$rs->campos["puestos"];
+ $horaresevini=$rs->campos["horaresevini"];
+ $horaresevfin=$rs->campos["horaresevfin"];
+ $grupoid=$rs->campos["grupoid"];
+ $modomul=$rs->campos["modomul"];
+ $ipmul=$rs->campos["ipmul"];
+ $pormul=$rs->campos["pormul"];
+ $velmul=$rs->campos["velmul"];
+
+ $ordenadores=$rs->campos["numordenadores"];
+ $idmenu=$rs->campos["idmenus"];
+ if(count(split(",",$idmenu))>1) $idmenu=0;
+ $idrepositorio=$rs->campos["idrepositorios"];
+ if(count(split(",",$idrepositorio))>1) $idrepositorio=0;
+ $idperfilhard=$rs->campos["idperfileshard"];
+ if(count(split(",",$idperfilhard))>1) $idperfilhard=0;
+ $cache=$rs->campos["caches"];
+ if(count(split(",",$cache))>1) $cache=0;
+ $idmenu=$rs->campos["idmenus"];
+ if(count(split(",",$idmenu))>1) $idmenu=0;
+ $idprocedimiento=$rs->campos["idprocedimientos"];
+ if(count(split(",",$idprocedimiento))>1) $idprocedimiento=0;
+
+ $gidmenu=$idmenu;
+ $gidprocedimiento=$idprocedimiento;
+ $gidrepositorio=$idrepositorio;
+ $gidperfilhard=$idperfilhard;
+ $gcache=$cache;
+
+ $rs->Cerrar();
+
+ return(true);
+ }
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_centros.php b/admin/WebConsole/propiedades/propiedades_centros.php
new file mode 100644
index 00000000..37b6e8e2
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_centros.php
@@ -0,0 +1,115 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_centros.php
+// Descripción :
+// Presenta el formulario de captura de datos de un centro para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_centros_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idcentro=0;
+$nombrecentro="";
+$identidad=0;
+$grupoid=0;
+$comentarios="";
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idcentro"])) $idcentro=$_GET["idcentro"];
+if (isset($_GET["identidad"])) $identidad=$_GET["identidad"];
+if (isset($_GET["identificador"])) $idcentro=$_GET["identificador"];
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idcentro);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_centros.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_centros_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_centros.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idcentro value=<?=$idcentro?>>
+ <INPUT type=hidden name=identidad value=<?=$identidad?>>
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion){?>
+ <TD><?echo $nombrecentro?></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto name="nombrecentro" style="width:350" value="<? echo $nombrecentro?>">
+ <?}?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=66>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un centro
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del centro
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $nombrecentro;
+ global $comentarios;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM centros WHERE idcentro=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombrecentro=$rs->campos["nombrecentro"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_componentehardwares.php b/admin/WebConsole/propiedades/propiedades_componentehardwares.php
new file mode 100644
index 00000000..927b7010
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_componentehardwares.php
@@ -0,0 +1,112 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_componentehardwares.php
+// Descripción :
+// Presenta el formulario de captura de datos de un componente hardware para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_componentehardwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idhardware=0;
+$descripcion="";
+$idtipohardware=0;
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idhardware"])) $idhardware=$_GET["idhardware"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idhardware=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idhardware);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperaci� de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_componentehardwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_componentehardwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_componentehardwares.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idhardware value=<?=$idhardware?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:215">'.$descripcion.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250" type=text value="'.$descripcion.'"></TD>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.TomaDato($cmd,0,'tipohardwares',$idtipohardware,'idtipohardware','descripcion').'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,0,'tipohardwares',$idtipohardware,'idtipohardware','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un componente hardware
+// Parametros:
+// - cmd: Una comando ya operativo (con conexiónabierta)
+// - id: El identificador del componente hardware
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $idtipohardware;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM hardwares WHERE idhardware=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $idtipohardware=$rs->campos["idtipohardware"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_componentesoftwares.php b/admin/WebConsole/propiedades/propiedades_componentesoftwares.php
new file mode 100644
index 00000000..6e882097
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_componentesoftwares.php
@@ -0,0 +1,129 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_componentesoftwares.php
+// Descripción :
+// Presenta el formulario de captura de datos de un componente software para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_componentesoftwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idsoftware=0;
+$descripcion="";
+$idtiposoftware=0;
+$idtiposo=0;
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idsoftware"])) $idsoftware=$_GET["idsoftware"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idsoftware=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idsoftware);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperaci� de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_componentesoftwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_componentesoftwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_componentesoftwares.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idsoftware value=<?=$idsoftware?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR width="100px" style="display:block">
+ <TH width="100px" align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:215">'.$descripcion.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:250" type=text value="'.$descripcion.'"></TD>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR width="100px" style="display:block" >
+ <TH width="100px" align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.TomaDato($cmd,0,'tiposoftwares',$idtiposoftware,'idtiposoftware','descripcion').'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,0,'tiposoftwares',$idtiposoftware,'idtiposoftware','descripcion',250,"seleccion").'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <?if($idtiposoftware!=1)
+ echo '<TR width="100px" id="tridtiposo" style="display:none">';
+ else
+ echo '<TR width="100px" id="tridtiposo" style="display:block">';
+ ?>
+ <TH width="100px" align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.TomaDato($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion').'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,0,'tiposos',$idtiposo,'idtiposo','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un componente software
+// Parametros:
+// - cmd: Una comando ya operativo (con conexiónabierta)
+// - id: El identificador del componente software
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $idtiposoftware;
+ global $idtiposo;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM softwares WHERE idsoftware=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $idtiposoftware=$rs->campos["idtiposoftware"];
+ $idtiposo=$rs->campos["idtiposo"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_entidades.php b/admin/WebConsole/propiedades/propiedades_entidades.php
new file mode 100644
index 00000000..3784cefd
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_entidades.php
@@ -0,0 +1,117 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_entidades.php
+// Descripción :
+// Presenta el formulario de captura de datos de una entidad para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_entidades_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$identidad=0;
+$nombreentidad="";
+$iduniversidad=0;
+$grupoid=0;
+$comentarios="";
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["identidad"])) $identidad=$_GET["identidad"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["iduniversidad"])) $iduniversidad=$_GET["iduniversidad"];
+if (isset($_GET["identificador"])) $identidad=$_GET["identificador"];
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$identidad);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_entidades.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_entidades_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_entidades.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=identidad value=<?=$identidad?>>
+ <INPUT type=hidden name=iduniversidad value=<?=$iduniversidad?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion){?>
+ <TD><?echo $nombreentidad?></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto name="nombreentidad" style="width:350" value="<? echo $nombreentidad?>">
+ <?}?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=66>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un entidad
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del entidad
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $nombreentidad;
+ global $comentarios;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM entidades WHERE identidad=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreentidad=$rs->campos["nombreentidad"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_entornos.php b/admin/WebConsole/propiedades/propiedades_entornos.php
new file mode 100644
index 00000000..6d99d337
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_entornos.php
@@ -0,0 +1,152 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_entornos.php
+// Descripción :
+// Presenta el formulario de captura de datos de entorno para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_entornos_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+
+
+$identorno=1;
+$ipserveradm="";
+$portserveradm="";
+$protoclonacion="";
+
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["identorno"])) $identorno=$_GET["identorno"];
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+
+
+if (!$cmd){
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+}
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$identorno);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+
+
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_entornos.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_entornos_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" name="fdatos" action="../gestores/gestor_entornos.php" method="post">
+ <INPUT type=hidden name=identorno value="<?=$identorno?>">
+
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+
+
+
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ echo '<TD>'. $ipserveradm.'</TD>';
+ }
+ else{
+ echo '<TD><INPUT type=tex class="formulariodatos" name=ipserveradm size="50" value="'. $ipserveradm.'"></TD>';
+
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$portserveradm.'&nbsp; </TD>';
+ else
+ echo '<TD><INPUT type=text class="formulariodatos" name=portserveradm size="50" value="'.$portserveradm.'"></TD>';
+ ?>
+ </TR>
+
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$protoclonacion.'</TD>';
+ else{
+ $metodos="UNICAST=UNICAST".chr(13);
+ $metodos.="MULTICAST=MULTICAST".chr(13);
+ $metodos.="TORRENT=TORRENT";
+ echo '<TD>'.HTMLCTESELECT($metodos,"protoclonacion","estilodesple","",$protoclonacion,100).'</TD>'.chr(13);
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de entorno
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del entorno.
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+
+ global $identorno;
+ global $ipserveradm;
+ global $portserveradm;
+ global $protoclonacion;
+
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM entornos WHERE identorno=".$id;
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $ipserveradm=$rs->campos["ipserveradm"];
+ $portserveradm=$rs->campos["portserveradm"];
+ $protoclonacion=$rs->campos["protoclonacion"];
+
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_grupos.php b/admin/WebConsole/propiedades/propiedades_grupos.php
new file mode 100644
index 00000000..d3245a92
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_grupos.php
@@ -0,0 +1,207 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Marzo-2006
+// Nombre del fichero: propiedades_grupos.php
+// Descripción :
+// Presenta el formulario de captura de datos de un grupo para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../idiomas/php/".$idioma."/propiedades_grupos_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$nombregrupo="";
+$comentarios="";
+$grupoid=0;
+$idgrupo=0;
+$tipo=0;
+$literaltipo="";
+$iduniversidad=0;
+$idaula=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idgrupo"])) $idgrupo=$_GET["idgrupo"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["tipo"])) $tipo=$_GET["tipo"];
+if (isset($_GET["literaltipo"])) $literaltipo=$_GET["literaltipo"];
+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)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idgrupo);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+switch($literaltipo){
+ case $LITAMBITO_CENTROS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[7];
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[7];
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES:
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[22];
+ break;
+ case $LITAMBITO_GRUPOSTAREAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[9];
+ break;
+ case $LITAMBITO_GRUPOSPROCEDIMIENTOS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[8];
+ break;
+ case $LITAMBITO_GRUPOSTRABAJOS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[10];
+ break;
+ case $LITAMBITO_GRUPOSIMAGENES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[11];
+ break;
+ case $LITAMBITO_GRUPOSCOMPONENTESHARD :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[12];
+ break;
+ case $LITAMBITO_GRUPOSCOMPONENTESSOFT :
+ $urlimg='../images/iconos/confisoft.gif';
+ $textambito=$TbMsg[13];
+ break;
+ case $LITAMBITO_GRUPOSPERFILESHARD :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[14];
+ break;
+ case $LITAMBITO_GRUPOSPERFILESSOFT :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[15];
+ break;
+ case $LITAMBITO_GRUPOSSOFTINCREMENTAL :
+ $urlimg='../images/iconos/softcombi.gif';
+ $textambito=$TbMsg[16];
+ break;
+ case $LITAMBITO_GRUPOSSERVIDORESREMBO :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[17];
+ break;
+ case $LITAMBITO_GRUPOSSERVIDORESDHCP :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[18];
+ break;
+ case $LITAMBITO_GRUPOSMENUS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[19];
+ break;
+ case $LITAMBITO_GRUPOSRESERVAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[20];
+ break;
+ case $LITAMBITO_GRUPOSENTIDADES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[21];
+ break;
+ default:
+ $resul=false;
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_grupos.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_grupos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="" method=post>
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idgrupo value=<?=$idgrupo?>>
+ <INPUT type=hidden name=grupoid value=<?=$grupoid?>>
+ <INPUT type=hidden name=tipo value=<?=$tipo?>>
+ <INPUT type=hidden name=literaltipo value="<?=$literaltipo?>">
+ <INPUT type=hidden name=iduniversidad value=<?=$iduniversidad?>>
+ <INPUT type=hidden name=idaula value=<?=$idaula?>>
+ <P align=center class=cabeceras><IMG src="<? echo $urlimg?>">&nbsp;<?echo $textambito?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=60>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+ <TABLE align=center>
+ <TR>
+ <TD><A href="#"><IMG border=0 src="../images/boton_cancelar.gif" onclick="cancelar()"></A></TD>
+ <TD width=20></TD>
+ <TD><A href="#"><IMG border=0 src="../images/boton_confirmar.gif" onclick="confirmar(<?=$opcion?>)" ></A></TD>
+ </TR>
+ </TABLE>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de una grupo
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador de la grupo
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $nombregrupo;
+ global $comentarios;
+ global $literaltipo;
+ global $LITAMBITO_GRUPOSORDENADORES;
+
+ $rs=new Recordset;
+ if($literaltipo==$LITAMBITO_GRUPOSORDENADORES)
+ $cmd->texto="SELECT * FROM gruposordenadores WHERE idgrupo=".$id;
+ else
+ $cmd->texto="SELECT * FROM grupos WHERE idgrupo=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ if($literaltipo==$LITAMBITO_GRUPOSORDENADORES)
+ $nombregrupo=$rs->campos["nombregrupoordenador"];
+ else
+ $nombregrupo=$rs->campos["nombregrupo"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_imagenes.php b/admin/WebConsole/propiedades/propiedades_imagenes.php
new file mode 100644
index 00000000..c2c686e2
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_imagenes.php
@@ -0,0 +1,181 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// 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("../clases/AdoPhp.php");
+include_once("../includes/HTMLSELECT.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="";
+$descripcion="";
+$idperfilsoft=0;
+$comentarios="";
+$grupoid=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"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idimagen);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:150">'.$nombreca.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=nombreca style="width:150" type=text value="'.$nombreca.'"></TD>';?>
+ </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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$perfilsoft.'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,$idcentro,'perfilessoft',$idperfilsoft,'idperfilsoft','descripcion',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$numpar.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=numpar style="width:30" type=text value="'.$numpar.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$tipopar.'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,0,'tipospar',$codpar,'codpar','tipopar',100,"","","clonable=1").'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$nombrerepositorio.'</TD>';
+ else
+ echo '<TD>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio',300).'</TD>';
+ ?>
+ </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>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+<?
+//________________________________________________________________________________________________________
+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 $descripcion;
+ global $comentarios;
+ global $idperfilsoft;
+ global $numpar;
+ global $codpar;
+ global $tipopar;
+ global $nombrerepositorio;
+ global $idrepositorio;
+ global $perfilsoft;
+
+ $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;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreca=$rs->campos["nombreca"];
+ $descripcion=$rs->campos["descripcion"];
+ $idperfilsoft=$rs->campos["idperfilsoft"];
+ $comentarios=$rs->campos["comentarios"];
+ $numpar=$rs->campos["numpar"];
+ $tipopar=$rs->campos["tipopar"];
+ $codpar=$rs->campos["codpar"];
+ $idrepositorio=$rs->campos["idrepositorio"];
+ $nombrerepositorio=$rs->campos["nombrerepositorio"];
+ $perfilsoft=$rs->campos["perfilsoft"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_menus.php b/admin/WebConsole/propiedades/propiedades_menus.php
new file mode 100644
index 00000000..54b017b5
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_menus.php
@@ -0,0 +1,271 @@
+<?
+// ************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creaciónn: Año 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: propiedades_menus.php
+// Descripción :
+// Presenta el formulario de captura de datos de un menu para insertar,modificar y eliminar
+// **************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_menus_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idmenu=0;
+$descripcion="";
+$titulo="";
+$coorx=0;
+$coory=0;
+$modalidad=0;
+$scoorx=0;
+$scoory=0;
+$smodalidad=0;
+$comentarios="";
+$grupoid=0;
+$htmlmenupub="";
+$htmlmenupri="";
+$resolucion="";
+$idurlimg=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idmenu"])) $idmenu=$_GET["idmenu"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idmenu=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idmenu);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperaci�n de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administraci�n 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/propiedades_menus.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_menus_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_menus.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idmenu value=<?=$idmenu?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:300">'.$titulo.'</TD>';
+ else
+ echo '<TD ><INPUT class="formulariodatos" name=titulo style="width:300" type=text value="'.$titulo.'"></TD>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[18]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,0,'iconos',$idurlimg,'idicono','descripcion').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,0,'iconos',$idurlimg,'idicono','descripcion',160,"","","idtipoicono=3").'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+<?
+/*
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[17]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion){
+ $tbresolucion[1]="800x600";
+ $tbresolucion[2]="1024x768";
+ echo '<TD style="width:150">'.$tbresolucion[$resolucion].'</TD>';
+ }
+ else{
+ $parametros="1=800x600".chr(13);
+ $parametros.="2=1024x768";
+ echo '<TD>'.HTMLCTESELECT($parametros,"resolucion","estilodesple","",$resolucion,100).'</TD>';
+ }
+ ?>
+ </TR>
+*/
+?>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD >'.$comentarios.'&nbsp</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=55>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+</TABLE>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+<BR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TD align=center colspan=6>&nbsp;<b><?echo $TbMsg[8]?></b>&nbsp;</TD>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp; <?echo $TbMsg[9]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:50">'.$coorx.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=coorx style="width:50" type=text value="'.$coorx.'"></TD>';?>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:50">'.$coorx.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=coory style="width:50" type=text value="'.$coory.'"></TD>';?>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion){
+ $tbmodalidad[1]=$TbMsg[13];
+ $tbmodalidad[2]=$TbMsg[14];
+ echo '<TD style="width:100">'.$tbmodalidad[$modalidad].'</TD>';
+ }
+ else{
+ $parametros="1=1".chr(13);
+ $parametros.="2=2".chr(13);
+ $parametros.="3=3".chr(13);
+ $parametros.="4=4".chr(13);
+ $parametros.="5=5";
+ echo '<TD>'.HTMLCTESELECT($parametros,"modalidad","estilodesple","",$modalidad,100).'</TD>';
+ }
+ ?>
+ </TR>
+
+ <TR>
+ <TH align=center>&nbsp; <?echo $TbMsg[15]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD colspan=5>'.$htmlmenupub.'</TD>';
+ else
+ echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupub style="width:350" type=text value="'.$htmlmenupub.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TD align=center colspan=6>&nbsp;<b><?echo $TbMsg[12]?></b>&nbsp;</TD>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:50">'.$scoorx.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=scoorx style="width:50" type=text value="'.$scoorx.'"></TD>';?>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:50">'.$scoorx.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=scoory style="width:50" type=text value="'.$scoory.'"></TD>';?>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion){
+ $tbmodalidad[1]=$TbMsg[13];
+ $tbmodalidad[2]=$TbMsg[14];
+ echo '<TD style="width:100">'.$tbmodalidad[$smodalidad].'</TD>';
+ }
+ else{
+ $parametros="1=1".chr(13);
+ $parametros.="2=2".chr(13);
+ $parametros.="3=3".chr(13);
+ $parametros.="4=4".chr(13);
+ $parametros.="5=5";
+ echo '<TD>'.HTMLCTESELECT($parametros,"smodalidad","estilodesple","",$smodalidad,100).'</TD>';
+ }
+ ?>
+ </TR>
+ <TR>
+ <TH align=center>&nbsp; <?echo $TbMsg[16]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD colspan=5">'.$htmlmenupri.'</TD>';
+ else
+ echo '<TD colspan=5><INPUT class="formulariodatos" name=htmlmenupri style="width:350" type=text value="'.$htmlmenupri.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un menu
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del menu
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $titulo;
+ global $coorx;
+ global $coory;
+ global $modalidad;
+ global $scoorx;
+ global $scoory;
+ global $smodalidad;
+ global $comentarios;
+ global $htmlmenupub;
+ global $htmlmenupri;
+ global $resolucion;
+ global $idurlimg;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM menus WHERE idmenu=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $titulo=$rs->campos["titulo"];
+ $coorx=$rs->campos["coorx"];
+ $coory=$rs->campos["coory"];
+ $modalidad=$rs->campos["modalidad"];
+ $scoorx=$rs->campos["scoorx"];
+ $scoory=$rs->campos["scoory"];
+ $smodalidad=$rs->campos["smodalidad"];
+ $comentarios=$rs->campos["comentarios"];
+ $htmlmenupub=$rs->campos["htmlmenupub"];
+ $htmlmenupri=$rs->campos["htmlmenupri"];
+ $resolucion=$rs->campos["resolucion"];
+ $idurlimg=$rs->campos["idurlimg"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_ordenadores.php b/admin/WebConsole/propiedades/propiedades_ordenadores.php
new file mode 100644
index 00000000..ab8c832d
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_ordenadores.php
@@ -0,0 +1,209 @@
+<?
+// ****************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_ordenadores.php
+// Descripción :
+// Presenta el formulario de captura de datos de un ordenador para insertar,modificar y eliminar
+// ****************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_ordenadores_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idordenador=0;
+$nombreordenador="";
+$ip="";
+$mac="";
+$idperfilhard=0;
+$idrepositorio=0;
+$idmenu=0;
+$idprocedimiento=0;
+$idaula=0;
+$cache="";
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idordenador"])) $idordenador=$_GET["idordenador"];
+if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idordenador=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idordenador);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_ordenadores.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_ordenadores_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_ordenadores.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idordenador value="<? echo $idordenador?>">
+ <INPUT type=hidden name=grupoid value="<? echo $grupoid?>">
+ <INPUT type=hidden name=idaula value="<? echo $idaula?>">
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$nombreordenador.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=nombreordenador type=text value="'.$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[6]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$ip.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=ip type=text value="'.$ip.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$mac.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=mac type=text value="'. $mac.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorio',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'menus',$idmenu,'idmenu','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'menus',$idmenu,'idmenu','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'procedimientos',$idprocedimiento,'idprocedimiento','descripcion').'&nbsp;</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'procedimientos',$idprocedimiento,'idprocedimiento','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[12]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.$cache.'</TD>';
+ else
+ echo '<TD colspan=3><INPUT style="width=250" class="formulariodatos" name=cache type=text value="'. $cache.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+<BR>
+<?
+//________________________________________________________________________________________________________
+//
+// Frame con la información de la configuración
+echo '<DIV align=center>';
+echo '<IFRAME scrolling=yes height=150 width=90%
+ src="../principal/configuraciones.php?swp=1&idambito='.$idordenador.'&ambito='.$AMBITO_ORDENADORES.'"></IFRAME>';
+echo '</DIV>';
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un ordenador
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del ordenador
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $idordenador;
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $idperfilhard;
+ global $idrepositorio;
+ global $idmenu;
+ global $idprocedimiento;
+ global $cache;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM ordenadores WHERE idordenador=".$id;
+ $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"];
+ $idperfilhard=$rs->campos["idperfilhard"];
+ $idrepositorio=$rs->campos["idrepositorio"];
+ $idmenu=$rs->campos["idmenu"];
+ $idprocedimiento=$rs->campos["idproautoexec"];
+ $cache=$rs->campos["cache"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php b/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php
new file mode 100644
index 00000000..b6dd3a3d
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_ordenadorestandar.php
@@ -0,0 +1,211 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_ordenadorestandar.php
+// Descripción :
+// Presenta el formulario de captura de datos de un ordenador estandar para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_ordenadorestandar_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idaula=0;
+$nombreaula="";
+$idordenador=0;
+$nombreordenador="";
+$ip="";
+$mac="";
+$cache="";
+$idperfilhard=0;
+$idrepositorio=0;
+
+if (isset($_GET["idaula"])) $idaula=$_GET["idaula"]; // Recoge parametros
+if (isset($_GET["nombreaula"])) $nombreaula=$_GET["nombreaula"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idaula);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_ordenadorestandar.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_ordenadorestandar_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <P align=center class=cabeceras><IMG border=0 src="../images/iconos/aula.gif">&nbsp;<?echo $TbMsg[0]?>:<SPAN class=cabeceras><? echo $nombreaula?></SPAN><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[2]?>&nbsp;</TD>
+ <?
+ echo '<TD><INPUT class="formulariodatos" name=nombreordenador type=text value="'.$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><INPUT class="formulariodatos" name=ip type=text value="'.$ip.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[4]?>&nbsp;</TD>
+ <?
+ echo '<TD><INPUT class="formulariodatos" name=mac type=text value="'. $mac.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'perfileshard',$idperfilhard,'idperfilhard','descripcion',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'repositorios',$idrepositorio,'idrepositorio','nombrerepositorios',250).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TD>
+ <?
+ echo '<TD colspan=3><INPUT style="width:250"class="formulariodatos" name=cache type=text value="'. $cache.'"></TD>';
+ ?>
+ </TR>
+
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ echo '<TD colspan=3><INPUT class="formulariodatos" name=numorde type=text value=0 style="width:250"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+ <TABLE border=0 align=center>
+ <TR>
+ <TD width=20>&nbsp;</TD>
+ <TD colspan=3 align=left ><SPAN class=notas><I><?echo $TbMsg[9]?><br><br><?echo $TbMsg[10]?></I></SPAN></TD>
+ <TD width=20>&nbsp;</TD></TR>
+ <TR>
+ <TD colspan=5 width=20>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD width=20>&nbsp;</TD>
+ <TD align=right><A href=#><IMG border=0 src="../images/boton_cancelar.gif" style="cursor:hand" onclick="cancelar()"></A></TD>
+ <TD width=20></TD>
+ <TD align=left ><A href=#><IMG border=0 src="../images/boton_confirmar.gif" style="cursor:hand" onclick="confirmar(<? echo $idaula?>)" ></A></TD>
+ <TD width=20>&nbsp;</TD>
+ </TR>
+ </TABLE>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un ordenador estandar
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del ordenador estandar
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $nombreordenador;
+ global $ip;
+ global $mac;
+ global $cache;
+ global $idperfilhard;
+ global $idrepositorio;
+
+ $wnombreordenador="";
+ $wip="";
+ $wmac="";
+ $wcache="";
+ $widperfilhard=0;
+ $widrepositorio=0;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM ordenadores WHERE idaula=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ if ($rs->EOF) return(false);
+ $rs->Primero();
+ $nombreordenador=$rs->campos["nombreordenador"];
+ $ip=$rs->campos["ip"];
+ $mac=$rs->campos["mac"];
+ $cache=$rs->campos["cache"];
+ $idperfilhard=$rs->campos["idperfilhard"];
+ $idrepositorio=$rs->campos["idrepositorio"];
+
+ while(!$rs->EOF){
+ $wnombreordenador=$rs->campos["nombreordenador"];
+ $wip=$rs->campos["ip"];
+ $wmac=$rs->campos["mac"];
+ $wcache=$rs->campos["cache"];
+ $widperfilhard=$rs->campos["idperfilhard"];
+ $widrepositorio=$rs->campos["idrepositorio"];
+
+ if(strlen($wnombreordenador)!=strlen($nombreordenador))
+ $nombreordenador="";
+ else{
+ for($i=0;$i<strlen($nombreordenador);$i++){
+ if(substr($nombreordenador,$i,1)!=substr($wnombreordenador,$i,1)){
+ //$nombreordenador=substr($nombreordenador,0,$i);
+ $nombreordenador="";
+ break;
+ }
+ }
+ }
+ if(strlen($wip)!=strlen($ip))
+ $ip="";
+ else{
+ for($i=0;$i<strlen($ip);$i++){
+ if(substr($ip,$i,1)!=substr($wip,$i,1)){
+ $ip="";
+ break;
+ }
+ }
+ }
+ if(strlen($wmac)!=strlen($mac))
+ $mac="";
+ else{
+ for($i=0;$i<strlen($mac);$i++){
+ if(substr($mac,$i,1)!=substr($wmac,$i,1)){
+ $mac="";
+ break;
+ }
+ }
+ }
+ if($cache!=$wcache) $cache=0;
+ if($idperfilhard!=$widperfilhard) $idperfilhard=0;
+ if($idrepositorio!=$widrepositorio) $idrepositorio=0;
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return(true);
+}
diff --git a/admin/WebConsole/propiedades/propiedades_perfilhardwares.php b/admin/WebConsole/propiedades/propiedades_perfilhardwares.php
new file mode 100644
index 00000000..ac1d5a74
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_perfilhardwares.php
@@ -0,0 +1,116 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_perfilhardwares.php
+// Descripción :
+// Presenta el formulario de captura de datos de un pefil hardware para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_perfilhardwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idperfilhard=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+$ordenadores=0; // Número de ordenador que tienen este perfil
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idperfilhard"])) $idperfilhard=$_GET["idperfilhard"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idperfilhard=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idperfilhard);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_perfilhardwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_perfilhardwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_perfilhardwares.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idperfilhard value=<?=$idperfilhard?>>
+ <INPUT type=hidden name=ordenadores value=<?=$ordenadores?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:215">'.$descripcion.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:215" type=text value="'.$descripcion.'"></TD>';?>
+ <TD align=left rowspan=2><IMG border=3 style="border-color:#63676b" src="../images/aula.jpg"><br><center>&nbsp;Ordenadores:&nbsp;<? echo $ordenadores?></center></TD>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=40>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un perfil hardware
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del perfil hardware
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id)
+{
+ global $descripcion;
+ global $comentarios;
+ global $ordenadores;
+ $rs=new Recordset;
+ $cmd->texto="SELECT perfileshard.*, count(*) as numordenadores FROM perfileshard
+ INNER JOIN ordenadores ON ordenadores.idperfilhard=perfileshard.idperfilhard
+ WHERE perfileshard.idperfilhard=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $comentarios=$rs->campos["comentarios"];
+ $ordenadores=$rs->campos["numordenadores"];
+ }
+ $rs->Cerrar();
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php b/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php
new file mode 100644
index 00000000..8927e388
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_perfilsoftwares.php
@@ -0,0 +1,126 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_perfilsoftwares.php
+// Descripción :
+// Presenta el formulario de captura de datos de un pefil software para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_perfilsoftwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idperfilsoft=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+$imagenes=0; // Número de imagenes que tienen este perfil
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idperfilsoft"])) $idperfilsoft=$_GET["idperfilsoft"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idperfilsoft=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idperfilsoft);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_perfilsoftwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_perfilsoftwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_perfilsoftwares.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idperfilsoft value=<?=$idperfilsoft?>>
+ <INPUT type=hidden name=imagenes value=<?=$imagenes?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:215">'.$descripcion.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=descripcion style="width:215" type=text value="'.$descripcion.'"></TD>';?>
+ <TD align=left rowspan=2><IMG border=3 style="border-color:#63676b" src="../images/aula.jpg"><br><center>&nbsp;Images:&nbsp;<? echo $imagenes?></center></TD>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=40>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un perfil software
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del perfil software
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $comentarios;
+
+ global $imagenes;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM perfilessoft WHERE idperfilsoft=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ $cmd->texto="SELECT count(*) as numimagenes
+ FROM imagenes
+ WHERE idperfilsoft=".$id."
+ AND codpar>0";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF)
+ $imagenes=$rs->campos["numimagenes"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_procedimientos.php b/admin/WebConsole/propiedades/propiedades_procedimientos.php
new file mode 100644
index 00000000..e643bbbd
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_procedimientos.php
@@ -0,0 +1,110 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_procedimientos.php
+// Descripción :
+// Presenta el formulario de captura de datos de un procedimiento para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_procedimientos_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idprocedimiento=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idprocedimiento=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idprocedimiento);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_procedimientos.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_procedimientos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_procedimientos.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idprocedimiento value=<?=$idprocedimiento?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&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>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un procedimiento
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del procedimiento
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $comentarios;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM procedimientos WHERE idprocedimiento=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_repositorios.php b/admin/WebConsole/propiedades/propiedades_repositorios.php
new file mode 100644
index 00000000..aa25a64a
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_repositorios.php
@@ -0,0 +1,176 @@
+<?
+// *********************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creaciónn: Año 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: propiedades_repositorios.php
+// Descripción :
+// Presenta el formulario de captura de datos de un repositorio para insertar,modificar y eliminar
+// **********************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_repositorios_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idrepositorio=0;
+$nombrerepositorio="";
+$ip="";
+$puertorepo="2002";
+$pathrepod="/opt/opengnsys/admin";
+$pathpxe="/opt/opengnsys/tftpboot/pxelinux.cfg";
+$grupoid=0;
+$comentarios="";
+$ordenadores=0; // Número de ordenador a los que da servicio
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idrepositorio"])) $idrepositorio=$_GET["idrepositorio"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idrepositorio=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con repositorio B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idrepositorio);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperaci�n de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_repositorios.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_repositorios_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_repositorios.php" method="post">
+ <INPUT type=hidden name=opcion value="<? echo $opcion?>">
+ <INPUT type=hidden name=idrepositorio value="<? echo $idrepositorio?>">
+ <INPUT type=hidden name=grupoid value="<? echo $grupoid?>">
+ <INPUT type=hidden name=ordenadores value="<? echo $ordenadores?>">
+
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$nombrerepositorio.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=nombrerepositorio style="width:200" type=text value="'.$nombrerepositorio.'"></TD>';
+ ?>
+ <TD valign=top align=left rowspan=3 ><CENTER>
+ <IMG border=3 style="border-color:#63676b" src="../images/aula.jpg">
+ <BR>&nbsp;Ordenadores:&nbsp;<? echo $ordenadores?></CENTER></TD>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$ip.'</TD>';
+ else
+ echo'<TD><INPUT class="formulariodatos" name=ip type=text style="width:200" value="'.$ip.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD>'.$puertorepo.'</TD>';
+ else
+ echo'<TD><INPUT class="formulariodatos" name=puertorepo type=text style="width:200" value="'.$puertorepo.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=2>'.$pathrepod.'</TD>';
+ else
+ echo'<TD colspan=2><INPUT class="formulariodatos" name=pathrepod type=text style="width:330" value="'.$pathrepod.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=2>'.$pathpxe.'</TD>';
+ else
+ echo'<TD colspan=2><INPUT class="formulariodatos" name=pathpxe type=text style="width:330" value="'.$pathpxe.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=2>'.$comentarios.'</TD>';
+ else
+ echo '<TD colspan=2><TEXTAREA class="formulariodatos" name=comentarios rows=2 cols=50>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un repositorio
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del repositorio
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $nombrerepositorio;
+ global $ip;
+ global $comentarios;
+ global $puertorepo;
+ global $pathrepod;
+ global $pathpxe;
+ global $ordenadores;
+
+ $cmd->texto="SELECT repositorios.*, count(*) as numordenadores FROM repositorios
+ INNER JOIN ordenadores ON ordenadores.idrepositorio=repositorios.idrepositorio
+ WHERE repositorios.idrepositorio=".$id;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(true); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombrerepositorio=$rs->campos["nombrerepositorio"];
+ $ip=$rs->campos["ip"];
+ $comentarios=$rs->campos["comentarios"];
+ $puertorepo=$rs->campos["puertorepo"];
+ $pathrepod=$rs->campos["pathrepod"];
+ $pathpxe=$rs->campos["pathpxe"];
+ $ordenadores=$rs->campos["numordenadores"];
+ }
+ $rs->Cerrar();
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_reservas.php b/admin/WebConsole/propiedades/propiedades_reservas.php
new file mode 100644
index 00000000..153e56c7
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_reservas.php
@@ -0,0 +1,235 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_reservas.php
+// Descripción :
+// Presenta el formulario de captura de datos de una reserva 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/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../idiomas/php/".$idioma."/propiedades_reservas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idreserva=0;
+$descripcion="";
+$solicitante="";
+$email="";
+$idestatus=0;
+$idaula=0;
+$idimagen=0;
+$idtarea=0;
+$idtrabajo=0;
+$estado=0;
+$comentarios="";
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idreserva"])) $idreserva=$_GET["idreserva"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idreserva=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idreserva);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/propiedades_reservas.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_reservas_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_reservas.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idreserva value=<?=$idreserva?>>
+ <INPUT type=hidden name=grupoid value=<?=$grupoid?>>
+ <INPUT type=hidden name=estado value=<?=$estado?>>
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:300">'.$descripcion.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=descripcion rows=3 cols=55">'.$descripcion.'</TEXTAREA></TD>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:300">'.$solicitante.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=solicitante style="width:300" type=text value="'.$solicitante.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:300">'.$email.'</TD>';
+ else
+ echo '<TD><INPUT class="formulariodatos" name=email style="width:300" type=text value="'.$email.'"></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[9]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,0,'estatus',$idestatus,'idestatus','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,0,'estatus',$idestatus,'idestatus','descripcion',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'aulas',$idaula,'idaula','nombreaula').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'aulas',$idaula,'idaula','nombreaula',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[11]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'imagenes',$idimagen,'idimagen','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'imagenes',$idimagen,'idimagen','descripcion',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[19]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'tareas',$idtarea,'idtarea','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'tareas',$idtarea,'idtarea','descripcion',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[20]?>&nbsp;</TH>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,$idcentro,'trabajos',$idtrabajo,'idtrabajo','descripcion').'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,$idcentro,'trabajos',$idtrabajo,'idtrabajo','descripcion',300).'</TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <?
+ $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
+ $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
+ $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
+ ?>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[16]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD style="width:300"><IMG src="'.$tbimg[$estado].'">&nbsp;&nbsp;('.$TbMsg[12+$estado].')</TD>';
+ else{
+ echo '<TD>';
+ echo '<INPUT name=xestado type=radio value="'.$RESERVA_CONFIRMADA.'"';
+ if($estado==$RESERVA_CONFIRMADA) echo ' checked ';
+ echo ' onclick="document.fdatos.estado.value='.$RESERVA_CONFIRMADA.'">'.$TbMsg[13].'&nbsp;';
+
+ echo '<INPUT name=xestado type=radio value="'.$RESERVA_PENDIENTE.'"';
+ if($estado==$RESERVA_PENDIENTE) echo ' checked ';
+ echo 'onclick="document.fdatos.estado.value='.$RESERVA_PENDIENTE.'">'.$TbMsg[14].'&nbsp;';
+
+ echo '<INPUT name=xestado type=radio value="'.$RESERVA_DENEGADA.'"';
+ if($estado==$RESERVA_DENEGADA) echo ' checked ';
+ echo 'onclick="document.fdatos.estado.value='.$RESERVA_DENEGADA.'">'.$TbMsg[15].'&nbsp;';
+
+ echo '</TD>';
+ }
+ ?>
+ </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>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de una reserva
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador de la reserva
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $comentarios;
+ global $solicitante;
+ global $email;
+ global $idestatus;
+ global $idaula;
+ global $idimagen;
+ global $idtarea;
+ global $idtrabajo;
+ global $estado;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM reservas WHERE idreserva=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $solicitante=$rs->campos["solicitante"];
+ $email=$rs->campos["email"];
+ $idestatus=$rs->campos["idestatus"];
+ $idaula=$rs->campos["idaula"];
+ $idimagen=$rs->campos["idimagen"];
+ $idtarea=$rs->campos["idtarea"];
+ $idtrabajo=$rs->campos["idtrabajo"];
+ $estado=$rs->campos["estado"];
+ $comentarios=$rs->campos["comentarios"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_tareas.php b/admin/WebConsole/propiedades/propiedades_tareas.php
new file mode 100644
index 00000000..77758e9d
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_tareas.php
@@ -0,0 +1,155 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_tareas.php
+// Descripción :
+// Presenta el formulario de captura de datos de una tarea para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/propiedades_tareas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idtarea=0;
+$descripcion="";
+$comentarios="";
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idtarea=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idtarea);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_tareas.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_tareas_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_tareas.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idtarea value=<?=$idtarea?>>
+ <INPUT type=hidden name=grupoid value=<?=$grupoid?>>
+ <INPUT type=hidden name=idambito value=<?=$idambito?>>
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&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>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ $Mambitos[$AMBITO_CENTROS]=$TbMsg[10];
+ $Mambitos[$AMBITO_GRUPOSAULAS]=$TbMsg[11];
+ $Mambitos[$AMBITO_AULAS]=$TbMsg[12];
+ $Mambitos[$AMBITO_GRUPOSORDENADORES]=$TbMsg[13];
+ $Mambitos[$AMBITO_ORDENADORES]=$TbMsg[14];
+ echo '<TD>'.$Mambitos[$ambito].'</TD>';
+ }
+ else{
+ $parametros=$AMBITO_CENTROS."=".$TbMsg[10].chr(13);
+ $parametros.=$AMBITO_GRUPOSAULAS."=".$TbMsg[11].chr(13);
+ $parametros.=$AMBITO_AULAS."=".$TbMsg[12].chr(13);
+ $parametros.=$AMBITO_GRUPOSORDENADORES."=".$TbMsg[13].chr(13);
+ $parametros.=$AMBITO_ORDENADORES."=".$TbMsg[14];
+ echo '<TD>'.HTMLCTESELECT($parametros,"ambito","estilodesple"," ",$ambito,200,"chgdespleambito").'</TD>';
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion){
+ tomaDescriAmbito($cmd,$ambito,$idambito,&$textambito);
+ echo '<TD>'.$textambito.'</TD>';
+ }
+ else{
+ echo '<TD id="despleambito">'.tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,250).'</TD>';
+ }
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de una tarea
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador de la tarea
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $comentarios;
+ global $ambito;
+ global $idambito;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM tareas WHERE idtarea=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $comentarios=$rs->campos["comentarios"];
+ $ambito=$rs->campos["ambito"];
+ $idambito=$rs->campos["idambito"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_tipohardwares.php b/admin/WebConsole/propiedades/propiedades_tipohardwares.php
new file mode 100644
index 00000000..84f3ea24
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_tipohardwares.php
@@ -0,0 +1,114 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_tipohardwares.php
+// Descripción :
+// Presenta el formulario de captura de datos de un tipo de hardware para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../idiomas/php/".$idioma."/propiedades_tipohardwares_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idtipohardware=0;
+$descripcion="";
+$urlimg="";
+$grupoid=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idtipohardware"])) $idtipohardware=$_GET["idtipohardware"];
+if (isset($_GET["grupoid"])) $grupoid=$_GET["grupoid"];
+if (isset($_GET["identificador"])) $idtipohardware=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idtipohardware);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_tipohardwares.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_tipohardwares_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_tipohardwares.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idtipohardware value=<?=$idtipohardware?>>
+ <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>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos >
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <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>';?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?
+ if ($opcion==$op_eliminacion)
+ echo '<TD colspan=3>'.TomaDato($cmd,0,'iconos',basename($urlimg),'urlicono','urlicono',0).'</TD>';
+ else
+ echo '<TD colspan=3>'.HTMLSELECT($cmd,0,'iconos',basename($urlimg),'urlicono','descripcion',250,"","","idtipoicono=1").'</TD>';
+ ?>
+ </TR>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un tipo de hardware
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del tipo de hardware
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $descripcion;
+ global $urlimg;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM tipohardwares WHERE idtipohardware=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(0); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $descripcion=$rs->campos["descripcion"];
+ $urlimg=$rs->campos["urlimg"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_universidades.php b/admin/WebConsole/propiedades/propiedades_universidades.php
new file mode 100644
index 00000000..ef9802ad
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_universidades.php
@@ -0,0 +1,109 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: propiedades_universidades.php
+// Descripción :
+// Presenta el formulario de captura de datos de una universidad para insertar,modificar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../idiomas/php/".$idioma."/propiedades_universidades_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$iduniversidad=0;
+$nombreuniversidad="";
+$comentarios="";
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["iduniversidad"])) $iduniversidad=$_GET["iduniversidad"];
+if (isset($_GET["identificador"])) $iduniversidad=$_GET["identificador"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$iduniversidad);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+else
+ $urlicono="../images/universidad.jpg";
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración web de universidades</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/propiedades_universidades.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_universidades_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<DIV align=center>
+<FORM name="fdatos" action="../gestores/gestor_universidades.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=iduniversidad value=<?=$iduniversidad?>>
+ <P align=center class=cabeceras><?echo $TbMsg[4]?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center&nbsp;><?echo $TbMsg[5]?>&nbsp;</TD>
+ <?echo '<TD colspan=3><INPUT class="formulariodatos" name=nombreuniversidad style="width:350" type=text value="'.$nombreuniversidad.'"></TD>';?>
+ </TR>
+ <!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TD>
+ <?if ($opcion==$op_eliminacion)
+ echo '<TD>'.$comentarios.'</TD>';
+ else
+ echo '<TD><TEXTAREA class="formulariodatos" name=comentarios rows=3 cols=66>'.$comentarios.'</TEXTAREA></TD>';
+ ?>
+ </TR>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un universidad
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador de la universidad
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $iduniversidad;
+ global $nombreuniversidad;
+ global $comentarios;
+ $id=1;
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM universidades WHERE iduniversidad=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $nombreuniversidad=$rs->campos["nombreuniversidad"];
+ $comentarios=$rs->campos["comentarios"];
+ }
+ $rs->Cerrar();
+ return(true);
+}
+?>
diff --git a/admin/WebConsole/propiedades/propiedades_usuarios.php b/admin/WebConsole/propiedades/propiedades_usuarios.php
new file mode 100644
index 00000000..ecdb4072
--- /dev/null
+++ b/admin/WebConsole/propiedades/propiedades_usuarios.php
@@ -0,0 +1,183 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: propiedades_usuarios.php
+// Descripción :
+// Presenta el formulario de captura de datos de un usuario para insertar,modificar y eliminar
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/opciones.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../idiomas/php/".$idioma."/propiedades_usuarios_".$idioma.".php");
+//________________________________________________________________________________________________________
+$opcion=0;
+$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]);
+//________________________________________________________________________________________________________
+$idusuario=0;
+$usuario="";
+$pasguor="";
+$nombre="";
+$email="";
+$identificador=0;
+$idambito=0;
+$ididioma=0;
+$idtipousuario=0;
+
+if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros
+if (isset($_GET["idusuario"])) $idusuario=$_GET["idusuario"];
+if (isset($_GET["idtipousuario"])) $idtipousuario=$_GET["idtipousuario"];
+if (isset($_GET["identificador"])) $idusuario=$_GET["identificador"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+if ($opcion!=$op_alta){
+ $resul=TomaPropiedades($cmd,$idusuario);
+ if (!$resul)
+ Header('Location: '.$pagerror.'?herror=3'); // Error de recuperación de datos.
+}
+
+switch($idtipousuario){
+ case $SUPERADMINISTRADOR:
+ $urlimg="../images/iconos/superadministradores.gif";
+ $litusu=$TbMsg[11];
+ break;
+ case $ADMINISTRADOR:
+ $urlimg="../images/iconos/administradores.gif";
+ $litusu=$TbMsg[12];
+ break;
+ case $OPERADOR:
+ $urlimg="../images/iconos/operadores.gif";
+ $litusu=$TbMsg[13];
+ break;
+}
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/propiedades_usuarios.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_usuarios_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos" action="../gestores/gestor_usuarios.php" method="post">
+ <INPUT type=hidden name=opcion value=<?=$opcion?>>
+ <INPUT type=hidden name=idusuario value=<?=$idusuario?>>
+ <INPUT type=hidden name=idtipousuario value=<?=$idtipousuario?>>
+ <INPUT type=hidden name=idambito value=<?=$idambito?>>
+ <?
+ if ($opcion==$op_modificacion && $idtipousuario!=$SUPERADMINISTRADOR){
+ echo '<INPUT type=hidden name=usuario value='.$usuario.'>';
+ echo '<INPUT type=hidden name=pasguor value='.$pasguor.'>';
+ }
+ ?>
+ <P align=center class=cabeceras><?echo $TbMsg[4]." (".$litusu.")"?><BR>
+ <SPAN align=center class=subcabeceras><? echo $opciones[$opcion]?></SPAN></P>
+ <TABLE align=center border=0 cellPadding=1 cellSpacing=1 class=tabla_datos>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[5]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idtipousuario!=$SUPERADMINISTRADOR)){?>
+ <TD><?echo $usuario?>&nbsp&nbsp;<IMG src="<? echo $urlimg ?>"></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto maxlength=10 name="usuario" style="width:100" value="<? echo $usuario?>">
+ <IMG src="<? echo $urlimg ?>">
+
+ <?}?>
+ </TR>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[6]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion || ($opcion==$op_modificacion && $idtipousuario!=$SUPERADMINISTRADOR)){?>
+ <TD><?echo $pasguor?></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto maxlength=10 name="pasguor" style="width:100" value="<? echo $pasguor?>">
+ <?}?>
+ </TR>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[7]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion){?>
+ <TD><?echo $nombre?></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto name="nombre" style="width:250" value="<? echo $nombre?>">
+ <?}?>
+ </TR>
+<!-------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[8]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion){?>
+ <TD><?echo $email?></TD>
+ <?}else{?>
+ <TD><INPUT type=text class=cajatexto name="email" style="width:250" value="<? echo $email?>">
+ <?}?>
+ </TR>
+<!--------------------------------------------------------------------------------------------------------------------------------------------------->
+ <TR>
+ <TH>&nbsp;<?echo $TbMsg[10]?>&nbsp;</TH>
+ <?if ($opcion==$op_eliminacion){?>
+ <TD><? echo TomaDato($cmd,0,"idiomas",$ididioma,"ididioma","descripcion")?></TD>
+ <?}else{?>
+ <TD><? echo HTMLSELECT($cmd,0,"idiomas",$ididioma,"ididioma","descripcion",100)?></TD>
+ <?}?>
+ </TR>
+
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ </TABLE>
+</FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/opcionesbotonesop.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Recupera los datos de un usuario
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - id: El identificador del usuario
+//________________________________________________________________________________________________________
+function TomaPropiedades($cmd,$id){
+ global $usuario;
+ global $pasguor;
+ global $nombre;
+ global $email;
+ global $idambito;
+ global $ididioma;
+ global $idtipousuario;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM usuarios WHERE idusuario=".$id;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $usuario=$rs->campos["usuario"];
+ $pasguor=$rs->campos["pasguor"];
+ $nombre=$rs->campos["nombre"];
+ $email=$rs->campos["email"];
+ $idambito=$rs->campos["idambito"];
+ $ididioma=$rs->campos["ididioma"];
+ $idtipousuario=$rs->campos["idtipousuario"];
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/varios/acceso_operador.php b/admin/WebConsole/varios/acceso_operador.php
new file mode 100644
index 00000000..3d88da6b
--- /dev/null
+++ b/admin/WebConsole/varios/acceso_operador.php
@@ -0,0 +1,98 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: acceso.php
+// Descripción : Presenta la pantalla de login del operador
+// *************************************************************************************************************************************************
+
+session_start(); // Activa variables de sesi�
+
+$herror=0;
+
+if (isset($_GET["herror"])) $herror=$_GET["herror"];
+if (isset($_POST["herror"])) $herror=$_POST["herror"];
+
+$ITEMS_PUBLICOS=1;
+$ITEMS_PRIVADOS=2;
+
+if (isset($_SESSION["swop"])){
+ // Acceso al menu de adminitración del aula
+ $wurl="menucliente.php?tip=".$ITEMS_PRIVADOS;
+ Header('Location:'.$wurl);
+}
+
+$TbErr=array();
+$TbErr[0]="SIN ERRORES";
+$TbErr[1]="ATENCIÓN: Usted no tiene acceso al menú de administración";
+$TbErr[2]="ERROR de conexión con el servidor de datos";
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<SCRIPT LANGUAGE="JAVASCRIPT">
+//________________________________________________________________________________________________________
+function confirmar(){
+ if (comprobar_datos())
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.usu.value==""){
+ alert("Debe introducir un nombre de Usuario")
+ document.fdatos.usu.focus()
+ return(false)
+ }
+ if (document.fdatos.pss.value==""){
+ alert("Debe introducir una contraseña")
+ document.fdatos.pss.focus()
+ return(false)
+ }
+ return(true)
+}
+//______________________________________________________________________________________________________
+function PulsaEnter(oEvento){
+ var iAscii;
+ if (oEvento.keyCode)
+ iAscii = oEvento.keyCode;
+ else{
+ if (oEvento.which)
+ iAscii = oEvento.which;
+ else
+ return false;
+ }
+ if (iAscii == 13) confirmar();
+ return true;
+}
+//________________________________________________________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+<DIV style="POSITION:absolute;top:20;left:150">
+ <FORM action="accesoperadores.php" name="fdatos" method="post">
+ <DIV align="center">
+ <IMG src="../images/login_operador.png" width=500 >
+ <INPUT onkeypress="PulsaEnter(event)" name="usu" style="POSITION:absolute;top:125px;left:365px;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;">
+ <INPUT onkeypress="PulsaEnter(event)" name="pss" type="password" style="POSITION:absolute;top:160px;left:365;width:90;height:20;COLOR: #999999; FONT-FAMILY: Verdana; FONT-SIZE: 12px;">
+ <IMG onclick="confirmar()" src="../images/botonok.png" style="POSITION:absolute;top:190;left:400;CURSOR: hand">
+ </DIV>
+ </FORM>
+</DIV>
+<?
+//________________________________________________________________________________________________________
+// Posiciona cursor en campo usuario y muestra mensaje de error si lo hubiera
+echo '<SCRIPT LANGUAGE="javascript">';
+if (!empty($herror))
+ echo " alert('".$TbErr[$herror]."');";
+echo 'document.fdatos.usu.focus()';
+echo '</SCRIPT>';
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/accesoperadores.php b/admin/WebConsole/varios/accesoperadores.php
new file mode 100644
index 00000000..f46078ec
--- /dev/null
+++ b/admin/WebConsole/varios/accesoperadores.php
@@ -0,0 +1,50 @@
+<?
+// ********************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero implementa el control de acceso de los operadores de aula
+// *********************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+
+$usu="";
+$pss="";
+
+if (isset($_POST["usu"])) $usu=$_POST["usu"];
+if (isset($_POST["pss"])) $pss=$_POST["pss"];
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location:acceso_operador.php?herror=2'); // Error de conexióncon servidor B.D.
+
+$ITEMS_PUBLICOS=1;
+$ITEMS_PRIVADOS=2;
+
+// COntrol de acceso del usuario
+$rs=new Recordset;
+
+$cmd->texto="SELECT usuarios.idusuario,usuarios.idtipousuario
+ FROM usuarios
+ INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario
+ WHERE usuarios.usuario='".$usu."' AND usuarios.pasguor='".$pss."'";
+$rs->Comando=&$cmd;
+
+if (!$rs->Abrir()){
+ Header('Location:acceso_operador.php?herror=2'); // Error de conexióncon servidor B.D.
+ exit;
+}
+if ($rs->EOF){
+ Header('Location:acceso_operador.php?herror=1'); // Error de acceso, no existe usuario
+ exit;
+}
+// Acceso al menu de adminitración del aula
+//$wurl="menucliente.php?iph=".$iph."&tip=".$ITEMS_PRIVADOS;
+$wurl="menucliente.php?tip=".$ITEMS_PRIVADOS;
+$_SESSION["swop"]=$usu;
+Header('Location:'.$wurl);
+exit;
diff --git a/admin/WebConsole/varios/accionmenu.php b/admin/WebConsole/varios/accionmenu.php
new file mode 100644
index 00000000..e2f00125
--- /dev/null
+++ b/admin/WebConsole/varios/accionmenu.php
@@ -0,0 +1,265 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: accionmenu.php
+// Descripción :
+// Administra la inclusión de items en menus (procedimientos,tareas y trabajos de un determinado Centro)
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/accionmenu_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idtipoaccion=0;
+$descripcionaccion="";
+$tipoaccion=0;
+
+$idmenu=0;
+$descripcionmenu="";
+
+if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"];
+if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"];
+if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"];
+
+if (isset($_GET["idmenu"])) $idmenu=$_GET["idmenu"];
+if (isset($_GET["descripcionmenu"])) $descripcionmenu=$_GET["descripcionmenu"];
+
+if(empty($idmenu)) $op=1; else $op=2; // Viene de "acciones" o de "menus"
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+if($op==1){ // Viene de "acciones"
+ switch($tipoaccion){
+ case $EJECUCION_PROCEDIMIENTO :
+ $urlimg='../images/iconos/procedimiento.gif';
+ $litacion=$TbMsg[2];
+ $litdescri=$descripcionaccion;
+ break;
+ case $EJECUCION_TAREA :
+ $urlimg='../images/iconos/tareas.gif';
+ $litacion=$TbMsg[3];
+ $litdescri=$descripcionaccion;
+ break;
+ }
+}
+else{ // Viene de menus
+ $urlimg='../images/iconos/menu.gif';
+ $litacion=$TbMsg[4];
+ $litdescri=$descripcionmenu;
+}
+//________________________________________________________________________________________________________
+ ?>
+ <HTML>
+ <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/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/accionmenu.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/accionmenu_'.$idioma.'.js"></SCRIPT>'?>
+ </HEAD>
+ <BODY>
+ <FORM name="fdatos">
+ <input type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <input type=hidden value="<? echo $idtipoaccion?>" id=idtipoaccion>
+ <input type=hidden value="<? echo $tipoaccion?>" id=tipoaccion>
+ </FORM>
+ <P align=center class=cabeceras>
+ <? echo $litcabecera ?><br>
+ <span align=center class=subcabeceras><?echo $TbMsg[1]?></span>&nbsp;<img src="../images/iconos/menus.gif"><br><br>
+ <span align=center class=presentaciones>
+ <img src="<? echo $urlimg?>">&nbsp;&nbsp;&nbsp;
+ <u><? echo $litacion?></u>:&nbsp;<? echo $litdescri?></span>
+ </P>
+ <DIV align=center id="Layer_items">
+ <TABLE width="90%" class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TR id="TR_menus">
+ <TH>&nbsp;</TH>
+
+ <?
+ if($op==1) // Si viene desde "acciones" ...
+ echo '<TH>'.$TbMsg[9].'</TH>';
+ else
+ echo '<TH align=center>'.$TbMsg[15].'</TH>';
+ ?>
+ <TH><?echo $TbMsg[10]?></TH>
+ <TH><?echo $TbMsg[11]?></TH>
+ <TH><?echo $TbMsg[12]?></TH>
+ <TH><?echo $TbMsg[13]?></TH>
+ <?
+ if($op==2){ // Si viene desde "menus" ...
+ echo '<TH style="visibility:hidden">&nbsp;</TH>';
+ echo '<TH style="visibility:hidden">&nbsp;</TH>';
+ }
+ ?>
+ </TR>
+<?
+//________________________________________________________________________________________________________
+
+if(!empty($idmenu)) // Viene de la página de menús
+{
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ acciones_menus.idtipoaccion,acciones_menus.tipoaccion,
+ acciones_menus.tipoitem,acciones_menus.idurlimg,
+ acciones_menus.descripitem,acciones_menus.orden
+ FROM menus
+ INNER JOIN acciones_menus ON acciones_menus.idmenu=menus.idmenu
+ WHERE acciones_menus.idmenu=".$idmenu."
+ ORDER BY acciones_menus.tipoitem,menus.descripcion";
+
+ pintaMenus($cmd,$idmenu,0,2);
+}
+else
+{
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ acciones_menus.idtipoaccion,acciones_menus.tipoaccion,
+ acciones_menus.tipoitem,acciones_menus.idurlimg,
+ acciones_menus.descripitem,acciones_menus.orden
+ FROM menus
+ INNER JOIN acciones_menus ON acciones_menus.idmenu=menus.idmenu
+ WHERE (acciones_menus.idtipoaccion=".$idtipoaccion." AND acciones_menus.tipoaccion=".$tipoaccion.")
+ ORDER BY menus.descripcion";
+
+ $idmenus=pintaMenus($cmd,$idtipoaccion,$tipoaccion,1)."0"; // Añade el identificador 0
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ 0 as idtipoaccion,0 as tipoaccion,
+ 0 as tipoitem,'' as idurlimg,
+ '' as descripitem,0 as orden
+ FROM menus
+ WHERE idmenu NOT IN (".$idmenus.")
+ ORDER BY menus.descripcion";
+
+ pintaMenus($cmd,$idtipoaccion,$tipoaccion,1);
+}
+//________________________________________________________________________________________________________
+?>
+ </TABLE>
+ </DIV>
+ <BR>
+<TABLE align=center>
+ <TR>
+ <TD><A href="#botones"><IMG border=0 src="../images/boton_confirmar.gif" onclick="javascript:confirmar(<? echo $op?>)" ></A></TD>
+ </TR>
+</TABLE>
+ <BR>
+ <DIV id="Layer_nota" align=center>
+ <SPAN align=center class=notas><I><? echo$TbMsg[14]?></I></SPAN>
+ </DIV>
+</FORM>
+
+
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Descripción:
+// Muestra la tabla de items a incluir en menús
+// Parámetros:
+// $cmd: Objeto comando (Operativo)
+// $identificador: Identificador de la acción si viene de acciones, identificador del menu si viene de "menus"
+// $tipoaccion: Tipo de acción (Procedimiento o Tarea
+// $op: Indica si esta página se ejecuta desde "acciones" o desde "menus"
+// 1: desde acciones
+// 2: desde menus
+//________________________________________________________________________________________________________
+
+function pintaMenus($cmd,$identificador,$tipoaccion,$op)
+{
+ global $TbMsg;
+ global $ITEM_PUBLICO;
+ global $ITEM_PRIVADO;
+ global $op_modificacion;
+ global $descripcionaccion;
+ global $EJECUCION_PROCEDIMIENTO;
+ global $EJECUCION_TAREA;
+
+ // echo $cmd->texto;
+ $idmenus=""; // Identificadores de menus para segunda consulta
+ $litcabecera=$TbMsg[0];
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if(!$rs->Abrir())
+ Header('Location: '.$pagerror.'?herror=3'); // Error de lectura
+
+ while (!$rs->EOF){
+ $idmenus.=$rs->campos["idmenu"].",";
+ echo '<TR>';
+ /* Ckeckbox para incluir o eliminar items en el menú */
+ echo '<TD align=center>';
+ echo '<INPUT id='.$rs->campos["idmenu"].' type=checkbox ';
+ switch($op){
+ case 1: // Se ejecuta desde "acciones"
+ if($rs->campos["idtipoaccion"]==$identificador && $rs->campos["tipoaccion"]==$tipoaccion)
+ echo ' value="1" checked ';
+ else
+ echo ' value="0"';
+ break;
+ case 2: // Se ejecuta desde "menus"
+ if($rs->campos["idmenu"]==$identificador)
+ echo ' value="1" checked ';
+ else
+ echo ' value="0"';
+ break;
+ }
+ echo '></INPUT></TD>';
+
+ /* Nombre del menú si viene de "acciones" o tipo de acción si viene desde "menus" */
+ if($op==1)
+ echo '<TD align=center>&nbsp;'.$rs->campos["descripcionmenu"].'</TD>';
+ else{
+ switch($rs->campos["tipoaccion"]){
+ case $EJECUCION_PROCEDIMIENTO :
+ $urlimg='../images/iconos/procedimiento.gif';
+ break;
+ case $EJECUCION_TAREA :
+ $urlimg='../images/iconos/tareas.gif';
+ break;
+ }
+ echo '<TD align=center><IMG src="'.$urlimg.'"></TD>';
+ }
+
+ /* Tipo de item */
+ $parametros=$ITEM_PUBLICO."=".$TbMsg[5]."".chr(13);
+ $parametros.=$ITEM_PRIVADO."=".$TbMsg[6]."";
+ echo '<TD align=center>'.HTMLCTESELECT($parametros,"tipositems-".$rs->campos["idmenu"],"estilodesple","",$rs->campos["tipoitem"],70).'</TD>';
+
+ /* Imagen del item */
+ echo '<TD align=center>';
+ echo HTMLSELECT($cmd,0,'iconos',$rs->campos["idurlimg"],'idicono','descripcion',160,"","","idtipoicono=2");
+ echo '</TD>';
+
+ /* Descripción del item */
+ $descripitem=$rs->campos["descripitem"];
+ if(empty($descripitem)) $descripitem=$descripcionaccion;
+ echo '<TD align=center><INPUT class="formulariodatos" id=descripitem-'.$rs->campos["idmenu"].'
+ style="WIDTH:300px" type=text value="'.$descripitem.'"></INPUT></TD>';
+ // Orden del item del item
+ $orden=$rs->campos["orden"];
+ if(empty($orden)) $orden=1;
+ echo '<TD align=center><INPUT class="formulariodatos" id=orden-'.$rs->campos["idmenu"].'
+ style="WIDTH:20px" type=text value="'.$orden.'"></INPUT></TD>';
+
+ if($op==2){ // Si viene desde "menus" ...
+ echo '<TD style="visibility:hidden" align=center>'.$rs->campos["idtipoaccion"].'</TD>';
+ echo '<TD style="visibility:hidden" align=center>'.$rs->campos["tipoaccion"].'</TD>';
+ }
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($idmenus); // retorna identificadores de menus implicados en la consulta
+}
+?>
+
diff --git a/admin/WebConsole/varios/administradores_centros.php b/admin/WebConsole/varios/administradores_centros.php
new file mode 100644
index 00000000..eb568cee
--- /dev/null
+++ b/admin/WebConsole/varios/administradores_centros.php
@@ -0,0 +1,117 @@
+<?
+// *******************************************************************************************************
+// 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
+// Nombre del fichero: administradores_centros.php
+// Descripción :
+// Administra los componentes software incluidos en un perfil software
+// *******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../idiomas/php/".$idioma."/administradores_centros_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idcentro=0;
+$nombrecentro ="";
+if (isset($_GET["idcentro"])) $idcentro=$_GET["idcentro"]; // Recoge parametros
+if (isset($_GET["nombrecentro"])) $nombrecentro=$_GET["nombrecentro"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/administradores_centros.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/administradores_centros_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+
+ <P align=center class=cabeceras><?echo $nombrecentro?></SPAN>&nbsp;<IMG src="../images/iconos/centros.gif">
+ <BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"></P>
+
+ <?
+ $rs=new Recordset;
+ // Administradores asignados
+ $cmd->texto="SELECT usuarios.idusuario,usuarios.nombre ,usuarios.idtipousuario FROM usuarios
+ INNER JOIN administradores_centros ON administradores_centros.idusuario=usuarios.idusuario
+ WHERE administradores_centros.idcentro=".$idcentro." ORDER by usuarios.nombre";
+
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $usuariosUO="";
+ $rs->Primero();
+ echo '<DIV align=center id="Layer_componentes">';
+ echo '<P><SPAN align=center class=presentaciones><B>'.$TbMsg[2].'</B></SPAN></P></DIV>';
+ echo '<TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >';
+ echo '<TR><TH>&nbsp</TH><TH>T</TH><TH>'.$TbMsg[3].'</TH></TR>';
+ while (!$rs->EOF){
+ $usuariosUO.=$rs->campos["idusuario"].",";
+ echo '<TR>';
+ echo '<TD align=center width="10%"><INPUT type=checkbox
+ onclick="gestion_administrador('.$rs->campos["idusuario"].',this)" checked></INPUT></TD>';
+ switch($rs->campos["idtipousuario"]){
+ case $ADMINISTRADOR:
+ echo '<TD align=center width="10%" ><img src="../images/iconos/administradores.gif"></TD>';
+ break;
+ case $SUPERADMINISTRADOR:
+ echo '<TD align=center width="10%" ><img src="../images/iconos/superadministradores.gif"></TD>';
+ break;
+ }
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["nombre"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ }
+ $rs->Cerrar();
+ // Administradores disponibles
+ $usuariosUO.="0";
+ $cmd->texto="SELECT usuarios.idusuario,usuarios.nombre,usuarios.idtipousuario FROM usuarios
+ WHERE usuarios.idusuario NOT IN (".$usuariosUO.") ORDER by usuarios.nombre";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ echo '<DIV align=center id="Layer_componentes">';
+ echo '<P><SPAN align=center class=presentaciones><B>'.$TbMsg[5].'</B></SPAN></P></DIV>';
+ echo '<TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >';
+ echo '<TR><TH>&nbsp</TH><TH>T</TH><TH>'.$TbMsg[3].'</TH></TR>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%"><INPUT type=checkbox
+ onclick="gestion_administrador('.$rs->campos["idusuario"].',this)"></INPUT></TD>';
+ switch($rs->campos["idtipousuario"]){
+ case $ADMINISTRADOR:
+ echo '<TD align=center width="10%" ><img src="../images/iconos/administradores.gif"></TD>';
+ break;
+ case $SUPERADMINISTRADOR:
+ echo '<TD align=center width="10%" ><img src="../images/iconos/superadministradores.gif"></TD>';
+ break;
+ }
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["nombre"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[4]?></I></SPAN>
+ </DIV>
+</FORM>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/administradores_usuarios.php b/admin/WebConsole/varios/administradores_usuarios.php
new file mode 100644
index 00000000..62caf965
--- /dev/null
+++ b/admin/WebConsole/varios/administradores_usuarios.php
@@ -0,0 +1,108 @@
+<?
+// *******************************************************************************************************
+// 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
+// Nombre del fichero: administradores_usuarios.php
+// Descripción :
+// Administra los componentes software incluidos en un perfil software
+// *******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../idiomas/php/".$idioma."/administradores_usuarios_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idusuario=0;
+$nombre ="";
+if (isset($_GET["idusuario"])) $idusuario=$_GET["idusuario"]; // Recoge parametros
+if (isset($_GET["nombre"])) $nombre=$_GET["nombre"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/administradores_usuarios.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/administradores_usuarios_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idusuario?>" id=idusuario>
+
+ <P align=center class=cabeceras><?echo $nombre?></SPAN>&nbsp;<IMG src="../images/iconos/administradores.gif">
+ <BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"></P>
+
+ <?
+ $rs=new Recordset;
+ // Usuarios asignados
+ $cmd->texto="SELECT centros.idcentro,centros.nombrecentro, centros.identidad FROM centros
+ INNER JOIN administradores_centros ON administradores_centros.idcentro=centros.idcentro
+ WHERE administradores_centros.idusuario=".$idusuario." ORDER by centros.nombrecentro";
+
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $centrosUO="";
+ $rs->Primero();
+ echo '<DIV align=center id="Layer_componentes">';
+ echo '<P><SPAN align=center class=presentaciones><B>'.$TbMsg[2].'</B></SPAN></P></DIV>';
+ echo '<TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >';
+ echo '<TR><TH>&nbsp</TH><TH>T</TH><TH>'.$TbMsg[3].'</TH></TR>';
+ while (!$rs->EOF){
+ $centrosUO.=$rs->campos["idcentro"].",";
+ echo '<TR>';
+ echo '<TD align=center width="10%"><INPUT type=checkbox
+ onclick="gestion_administrador('.$rs->campos["idcentro"].',this)" checked></INPUT></TD>';
+
+ echo '<TD align=center width="10%" ><img src="../images/iconos/centros.gif"></TD>';
+
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["nombrecentro"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ }
+ $rs->Cerrar();
+ // Usuarios disponibles
+ $centrosUO.="0";
+ $cmd->texto="SELECT centros.idcentro,centros.nombrecentro,centros.identidad FROM centros
+ WHERE centros.idcentro NOT IN (".$centrosUO.") ORDER by centros.nombrecentro";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ echo '<DIV align=center id="Layer_componentes">';
+ echo '<P><SPAN align=center class=presentaciones><B>'.$TbMsg[5].'</B></SPAN></P></DIV>';
+ echo '<TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >';
+ echo '<TR><TH>&nbsp</TH><TH>T</TH><TH>'.$TbMsg[3].'</TH></TR>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%"><INPUT type=checkbox
+ onclick="gestion_administrador('.$rs->campos["idcentro"].',this)"></INPUT></TD>';
+
+
+ echo '<TD align=center width="10%" ><img src="../images/iconos/centros.gif"></TD>';
+
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["nombrecentro"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[4]?></I></SPAN>
+ </DIV>
+</FORM>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/calendario_ventana.php b/admin/WebConsole/varios/calendario_ventana.php
new file mode 100644
index 00000000..64e403f7
--- /dev/null
+++ b/admin/WebConsole/varios/calendario_ventana.php
@@ -0,0 +1,195 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: calendario_ventana.php
+// Descripción :
+// Muestra un calendario para elegir una fecha
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../idiomas/php/".$idioma."/clases/Almanaque_".$idioma.".php");
+//_________________________________________________________________________________________________________
+$anno_elegido=2004;
+$mes_elegido=1;
+$dia_elegido=1;
+
+if (isset($_GET["fecha"])){
+ $fecha=$_GET["fecha"];
+ if ($fecha!=""){
+ list($dia_p,$mes_p,$anno_p)=split("/",$fecha);
+ $mes_elegido=(int)($mes_p);
+ $anno_elegido=(int)($anno_p);
+ $dia_elegido=(int)($dia_p);
+ }
+}
+
+if (isset($_POST["dia_elegido"])) $dia_elegido=$_POST["dia_elegido"];
+if (isset($_POST["mes_elegido"])) $mes_elegido=$_POST["mes_elegido"];
+if (isset($_POST["anno_elegido"])) $anno_elegido=$_POST["anno_elegido"];
+//_________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+
+var rojo="#cc3366"
+var negro="#ffffff"
+var verde="lightseagreen"
+var gris="#bbbcb9"
+var blanco="#eeeeee"
+var azul= "#0000cc"
+var fondooriginal="#EEEECC";
+var colororiginal="#003300";
+
+var currentDia=null;
+
+dias_meses=new Array(12);
+
+dias_meses[1]=31;
+dias_meses[2]=28;
+dias_meses[3]=31;
+dias_meses[4]=30;
+dias_meses[5]=31;
+dias_meses[6]=30;
+dias_meses[7]=31;
+dias_meses[8]=31;
+dias_meses[9]=30;
+dias_meses[10]=31;
+dias_meses[11]=30;
+dias_meses[12]=31;
+//_________________________________________________________________________________________________________
+function ItemSeleccionado(o){
+ return(o.style.backgroundColor==azul)
+}
+//_________________________________________________________________________________________________________
+function elige_anno(){
+ document.forms.fdatos.dia_elegido.value=1
+ document.forms.fdatos.mes_elegido.value=1
+ document.forms.fdatos.anno_elegido.value=document.forms.fdatos.despleanno.value
+ document.forms.fdatos.submit()
+}
+//_________________________________________________________________________________________________________
+function mes_siguiente(){
+ var wmes=parseInt(document.forms.fdatos.mes_elegido.value)
+ var wanno=parseInt(document.forms.fdatos.anno_elegido.value)
+ wmes++;
+ if(wmes>12){
+ wmes=1
+ wanno=wanno+1
+ if(wanno>2014){
+ wanno=2014
+ }
+ }
+ document.forms.fdatos.dia_elegido.value=1
+ document.forms.fdatos.mes_elegido.value=wmes
+ document.forms.fdatos.anno_elegido.value=wanno
+ document.forms.fdatos.submit()
+}
+//_________________________________________________________________________________________________________
+function mes_anterior(){
+ var wmes=parseInt(document.forms.fdatos.mes_elegido.value)
+ var wanno=parseInt(document.forms.fdatos.anno_elegido.value)
+ wmes--;
+ if(wmes<1){
+ wmes=12
+ wanno=wanno-1
+ if(wanno<2004){
+ wanno=2004
+ }
+ }
+ var swbi=0;
+ if (wanno%4==0 && wmes==2) swbi=1;
+
+ document.forms.fdatos.dia_elegido.value=dias_meses[wmes]+swbi;
+ document.forms.fdatos.mes_elegido.value=wmes;
+ document.forms.fdatos.anno_elegido.value=wanno;
+ document.forms.fdatos.submit()
+
+}
+//____________________________ ____________________________________________________________________________
+function Resalta(o){
+ o.style.color=blanco
+ o.style.backgroundColor=azul
+}
+//____________________________ ____________________________________________________________________________
+function Desmarca(o){
+ o.style.color=colororiginal
+ o.style.backgroundColor=fondooriginal
+
+}
+//____________________________ ____________________________________________________________________________
+function sobre(o){
+ if (currentDia!=null)
+ Desmarca(currentDia)
+ Resalta(o);
+ currentDia=o;
+}
+//____________________________ ____________________________________________________________________________
+
+function fuera(o){
+ Desmarca(o);
+}
+//____________________________ ____________________________________________________________________________
+function clic(o){
+ window.opener.anade_fecha(o.id)
+ self.close()
+}
+//____________________________ ____________________________________________________________________________
+function cerrar_ventana(){
+ self.close()
+}
+//____________________________ ____________________________________________________________________________
+function borrar_fecha(){
+ window.opener.anade_fecha("")
+ self.close()
+}
+//____________________________ ____________________________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+<FORM action="calendario_ventana.php" name="fdatos" method="post">
+ <INPUT type=hidden name=dia_elegido value="<? echo $dia_elegido?>">
+ <INPUT type=hidden name=mes_elegido value="<? echo $mes_elegido?>">
+ <INPUT type=hidden name=anno_elegido value="<? echo $anno_elegido?>">
+ <?
+$mialmanaque=new Almanaque("tabla_meses");
+
+echo '<TABLE align="center">';
+echo ' <TR>';
+echo ' <TD align="left"><img SRC="../images/iconos/salir_on.gif" onclick="cerrar_ventana()"></TD>';
+echo '<TD style="COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:12">&nbsp;&nbsp;Año:&nbsp;';
+echo '<SELECT name="despleanno" onchange="elige_anno()" style="width:60">';
+for($i=2010;$i<2015;$i++){
+ echo '<OPTION value='.$i;
+ if($anno_elegido==$i) echo" selected ";
+ echo '>'.$i.'</OPTION>';
+}
+echo '</SELECT>';
+echo '</TD>';
+echo '</TR>';
+
+echo '<table align=center border=0>';
+echo '<tr>';
+echo '<td onclick="javascript:mes_anterior();" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10" align=left><<</td>';
+echo '<td onclick="javascript:mes_siguiente()" style="cursor:pointer;COLOR: MediumBlue;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:10" align=right>>></td>';
+echo '</tr>';
+echo '<tr>';
+echo '<td colspan=2 valign=top width=100>'.$mialmanaque->MesAnno($mes_elegido,$anno_elegido).'</td>';
+echo '</tr>';
+echo '</table>';
+echo '</FORM>';
+
+echo '<SCRIPT language="JavaScript">';
+echo ' var o=document.getElementById("'.$dia_elegido."/".$mes_elegido."/".$anno_elegido.'");';
+echo ' sobre(o);';
+echo '</SCRIPT>';
+?>
+</BODY>
+</HTML>
+
+
diff --git a/admin/WebConsole/varios/consulta_programaciones.php b/admin/WebConsole/varios/consulta_programaciones.php
new file mode 100644
index 00000000..93b11b2a
--- /dev/null
+++ b/admin/WebConsole/varios/consulta_programaciones.php
@@ -0,0 +1,32 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: consulta_programacion.php
+// Descripción :
+// Muestra un calendario para elegir una fecha
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+//_________________________________________________________________________________________________________
+ // Toma parametros
+ $idprogramacion=0;
+ if (isset($_POST["idprogramacion"])) $idprogramacion=$_POST["idprogramacion"];
+
+// Abre conexiones
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+$rs=new Recordset; // Recupero acciones anidadas
+$cmd->texto="SELECT * FROM programaciones WHERE idprogramacion=".$idprogramacion;
+$rs->Comando=&$cmd;
+if ($rs->Abrir()){ // Error al abrir recordset
+ $cadena_campos=$rs->campos[0];
+ for($i=1;$i<$rs->numerodecampos;$i++)
+ $cadena_campos.=";".$rs->campos[$i]; // Usa el caracter ; para delimitar
+ echo $cadena_campos;
+}
+$rs->Cerrar();
+?>
diff --git a/admin/WebConsole/varios/desplegablesambitos.php b/admin/WebConsole/varios/desplegablesambitos.php
new file mode 100644
index 00000000..fc41f0bd
--- /dev/null
+++ b/admin/WebConsole/varios/desplegablesambitos.php
@@ -0,0 +1,28 @@
+<?
+//*******************************************************************************************************
+// 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
+// Nombre del fichero: desplegablesambitos.php
+// Descripción :
+// Devuelve el desplegable de un ámbito ( Usado sólo por AJAX)
+// *******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/comunes.php");
+include_once("../includes/constantes.php");
+include_once("../includes/HTMLSELECT.php");
+//________________________________________________________________________________________________________
+
+$ambito=0;
+
+if (isset($_POST["ambito"])) $ambito=$_POST["ambito"]; // Recoge parametros
+
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if ($cmd){
+ echo tomaSelectAmbito($cmd,$ambito,0,$idcentro,250);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/varios/ejecutaracciones.php b/admin/WebConsole/varios/ejecutaracciones.php
new file mode 100644
index 00000000..dd7c6c7c
--- /dev/null
+++ b/admin/WebConsole/varios/ejecutaracciones.php
@@ -0,0 +1,207 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2003-2005
+// Fecha Última modificación: Abril-2005
+// Nombre del fichero: ejecutaracciones.php
+// Descripción :
+// Administra procedimientos,tareas y trabajos de un determinado Centro
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../clases/MenuContextual.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/ejecutaracciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+$ambito=0;
+$idambito=0;
+$nombreambito="";
+
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+if (isset($_GET["idambito"])) $idambito=$_GET["idambito"];
+if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"];
+
+//________________________________________________________________________________________________________
+$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 los datos de las acciones registradas en el Centro
+
+// Creación del árbol
+$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[8];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,100,1,$titulotabla);
+
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/ejecutaracciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/ejecutaracciones_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY OnContextMenu="return false">
+<FORM name="fdatos">
+ <INPUT type=hidden name=ambito value=<?=$ambito?>>
+ <INPUT type=hidden name=idambito value=<?=$idambito?>>
+</FORM>
+
+<?
+switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito=$TbMsg[0];
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[1];
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito=$TbMsg[2];
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito=$TbMsg[3];
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito=$TbMsg[4];
+ break;
+ }
+ echo '<p align=center><span class=cabeceras>'.$TbMsg[5].'&nbsp;</span><br>';
+ echo '<IMG src="'.$urlimg.'">&nbsp;&nbsp;<span align=center class=subcabeceras><U>'.$TbMsg[6].': '.$textambito.','.$nombreambito.'</U></span>&nbsp;&nbsp;</span></p>';
+?>
+<BR>
+<BR>
+<?
+//________________________________________________________________________________________________________
+echo $arbol->CreaArbolVistaXML(); // Crea árbol (HTML) a partir del XML
+$flotante=new MenuContextual(); // Crea objeto MenuContextual
+
+// Crea contextual de los procedimientos
+$XMLcontextual=CreacontextualXMLProcedimiento(); // Procedimientos
+echo $flotante->CreaMenuContextual($XMLcontextual);
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+// Devuelve una cadena con formato XML con toda la información de las acciones registradas en un Centro concreto
+// Parametros: PROCEDIMIENTO
+// - cmd:Una comando ya operativo ( con conexión abierta)
+// - idcentro: El identificador del centro
+//________________________________________________________________________________________________________
+function CreaArbol($cmd,$idcentro){
+ global $TbMsg;
+ global $LITAMBITO_PROCEDIMIENTOS;
+
+ $cadenaXML='<PROCEDIMIENTOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[7].'"';
+ $cadenaXML.=' nodoid=Raizpro'.$LITAMBITO_PROCEDIMIENTOS;
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_procedimientos($cmd,$idcentro,0);
+ $cadenaXML.='</PROCEDIMIENTOS>';
+
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_grupos_procedimientos($cmd,$idcentro,$grupoid){
+ global $AMBITO_GRUPOSPROCEDIMIENTOS;
+ global $LITAMBITO_GRUPOSPROCEDIMIENTOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idgrupo,nombregrupo,grupoid FROM grupos WHERE grupoid=".$grupoid." AND idcentro=".$idcentro." AND tipo=".$AMBITO_GRUPOSPROCEDIMIENTOS." ORDER BY nombregrupo";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<GRUPOSPROCEDIMIENTOS';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSPROCEDIMIENTOS.'-'.$rs->campos["idgrupo"];
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_grupos_procedimientos($cmd,$idcentro,$rs->campos["idgrupo"]);
+ $cadenaXML.='</GRUPOSPROCEDIMIENTOS>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ $cadenaXML.=SubarbolXML_Procedimientos($cmd,$idcentro,$grupoid);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Procedimientos($cmd,$idcentro,$grupoid){
+ global $LITAMBITO_PROCEDIMIENTOS;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idprocedimiento,descripcion FROM procedimientos WHERE idcentro=".$idcentro." AND grupoid=".$grupoid." ORDER BY descripcion";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<PROCEDIMIENTO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/procedimiento.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.=' nodoid='.$LITAMBITO_PROCEDIMIENTOS.'-'.$rs->campos["idprocedimiento"];
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PROCEDIMIENTOS."'" .')"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROCEDIMIENTO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+//
+// Menús Contextuales
+//________________________________________________________________________________________________________
+function CreacontextualXMLProcedimiento(){
+ global $EJECUCION_PROCEDIMIENTO;
+ global $AMBITO_PROCEDIMIENTOS;
+ global $LITAMBITO_PROCEDIMIENTOS;
+ global $EJECUCION_AUTOEXEC;
+ global $TbMsg;
+
+ $layerXML='<MENUCONTEXTUAL';
+ $layerXML.=' idctx="flo_'.$LITAMBITO_PROCEDIMIENTOS.'"';
+ $layerXML.=' maxanchu=150';
+ $layerXML.=' swimg=1';
+ $layerXML.='>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="gestion('.$EJECUCION_PROCEDIMIENTO.')"';
+ $layerXML.=' imgitem="../images/iconos/comandos.gif"';
+ $layerXML.=' textoitem='.$TbMsg[9];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='<SEPARADOR>';
+ $layerXML.='</SEPARADOR>';
+
+ $layerXML.='<ITEM';
+ $layerXML.=' alpulsar="gestion('.$EJECUCION_AUTOEXEC.')"';
+ $layerXML.=' imgitem="../images/iconos/hidra.gif"';
+ $layerXML.=' textoitem='.$TbMsg[10];
+ $layerXML.='></ITEM>';
+
+ $layerXML.='</MENUCONTEXTUAL>';
+ return($layerXML);
+}
+?>
diff --git a/admin/WebConsole/varios/ejecutaritem.php b/admin/WebConsole/varios/ejecutaritem.php
new file mode 100644
index 00000000..9c4b9c87
--- /dev/null
+++ b/admin/WebConsole/varios/ejecutaritem.php
@@ -0,0 +1,61 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2009
+// Fecha Última modificación: Octubre-2009
+// Nombre del fichero: menumliente.php
+// Descripción :
+// Pagina del menu del cliente. Éste la solicita a través de su browser local
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("../includes/TomaDato.php");
+//________________________________________________________________________________________________________
+$iph="0.0.0.0";
+$idt="0";
+
+if (isset($_GET["iph"])) $iph=$_GET["iph"];
+if (isset($_GET["idt"])) $idt=$_GET["idt"];
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+$rs=new Recordset;
+$cmd->texto="SELECT acciones_menus.tipoaccion, acciones_menus.idtipoaccion,
+ procedimientos.descripcion as procedimiento, tareas.descripcion as tarea
+ FROM acciones_menus
+ LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=acciones_menus.idtipoaccion
+ LEFT OUTER JOIN tareas ON tareas.idtarea=acciones_menus.idtipoaccion
+ WHERE acciones_menus.idaccionmenu=".$idt;
+
+$rs->Comando=&$cmd;
+$resul=$rs->Abrir();
+if (!$rs->Abrir()) die("NO SE HA PODIDO RECUPERAR EL ITEM PARA SER EJECUTADO");
+if ($rs->EOF) die("EL ITEM PARA SER EJECUTADO NO EXISTE");
+
+$tipoaccion=$rs->campos["tipoaccion"];
+$idtipoaccion=$rs->campos["idtipoaccion"];
+
+switch($tipoaccion){
+ case $EJECUCION_PROCEDIMIENTO :
+ $ambito=$AMBITO_ORDENADORES;
+ $idambito=TomaDato($cmd,0,'ordenadores',$iph,'ip','idordenador',0);
+ $wurl="../gestores/gestor_ejecutaracciones.php";
+ $prm="?swc=1&opcion=".$EJECUCION_PROCEDIMIENTO."&ambito=".$ambito."&idambito=".$idambito;
+ $prm.="&idprocedimiento=".$idtipoaccion."&descriprocedimiento=".UrlEncode($rs->campos["procedimiento"]);
+ Header('Location: '.$wurl.$prm); // Ejecución procedimiento
+ break;
+ case $EJECUCION_TAREA :
+ $wurl="../gestores/gestor_ejecutaracciones.php";
+ $prm="?swc=1&opcion=".$EJECUCION_TAREA;
+ $prm.="&idtarea=".$idtipoaccion."&descritarea=".UrlEncode($rs->campos["tarea"]);
+ Header('Location: '.$wurl.$prm); // Ejecución procedimiento
+ break;
+}
+die("HA HABIDO ALGÚN ERROR AL PROCESAR EL ITEM");
+?>
diff --git a/admin/WebConsole/varios/horareser_ventana.php b/admin/WebConsole/varios/horareser_ventana.php
new file mode 100644
index 00000000..7e7f7fe3
--- /dev/null
+++ b/admin/WebConsole/varios/horareser_ventana.php
@@ -0,0 +1,105 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: horareser_ventana.php
+// Descripción :
+// Visualiza las horas del día para elegir una
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php");
+
+$hora="";
+if (isset($_GET["hora"])) $hora=$_GET["hora"];
+if($hora=="") $hora="8:00";
+?>
+<HTML>
+<TITLE>Administración 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">
+
+var rojo="#cc3366"
+var negro="#ffffff"
+var verde="lightseagreen"
+var gris="#bbbcb9"
+var blanco="#eeeeee"
+var azul= "#0000cc"
+var fondooriginal="#EEEECC";
+var colororiginal="#003300";
+
+var currentHora=null;
+
+//-------------------------------------------------------------------
+function ItemSeleccionado(o){
+ return(o.style.backgroundColor==azul)
+}
+//-------------------------------------------------------------------
+function Resalta(o){
+ o.style.color=blanco
+ o.style.backgroundColor=azul
+}
+//-------------------------------------------------------------------
+function Desmarca(o){
+ o.style.color=colororiginal
+ o.style.backgroundColor=fondooriginal
+
+}
+//-------------------------------------------------------------------
+function sobre(o){
+ if (currentHora!=null)
+ Desmarca(currentHora)
+ Resalta(o);
+ currentHora=o;
+}
+//-------------------------------------------------------------------
+function fuera(o){
+ Desmarca(o);
+}
+//-------------------------------------------------------------------
+function clic(o){
+ window.opener.anade_hora(o.id)
+ self.close()
+}
+//_________________________________________________________
+function cerrar_ventana(){
+ self.close()
+}
+//_________________________________________________________
+function borrar_fecha(){
+ window.opener.anade_hora("")
+ self.close()
+}
+//_________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+ <?
+$micalendario=new Calendario("tabla_meses");
+echo '<DIV style="position:absolute;top:5px;left:10px">';
+echo '<img style="cursor:hand" SRC="../images/iconos/salir_on.gif" onclick="cerrar_ventana()">';
+echo '</DIV>';
+
+echo '<DIV style="position:absolute;top:25px;left:5px">';
+echo '<FORM action="calendario_ventana.php" name="fdatos" method="post">';
+echo '<table align=center border=0>';
+echo '<tr>';
+echo '<td colspan=2 valign=top width=100>'.$micalendario->Horas_Completas().'</td>';
+echo '</tr>';
+echo '</table>';
+echo '</FORM>';
+echo '</DIV>';
+
+echo '<SCRIPT language="JavaScript">';
+echo ' var o=document.getElementById("'.$hora.'");';
+echo ' if(o!=null) sobre(o);';
+echo '</SCRIPT>';
+?>
+
+</body>
+</html>
+
+
diff --git a/admin/WebConsole/varios/horario_ventana.php b/admin/WebConsole/varios/horario_ventana.php
new file mode 100644
index 00000000..2ca7357d
--- /dev/null
+++ b/admin/WebConsole/varios/horario_ventana.php
@@ -0,0 +1,95 @@
+<?
+include_once("../includes/ctrlacc.php");
+include_once("../idiomas/php/".$idioma."/clases/Almanaque_".$idioma.".php");
+$hora="";
+if (isset($_GET["hora"])) $hora=$_GET["hora"];
+if($hora=="") $hora="8:00";
+?>
+<HTML>
+<TITLE>Administración 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">
+
+var rojo="#cc3366"
+var negro="#ffffff"
+var verde="lightseagreen"
+var gris="#bbbcb9"
+var blanco="#eeeeee"
+var azul= "#0000cc"
+var fondooriginal="#EEEECC";
+var colororiginal="#003300";
+
+var currentHora=null;
+
+//-------------------------------------------------------------------
+function ItemSeleccionado(o){
+ return(o.style.backgroundColor==azul)
+}
+//-------------------------------------------------------------------
+function Resalta(o){
+ o.style.color=blanco
+ o.style.backgroundColor=azul
+}
+//-------------------------------------------------------------------
+function Desmarca(o){
+ o.style.color=colororiginal
+ o.style.backgroundColor=fondooriginal
+
+}
+//-------------------------------------------------------------------
+function sobre(o){
+ if (currentHora!=null)
+ Desmarca(currentHora)
+ Resalta(o);
+ currentHora=o;
+}
+//-------------------------------------------------------------------
+function fuera(o){
+ Desmarca(o);
+}
+//-------------------------------------------------------------------
+function clic(o){
+ window.opener.anade_hora(o.id)
+ self.close()
+}
+//_________________________________________________________
+function cerrar_ventana(){
+ self.close()
+}
+//_________________________________________________________
+function borrar_fecha(){
+ window.opener.anade_hora("")
+ self.close()
+}
+//_________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+ <?
+$mialmanaque=new Almanaque("tabla_meses");
+echo '<DIV style="position:absolute;top:5px;left:10px">';
+echo '<img style="cursor:hand" SRC="../images/iconos/salir_on.gif" onclick="cerrar_ventana()">';
+echo '</DIV>';
+
+echo '<DIV style="position:absolute;top:25px;left:5px">';
+echo '<FORM action="calendario_ventana.php" name="fdatos" method="post">';
+echo '<table align=center border=0>';
+echo '<tr>';
+echo '<td colspan=2 valign=top width=100>'.$mialmanaque->Horas_Completas().'</td>';
+echo '</tr>';
+echo '</table>';
+echo '</FORM>';
+echo '</DIV>';
+
+echo '<SCRIPT language="JavaScript">';
+echo ' var o=document.getElementById("'.$hora.'");';
+echo ' if(o!=null) sobre(o);';
+echo '</SCRIPT>';
+?>
+
+</body>
+</html>
+
+
diff --git a/admin/WebConsole/varios/incluiracciones.php b/admin/WebConsole/varios/incluiracciones.php
new file mode 100644
index 00000000..c9ed216d
--- /dev/null
+++ b/admin/WebConsole/varios/incluiracciones.php
@@ -0,0 +1,265 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2003-2004
+// Fecha Última modificación: Febrero-2005
+// Nombre del fichero: accionmenu.php
+// Descripción :
+// Administra la inclusión de items en menus (procedimientos,tareas y trabajos de un determinado Centro)
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/opciones.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/HTMLSELECT.php");
+include_once("../includes/HTMLCTESELECT.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/accionmenu_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idtipoaccion=0;
+$descripcionaccion="";
+$tipoaccion=0;
+
+$idmenu=0;
+$descripcionmenu="";
+
+if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"];
+if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"];
+if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"];
+
+if (isset($_GET["idmenu"])) $idmenu=$_GET["idmenu"];
+if (isset($_GET["descripcionmenu"])) $descripcionmenu=$_GET["descripcionmenu"];
+
+if(empty($idmenu)) $op=1; else $op=2; // Viene de "acciones" o de "menus"
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexi�n con servidor B.D.
+//________________________________________________________________________________________________________
+if($op==1){ // Viene de "acciones"
+ switch($tipoaccion){
+ case $EJECUCION_PROCEDIMIENTO :
+ $urlimg='../images/iconos/procedimiento.gif';
+ $litacion=$TbMsg[2];
+ $litdescri=$descripcionaccion;
+ break;
+ case $EJECUCION_TAREA :
+ $urlimg='../images/iconos/tareas.gif';
+ $litacion=$TbMsg[3];
+ $litdescri=$descripcionaccion;
+ break;
+ }
+}
+else{ // Viene de menus
+ $urlimg='../images/iconos/menu.gif';
+ $litacion=$TbMsg[4];
+ $litdescri=$descripcionmenu;
+}
+//________________________________________________________________________________________________________
+ ?>
+ <HTML>
+ <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/opciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/accionmenu.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/util.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/accionmenu_'.$idioma.'.js"></SCRIPT>'?>
+ </HEAD>
+ <BODY>
+ <FORM name="fdatos">
+ <input type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <input type=hidden value="<? echo $idtipoaccion?>" id=idtipoaccion>
+ <input type=hidden value="<? echo $tipoaccion?>" id=tipoaccion>
+ </FORM>
+ <P align=center class=cabeceras>
+ <? echo $litcabecera ?><br>
+ <span align=center class=subcabeceras><?echo $TbMsg[1]?></span>&nbsp;<img src="../images/iconos/menus.gif"><br><br>
+ <span align=center class=presentaciones>
+ <img src="<? echo $urlimg?>">&nbsp;&nbsp;&nbsp;
+ <u><? echo $litacion?></u>:&nbsp;<? echo $litdescri?></span>
+ </P>
+ <DIV align=center id="Layer_items">
+ <TABLE width="90%" class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TR id="TR_menus">
+ <TH>&nbsp;</TH>
+
+ <?
+ if($op==1) // Si viene desde "acciones" ...
+ echo '<TH>'.$TbMsg[9].'</TH>';
+ else
+ echo '<TH align=center>'.$TbMsg[15].'</TH>';
+ ?>
+ <TH><?echo $TbMsg[10]?></TH>
+ <TH><?echo $TbMsg[11]?></TH>
+ <TH><?echo $TbMsg[12]?></TH>
+ <TH><?echo $TbMsg[13]?></TH>
+ <?
+ if($op==2){ // Si viene desde "menus" ...
+ echo '<TH style="visibility:hidden">&nbsp;</TH>';
+ echo '<TH style="visibility:hidden">&nbsp;</TH>';
+ }
+ ?>
+ </TR>
+<?
+//________________________________________________________________________________________________________
+
+if(!empty($idmenu)) // Viene de la página de menús
+{
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ acciones_menus.idtipoaccion,acciones_menus.tipoaccion,
+ acciones_menus.tipoitem,acciones_menus.idurlimg,
+ acciones_menus.descripitem,acciones_menus.orden
+ FROM menus
+ INNER JOIN acciones_menus ON acciones_menus.idmenu=menus.idmenu
+ WHERE acciones_menus.idmenu=".$idmenu."
+ ORDER BY acciones_menus.tipoitem,menus.descripcion";
+
+ pintaMenus($cmd,$idmenu,0,2);
+}
+else
+{
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ acciones_menus.idtipoaccion,acciones_menus.tipoaccion,
+ acciones_menus.tipoitem,acciones_menus.idurlimg,
+ acciones_menus.descripitem,acciones_menus.orden
+ FROM menus
+ INNER JOIN acciones_menus ON acciones_menus.idmenu=menus.idmenu
+ WHERE (acciones_menus.idtipoaccion=".$idtipoaccion." AND acciones_menus.tipoaccion=".$tipoaccion.")
+ ORDER BY menus.descripcion";
+
+ $idmenus=pintaMenus($cmd,$idtipoaccion,$tipoaccion,1)."0"; // Añade el identificador 0
+ $cmd->texto="SELECT menus.idmenu,menus.descripcion as descripcionmenu,
+ 0 as idtipoaccion,0 as tipoaccion,
+ 0 as tipoitem,'' as idurlimg,
+ '' as descripitem,0 as orden
+ FROM menus
+ WHERE idmenu NOT IN (".$idmenus.")
+ ORDER BY menus.descripcion";
+
+ pintaMenus($cmd,$idtipoaccion,$tipoaccion,1);
+}
+//________________________________________________________________________________________________________
+?>
+ </TABLE>
+ </DIV>
+ <BR>
+<TABLE align=center>
+ <TR>
+ <TD><A href="#botones"><IMG border=0 src="../images/boton_confirmar.gif" onclick="javascript:confirmar(<? echo $op?>)" ></A></TD>
+ </TR>
+</TABLE>
+ <BR>
+ <DIV id="Layer_nota" align=center>
+ <SPAN align=center class=notas><I><? echo$TbMsg[14]?></I></SPAN>
+ </DIV>
+</FORM>
+
+
+</BODY>
+</HTML>
+<?
+//________________________________________________________________________________________________________
+// Descripción:
+// Muestra la tabla de items a incluir en menús
+// Parámetros:
+// $cmd: Objeto comando (Operativo)
+// $identificador: Identificador de la acción si viene de acciones, identificador del menu si viene de "menus"
+// $tipoaccion: Tipo de acción (Procedimiento o Tarea
+// $op: Indica si esta página se ejecuta desde "acciones" o desde "menus"
+// 1: desde acciones
+// 2: desde menus
+//________________________________________________________________________________________________________
+
+function pintaMenus($cmd,$identificador,$tipoaccion,$op)
+{
+ global $TbMsg;
+ global $ITEM_PUBLICO;
+ global $ITEM_PRIVADO;
+ global $op_modificacion;
+ global $descripcionaccion;
+ global $EJECUCION_PROCEDIMIENTO;
+ global $EJECUCION_TAREA;
+
+ // echo $cmd->texto;
+ $idmenus=""; // Identificadores de menus para segunda consulta
+ $litcabecera=$TbMsg[0];
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if(!$rs->Abrir())
+ Header('Location: '.$pagerror.'?herror=3'); // Error de lectura
+
+ while (!$rs->EOF){
+ $idmenus.=$rs->campos["idmenu"].",";
+ echo '<TR>';
+ /* Ckeckbox para incluir o eliminar items en el menú */
+ echo '<TD align=center>';
+ echo '<INPUT id='.$rs->campos["idmenu"].' type=checkbox ';
+ switch($op){
+ case 1: // Se ejecuta desde "acciones"
+ if($rs->campos["idtipoaccion"]==$identificador && $rs->campos["tipoaccion"]==$tipoaccion)
+ echo ' value="1" checked ';
+ else
+ echo ' value="0"';
+ break;
+ case 2: // Se ejecuta desde "menus"
+ if($rs->campos["idmenu"]==$identificador)
+ echo ' value="1" checked ';
+ else
+ echo ' value="0"';
+ break;
+ }
+ echo '></INPUT></TD>';
+
+ /* Nombre del menú si viene de "acciones" o tipo de acción si viene desde "menus" */
+ if($op==1)
+ echo '<TD align=center>&nbsp;'.$rs->campos["descripcionmenu"].'</TD>';
+ else{
+ switch($rs->campos["tipoaccion"]){
+ case $EJECUCION_PROCEDIMIENTO :
+ $urlimg='../images/iconos/procedimiento.gif';
+ break;
+ case $EJECUCION_TAREA :
+ $urlimg='../images/iconos/tareas.gif';
+ break;
+ }
+ echo '<TD align=center><IMG src="'.$urlimg.'"></TD>';
+ }
+
+ /* Tipo de item */
+ $parametros=$ITEM_PUBLICO."=".$TbMsg[5]."".chr(13);
+ $parametros.=$ITEM_PRIVADO."=".$TbMsg[6]."";
+ echo '<TD align=center>'.HTMLCTESELECT($parametros,"tipositems-".$rs->campos["idmenu"],"estilodesple","",$rs->campos["tipoitem"],70).'</TD>';
+
+ /* Imagen del item */
+ echo '<TD align=center>';
+ echo HTMLSELECT($cmd,0,'iconos',$rs->campos["idurlimg"],'idicono','descripcion',160,"","","idtipoicono=2");
+ echo '</TD>';
+
+ /* Descripción del item */
+ $descripitem=$rs->campos["descripitem"];
+ if(empty($descripitem)) $descripitem=$descripcionaccion;
+ echo '<TD align=center><INPUT class="formulariodatos" id=descripitem-'.$rs->campos["idmenu"].'
+ style="WIDTH:300px" type=text value="'.$descripitem.'"></INPUT></TD>';
+ // Orden del item del item
+ $orden=$rs->campos["orden"];
+ if(empty($orden)) $orden=1;
+ echo '<TD align=center><INPUT class="formulariodatos" id=orden-'.$rs->campos["idmenu"].'
+ style="WIDTH:20px" type=text value="'.$orden.'"></INPUT></TD>';
+
+ if($op==2){ // Si viene desde "menus" ...
+ echo '<TD style="visibility:hidden" align=center>'.$rs->campos["idtipoaccion"].'</TD>';
+ echo '<TD style="visibility:hidden" align=center>'.$rs->campos["tipoaccion"].'</TD>';
+ }
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($idmenus); // retorna identificadores de menus implicados en la consulta
+}
+?>
+
diff --git a/admin/WebConsole/varios/inclusionacciones.php b/admin/WebConsole/varios/inclusionacciones.php
new file mode 100644
index 00000000..24d26517
--- /dev/null
+++ b/admin/WebConsole/varios/inclusionacciones.php
@@ -0,0 +1,288 @@
+<?
+//// ******************************************************************************************************
+// Aplicacin WEB: ogAdmWebCon
+// Autor: Jos Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creacin: Ao 2009-2010
+// Fecha ltima modificacin: Agosto-2010
+// Nombre del fichero: inclusionacciones.php
+// Descripcin :
+// Permite incorporar procedimientos y comandos a tareas y tareas ya existentes
+// *******************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/inclusionacciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+
+$idtipoaccion=0;
+$tipoaccion=0;
+$descripcionaccion="";
+$ambito="";
+
+if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"];
+if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"];
+if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"];
+if (isset($_GET["ambito"])) $ambito=$_GET["ambito"];
+
+//________________________________________________________________________________________________________
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexin con servidor B.D.
+
+$tbParametros=CreaTablaParametros($cmd); // Crea tabla en memmoria para acceder a detalles de comandos
+//________________________________________________________________________________________________________
+?>
+<HTML>
+ <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="../clases/jscripts/MenuContextual.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/inclusionacciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../idiomas/javascripts/<? echo $idioma?>/inclusionacciones_<? echo $idioma?>.js"></SCRIPT>
+ </HEAD>
+ <BODY>
+ <?
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ $urlimg="../images/iconos/procedimiento.gif";
+ $literal=$TbMsg[0];
+ $litcab=$TbMsg[2];
+ break;
+ case $AMBITO_TAREAS:
+ $urlimg="../images/iconos/tareas.gif";
+ $literal=$TbMsg[1];
+ $litcab=$TbMsg[3];
+ break;
+ }
+ ?>
+ <P align=center class=cabeceras><IMG src="../images/iconos/acciones.gif">&nbsp;<?echo $literal?><BR>
+ <SPAN align=center class=subcabeceras><?echo $descripcionaccion?></SPAN>&nbsp;<IMG src="<? echo $urlimg?>"></P>
+
+ <TABLE align=center border=0>
+ <TR>
+ <?
+ $conTR=0; // Contador de lineas (Identificadores de las filas)
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ $litmsg=$TbMsg[5];
+ listaProcedientos($cmd,$idtipoaccion);
+ break;
+ case $AMBITO_TAREAS:
+ $litmsg=$TbMsg[6];
+ listaTareas($cmd,$idtipoaccion,$ambito);
+ break;
+ }
+ ?>
+ </TR>
+ </TABLE>
+ <FORM name="fdatos">
+ <INPUT type="hidden" name="conTR" value="<?echo $conTR?>">
+ <INPUT type="hidden" name="tipoaccion" value="<?echo $tipoaccion?>">
+ <INPUT type="hidden" name="idtipoaccion" value="<?echo $idtipoaccion?>">
+ </FORM>
+ </BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+ function listaProcedientos($cmd,$idprocedimiento)
+ {
+ global $AMBITO_PROCEDIMIENTOS;
+ global $TbMsg;
+
+ $cmd->texto="SELECT procedimientos_acciones.idprocedimientoaccion as identificador,procedimientos_acciones.orden,
+ procedimientos_acciones.parametros,procedimientos_acciones.procedimientoid,
+ comandos.idcomando,comandos.descripcion as comando,
+ procedimientostemp.descripcion as procedimiento
+ FROM procedimientos
+ INNER JOIN procedimientos_acciones ON procedimientos_acciones.idprocedimiento=procedimientos.idprocedimiento
+ LEFT OUTER JOIN comandos ON comandos.idcomando=procedimientos_acciones.idcomando
+ LEFT OUTER JOIN procedimientos as procedimientostemp
+ ON procedimientostemp.idprocedimiento=procedimientos_acciones.procedimientoid
+ WHERE procedimientos.idprocedimiento=".$idprocedimiento."
+ ORDER by procedimientos_acciones.orden";
+
+ //echo $cmd->texto;
+
+ $idprocedimientos=escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,true,7);
+
+ //$idprocedimientos.=$idprocedimiento; // Excluye a l mismo de la segunda ronda
+ $idprocedimientos=$idprocedimiento; // Excluye slo a l para evitar dead-lock
+ $cmd->texto="SELECT idprocedimiento as identificador, 0 as orden, 0 as idcomando,descripcion as procedimiento
+ FROM procedimientos
+ WHERE idprocedimiento NOT IN (".$idprocedimientos.")
+ ORDER BY descripcion";
+
+ escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8);
+ }
+// *************************************************************************************************************************************************
+ function listaTareas($cmd,$idtarea,$ambito)
+ {
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_TAREAS;
+ global $AMBITO_TAREAS;
+ global $TbMsg;
+
+ /* Contenido de tarea */
+ $cmd->texto="SELECT tareas.ambito,tareas.idambito,tareas_acciones.idtareaaccion as identificador,tareas_acciones.orden,
+ tareas_acciones.tareaid,procedimientos.idprocedimiento,procedimientos.descripcion as procedimiento,
+ tareastemp.descripcion as tarea
+ FROM tareas
+ INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
+ LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=tareas_acciones.idprocedimiento
+ LEFT OUTER JOIN tareas as tareastemp
+ ON tareastemp.idtarea=tareas_acciones.tareaid
+ WHERE tareas.idtarea=".$idtarea."
+ ORDER by tareas_acciones.orden";
+
+ //echo $cmd->texto;
+ $idtareas=escribeAcciones($cmd,$AMBITO_TAREAS,true,7);
+
+ /* Procedimientos disponibles */
+ if(!empty($ambito)){
+ $cmd->texto="SELECT idprocedimiento as identificador, 0 as orden, 0 as idcomando,descripcion as procedimiento
+ FROM procedimientos
+ ORDER BY descripcion";
+
+ escribeAcciones($cmd,$AMBITO_PROCEDIMIENTOS,false,8);
+ }
+
+ /* Tareas disponibles */
+ //$idtareas.=$idtarea; // Excluye a ella misma de la segunda ronda
+ $idtareas=$idtarea; // Excluye slo a ella para evitar dead-lock
+ $cmd->texto="SELECT idtarea as identificador, 0 as orden, 0 as idprocedimiento, descripcion as tarea
+ FROM tareas
+ WHERE idtarea NOT IN (".$idtareas.")
+ ORDER BY descripcion";
+ escribeAcciones($cmd,$AMBITO_TAREAS,false,9);
+ }
+//________________________________________________________________________________________________________
+
+ function escribeAcciones($cmd,$tipoaccion,$sw,$imsg)
+ {
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_TAREAS;
+ global $AMBITO_COMANDOS;
+ global $conTR;
+ global $TbMsg;
+
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return("");
+
+ $idacciones="";
+
+ echo '<TD valign=top>';
+ if($rs->EOF && !sw){
+ echo '</P></TD>';
+ return;
+ }
+
+ echo '<P align=center><SPAN class=presentaciones><B>'.$TbMsg[$imsg].'</B></SPAN></BR>';
+ echo ' <TABLE align=center class="tabla_listados" cellspacing=1 cellpadding=0>';
+ escribeCabecera();
+ while (!$rs->EOF){
+ echo '<TR id="TR-'.$conTR.'" value="'.$rs->campos["identificador"].'">';
+ $conTR++;
+ echo '<TD align=center><INPUT type=checkbox';
+ if($sw)
+ echo ' value="1" checked '; // Lo marca como seleccionado (1. ronda)
+ else
+ echo ' value="0"';
+ echo '></TD>';
+ echo '<TD align=center ><INPUT class="formulariodatos" style="WIDTH:30px"
+ type="text" value="'.$rs->campos["orden"].'" id="'.$rs->campos["orden"].'"></TD>';
+
+ // Descripcion de la accin
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ if(!empty($rs->campos["idcomando"])){
+ $urlimg="../images/iconos/comandos.gif";
+ $accion=$rs->campos["comando"];
+ $value=$AMBITO_COMANDOS;
+ }
+ else{
+ $urlimg="../images/iconos/procedimiento.gif";
+ $accion=$rs->campos["procedimiento"];
+ $idacciones.=$rs->campos["procedimientoid"].",";
+ $value=$AMBITO_PROCEDIMIENTOS;
+ }
+ break;
+ case $AMBITO_TAREAS:
+ if(!empty($rs->campos["idprocedimiento"])){
+ $urlimg="../images/iconos/procedimiento.gif";
+ $accion=$rs->campos["procedimiento"];
+ $value=$AMBITO_PROCEDIMIENTOS;
+ }
+ else{
+ $urlimg="../images/iconos/tareas.gif";
+ $accion=$rs->campos["tarea"];
+ $idacciones.=$rs->campos["tareaid"].",";
+ $value=$AMBITO_TAREAS;
+ }
+ break;
+ }
+ echo '<TD align=center><IMG style="cursor:pointer" src="'.$urlimg.'" value="'.$value.'"></TD>';
+ echo '<TD>'.$accion.'</TD>';
+ // Orden del item del item
+ echo '</TR>';
+
+ /* Muestra parmetros de los comandos (Se hace en Informacin)
+ if($tipoaccion==$AMBITO_PROCEDIMIENTOS){
+ if(!empty($rs->campos["idcomando"])){ // Se trata de un comando, se muestran parmetros)
+ $htmlprm=escribeParametros($rs->campos["parametros"]);
+ if(!empty($htmlprm)){
+ echo '<TR>';
+ echo '<TD>&nbsp;</TD>';
+ echo '<TD colspan=3>'.escribeParametros($rs->campos["parametros"]).'</TD>';
+ }
+ }
+ }
+ */
+ $rs->Siguiente();
+ }
+ echo '</TABLE>';
+ if($sw) escribePie();
+ echo '</P></TD>';
+ $rs->Cerrar();
+ $idacciones.="0"; // Para evitar el ltimo ";"
+ return($idacciones);
+ }
+//________________________________________________________________________________________________________
+
+ function escribeCabecera()
+ {
+ global $TbMsg;
+ global $litcab;
+
+ echo '<TR height=20>
+ <TH>&nbsp;</TH>
+ <TH>&nbsp;'.$TbMsg[4].'&nbsp;</TH>
+ <TH>T</TH>
+ <TH>&nbsp;'.$litcab.'</TH>
+ </TR>';
+ }
+//________________________________________________________________________________________________________
+
+ function escribePie()
+ {
+ global $litmsg;
+ global $op;
+
+ echo '<BR><TABLE align=center>
+ <TR>
+ <TD><A href="#botones"><IMG border=0 src="../images/boton_confirmar.gif"
+ onclick="javascript:confirmar('.$op.')"></A></TD>
+ </TR>
+ </TABLE>
+ <BR>
+ <DIV id="Layer_nota" align=center>
+ <SPAN align=center class=notas><I>'.$litmsg.'</I></SPAN>
+ </DIV>';
+ }
+?> \ No newline at end of file
diff --git a/admin/WebConsole/varios/incorporaordenadores.php b/admin/WebConsole/varios/incorporaordenadores.php
new file mode 100644
index 00000000..3e2ae333
--- /dev/null
+++ b/admin/WebConsole/varios/incorporaordenadores.php
@@ -0,0 +1,183 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: incorporaordenadores.php
+// Descripción :
+// Da de alta en la base de datos nuevos ordenadores desde un fichero de configuración dhcp
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/incorporaordenadores_".$idioma.".php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//___________________________________________________________________________________________________
+$swf=0;
+$idaula=0;
+$nombreaula="";
+$contenido="";
+
+if (isset($_GET["idaula"])) $idaula=$_GET["idaula"];
+if (isset($_GET["nombreaula"])) $nombreaula=$_GET["nombreaula"];
+
+if (isset($_POST["swf"])) $swf=$_POST["swf"]; // Recoge parametros
+if (isset($_POST["contenido"])) $contenido=$_POST["contenido"];
+if (isset($_POST["idaula"])) $idaula=$_POST["idaula"];
+if (isset($_POST["nombreaula"])) $nombreaula=$_POST["nombreaula"];
+
+$resul=0;
+$ordDup="";
+
+if(!empty($contenido)){ // Se ha introducido contenido en lugar de fichero
+ $resul=procesaLineas($cmd,$idaula,$contenido);
+}
+//___________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<BODY>
+<FORM action="incorporaordenadores.php" method="post" name="fdatos">
+ <INPUT type=hidden name=swf value=1>
+ <INPUT type=hidden name=idaula value=<?echo $idaula?>>
+ <INPUT type=hidden name=nombreaula value=<?echo $nombreaula?>>
+ <BR>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><IMG src="../images/iconos/aula.gif">&nbsp;<?echo $TbMsg[1].":".$nombreaula ?></SPAN></P>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+<table align=center class=tabla_datos border="0" cellpadding="0" cellspacing="1">
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+ <tr>
+ <th>&nbsp;<? echo $TbMsg[2]?>&nbsp;</th>
+ <td><textarea class="cajatexto" name="contenido" cols="70" rows="18"></textarea></td></tr>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+</TABLE>
+ </FORM>
+<TABLE align=center>
+ <TR>
+ <TD><IMG src="../images/boton_cancelar.gif" style="cursor:hand" onclick=""></TD>
+ <TD width=20></TD>
+ <TD><IMG src="../images/boton_confirmar.gif" style="cursor:hand" onclick="javascript:document.fdatos.submit();"></TD>
+ </TR>
+</TABLE>
+<?
+//________________________________________________________________________________________________________
+// Mensaje con el resultado del proceso
+echo '<SCRIPT LANGUAGE="javascript">';
+if (!empty($resul))
+ echo " alert('".$TbMsg[$resul]."');";
+if (!empty($ordDup))
+ echo " alert('".$TbMsg[5]."\\n".$ordDup."');";
+echo '</SCRIPT>';
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function procesaLineas($cmd,$idaula,$buffer)
+{
+ $nombre="";
+ $MAC="";
+ $IP="";
+ $sw=false;
+ $posa=-1;
+
+ while($posa<strlen($buffer)){
+ if ('host'==substr($buffer,$posa,4)){
+ $posa=$posa+4;
+ $posb=$posa;
+ while( substr($buffer,$posb,1)!="{") $posb++;
+ $nombre=substr($buffer,$posa,$posb-$posa);
+ }
+ if ('hardware ethernet'==substr($buffer,$posa,17)){
+ $posa=$posa+17;
+ $posb=$posa;
+ while( substr($buffer,$posb,1)!=";") $posb++;
+ $MAC=substr($buffer,$posa,$posb-$posa);
+ }
+
+ if ('fixed-address'==substr($buffer,$posa,13)){
+ $posa=$posa+13;
+ $posb=$posa;
+ while( substr($buffer,$posb,1)!=";") $posb++;
+ $IP=substr($buffer,$posa,$posb-$posa);
+ }
+ if(!empty($nombre) && !empty($MAC) && !empty($IP)){
+ if(!Inserta($cmd,$idaula,$nombre,$MAC,$IP)) return(4);
+ $sw=true;
+ $nombre="";
+ $MAC="";
+ $IP="";
+ $resul=true;
+ }
+ $posa++;
+ }
+ if($sw)
+ return(3);
+ else
+ return(4);
+
+}
+//________________________________________________________________________________________________________
+function Inserta($cmd,$idaula,$nombre,$lamac,$laip)
+{
+ global $ordDup;
+
+ $grupoid=0;
+ $nombreordenador=trim($nombre);
+ $ip=trim($laip);
+ $auxmac=trim($lamac);
+ $mac="";
+ for($i=0;$i<strlen($auxmac);$i++)
+ if(substr($auxmac,$i,1)!=":")
+ $mac.=substr($auxmac,$i,1);
+
+ if(existeOrdenador($cmd,$nombreordenador,$mac,$ip)){
+ $ordDup.="Nombre=".$nombre.",Mac=".$mac.",Dirección ip=".$ip." \\n";
+ return(true);
+ }
+ $idperfilhard=0;
+ $idrepositorio=0;
+ $idconfiguracion=0;
+ $cmd->CreaParametro("@grupoid",$grupoid,1);
+ $cmd->CreaParametro("@idaula",$idaula,1);
+ $cmd->CreaParametro("@nombreordenador",$nombreordenador,0);
+ $cmd->CreaParametro("@ip",$ip,0);
+ $cmd->CreaParametro("@mac",$mac,0);
+ $cmd->CreaParametro("@idperfilhard",$idperfilhard,1);
+ $cmd->CreaParametro("@idrepositorio",$idrepositorio,1);
+ $cmd->CreaParametro("@idconfiguracion",$idconfiguracion,1);
+
+ $cmd->texto="INSERT INTO ordenadores(nombreordenador,ip,mac,idperfilhard,idrepositorio,idaula,grupoid) VALUES (@nombreordenador,@ip,@mac,@idperfilhard,@idrepositorio,@idaula,@grupoid)";
+ $resul=$cmd->Ejecutar();
+ return($resul);
+}
+//________________________________________________________________________________________________________
+// Recupera los datos de un ordenador
+// Parametros:
+// - cmd: Una comando ya operativo (con conexión abierta)
+// - ip: Dirección IP
+//________________________________________________________________________________________________________
+function existeOrdenador($cmd,$nombre,$MAC,$IP){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM ordenadores WHERE nombreordenador='".$nombre."' OR mac='".$MAC."' OR ip='".$IP."'";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $rs->Primero();
+ if (!$rs->EOF){
+ $rs->Cerrar();
+ return(true);
+ }
+ else
+ return(false);
+}
+?>
diff --git a/admin/WebConsole/varios/incrementalcomponente_soft.php b/admin/WebConsole/varios/incrementalcomponente_soft.php
new file mode 100644
index 00000000..8b38bfd8
--- /dev/null
+++ b/admin/WebConsole/varios/incrementalcomponente_soft.php
@@ -0,0 +1,105 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: incrementalcomponente_soft.php
+// Descripción :
+// Administra los componentes software incluidos en un software incremental
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/incrementalcomponente_soft_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idsoftincremental=0;
+$descripcionincremental="";
+if (isset($_GET["idsoftincremental"])) $idsoftincremental=$_GET["idsoftincremental"]; // Recoge parametros
+if (isset($_GET["descripcionincremental"])) $descripcionincremental=$_GET["descripcionincremental"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/incrementalcomponente_soft.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/incrementalcomponente_soft_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <INPUT type=hidden value="<? echo $idsoftincremental?>" id=idsoftincremental>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"></P>
+ <BR>
+ <DIV align=center id="Layer_componentes">
+ <SPAN align=center class=presentaciones><B><U><?echo $TbMsg[2]?></U>:&nbsp;<? echo $descripcionincremental?></B></SPAN></P>
+ <TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TR>
+ <TH>&nbsp</TH>
+ <TH>T</TH>
+ <TH><?echo $TbMsg[3]?></TH>
+ </TR>
+ <?
+ $rs=new Recordset;
+ $cmd->texto='SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM softwares INNER JOIN softincremental_softwares ON softwares.idsoftware=softincremental_softwares.idsoftware INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware WHERE softincremental_softwares.idsoftincremental='.$idsoftincremental.' ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ $A_W=" WHERE ";
+ $strex="";
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idsoftware"].',this)" checked ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $strex.= $A_W."softwares.idsoftware<>".$rs->campos["idsoftware"];
+ $A_W=" AND ";
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ if(empty($strex))
+ $strex="WHERE";
+ else
+ $strex.= $A_W;
+// Para que no salga la opción de elegir un sistema operativo
+// $cmd->texto='SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM softwares INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware '.$strex.' softwares.idtiposoftware<>1 AND softwares.idcentro='.$idcentro.' ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion';
+
+// Se deja elegir componente que sea un sistema operativo sólo para para incluir en el desplegable, en la creación de software incremental
+ $cmd->texto='SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM softwares INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware '.$strex.' softwares.idcentro='.$idcentro.' ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idsoftware"].',this)" ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ </DIV>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[4]?></I></SPAN>
+ </DIV>
+</FORM>
+<?
+//________________________________________________________________________________________________________
+include_once("../includes/iframecomun.php");
+//________________________________________________________________________________________________________
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/informacion_acciones.php b/admin/WebConsole/varios/informacion_acciones.php
new file mode 100644
index 00000000..a2d5949a
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_acciones.php
@@ -0,0 +1,218 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_acciones.php
+// Descripción :
+// Muestra los comandos que forman parte de un procedimiento y sus valores
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/TomaDato.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_acciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+
+$tipoaccion=0;
+$idtipoaccion=0;
+$descripcionaccion="";
+
+if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"];
+if (isset($_GET["idtipoaccion"])) $idtipoaccion=$_GET["idtipoaccion"];
+if (isset($_GET["descripcionaccion"])) $descripcionaccion=$_GET["descripcionaccion"];
+//________________________________________________________________________________________________________
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+
+
+$tbParametros=CreaTablaParametros($cmd); // Crea tabla en memmoria para acceder a detalles de comandos
+$cadenaXML="";
+CreaArbol($cmd,$tipoaccion,$idtipoaccion,$descripcionaccion); // Crea el arbol XML
+//________________________________________________________________________________________________________
+
+// Creación del árbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[5];
+$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <?
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ $urlimg="../images/iconos/procedimiento.gif";
+ $litsub=$TbMsg[2];
+ $litcab=$TbMsg[1];
+ break;
+ case $AMBITO_TAREAS:
+ $urlimg="../images/iconos/tareas.gif";
+ $litsub=$TbMsg[4];
+ $litcab=$TbMsg[3];
+ 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?>
+</BODY>
+</HTML>
+<?
+/********************************************************************************************************
+ Devuelve una cadena con formato XML de toda la Información de los procedimientos o tareas
+ softwares
+ Parametros:
+ - cmd: Un comando ya operativo ( con conexiónabierta)
+ - idperfil: El identificador del perfil software
+________________________________________________________________________________________________________*/
+
+function CreaArbol($cmd,$tipoaccion,$idtipoaccion,$descripcionaccion)
+{
+ global $AMBITO_PROCEDIMIENTOS;
+ global $AMBITO_TAREAS;
+
+ switch($tipoaccion){
+ case $AMBITO_PROCEDIMIENTOS:
+ SubarbolXML_procedimientos($cmd,$idtipoaccion);
+ break;
+ case $AMBITO_TAREAS:
+ SubarbolXML_Tareas($cmd,$idtipoaccion);
+ break;
+ }
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Tareas($cmd,$idtarea)
+{
+ global $cadenaXML;
+
+ $cmd->texto="SELECT tareas.descripcion as descritarea,procedimientos.descripcion as descriprocedimiento,
+ tareas_acciones.orden,tareas_acciones.idprocedimiento,tareas_acciones.tareaid,
+ tareas.ambito,tareas.idambito,tareas.restrambito
+ FROM tareas
+ INNER JOIN tareas_acciones ON tareas_acciones.idtarea=tareas.idtarea
+ LEFT OUTER JOIN procedimientos ON procedimientos.idprocedimiento=tareas_acciones.idprocedimiento
+ WHERE tareas_acciones.idtarea=".$idtarea."
+ ORDER BY tareas_acciones.orden";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $cadenaXML.='<TAREA';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descritarea"].'"';
+ $cadenaXML.='>';
+ while (!$rs->EOF){
+ if($rs->campos["tareaid"]>0) // Tarea recursiva
+ SubarbolXML_Tareas($cmd,$rs->campos["tareaid"]);
+ else{
+ SubarbolXML_procedimientos($cmd,$rs->campos["idprocedimiento"]);
+ }
+ $rs->Siguiente();
+ }
+ $cadenaXML.='</TAREA>';
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_procedimientos($cmd,$idprocedimiento)
+{
+ global $cadenaXML;
+
+ $cmd->texto="SELECT procedimientos.descripcion as descriprocedimiento,procedimientos_acciones.idcomando,
+ comandos.descripcion as descricomando,comandos.visuparametros,procedimientos_acciones.procedimientoid,
+ procedimientos_acciones.parametros
+ FROM procedimientos
+ INNER JOIN procedimientos_acciones ON procedimientos_acciones.idprocedimiento=procedimientos.idprocedimiento
+ LEFT OUTER JOIN comandos ON comandos.idcomando=procedimientos_acciones.idcomando
+ WHERE procedimientos.idprocedimiento=".$idprocedimiento."
+ ORDER BY orden";
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $cadenaXML.='<PROCEDIMIENTO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/procedimiento.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descriprocedimiento"].'"';
+ $cadenaXML.='>';
+ while (!$rs->EOF){
+ if($rs->campos["procedimientoid"]>0) // Procedimiento recursivo
+ SubarbolXML_procedimientos($cmd,$rs->campos["procedimientoid"]);
+ else{
+ SubarbolXML_comandos($rs->campos["descricomando"],$rs->campos["parametros"],$rs->campos["visuparametros"]);
+ }
+
+ $rs->Siguiente();
+ }
+ $cadenaXML.='</PROCEDIMIENTO>';
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_comandos($descricomando,$parametros,$visuparametros)
+{
+ global $cadenaXML;
+
+ $cadenaXML.='<COMANDO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/comandos.gif"';
+ $cadenaXML.=' infonodo="'.$descricomando.'"';
+ $cadenaXML.='>';
+ escribeParametros($parametros,$visuparametros);
+ $cadenaXML.='</COMANDO>';
+}
+ //________________________________________________________________________________________________________
+
+ function escribeParametros($parametros,$visuparametros)
+ {
+ global $cmd;
+ global $cadenaXML;
+
+ $tbParametrosValor=array();
+ ParametrosValor($cmd,$parametros,&$tbParametrosValor); // Toma valores de cada parámetro
+ $visuprm=split(";",$visuparametros);
+ for($i=0;$i<sizeof($visuprm);$i++){
+ $nemo=$visuprm[$i];
+ if(isset($tbParametrosValor[$visuprm[$i]])){
+ 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
+ $valor=$tbParametrosValor[$nemo]["valor"];
+ escribiendoParametros($descripcion,$valor);
+ }
+ }
+ }
+ }
+ //________________________________________________________________________________________________________
+
+ function escribiendoParametros($descripcion,$valor)
+ {
+ global $cadenaXML;
+
+ $cadenaXML.='<PARAMETRO';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $litprm=$descripcion.': <B>'.$valor.'</B>';
+ $cadenaXML.=' infonodo="'.urlencode($litprm).'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PARAMETRO>';
+ }
+
+?> \ No newline at end of file
diff --git a/admin/WebConsole/varios/informacion_imagenes.php b/admin/WebConsole/varios/informacion_imagenes.php
new file mode 100644
index 00000000..b8f49a64
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_imagenes.php
@@ -0,0 +1,203 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_imagenes.php
+// Descripción :
+// Muestra los perfiles que forman parte de una imagen y los ordenadores que tienen instalada dicha imagen
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_imagenes_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idimagen=0;
+$descripcionimagen="";
+if (isset($_GET["idimagen"])) $idimagen=$_GET["idimagen"]; // Recoge parametros
+if (isset($_GET["descripcionimagen"])) $descripcionimagen=$_GET["descripcionimagen"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idimagen); // Crea el arbol XML
+
+// Creación del árbol
+$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/imagenes.gif"><BR><BR>
+ <IMG src="../images/iconos/imagen.gif"><SPAN class=presentaciones>&nbsp;&nbsp;<U><?echo $TbMsg[2]?></U>: <? echo $descripcionimagen?></SPAN></P>
+ <?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones
+?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Devuelve una cadena con formato XML de toda la información de las imagenes
+ Parametros:
+ - cmd:Una comando ya operativo ( con conexiónabierta)
+ - idimagen: El identificador del perfil hardware
+________________________________________________________________________________________________________*/
+function CreaArbol($cmd,$idimagen){
+ $cadenaXML=SubarbolXML_Imagenes($cmd,$idimagen);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Imagenes($cmd,$idimagen){
+ global $TbMsg;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idimagen,descripcion,comentarios, idperfilsoft FROM imagenes WHERE idimagen=".$idimagen;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<IMAGEN';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagen.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_PerfilImagen($cmd,$rs->campos["idperfilsoft"]);
+ $cadenaXML.=SubarbolXML_Ordenadores($cmd,$rs->campos["idimagen"]);
+ $cadenaXML.='</IMAGEN>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_PerfilImagen($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidperfilsoft=null;
+
+ $cmd->texto="SELECT perfilessoft.idperfilsoft ,perfilessoft.descripcion as pdescripcion ,perfilessoft.comentarios,
+ softwares.idsoftware,softwares.descripcion as hdescripcion,tiposoftwares.urlimg
+ FROM perfilessoft ";
+ $cmd->texto.=" LEFT OUTER JOIN perfilessoft_softwares ON perfilessoft.idperfilsoft=perfilessoft_softwares.idperfilsoft";
+ $cmd->texto.=" LEFT OUTER JOIN softwares ON softwares.idsoftware=perfilessoft_softwares.idsoftware";
+ $cmd->texto.=" LEFT OUTER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware" ;
+ $cmd->texto.=" WHERE perfilessoft.idperfilsoft=".$idperfilsoft;
+ $cmd->texto.=" ORDER by perfilessoft.descripcion,tiposoftwares.idtiposoftware,softwares.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->EOF) return($cadenaXML);
+
+ $cadenaXML.='<CARPETAPERFILES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[6].'"';
+ $cadenaXML.='>';
+
+ while (!$rs->EOF){
+ if ($gidperfilsoft!=$rs->campos["idperfilsoft"]){
+ if ($gidperfilsoft){
+ $cadenaXML.='</COMPONENTES>';
+ $cadenaXML.='</PERFILESSOFTWARES>';
+ }
+ $gidperfilsoft=$rs->campos["idperfilsoft"];
+ $cadenaXML.='<PERFILESSOFTWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilsoftware.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["pdescripcion"].'"';
+ $cadenaXML.='>';
+
+ if($rs->campos["comentarios"]>" "){
+ $cadenaXML.='<PROPIEDAD';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[9].' :[/b] '.$rs->campos["comentarios"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPIEDAD>';
+ }
+
+ $cadenaXML.='<COMPONENTES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[4].'"';
+ $cadenaXML.='>';
+ }
+ if ($rs->campos["idsoftware"]){
+ $cadenaXML.='<COMPONENTE';
+ // Atributos
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ $cadenaXML.=' infonodo="'.$rs->campos["hdescripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</COMPONENTE>';
+ }
+ $rs->Siguiente();
+ }
+ $cadenaXML.='</COMPONENTES>';
+ $cadenaXML.='</PERFILESSOFTWARES>';
+ $cadenaXML.='</CARPETAPERFILES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Ordenadores($cmd,$idimagen)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula=null;
+ $cmd->texto="SELECT DISTINCT aulas.idaula,aulas.nombreaula,ordenadores.idordenador,ordenadores.nombreordenador,
+ ordenadores_particiones.numpar,ordenadores.idperfilhard FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ WHERE ordenadores_particiones.idimagen=".$idimagen." ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0){
+ $cadenaXML.='<ORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[7].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if ($gidaula)
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $litpar="(Par:".$rs->campos["numpar"].")";
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].' '.$litpar.'"' ;
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if ($gidaula)
+ $cadenaXML.='</AULA>';
+ if ($rs->numeroderegistros>0)
+ $cadenaXML.='</ORDENADORES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/varios/informacion_menus.php b/admin/WebConsole/varios/informacion_menus.php
new file mode 100644
index 00000000..f70fc5ad
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_menus.php
@@ -0,0 +1,278 @@
+<?
+// ******************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creaciónn: Año 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: informacion_menus.php
+// Descripción :
+// Muestra los items que forman parte de un menu y sus valores
+// *****************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../includes/constantes.php");
+include_once("../includes/comunes.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/informacion_menus_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idmenu=0;
+$descripcionmenu="";
+if (isset($_GET["idmenu"])) $idmenu=$_GET["idmenu"]; // Recoge parametros
+if (isset($_GET["descripcionmenu"])) $descripcionmenu=$_GET["descripcionmenu"]; // Recoge parametros
+
+$contitempub=0; // Contador de itemsp�blicos para dimensinar ventana
+$contitempri=0; // Contador de itemsp�blicos para dimensinar ventana
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idmenu); // Crea el arbol XML
+
+// Creaciónn del �rbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/informacion_menus.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/informacion_menus_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+ <FORM name=fdatos>
+ <input type=hidden value="<? echo $idmenu?>" id=idmenu>
+ <input type=hidden value="<? echo $contitempub?>" id=contitempub>
+ <input type=hidden value="<? echo $contitempri?>" id=contitempri>
+ </FORM>
+ <p align=center class=cabeceras><?echo $TbMsg[0]?><br>
+ <span align=center class=subcabeceras><?echo $TbMsg[1]?></span>&nbsp;<img src="../images/iconos/menus.gif"><br>
+ <img src="../images/iconos/menu.gif"><span class=presentaciones>&nbsp;&nbsp;<u><?echo $TbMsg[2]?></u>: <? echo $descripcionmenu?></span></p>
+ <?
+ echo $arbol->CreaArbolVistaXML(); // Crea arbol de configuraciones
+ ?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function CreaArbol($cmd,$idmenu){
+ $cadenaXML=SubarbolXML_Menus($cmd,$idmenu);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Menus($cmd,$idmenu)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $cmd->texto="SELECT * FROM menus WHERE idmenu=".$idmenu;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<MENU';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/menu.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.=SubarbolXML_Ordenadores($cmd,$idmenu);
+ $cadenaXML.=SubarbolXML_Items($cmd,$idmenu);
+ $cadenaXML.='</MENU>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Ordenadores($cmd,$idmenu)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula=null;
+ $cmd->texto="SELECT aulas.idaula,aulas.nombreaula,ordenadores. idordenador,ordenadores.nombreordenador
+ FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ WHERE ordenadores.idmenu=".$idmenu." ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0){
+ $cadenaXML.='<ORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[21].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if ($gidaula)
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"' ;
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if ($gidaula)
+ $cadenaXML.='</AULA>';
+ if ($rs->numeroderegistros>0)
+ $cadenaXML.='</ORDENADORES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Items($cmd,$idmenu){
+ global $TbMsg;
+ global $ITEM_PUBLICO;
+ global $ITEM_PRIVADO;
+ global $idcentro;
+ global $EJECUCION_PROCEDIMIENTO;
+ global $EJECUCION_TAREA;
+ global $contitempub;
+ global $contitempri;
+
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT acciones_menus.*,iconos.urlicono as urlimg
+ FROM acciones_menus
+ LEFT OUTER JOIN iconos ON acciones_menus.idurlimg =iconos.idicono
+ WHERE acciones_menus.idmenu=".$idmenu."
+ ORDER BY acciones_menus.tipoitem,acciones_menus.orden";
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ $tbmodalidad[1]=$TbMsg[18];
+ $tbmodalidad[2]=$TbMsg[19];
+
+ $swpub=false;
+ $swpriv=false;
+
+ $cadenaXML.='<ITEMS';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[22].'"';
+ $cadenaXML.='>';
+
+ while (!$rs->EOF){
+ if ($rs->campos["tipoitem"]==$ITEM_PUBLICO){
+ $contitempub++;
+ if (!$swpub) {
+ $cadenaXML.='<ITEMSPUBLICOS';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[13].'"';
+ $cadenaXML.='>';
+ $swpub=true;
+ }
+ }
+ if ($rs->campos["tipoitem"]==$ITEM_PRIVADO){
+ $contitempri++;
+ if ($swpub) {
+ $cadenaXML.='</ITEMSPUBLICOS>';
+ $swpub=false;
+ }
+ if (!$swpriv) {
+ $cadenaXML.='<ITEMSPRIVADOS';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[14].'"';
+ $cadenaXML.='>';
+ $swpriv=true;
+ }
+ }
+ switch($rs->campos["tipoaccion"]){
+ case $EJECUCION_PROCEDIMIENTO :
+ $cmd->texto='SELECT procedimientos.descripcion FROM procedimientos
+ WHERE procedimientos.idprocedimiento='.$rs->campos["idtipoaccion"];
+ $urlimg="procedimiento.gif";
+ break;
+ case $EJECUCION_TAREA :
+ $cmd->texto='SELECT tareas.idtarea, tareas.descripcion FROM tareas
+ WHERE tareas.idtarea='.$rs->campos["idtipoaccion"];
+ $urlimg="tareas.gif";
+ break;
+ }
+ if(!empty($rs->campos["idtipoaccion"]))
+ $cadenaXML.= SubarbolXML_itemsmenus($cmd,$urlimg,$rs->campos);
+ $rs->Siguiente();
+ }
+ if ($swpub)
+ $cadenaXML.='</ITEMSPUBLICOS>';
+ if ($swpriv)
+ $cadenaXML.='</ITEMSPRIVADOS>';
+ $cadenaXML.='</ITEMS>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+
+//________________________________________________________________________________________________________
+function SubarbolXML_itemsmenus($cmd,$urlimg,$campos){
+ global $TbMsg;
+ global $ITEM_PUBLICO;
+ global $ITEM_PRIVADO;
+ global $idcentro;
+
+ $cadenaXML="";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<ITEM';
+ $cadenaXML.=' imagenodo="../images/iconos/'.$urlimg.'"';
+ $cadenaXML.=' infonodo="'.$campos["descripitem"].'"';
+ $cadenaXML.='>';
+
+ $contprop=0;
+
+ $cadenaXML.='<PROPMENU';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[20].':[/b] '.$campos["idaccionmenu"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPMENU>';
+
+ $cadenaXML.='<PROPMENU';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[15].':[/b] '.$campos["orden"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPMENU>';
+
+ $cadenaXML.='<PROPMENU';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[16].':[/b] '.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPMENU>';
+
+ if(!empty($campos["urlimg"])) {
+ $cadenaXML.='<PROPMENU';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[17].': [/b]'.$campos["urlimg"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPMENU>';
+ }
+ $cadenaXML.='</ITEM>';
+ $rs->Siguiente();
+ }
+ return($cadenaXML);
+}
+
+?>
diff --git a/admin/WebConsole/varios/informacion_perfileshardware.php b/admin/WebConsole/varios/informacion_perfileshardware.php
new file mode 100644
index 00000000..e23e31b0
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_perfileshardware.php
@@ -0,0 +1,213 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_perfileshard.php
+// Descripción :
+// Muestra los componentes hardware que forman parte de un perfil hardware y los perfiles softwares disponibles
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_perfileshard_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idperfil=0;
+$descripcionperfil="";
+if (isset($_GET["idperfil"])) $idperfil=$_GET["idperfil"]; // Recoge parametros
+if (isset($_GET["descripcionperfil"])) $descripcionperfil=$_GET["descripcionperfil"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idperfil); // Crea el arbol XML
+
+// Creación del árbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confihard.gif"><BR><BR>
+ <IMG src="../images/iconos/perfilhardware.gif"><SPAN class=presentaciones>&nbsp;&nbsp;<U><?echo $TbMsg[2]?></U>: <? echo $descripcionperfil?></SPAN></P>
+ <?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Devuelve una cadena con formato XML de toda la Información de los perfiles hardwares
+ Parametros:
+ - cmd:Una comando ya operativo ( con conexiónabierta)
+ - idperfil: El identificador del perfil hardware
+________________________________________________________________________________________________________*/
+function CreaArbol($cmd,$idperfil){
+ $cadenaXML=SubarbolXML_PerfilesHardwares($cmd,$idperfil);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_PerfilesHardwares($cmd,$idperfilhard){
+ global $TbMsg;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT tipohardwares.descripcion as tipohardware,perfileshard.idperfilhard ,
+ perfileshard.descripcion as pdescripcion, perfileshard.comentarios,
+ hardwares.idhardware,hardwares.descripcion as hdescripcion,tipohardwares.urlimg
+ FROM perfileshard ";
+ $cmd->texto.=" LEFT OUTER JOIN perfileshard_hardwares ON perfileshard.idperfilhard=perfileshard_hardwares.idperfilhard";
+ $cmd->texto.=" LEFT OUTER JOIN hardwares ON hardwares.idhardware=perfileshard_hardwares.idhardware";
+ $cmd->texto.=" LEFT OUTER JOIN tipohardwares ON hardwares.idtipohardware=tipohardwares.idtipohardware" ;
+ $cmd->texto.=" WHERE perfileshard.idperfilhard=".$idperfilhard;
+ $cmd->texto.=" ORDER by tipohardwares.idtipohardware,hardwares.descripcion";
+ $rs->Comando=&$cmd;
+
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ $cadenaXML.='<PERFILESHARDWARES';
+ // Atributos`
+ $cadenaXML.=' imagenodo="../images/iconos/perfilhardware.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["pdescripcion"].'"';
+ $cadenaXML.='>';
+ if($rs->campos["comentarios"]>" "){
+ $cadenaXML.='<PROPIEDAD';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[8].' :[/b] '.$rs->campos["comentarios"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPIEDAD>';
+ }
+ $swcompo=false;
+ while (!$rs->EOF){
+ if ($rs->campos["idhardware"]){
+ if (!$swcompo) {
+ $cadenaXML.='<COMPONENTES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[6].'"';
+ $cadenaXML.='>';
+ $swcompo=true;
+ }
+
+ $cadenaXML.='<PERFILHARDWARE';
+ // Atributos
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ $cadenaXML.=' infonodo="('.$rs->campos["tipohardware"].") ".$rs->campos["hdescripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILHARDWARE>';
+ }
+ $rs->Siguiente();
+ }
+ if ($swcompo) {
+ $cadenaXML.='</COMPONENTES>';
+ }
+ $cadenaXML.=SubarbolXML_Ordenadores($cmd,$idperfilhard);
+ $cadenaXML.=SubarbolXML_ImagenesDisponibles($cmd,$idperfilhard);
+ $cadenaXML.='</PERFILESHARDWARES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Ordenadores($cmd,$idperfilhard)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula=0;
+ $cmd->texto="SELECT DISTINCT aulas.idaula,aulas.nombreaula,ordenadores.idordenador,ordenadores.nombreordenador
+ FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ WHERE ordenadores.idperfilhard=".$idperfilhard." ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0){
+ $cadenaXML.='<ORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[7].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"' ;
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ if ($rs->numeroderegistros>0)
+ $cadenaXML.='</ORDENADORES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ImagenesDisponibles($cmd,$idperfilhard)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidimagen=0;
+
+ $cmd->texto="SELECT DISTINCT imagenes.* FROM imagenes
+ INNER JOIN perfilessoft ON perfilessoft.idperfilsoft=imagenes.idperfilsoft
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idperfilsoft=imagenes.idperfilsoft
+ INNER JOIN ordenadores ON ordenadores.idordenador=ordenadores_particiones.idordenador
+ INNER JOIN perfileshard ON perfileshard.idperfilhard=ordenadores.idperfilhard
+ WHERE perfileshard.idperfilhard=".$idperfilhard."
+ AND imagenes.codpar>0
+ ORDER by imagenes.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ if ($rs->numeroderegistros>0) {
+ $cadenaXML.='<DISPONIBLESIMAGENES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[4].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidimagen!=$rs->campos["idperfilsoft"]){
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ }
+ $gidimagen=$rs->campos["idperfilsoft"];
+ $cadenaXML.='<IMAGENES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ }
+ $rs->Siguiente();
+ }
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ $cadenaXML.='</DISPONIBLESIMAGENES>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/varios/informacion_perfilessoftware.php b/admin/WebConsole/varios/informacion_perfilessoftware.php
new file mode 100644
index 00000000..42f11b41
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_perfilessoftware.php
@@ -0,0 +1,213 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_perfilessoft.php
+// Descripción :
+// Muestra los componentes software que forman parte de un perfil software y los perfiles softwares disponibles
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_perfilessoft_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idperfil=0;
+$descripcionperfil="";
+if (isset($_GET["idperfil"])) $idperfil=$_GET["idperfil"]; // Recoge parametros
+if (isset($_GET["descripcionperfil"])) $descripcionperfil=$_GET["descripcionperfil"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idperfil); // Crea el arbol XML
+
+// Creación del árbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"><BR><BR>
+ <IMG src="../images/iconos/perfilsoftware.gif"><SPAN class=presentaciones>&nbsp;&nbsp;<U><?echo $TbMsg[2]?></U>: <? echo $descripcionperfil?></SPAN></P>
+ <?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Devuelve una cadena con formato XML de toda la Información de los perfiles software
+ softwares
+ Parametros:
+ - cmd:Una comando ya operativo ( con conexiónabierta)
+ - idperfil: El identificador del perfil software
+________________________________________________________________________________________________________*/
+function CreaArbol($cmd,$idperfil){
+ $cadenaXML=SubarbolXML_PerfilesSoftwares($cmd,$idperfil);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_PerfilesSoftwares($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+
+ $cmd->texto="SELECT perfilessoft.idperfilsoft ,perfilessoft.descripcion as pdescripcion, perfilessoft.comentarios,
+ softwares.idsoftware,softwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM perfilessoft
+ LEFT OUTER JOIN perfilessoft_softwares ON perfilessoft.idperfilsoft=perfilessoft_softwares.idperfilsoft
+ LEFT OUTER JOIN softwares ON softwares.idsoftware=perfilessoft_softwares.idsoftware
+ LEFT OUTER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware
+ WHERE perfilessoft.idperfilsoft=".$idperfilsoft."
+ ORDER by tiposoftwares.idtiposoftware,softwares.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ $cadenaXML.='<PERFILESSOFTWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/perfilsoftware.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["pdescripcion"].'"';
+ $cadenaXML.='>';
+ if($rs->campos["comentarios"]>" "){
+ $cadenaXML.='<PROPIEDAD';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[8].' :[/b] '.$rs->campos["comentarios"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPIEDAD>';
+ }
+ $swcompo=false;
+ while (!$rs->EOF){
+ if ($rs->campos["idsoftware"]){
+ if (!$swcompo) {
+ $cadenaXML.='<COMPONENTES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[6].'"';
+ $cadenaXML.='>';
+ $swcompo=true;
+ }
+ $cadenaXML.='<PERFILSOFTWARE';
+ // Atributos
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ $cadenaXML.=' infonodo="'.$rs->campos["hdescripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PERFILSOFTWARE>';
+ }
+ $rs->Siguiente();
+ }
+ if ($swcompo) {
+ $cadenaXML.='</COMPONENTES>';
+ }
+ $cadenaXML.=SubarbolXML_Ordenadores($cmd,$idperfilsoft);
+ $cadenaXML.=SubarbolXML_ImagenesDisponibles($cmd,$idperfilsoft);
+ $cadenaXML.='</PERFILESSOFTWARES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Ordenadores($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula=0;
+ $cmd->texto="SELECT DISTINCT aulas.idaula,aulas.nombreaula,ordenadores.idordenador,
+ ordenadores.nombreordenador,ordenadores_particiones.numpar
+ FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ WHERE ordenadores_particiones.idperfilsoft=".$idperfilsoft." ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0){
+ $cadenaXML.='<ORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[7].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"' ;
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ if ($rs->numeroderegistros>0)
+ $cadenaXML.='</ORDENADORES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ImagenesDisponibles($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidimagen=0;
+
+ $cmd->texto="SELECT imagenes.* FROM imagenes
+ INNER JOIN perfilessoft ON perfilessoft.idperfilsoft=imagenes.idperfilsoft
+ WHERE perfilessoft.idperfilsoft=".$idperfilsoft."
+ AND imagenes.codpar>0
+ ORDER by imagenes.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ if ($rs->numeroderegistros>0) {
+ $cadenaXML.='<DISPONIBLESIMAGENES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[4].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidimagen!=$rs->campos["idperfilsoft"]){
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ }
+ $gidimagen=$rs->campos["idperfilsoft"];
+ $cadenaXML.='<IMAGENES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ }
+ $rs->Siguiente();
+ }
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ $cadenaXML.='</DISPONIBLESIMAGENES>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/varios/informacion_procedimientos.php b/admin/WebConsole/varios/informacion_procedimientos.php
new file mode 100644
index 00000000..6de1eb5d
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_procedimientos.php
@@ -0,0 +1,213 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_procedimientos.php
+// Descripción :
+// Muestra los comandos que forman parte de un procedimiento y sus valores
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_procedimientos_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idprocedimiento=0;
+$descripcionprocedimiento="";
+if (isset($_GET["idperfil"])) $idperfil=$_GET["idperfil"]; // Recoge parametros
+if (isset($_GET["descripcionprocedimiento"])) $descripcionprocedimiento=$_GET["descripcionprocedimiento"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idperfil); // Crea el arbol XML
+
+// Creación del árbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"><BR><BR>
+ <IMG src="../images/iconos/procedimiento.gif"><SPAN class=presentaciones>&nbsp;&nbsp;<U><?echo $TbMsg[2]?></U>: <? echo $descripcionperfil?></SPAN></P>
+ <?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Devuelve una cadena con formato XML de toda la Información de los perfiles software
+ softwares
+ Parametros:
+ - cmd:Una comando ya operativo ( con conexiónabierta)
+ - idperfil: El identificador del perfil software
+________________________________________________________________________________________________________*/
+function CreaArbol($cmd,$idperfil){
+ $cadenaXML=SubarbolXML_procedimientoswares($cmd,$idperfil);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_procedimientoswares($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+
+ $cmd->texto="SELECT procedimientos.idperfilsoft ,procedimientos.descripcion as pdescripcion, procedimientos.comentarios,
+ softwares.idsoftware,softwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM procedimientos
+ LEFT OUTER JOIN procedimientos_softwares ON procedimientos.idperfilsoft=procedimientos_softwares.idperfilsoft
+ LEFT OUTER JOIN softwares ON softwares.idsoftware=procedimientos_softwares.idsoftware
+ LEFT OUTER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware
+ WHERE procedimientos.idperfilsoft=".$idperfilsoft."
+ ORDER by tiposoftwares.idtiposoftware,softwares.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ $cadenaXML.='<procedimientosWARES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/procedimiento.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["pdescripcion"].'"';
+ $cadenaXML.='>';
+ if($rs->campos["comentarios"]>" "){
+ $cadenaXML.='<PROPIEDAD';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[8].' :[/b] '.$rs->campos["comentarios"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPIEDAD>';
+ }
+ $swcompo=false;
+ while (!$rs->EOF){
+ if ($rs->campos["idsoftware"]){
+ if (!$swcompo) {
+ $cadenaXML.='<COMPONENTES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[6].'"';
+ $cadenaXML.='>';
+ $swcompo=true;
+ }
+ $cadenaXML.='<procedimiento';
+ // Atributos
+ $cadenaXML.=' imagenodo='.$rs->campos["urlimg"];
+ $cadenaXML.=' infonodo="'.$rs->campos["hdescripcion"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</procedimiento>';
+ }
+ $rs->Siguiente();
+ }
+ if ($swcompo) {
+ $cadenaXML.='</COMPONENTES>';
+ }
+ $cadenaXML.=SubarbolXML_Ordenadores($cmd,$idperfilsoft);
+ $cadenaXML.=SubarbolXML_ImagenesDisponibles($cmd,$idperfilsoft);
+ $cadenaXML.='</procedimientosWARES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Ordenadores($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula=0;
+ $cmd->texto="SELECT DISTINCT aulas.idaula,aulas.nombreaula,ordenadores.idordenador,
+ ordenadores.nombreordenador,ordenadores_particiones.numpar
+ FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ WHERE ordenadores_particiones.idperfilsoft=".$idperfilsoft." ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0){
+ $cadenaXML.='<ORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[7].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"' ;
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if (!empty($gidaula))
+ $cadenaXML.='</AULA>';
+ if ($rs->numeroderegistros>0)
+ $cadenaXML.='</ORDENADORES>';
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ImagenesDisponibles($cmd,$idperfilsoft)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidimagen=0;
+
+ $cmd->texto="SELECT imagenes.* FROM imagenes
+ INNER JOIN procedimientos ON procedimientos.idperfilsoft=imagenes.idperfilsoft
+ WHERE procedimientos.idperfilsoft=".$idperfilsoft."
+ AND imagenes.codpar>0
+ ORDER by imagenes.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ if ($rs->numeroderegistros>0) {
+ $cadenaXML.='<DISPONIBLESIMAGENES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[4].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidimagen!=$rs->campos["idperfilsoft"]){
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ }
+ $gidimagen=$rs->campos["idperfilsoft"];
+ $cadenaXML.='<IMAGENES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ }
+ $rs->Siguiente();
+ }
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ $cadenaXML.='</DISPONIBLESIMAGENES>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/varios/informacion_repositorios.php b/admin/WebConsole/varios/informacion_repositorios.php
new file mode 100644
index 00000000..22174c3d
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_repositorios.php
@@ -0,0 +1,184 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_repositorios.php
+// Descripción :
+// Muestra los ordenadores que están gestionados por un repositorio
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../clases/XmlPhp.php");
+include_once("../clases/ArbolVistaXML.php");
+include_once("../idiomas/php/".$idioma."/informacion_repositorio_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idrepositorio=0;
+$descripcionrepositorio="";
+if (isset($_GET["idrepositorio"])) $idrepositorio=$_GET["idrepositorio"]; // Recoge parametros
+if (isset($_GET["descripcionrepositorio"])) $descripcionrepositorio=$_GET["descripcionrepositorio"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+else
+ $arbolXML=CreaArbol($cmd,$idrepositorio); // Crea el arbol XML
+
+// Creación del árbol
+$baseurlimg="../images/tsignos";
+$clasedefault="tabla_listados_sin";
+$titulotabla=$TbMsg[3];
+$arbol=new ArbolVistaXml($arbolXML,0,$baseurlimg,$clasedefault,1,20,130,1,$titulotabla);
+?>
+<HTML>
+<TITLE>Administración 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="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
+</HEAD>
+<BODY>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/repositorios.gif"><BR><BR>
+ <IMG src="../images/iconos/repositorio.gif"><SPAN class=presentaciones>&nbsp;&nbsp;
+ <U><?echo $TbMsg[2]?></U>:<? echo $descripcionrepositorio?></SPAN></P>
+ <?echo $arbol->CreaArbolVistaXml(); // Crea arbol de configuraciones?>
+</BODY>
+</HTML>
+<?
+/**************************************************************************************************************************************************
+ Devuelve una cadena con formato XML de toda la información de los repositorios
+ Parametros:
+ - cmd:Una comando ya operativo ( con conexión abierta)
+ - idrepositorio: El identificador del perfil repositorios
+________________________________________________________________________________________________________*/
+function CreaArbol($cmd,$idrepositorio){
+ $cadenaXML=SubarbolXML_Repositorios($cmd,$idrepositorio);
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_Repositorios($cmd,$idrepositorio){
+ global $TbMsg;
+ $cadenaXML="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT idrepositorio,nombrerepositorio,comentarios
+ FROM repositorios
+ WHERE idrepositorio=".$idrepositorio ;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaXML.='<REPOSITORIO';
+ // Atributos
+ $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_Repositorio'" .')"';
+ $cadenaXML.=' imagenodo="../images/iconos/repositorio.gif" ';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombrerepositorio"].'"';
+ $cadenaXML.='>';
+ if($rs->campos["comentarios"]>" "){
+ $cadenaXML.='<PROPIEDAD';
+ $cadenaXML.=' imagenodo="../images/iconos/propiedad.gif"';
+ $cadenaXML.=' infonodo="[b]'.$TbMsg[4].' :[/b] '.$rs->campos["comentarios"].'"';
+ $cadenaXML.='>';
+ $cadenaXML.='</PROPIEDAD>';
+ }
+ $cadenaXML.=SubarbolXML_grupos_repositorios_ordenadores($cmd,$rs->campos["idrepositorio"]);
+ $cadenaXML.=SubarbolXML_ImagenesDisponibles($cmd,$idrepositorio);
+ $cadenaXML.='</REPOSITORIO>';
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//-------------------------------------------------------------------------------------------------------------------------------------------
+function SubarbolXML_grupos_repositorios_ordenadores($cmd,$idrepositorio)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidaula="";
+ $rs=new Recordset;
+ $cmd->texto="SELECT aulas.idaula,aulas.nombreaula,ordenadores. idordenador,ordenadores.nombreordenador
+ FROM ordenadores
+ INNER JOIN aulas ON ordenadores.idaula=aulas.idaula
+ WHERE ordenadores.idrepositorio=".$idrepositorio."
+ ORDER BY aulas.idaula,ordenadores.nombreordenador";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ $rs->Primero();
+ if ($rs->numeroderegistros>0) {
+ $cadenaXML.='<AULASORDENADORES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[6].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidaula!=$rs->campos["idaula"]){
+ if ($gidaula!="")
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='<AULA ';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/aula.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"';
+ $cadenaXML.='>';
+ $gidaula=$rs->campos["idaula"];
+ }
+ // Visualiza los ordenadores de cada aula ( temporalmente desabilitado por rendimiento )
+ $cadenaXML.='<ORDENADOR';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/ordenador.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["nombreordenador"].'"';
+ $cadenaXML.='></ORDENADOR>';
+ $rs->Siguiente();
+ }
+ if ($gidaula!=""){
+ $cadenaXML.='</AULA>';
+ $cadenaXML.='</AULASORDENADORES>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+//________________________________________________________________________________________________________
+function SubarbolXML_ImagenesDisponibles($cmd,$idrepositorio)
+{
+ global $TbMsg;
+
+ $cadenaXML="";
+ $gidimagen=0;
+
+ $cmd->texto="SELECT DISTINCT imagenes.* FROM imagenes
+ WHERE imagenes.idrepositorio=".$idrepositorio."
+ AND imagenes.codpar>0
+ ORDER by imagenes.descripcion";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ if ($rs->numeroderegistros>0) {
+ $cadenaXML.='<DISPONIBLESIMAGENES';
+ $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
+ $cadenaXML.=' infonodo="'.$TbMsg[5].'"';
+ $cadenaXML.='>';
+ }
+ while (!$rs->EOF){
+ if ($gidimagen!=$rs->campos["idperfilsoft"]){
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ }
+ $gidimagen=$rs->campos["idperfilsoft"];
+ $cadenaXML.='<IMAGENES';
+ // Atributos
+ $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
+ $cadenaXML.=' infonodo="'.$rs->campos["descripcion"].'"';
+ $cadenaXML.='>';
+ }
+ $rs->Siguiente();
+ }
+ if ($gidimagen){
+ $cadenaXML.='</IMAGENES>';
+ $cadenaXML.='</DISPONIBLESIMAGENES>';
+ }
+ $rs->Cerrar();
+ return($cadenaXML);
+}
+?>
diff --git a/admin/WebConsole/varios/informacion_tareas.php b/admin/WebConsole/varios/informacion_tareas.php
new file mode 100644
index 00000000..19b88572
--- /dev/null
+++ b/admin/WebConsole/varios/informacion_tareas.php
@@ -0,0 +1,176 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: informacion_tareas.php
+// Descripción :
+// Muestra los comandos que forman parte de una tarea y sus valores
+// *************************************************************************************************************************************************
+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/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/informacion_tareas_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idtarea="";
+$descripcioncomando="";
+
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"];
+if (isset($_GET["descripciontarea"])) $descripciontarea=$_GET["descripciontarea"];
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<BODY>
+ <?
+ $cmd=CreaComando($cadenaconexion);
+ if ($cmd){
+ $rs=new Recordset;
+ $cmd->texto="SELECT idtareacomando FROM tareas_comandos WHERE idtarea=".$idtarea. " ORDER BY orden";
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ echo '<br><p align=center><IMG src="../images/iconos/tareas.gif">&nbsp;&nbsp;<U><span class=cabeceras>'.$TbMsg[0].'</span></U><br><span class=subcabeceras>'.$descripciontarea.'</span></p>';
+ $tabla_parametros=""; // Tabla para localizar parametros
+ $cont_parametros=0; // Contador de la tabla
+ CreaTablaParametros($cmd); // Crea tabla especificaciones de parametros
+ while (!$rs->EOF){
+ pintacomandos($cmd,$rs->campos["idtareacomando"]);
+ $rs->Siguiente();
+ }
+ }
+ }
+ ?>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function pintacomandos($cmd,$idtareacomando){
+ global $TbMsg;
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+ global $tabla_parametros;
+ global $cont_parametros;
+
+ $rs=new Recordset;
+ $cmd->texto="SELECT tareas_comandos.*, comandos.visuparametros FROM tareas_comandos ";
+ $cmd->texto.=" INNER JOIN comandos ON comandos.idcomando=tareas_comandos.idcomando";
+ $cmd->texto.=" WHERE tareas_comandos.idtareacomando=".$idtareacomando;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset
+ if ($rs->EOF) return("");
+
+ $HTMLparametros='<TABLE class="tabla_parametros" align=center border=0 cellspacing=1 cellpadding=0 width="90%">'.chr(13);
+ $HTMLparametros.='<TR>'.chr(13);
+ $HTMLparametros.= '<TH>&nbsp;'.$TbMsg[1].'&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '<TH>&nbsp;'.$TbMsg[2].'</TH>&nbsp;'.chr(13);
+ $HTMLparametros.= '</TR>'.chr(13);
+
+ $textambito="";
+ $urlimg="";
+
+ switch($rs->campos["ambito"]){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito="Center";
+ $nombre=TomaDato($cmd,0,'centros',$rs->campos["idambito"],'idcentro','nombrecentro');
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Group of labs";
+ $nombre=TomaDato($cmd,0,'grupos',$rs->campos["idambito"],'idgrupo','nombregrupo');
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito="Labs";
+ $nombre=TomaDato($cmd,0,'aulas',$rs->campos["idambito"],'idaula','nombreaula');
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Group of computers";
+ $nombre=TomaDato($cmd,0,'gruposordenadores',$rs->campos["idambito"],'idgrupo','nombregrupoordenador');
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Computers";
+ $nombre=TomaDato($cmd,0,'ordenadores',$rs->campos["idambito"],'idordenador','nombreordenador');
+ break;
+ }
+ $HTMLparametros.= '<TD>&nbsp;'.$TbMsg[3].'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;'.$textambito.'&nbsp;';
+ $HTMLparametros.= '<IMG src="'.$urlimg.'">&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '</TR><TR>';
+ $HTMLparametros.= '<TD>&nbsp;'.$TbMsg[4].'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;'.$nombre.'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '</TR>';
+
+ $auxVP=split(";",$rs->campos["visuparametros"]); // Parametros visualizables
+ $auxP=split(chr(13),$rs->campos["parametros"]); // Recorre parametros para visualizar los que así sean
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split("=",$auxP[$i]);
+ for ($k=0;$k<sizeof($auxVP);$k++){
+ if($auxVP[$k]==$dualparam[0]){
+ $posp=busca_indicebinariodual($dualparam[0],$tabla_parametros,$cont_parametros); // Busca datos del parámetro en la tabla cargada previamentre con todos los parámetros
+ if ($posp>=0){
+ $auxtabla_parametros=$tabla_parametros[$posp][1];
+ $HTMLparametros.='<TR>'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;'.$auxtabla_parametros["descripcion"].'&nbsp;</TD>'.chr(13);
+ if($auxtabla_parametros["tipopa"]==1){
+ $valor=TomaDato($cmd,0,$auxtabla_parametros["nomtabla"],$dualparam[1],$auxtabla_parametros["nomidentificador"],$auxtabla_parametros["nomliteral"]);
+ }else
+ $valor=$dualparam[1];
+ if($dualparam[0]!="iph")
+ $HTMLparametros.= '<TD>&nbsp;'.Urldecode($valor).'&nbsp;</TD>'.chr(13);
+ else{
+ $tablaipes=PintaOrdenadores($cmd,$valor);
+ $HTMLparametros.= '<TD>&nbsp;'.$tablaipes.'&nbsp;</TD>'.chr(13);
+ }
+ $HTMLparametros.= '</TR>'.chr(13);
+ }
+ }
+ }
+ }
+ $HTMLparametros.= '</TABLE>'.chr(13);
+ $descripcioncomando=TomaDato($cmd,0,"comandos",$rs->campos["idcomando"],"idcomando","descripcion");
+ echo '<br><p align=center><IMG src="../images/iconos/comandos.gif">&nbsp;&nbsp;<span class=presentaciones>'.$descripcioncomando.'</span>';
+ echo $HTMLparametros;
+ echo '</p>';
+}
+//________________________________________________________________________________________________________
+function PintaOrdenadores($cmd,$cadenaip){
+ $auxP=split(";",$cadenaip);
+ if(sizeof($auxP)<1) return("");
+ $clauslaIN="'".$auxP[0]."'";
+ for ($i=1;$i<sizeof($auxP);$i++)
+ $clauslaIN.=",'".$auxP[$i]."'";
+ $rs=new Recordset;
+ $contor=0;
+ $maxord=7; // Máximos ordenadores por linea
+ $cmd->texto=" SELECT nombreordenador,ip FROM ordenadores INNER JOIN aulas ON aulas.idaula=ordenadores.idaula WHERE ip IN(".$clauslaIN.") ORDER by nombreaula,nombreordenador";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $tablaHtml='<TABLE align=left border=0><TR>';
+ while (!$rs->EOF){
+ $contor++;
+ $tablaHtml.= '<TD align=center style="BACKGROUND-COLOR: #b5daad;FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-BOTTOM:#000000 none;FONT-SIZE: 8px"><IMG src="../images/iconos/ordenador.gif"><br><span style="FONT-SIZE:9px" >'.$rs->campos["nombreordenador"].'</TD>';
+ if($contor>$maxord){
+ $contor=0;
+ $tablaHtml.='</TR><TR>';
+ }
+ $rs->Siguiente();
+ }
+ $tablaHtml.='</TR>';
+ $tablaHtml.= '</TR></TABLE>';
+ return($tablaHtml);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/varios/menubrowser.php b/admin/WebConsole/varios/menubrowser.php
new file mode 100644
index 00000000..543b85df
--- /dev/null
+++ b/admin/WebConsole/varios/menubrowser.php
@@ -0,0 +1,82 @@
+<?
+// *************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2009-2010
+// Fecha útima modificación: Marzo-2006
+// Nombre del fichero: menubrowser.php
+// Descripción :
+// Este fichero implementa el menu del browser de los clientes
+// ****************************************************************************
+// Recupera la IP del ordenador que solicita la página
+$iph=tomaIP();
+if(!empty($iph)){
+ Header("Location:../controlpostacceso.php?iph=".$iph); // Accede a la p�ina de menus
+ exit;
+}
+?>
+<HTML>
+<TITLE>Administración 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">
+</HEAD>
+<SCRIPT LANGUAGE="JAVASCRIPT">
+//________________________________________________________________________________________________________
+function confirmar(){
+ if (comprobar_datos())
+ document.fdatos.submit();
+}
+//________________________________________________________________________________________________________
+function comprobar_datos(){
+ if (document.fdatos.usu.value==""){
+ alert("Debe introducir un nombre de Usuario")
+ document.fdatos.usu.focus()
+ return(false)
+ }
+ if (document.fdatos.pss.value==""){
+ alert("Debe introducir una contraseña")
+ document.fdatos.pss.focus()
+ return(false)
+ }
+ return(true)
+}
+//______________________________________________________________________________________________________
+function PulsaEnter(oEvento){
+ var iAscii;
+ if (oEvento.keyCode)
+ iAscii = oEvento.keyCode;
+ else{
+ if (oEvento.which)
+ iAscii = oEvento.which;
+ else
+ return false;
+ }
+ if (iAscii == 13) confirmar();
+ return true;
+}
+//________________________________________________________________________________________________________
+</SCRIPT>
+</HEAD>
+<BODY>
+<DIV style="POSITION:absolute;top:20;left:150">
+ <FORM action="controlacceso.php" name="fdatos" method="post"></FORM>
+</DIV>
+</BODY>
+</HTML>
+<?
+//___________________________________________________________________________________________________
+//
+// Redupera la ip del cliente web
+//___________________________________________________________________________________________________
+function tomaIP(){
+ // Se asegura que la pagina se solicita desde la IP que viene
+ global $HTTP_SERVER_VARS;
+ if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != "")
+ $ipcliente = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
+ else
+ $ipcliente = $HTTP_SERVER_VARS["REMOTE_ADDR"];
+
+ return($ipcliente);
+}
+?>
diff --git a/admin/WebConsole/varios/menucliente.php b/admin/WebConsole/varios/menucliente.php
new file mode 100644
index 00000000..0780aa71
--- /dev/null
+++ b/admin/WebConsole/varios/menucliente.php
@@ -0,0 +1,225 @@
+<?
+// *************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2009-2010
+// Fecha útima modificación: Marzo-2006
+// Nombre del fichero: menubrowser.php
+// Descripción :
+// Muestra menu en el browser del cliente
+// ****************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/TomaDato.php");
+include_once("../includes/CreaComando.php");
+//________________________________________________________________________________________________________
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión servidor B.D.
+//________________________________________________________________________________________________________
+$ITEMS_PUBLICOS=1;
+$ITEMS_PRIVADOS=2;
+
+$tip=$ITEMS_PUBLICOS; // Tipo de items 1=Públicos 2=privados
+if (isset($_GET["tip"])) $tip=$_GET["tip"];
+
+$iph=tomaIP();
+if(empty($iph))
+ die("***ATENCION.- Usted no esta accediendo desde un ordenador permitido: Dirección IP=".$iph);
+
+$UrlPagina=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; // Url página
+$UrlPagina=dirname($UrlPagina);
+$UrlPaginaIconos=dirname($UrlPagina)."/images/iconos";
+//________________________________________________________________________________________________________
+$rsmenu=RecuperaMenu($cmd,$iph); // Recupera un recordset con los datos del m en
+if(!empty($rsmenu)){
+ switch($tip){
+ case $ITEMS_PUBLICOS:
+ if(!empty($rsmenu->campos["htmlmenupub"])){
+ $urlHtml=$rsmenu->campos["htmlmenupub"];
+ if(strtoupper(substr($urlHtml,0,7)!="HTTP://")) $urlHtml="http://".$urlHtml;
+ Header('Location: '.$urlHtml); // Url del menu personalizado
+ }
+ else{
+ $_SESSION["widcentro"]=$rsmenu->campos["idcentro"];
+ $codeHtml=GeneraMenu($rsmenu,$ITEMS_PUBLICOS,$iph); // Genera men pblico
+ }
+ break;
+
+ case $ITEMS_PRIVADOS:
+ if(!empty($rsmenu->campos["htmlmenupri"])){
+ $urlHtml=$rsmenu->campos["htmlmenupri"];
+
+ if(strtoupper(substr($urlHtml,0,7)!="HTTP://")) $urlHtml="http://".$urlHtml;
+ Header('Location: '.$urlHtml); // Url del menu personalizado
+ }
+ else{
+ $_SESSION["widcentro"]=$rsmenu->campos["idcentro"];
+ $codeHtml=GeneraMenu($rsmenu,$ITEMS_PRIVADOS,$iph); // Genera men pblico
+ }
+ break;
+ }
+}
+else{
+ $codeHtml='<P align=center>';
+ $codeHtml.='<BR><BR><SPAN style="COLOR:#999999;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE: 16px;">
+ NO SE HA DETECTADO NINGÚN MENÚ PARA ESTE CLIENTE</SPAN>';
+ $codeHtml.='</P>';
+}
+?>
+ <HTML>
+ <HEAD>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+ </HEAD>
+ <?
+
+ if(!empty($rsmenu->campos["idurlimg"])){ // Imagen de fondo
+ $urlimg=TomaDato($cmd,0,'iconos',$rsmenu->campos["idurlimg"],'idicono','urlicono');
+ $urlimgfondo="../images/iconos/".$urlimg;
+ echo '<BODY bgcolor=white background="'.$urlimgfondo.'">';
+ }
+ else{
+ echo'<BODY bgcolor=white background="../images/iconos/fondo800x600.png">';
+ echo '<P align=left><IMG border=0 src="../images/iconos/logoopengnsys.png"><P>';
+ }
+ echo $codeHtml;
+ ?>
+ </BODY>
+ </HTML>
+<?
+//___________________________________________________________________________________________________
+//
+// Recupera Men
+//___________________________________________________________________________________________________
+function RecuperaMenu($cmd,$iph){
+ $rs=new Recordset;
+ $cmd->texto="SELECT menus.idcentro,menus.resolucion,menus.titulo,menus.idurlimg,menus.coorx,menus.coory,
+ menus.modalidad,menus.scoorx,menus.scoory,menus.smodalidad,menus.htmlmenupub,menus.htmlmenupri,
+ acciones_menus.tipoaccion,acciones_menus.idaccionmenu,acciones_menus.idtipoaccion,
+ acciones_menus.tipoitem,acciones_menus.descripitem,iconos.urlicono
+ FROM ordenadores
+ INNER JOIN menus ON menus.idmenu = ordenadores.idmenu
+ LEFT OUTER JOIN acciones_menus ON acciones_menus.idmenu = menus.idmenu
+ LEFT OUTER JOIN iconos ON iconos.idicono=acciones_menus.idurlimg
+ WHERE ordenadores.ip='".$iph."' ORDER by acciones_menus.orden";
+
+ $rs->Comando=&$cmd;
+ $resul=$rs->Abrir();
+ if (!$rs->Abrir()) return(false);
+ if ($rs->EOF) return(false);
+ return($rs);
+}
+//___________________________________________________________________________________________________
+//
+// Muestra el menu pblico
+//___________________________________________________________________________________________________
+function GeneraMenu($rs,$tipo,$iph){
+ global $ITEMS_PUBLICOS;
+ global $ITEMS_PRIVADOS;
+ global $UrlPaginaIconos;
+
+ $titulo=$rs->campos["titulo"];
+ $coorx=$rs->campos["coorx"];
+ $coory=$rs->campos["coory"];
+ $modalidad=$rs->campos["modalidad"];
+ $scoorx=$rs->campos["scoorx"];
+ $scoory=$rs->campos["scoory"];
+ $smodalidad=$rs->campos["smodalidad"];
+ $scoory=$rs->campos["scoory"];
+ $resolucion=$rs->campos["resolucion"];
+ $htmlmenupub=$rs->campos["htmlmenupub"];
+ $htmlmenupri=$rs->campos["htmlmenupri"];
+
+ if($tipo==$ITEMS_PRIVADOS)
+ $mod=$smodalidad;
+ else
+ $mod=$modalidad;
+ $codeHTML="";
+
+ // Genera HTML de la p�ina en funci� de las propiedades del Men del clioente
+ //$codeHTML.='<DIV style="POSITION:absolute;TOP:'.$coory."px;LEFT:".$coorx.'px">';
+ $codeHTML.='<P align=center>';
+ $codeHTML.='<SPAN style="COLOR: #999999;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE: 20px;"><U>'.$titulo.'</U></SPAN>';
+ $codeHTML.='</BR>';
+
+ $codeHTML.='<TABLE cellspacing=4 cellpadding=0 align="center" border=0 >';
+ $codeHTML.='<TR>';
+ $codeHTML.='<TD colspan="'.(($mod*2)+1).'" >&nbsp;</TD>';
+ $codeHTML.='</TR>';
+ $codeHTML.='<TR>';
+
+ $c=0; // Contador de columnas
+
+ while (!$rs->EOF){ // Recorre acciones del menu
+ $tipoitem=$rs->campos["tipoitem"];
+ if($tipoitem==$tipo){
+ $tipoaccion=$rs->campos["tipoaccion"];
+ $idtipoaccion=$rs->campos["idtipoaccion"];
+ $idaccionmenu=$rs->campos["idaccionmenu"];
+ $descripitem=$rs->campos["descripitem"];
+ $urlicono=$rs->campos["urlicono"];
+ if(empty($urlicono))
+ $urlicono="defaultitem.gif";
+
+ $codeHTML.='<TD align=center>
+ <A href="ejecutaritem.php?iph='.$iph.'&idt='.$idaccionmenu.'">
+ <IMG border=0 src="http://'.$UrlPaginaIconos.'/'.$urlicono.'" width=64></A></TD>';
+ $codeHTML.='<TD style="font-family:Arial;color: #a71026;FONT-SIZE:14">
+ <A style="text-decoration:none" href="ejecutaritem.php?iph='.$iph.'&idt='.$idaccionmenu.'">
+ <span style="FONT-FAMILY: Verdana,Arial, Helvetica, sans-serif;FONT-SIZE: 12px;COLOR:#999999">'.$descripitem.'</span></A></TD>';
+ if($mod>1){
+ //separación de columnas
+ $codeHTML.='<TD width=10>&nbsp;</TD>';
+ }
+ $c++;
+ if($c%$mod==0){
+ $codeHTML.='</TR>';
+ $codeHTML.='<TR>';
+ }
+ }
+ $rs->Siguiente();
+ }
+ $codeHTML.='</TR>';
+ $rs->Cerrar();
+ $codeHTML.='</TABLE>';
+ $codeHTML.='</P>';
+ $codeHTML.='<BR><BR>';
+ $codeHTML.='<P align=center>';
+
+ switch($tipo){
+ case $ITEMS_PUBLICOS:
+ $url.='acceso_operador.php';
+ $lit="Administrar";
+ break;
+ case $ITEMS_PRIVADOS:
+ $url.='menucliente.php';
+ $lit="Volver";
+ break;
+ }
+ $codeHTML.='<A style="text-decoration:none" href="'.$url.'?iph='.$iph.'">';
+ $codeHTML.='<SPAN style="
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #999999 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #999999 1px solid;
+ COLOR:#999999;FONT-FAMILY: Arial, Helvetica, sans-serif;FONT-SIZE:9px;">&nbsp;'.$lit.'&nbsp;</SPAN></A>';
+
+ $codeHTML.='</P>';
+ //$codeHTML.='</DIV>';
+ return($codeHTML);
+}
+//___________________________________________________________________________________________________
+//
+// Redupera la ip del cliente web
+//___________________________________________________________________________________________________
+function tomaIP(){
+ // Se asegura que la pagina se solicita desde la IP que viene
+ global $HTTP_SERVER_VARS;
+ if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != "")
+ $ipcliente = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
+ else
+ $ipcliente = $HTTP_SERVER_VARS["REMOTE_ADDR"];
+
+ return($ipcliente);
+}
+?>
diff --git a/admin/WebConsole/varios/msgbrowser.php b/admin/WebConsole/varios/msgbrowser.php
new file mode 100644
index 00000000..e2a28a90
--- /dev/null
+++ b/admin/WebConsole/varios/msgbrowser.php
@@ -0,0 +1,86 @@
+<?
+// *************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2009-2010
+// Fecha útima modificación: Marzo-2006
+// Nombre del fichero: menubrowser.php
+// Descripción :
+// Muestra menu en el browser del cliente
+// ****************************************************************************
+$idioma="esp"; // Por defecto idoma español
+include_once("../idiomas/php/".$idioma."/msgbrowser_".$idioma.".php");
+
+$idx="";
+$msg="";
+
+if (isset($_GET["msg"])) $msg=$_GET["msg"]; // Recoge indice del mensaje
+if (isset($_GET["idx"])) $idx=$_GET["idx"]; // Recoge indice del mensaje
+
+if(!empty($msg))
+ $mensaje=UrlDecode($msg);
+else
+ $mensaje=$TbMsg[$idx];
+?>
+<HTML>
+<TITLE>Administración 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">
+
+ </SCRIPT>
+ <STYLE TYPE="text/css">
+
+ .deepsea, .deepsea TD, .deepsea TH
+ {
+ background-color:#026afe;
+ color:#FFFFFF;
+ font-family: sans-serif;
+ font-weight:600;
+ }
+
+ .tdbarra{
+ background: url('../images/iconos/barraven.png');
+ color:#FFFFFF;
+ font-family: sans-serif;
+ font-size: 12px;
+ font-weight:300;
+ BORDER-BOTTOM: #000000 1px solid;
+ BORDER-LEFT: #FFFFFF 1px solid;
+ BORDER-RIGHT: #000000 1px solid;
+ BORDER-TOP: #FFFFFF 1px solid;
+ }
+ .tdclien{
+ background: url('../images/iconos/clienven.png');
+ color:#000000;
+ font-family: sans-serif;
+ font-size: 14px;
+ font-weight:300;
+ BORDER-BOTTOM: #999999 1px solid;
+ BORDER-LEFT: #FFFFFF 1px solid;
+ BORDER-RIGHT: #999999 1px solid;
+ BORDER-TOP: #FFFFFF 1px solid;
+ }
+ </STYLE>
+</HEAD>
+<BODY>
+<?
+if(empty($idx) && empty($msg)) {
+ echo '<BR><BR><BR><BR><BR>';
+ echo '<TABLE cellspacing=0 cellpadding=2 align=center border=0>';
+ echo '<TR><TD align=center><IMG border=0 src="../images/iconos/logoopengnsys.png"></TD></TR>';
+ echo '<TR><TD align=center><SPAN style="COLOR: #999999;FONT-FAMILY: Arial;FONT-SIZE: 12px;">Iniciando...</TD></TR>';
+ echo '</TR>';
+ echo '</TABLE>';
+}
+else{
+ echo '<BR><BR><BR>';
+ echo '<TABLE cellspacing=0 cellpadding=2 align=center border=0>';
+ echo '<TR><TD align=center class="tdbarra">Opengnsys Browser Message</TD><TR>';
+ echo '<TR><TD class="tdclien" valign=center >&nbsp;&nbsp;&nbsp;'.$mensaje.'&nbsp;&nbsp;&nbsp;</TD></TR>';
+ echo '</TABLE>';
+}
+?>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/perfilcomponente_hard.php b/admin/WebConsole/varios/perfilcomponente_hard.php
new file mode 100644
index 00000000..97b05368
--- /dev/null
+++ b/admin/WebConsole/varios/perfilcomponente_hard.php
@@ -0,0 +1,95 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: perfilcomponente_hard.php
+// Descripción :
+// Administra los componentes hardware incluidos en un perfil harware
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/perfilcomponente_hard_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idperfilhard=0;
+$descripcionperfil="";
+if (isset($_GET["idperfilhard"])) $idperfilhard=$_GET["idperfilhard"]; // Recoge parametros
+if (isset($_GET["descripcionperfil"])) $descripcionperfil=$_GET["descripcionperfil"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexióncon servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/perfilcomponente_hard.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/perfilcomponente_hard_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <INPUT type=hidden value="<? echo $idperfilhard?>" id=idperfilhard>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confihard.gif"></P>
+ <BR>
+ <DIV align=center id="Layer_componentes">
+ <SPAN align=center class=presentaciones><B><U><?echo $TbMsg[2]?></U>:&nbsp;<? echo $descripcionperfil?></B></SPAN></P>
+ <TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TR>
+ <TH>&nbsp</TH>
+ <TH>T</TH>
+ <TH><?echo $TbMsg[3]?></TH>
+ </TR>
+ <?
+ $rs=new Recordset;
+ $cmd->texto='SELECT hardwares.idhardware,hardwares.descripcion,tipohardwares.descripcion as hdescripcion,tipohardwares.urlimg,tipohardwares.pci FROM hardwares INNER JOIN perfileshard_hardwares ON hardwares.idhardware=perfileshard_hardwares.idhardware INNER JOIN tipohardwares ON hardwares.idtipohardware=tipohardwares.idtipohardware WHERE perfileshard_hardwares.idperfilhard='.$idperfilhard.' ORDER BY tipohardwares.idtipohardware,hardwares.descripcion';
+ $rs->Comando=&$cmd;
+
+ if ($rs->Abrir()){
+ $rs->Primero();
+ $A_W=" WHERE ";
+ $strex="";
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idhardware"].',this)" checked ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><IMG alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $strex.= $A_W."hardwares.idhardware<>".$rs->campos["idhardware"];
+ $A_W=" AND ";
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ $cmd->texto='SELECT hardwares.idhardware,hardwares.descripcion,tipohardwares.descripcion as hdescripcion,tipohardwares.urlimg,tipohardwares.pci FROM hardwares INNER JOIN tipohardwares ON hardwares.idtipohardware=tipohardwares.idtipohardware '.$strex.' AND hardwares.idcentro='.$idcentro.' ORDER BY tipohardwares.idtipohardware,hardwares.descripcion';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idhardware"].',this)" ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><IMG alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ </DIV>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[4]?></I></SPAN>
+ </DIV>
+</FORM>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/perfilcomponente_soft.php b/admin/WebConsole/varios/perfilcomponente_soft.php
new file mode 100644
index 00000000..9aa381b7
--- /dev/null
+++ b/admin/WebConsole/varios/perfilcomponente_soft.php
@@ -0,0 +1,93 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: perfilcomponente_soft.php
+// Descripción :
+// Administra los componentes software incluidos en un perfil software
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/CreaComando.php");
+include_once("../idiomas/php/".$idioma."/perfilcomponente_soft_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idperfilsoft=0;
+$descripcionperfil="";
+if (isset($_GET["idperfilsoft"])) $idperfilsoft=$_GET["idperfilsoft"]; // Recoge parametros
+if (isset($_GET["descripcionperfil"])) $descripcionperfil=$_GET["descripcionperfil"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/perfilcomponente_soft.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/perfilcomponente_soft_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <INPUT type=hidden value="<? echo $idperfilsoft?>" id=idperfilsoft>
+ <P align=center class=cabeceras><?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/confisoft.gif"></P>
+ <BR>
+ <DIV align=center id="Layer_componentes">
+ <SPAN align=center class=presentaciones><B><U><?echo $TbMsg[2]?></U>:&nbsp;<? echo $descripcionperfil?></B></SPAN></P>
+ <TABLE width="100%" class="tabla_listados" cellspacing=1 cellpadding=0 >
+ <TR>
+ <TH>&nbsp</TH>
+ <TH>T</TH>
+ <TH><?echo $TbMsg[3]?></TH>
+ </TR>
+ <?
+ $rs=new Recordset;
+ $cmd->texto='SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM softwares INNER JOIN perfilessoft_softwares ON softwares.idsoftware=perfilessoft_softwares.idsoftware INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware WHERE perfilessoft_softwares.idperfilsoft='.$idperfilsoft.' ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ $A_W=" WHERE ";
+ $strex="";
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idsoftware"].',this)" checked ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $strex.= $A_W."softwares.idsoftware<>".$rs->campos["idsoftware"];
+ $A_W=" AND ";
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ $cmd->texto='SELECT softwares.idsoftware,softwares.descripcion,tiposoftwares.descripcion as hdescripcion,tiposoftwares.urlimg FROM softwares INNER JOIN tiposoftwares ON softwares.idtiposoftware=tiposoftwares.idtiposoftware '.$strex.' AND softwares.idcentro='.$idcentro.' ORDER BY tiposoftwares.idtiposoftware,softwares.descripcion';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ while (!$rs->EOF){
+ echo '<TR>';
+ echo '<TD align=center width="10%" ><INPUT type=checkbox onclick="gestion_componente('.$rs->campos["idsoftware"].',this)" ></INPUT></TD>';
+ echo '<TD align=center width="10%" ><img alt="'. $rs->campos["hdescripcion"].'"src="'.$rs->campos["urlimg"].'"></TD>';
+ echo '<TD width="80%" >&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ echo '</TR>';
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ </DIV>
+ <DIV id="Layer_nota" align=center >
+ <BR>
+ <SPAN align=center class=notas><I><?echo $TbMsg[4]?></I></SPAN>
+ </DIV>
+</FORM>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/procedimientoscomandos.php b/admin/WebConsole/varios/procedimientoscomandos.php
new file mode 100644
index 00000000..89ab0ea6
--- /dev/null
+++ b/admin/WebConsole/varios/procedimientoscomandos.php
@@ -0,0 +1,169 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: procedimientoscomandos.php
+// Descripción :
+// Administra los comandos que forman parte de un procedimiento
+// *************************************************************************************************************************************************
+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/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/procedimientoscomandos_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idprocedimiento=0;
+$descripcionprocedimiento="";
+if (isset($_GET["idprocedimiento"])) $idprocedimiento=$_GET["idprocedimiento"]; // Recoge parametros
+if (isset($_GET["descripcionprocedimiento"])) $descripcionprocedimiento=$_GET["descripcionprocedimiento"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/procedimientoscomandos.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/procedimientoscomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <P align=center class=cabeceras><IMG src="../images/iconos/procedimiento.gif">&nbsp;<?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></span>&nbsp;<img src="../images/iconos/comandos.gif"><BR><BR>
+ <SPAN align=center class=presentaciones><B><?echo $TbMsg[2]?>:&nbsp;</B><? echo $descripcionprocedimiento?></SPAN></P>
+ <TABLE align=center class="tabla_listados" cellspacing=1 cellpadding=0 id="TABLACOMANDOS">
+ <TR height=20>
+ <TH ><IMG src="../images/iconos/eliminar.gif"></TH>
+ <TH colspan=2 align=left>&nbsp;<?echo $TbMsg[3]?></TH>
+ <TH ><?echo $TbMsg[4]?></TH>
+ <TH >A</TH>
+ </TR>
+ <?
+ $rs=new Recordset;
+ $cmd->texto='SELECT procedimientos_acciones.*, comandos.descripcion,comandos.visuparametros
+ FROM procedimientos_acciones
+ INNER JOIN comandos ON procedimientos_acciones.idcomando = comandos.idcomando
+ WHERE procedimientos_acciones.idprocedimiento='.$idprocedimiento.'
+ ORDER BY procedimientos_acciones.orden';
+
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ $tabla_parametros=""; // Tabla para localizar parametros
+ $cont_parametros=0; // Contador de la tabla
+ CreaTablaParametros($cmd); // Crea tabla especificaciones de parametros
+ while (!$rs->EOF){
+ echo '<TR height=20 id=TR-'.$rs->campos["idprocedimientocomando"].'>';
+ echo '<TD align=center ><INPUT id=checkbox-'.$rs->campos["idprocedimientocomando"].' type=checkbox
+ onclick="gestion_comandos('.$rs->campos["idprocedimientocomando"].',this)" checked ></INPUT></TD>';
+ // Descripcion de la comando
+ echo '<TD colspan=2>&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ // Orden del item del item
+ echo '<TD valign="meddle" align=center >&nbsp;<INPUT class="formulariodatos" id=orden-'.$rs->campos["idprocedimientocomando"].'
+ style="WIDTH:20px" type=text value="'.$rs->campos["orden"].'"></INPUT></TD>';
+ echo '<TD align=center id="imgact-'.$rs->campos["idprocedimientocomando"].'">
+ <IMG src="../images/iconos/actualizar.gif" onclick="ActualizarAccion('.$rs->campos["idprocedimientocomando"].')"></TD>';
+ echo '</TR>';
+ pintacomandos($cmd,$rs);
+ echo '<TR height=3><TD style="BACKGROUND-COLOR: #999999;" colspan=5></TD></TR>'.chr(13);
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ <br>
+ <P align=center><span align=center class=notas><I><?echo $TbMsg[7]?>.</I></P>
+</FORM>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function pintacomandos($cmd,$rs){
+ global $TbMsg;
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+ global $tabla_parametros;
+ global $cont_parametros;
+
+ $HTMLparametros='<TR id="PAR-'.$rs->campos["idprocedimientocomando"].'" >'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4; " >'.$TbMsg[5].'</TH>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4;" >'.$TbMsg[6].'</TH>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '</TR>'.chr(13);
+
+ $urlimg="";
+ $auxVP=split(";",$rs->campos["visuparametros"]); // Parametros visualizables
+ $auxP=split(chr(13),$rs->campos["parametros"]); // Recorre parametros para visualizar los que así sean
+
+ for ($i=0;$i<sizeof($auxP);$i++){ // Por cada parametros del comando...
+ $dualparam=split("=",$auxP[$i]);
+ for ($k=0;$k<sizeof($auxVP);$k++){
+ if($auxVP[$k]==$dualparam[0]){
+ $posp=busca_indicebinariodual($dualparam[0],$tabla_parametros,$cont_parametros); // Busca datos del parámetro en la tabla cargada previamentre con todos los parámetros
+ if ($posp>=0){
+ $auxtabla_parametros=$tabla_parametros[$posp][1];
+ $HTMLparametros.='<TR id="PAR-'.$rs->campos["idprocedimientocomando"].'" >'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$auxtabla_parametros["descripcion"].'&nbsp;</TD>'.chr(13);
+ if($auxtabla_parametros["tipopa"]==1){
+ $valor=TomaDato($cmd,0,$auxtabla_parametros["nomtabla"],$dualparam[1],$auxtabla_parametros["nomidentificador"],$auxtabla_parametros["nomliteral"]);
+ }else
+ $valor=$dualparam[1];
+ if($dualparam[0]!="iph")
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$valor.'&nbsp;</TD>'.chr(13);
+ else{
+ $tablaipes=PintaOrdenadores($cmd,$valor);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$tablaipes.'&nbsp;</TD>'.chr(13);
+ }
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '</TR>'.chr(13);
+ }
+ }
+ }
+ }
+ echo $HTMLparametros;
+}
+//________________________________________________________________________________________________________
+function PintaOrdenadores($cmd,$cadenaip){
+ $auxP=split(";",$cadenaip);
+ if(sizeof($auxP)<1) return("");
+ $clauslaIN="'".$auxP[0]."'";
+ for ($i=1;$i<sizeof($auxP);$i++)
+ $clauslaIN.=",'".$auxP[$i]."'";
+ $rs=new Recordset;
+ $contor=0;
+ $maxord=7; // Máximos ordenadores por linea
+ $cmd->texto=" SELECT nombreordenador,ip FROM ordenadores INNER JOIN aulas ON aulas.idaula=ordenadores.idaula WHERE ip IN(".$clauslaIN.") ORDER by nombreaula,nombreordenador";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $tablaHtml='<TABLE align=left border=0><TR>';
+ while (!$rs->EOF){
+ $contor++;
+ $tablaHtml.= '<TD align=center style="BACKGROUND-COLOR: #b5daad;FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-BOTTOM:#000000 none;FONT-SIZE: 8px"><IMG src="../images/iconos/ordenador.gif"><br><span style="FONT-SIZE:9px" >'.$rs->campos["nombreordenador"].'</TD>';
+ if($contor>$maxord){
+ $contor=0;
+ $tablaHtml.='</TR><TR>';
+ }
+ $rs->Siguiente();
+ }
+ $tablaHtml.='</TR>';
+ $tablaHtml.= '</TR></TABLE>';
+ return($tablaHtml);
+}
diff --git a/admin/WebConsole/varios/programaciones.php b/admin/WebConsole/varios/programaciones.php
new file mode 100644
index 00000000..665ee222
--- /dev/null
+++ b/admin/WebConsole/varios/programaciones.php
@@ -0,0 +1,283 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+
+// Fecha Creación: Año 2003-2004
+// Fecha Última modificación: Noviembre-2005
+// Nombre del fichero: programaciones.php
+// Descripción :
+// Gestiona la programación de tareas , trabajos y reservas
+// *************************************************************************************************************************************************
+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("../idiomas/php/".$idioma."/clases/Almanaque_".$idioma.".php");
+include_once("../idiomas/php/".$idioma."/programaciones_".$idioma.".php");
+//________________________________________________________________________________________________________
+$idtarea=0;
+$idcomando=0;
+$sesion=0;
+$idreserva=0;
+$descripciontarea="";
+$descripcioncomando="";
+$descripcionreserva="";
+$tipoaccion="";
+$identificador=0;
+
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"]; // Recoge parametros
+if (isset($_GET["idcomando"])) $idcomando=$_GET["idcomando"]; // Recoge parametros
+if (isset($_GET["sesion"])) $sesion=$_GET["sesion"]; // Recoge parametros
+if (isset($_GET["idreserva"])) $idreserva=$_GET["idreserva"]; // Recoge parametros
+if (isset($_GET["descripcioncomando"])) $descripcioncomando=$_GET["descripcioncomando"]; // Recoge parametros
+if (isset($_GET["descripciontarea"])) $descripciontarea=$_GET["descripciontarea"]; // Recoge parametros
+if (isset($_GET["descripcionreserva"])) $descripcionreserva=$_GET["descripcionreserva"]; // Recoge parametros
+if (isset($_GET["tipoaccion"])) $tipoaccion=$_GET["tipoaccion"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+$rs=new Recordset; // Recupero acciones anidadas
+$rs->Comando=&$cmd;
+switch($tipoaccion){
+ case $EJECUCION_TAREA :
+ $textoaccion=$LITEJECUCION_TAREA;
+ $urlimg='../images/iconos/tareas.gif';
+ $identificador=$idtarea;
+ $descripcion=$descripciontarea;
+ $cmd->texto="SELECT * FROM programaciones WHERE identificador=".$identificador." AND tipoaccion=".$EJECUCION_TAREA;
+ break;
+case $EJECUCION_COMANDO :
+ $textoaccion=$LITEJECUCION_COMANDO;
+ $urlimg='../images/iconos/comandos.gif';
+ $identificador=$idcomando;
+ $descripcion=$descripcioncomando;
+ $cmd->texto="SELECT * FROM programaciones
+ WHERE identificador=".$identificador." AND sesion=".$sesion." AND tipoaccion=".$EJECUCION_COMANDO;
+ break;
+case $EJECUCION_RESERVA :
+ $textoaccion=$LITEJECUCION_RESERVA;
+ $urlimg='../images/iconos/reservas.gif';
+ $identificador=$idreserva;
+ $descripcion=$descripcionreserva;
+ $cmd->texto="SELECT * FROM programaciones WHERE identificador=".$identificador." AND tipoaccion=".$EJECUCION_RESERVA;
+ break;
+}
+$numreg=0;
+if (!$rs->Abrir()){
+ $numreg=0;
+ $wsw_sus="";
+}
+else{
+ $numreg=$rs->numeroderegistros;
+ if($rs->campos["suspendida"]==1)
+ $wsw_sus="checked";
+ else
+ $wsw_sus="";
+}
+$mialmanaque= new Almanaque("tabla_meses");
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<TITLE>Administración 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/constantes.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../jscripts/programaciones.js"></SCRIPT>
+ <SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+ <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/programaciones_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<P align=center class=cabeceras><?echo $TbMsg[0]?> <?=$textoaccion?>&nbsp;<img src="../images/iconos/reloj.gif"><br>
+<IMG src=<?=$urlimg?>>&nbsp;<SPAN align=center class=subcabeceras><?=$descripcion?></SPAN>&nbsp;</p>
+<FORM name="fprogramaciones" method="post">
+<INPUT type=hidden name=tipoaccion value="<? echo $tipoaccion?>">
+<CENTER>
+<!------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
+<!-- Tabla Tabla con los tiempos y los bloques de programación -->
+<TABLE align=center border=0 cellPadding=0 cellSpacing=0>
+ <TR>
+ <TD>
+ <!-- Tabla con los años dias y semanas -->
+ <TABLE border=0 cellPadding=0 cellSpacing=0 style="height: 27px">
+ <TR>
+ <TD valign=top>
+ <!-- Tabla con la suspension y los años dias y semanas -->
+ <TABLE border=0 cellPadding=0 cellSpacing=0>
+ <TR class=opciones_ejecucion>
+ <TD colspan=6><INPUT id=sw_sus type="checkbox" <? echo $wsw_sus?>
+ onclick="suspender_programacion(<?=$identificador?>,<?=$tipoaccion?>,<?=$sesion?>))">
+ <SPAN style="COLOR:#999999"><?echo $TbMsg[1]?></SPAN></TD>
+ </TR>
+ <TR>
+ <TD colspan=6>&nbsp;</TD>
+ </TR>
+ <TR>
+ <TD valign=top>
+ <? $annodesde=date("Y");
+ echo $mialmanaque->Annos(($annodesde-4),($annodesde+4)); // Años?>
+ </TD>
+ <TD width=10>&nbsp;</TD>
+ <TD valign=top>
+ <? echo $mialmanaque->Meses(); // Meses del año?>
+ </TD>
+ <TD width=10>&nbsp;</TD>
+ <TD valign=top width="155">
+ <TABLE id="fechassimples" style="visibility:visible" border=0 cellPadding=0 cellSpacing=0>
+ <TR>
+ <TD id=tbmesanno>
+ <? $tmarray=getdate();
+ $anoactual=$tmarray["year"];
+ $mesacutal=$tmarray["mon"];
+ echo $mialmanaque->MesAnno($mesacutal,$anoactual); // Calendario del mes?>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ <TD width=10>&nbsp;</TD>
+ </TR>
+ </TABLE>
+ </TD>
+ <TD>
+ <!-- Tabla Dias semenas y dias del mes -->
+ <TABLE id="fechasmultiples" style="visibility:hidden" border=0 cellPadding=0 cellSpacing=0 >
+ <TR>
+ <TD>
+ <? echo $mialmanaque->Dias(); // Dias de la semana?>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <? echo $mialmanaque->Semanas(); // Orden de la semanas?>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <? echo $mialmanaque->DiasMes(); // Días del mes?>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <!-- Tabla Horas-->
+ <TABLE border=0 cellPadding=0 cellSpacing=0 style="HEIGHT: 24px; WIDTH: 279px">
+ <TR>
+ <TD>
+ <? echo "<BR>".$mialmanaque->Horas(); // Horas?>
+ <? if ($tipoaccion==$EJECUCION_RESERVA){
+ echo $mialmanaque->HorasReserva("1","tabla_horasini","ampmini","minutosini"); // Horas desde;
+ echo $mialmanaque->HorasReserva("2","tabla_horasfin","ampmfin","minutosfin"); // Horas hasta;
+ }
+ ?>
+ <br>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <!-- Tabla Bloques-->
+ <TABLE border=0 cellPadding=0 cellSpacing=0 >
+ <TR>
+ <TD valign=top >
+ <TABLE border=0 cellPadding=0 cellSpacing=0 >
+ <TR>
+ <TD >
+ <TABLE align=center class="tabla_meses" border=0 cellPadding=0 cellSpacing=2>
+ <TR>
+ <TH align=center>&nbsp;<?echo $TbMsg[2]?></TH>
+ </TR>
+ <TR>
+ <TD><input type=text class="cajatexto" id="nombrebloque"
+ style="width: 350; height: 20" size="20" ></TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR>
+ <TD>
+ <?
+ $HTMLSELECT="";
+ $HTMLSELECT.='<SELECT onclick=consulta_programacion();
+ class=estilodesple id="lista_programaciones" size=2 style="height:100; width: 350">' ;
+ if ($numreg>0){
+ while (!$rs->EOF){
+ $HTMLSELECT.='<OPTION value="'.$rs->campos["idprogramacion"].'"';
+ $HTMLSELECT.= '>'.$rs->campos["nombrebloque"].'</OPTION>';
+ $rs->Siguiente();
+ }
+ }
+ $HTMLSELECT.= '</SELECT>';
+ $rs->Cerrar();
+ echo $HTMLSELECT;
+ ?>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ <TD valign=top width=6>&nbsp;</TD>
+ <TD valign=top>
+ <TABLE border=0 class=tablaprogramacion border=0 cellPadding=1 cellSpacing=6 width="103">
+ <TR>
+ <TD align=center class=botonprogramacion>
+ <SPAN id=bt_insertar style="cursor:pointer;visibility:visible;color:#bbbcb9"
+ onmouseover="sobreboton(this)" onmouseout="fueraboton(this)"
+ onclick="alta_programacion(<?=$identificador?>,<?=$tipoaccion?>,<?=$sesion?>)"
+ align=center height="17" width="83">Añadir</SPAN></TD>
+ </TR>
+ <TR>
+ <TD align=center class=botonprogramacion >
+ <SPAN id=bt_modificar style="cursor:pointer;visibility:visible;color:#bbbcb9"
+ onmouseover="sobreboton(this)" onmouseout="fueraboton(this)"
+ onclick="modifica_programacion(<?=$identificador?>,<?=$tipoaccion?>,<?=$sesion?>)" align=center height="17" width="83">Modificar</SPAN></TD>
+ </TR>
+
+ <TD align=center class=botonprogramacion >
+ <SPAN id=bt_duplicar style="cursor:pointer;visibility:visible;color:#bbbcb9"
+ onmouseover="sobreboton(this)" onmouseout="fueraboton(this)"
+ onclick="duplicar_programacion()" align=center height="17" width="83">Duplicar</SPAN></TD>
+ </TR>
+
+ <TR>
+ <TD align=center class=botonprogramacion >
+ <SPAN id=bt_eliminar style="cursor:pointer;color:#bbbcb9;visibility:visible"
+ onmouseover="sobreboton(this)" onmouseout="fueraboton(this)"
+ onclick="elimina_programacion()"align=center height="17" width="83">Eliminar</SPAN></TD>
+ </TR>
+ <TR>
+ <TD align=center class=botonprogramacion >
+ <SPAN id=bt_cancelar style="cursor:pointer;visibility:visible;color:#bbbcb9"
+ onmouseover="sobreboton(this)" onmouseout="fueraboton(this)"
+ onclick="cancela_programacion()" align=center height="17" width="83">Cancelar</SPAN></TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+</TABLE>
+</FORM>
+<SCRIPT language="javascript">
+ var lista=document.getElementById("lista_programaciones");
+ var numblo=lista.options.length
+ if(numblo>0){
+ lista.selectedIndex=0;
+ consulta_programacion()
+ }
+ else{
+ nuevo_bloque();
+ }
+</SCRIPT>
+</BODY>
+</HTML>
diff --git a/admin/WebConsole/varios/tareascomandos.php b/admin/WebConsole/varios/tareascomandos.php
new file mode 100644
index 00000000..878e7cbe
--- /dev/null
+++ b/admin/WebConsole/varios/tareascomandos.php
@@ -0,0 +1,216 @@
+<?
+// *************************************************************************************************************************************************
+// 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
+// Nombre del fichero: tareascomandos.php
+// Descripción :
+// Administra los comandos que forman parte de una tarea
+// *************************************************************************************************************************************************
+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/TomaDato.php");
+include_once("../idiomas/php/".$idioma."/tareascomandos_".$idioma.".php");
+//________________________________________________________________________________________________________
+
+$idtarea=0;
+$descripciontarea="";
+if (isset($_GET["idtarea"])) $idtarea=$_GET["idtarea"]; // Recoge parametros
+if (isset($_GET["descripciontarea"])) $descripciontarea=$_GET["descripciontarea"]; // Recoge parametros
+
+$cmd=CreaComando($cadenaconexion); // Crea objeto comando
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+?>
+<HTML>
+<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/tareascomandos.js"></SCRIPT>
+<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
+<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/tareascomandos_'.$idioma.'.js"></SCRIPT>'?>
+</HEAD>
+<BODY>
+<FORM name="fdatos">
+ <INPUT type=hidden value="<? echo $idcentro?>" id=idcentro>
+ <P align=center class=cabeceras><IMG src="../images/iconos/tareas.gif">&nbsp;<?echo $TbMsg[0]?><BR>
+ <SPAN align=center class=subcabeceras><?echo $TbMsg[1]?></SPAN>&nbsp;<IMG src="../images/iconos/comandos.gif"><BR><BR>
+ <SPAN align=center class=presentaciones><B><?echo $TbMsg[2]?>:&nbsp;</B><? echo $descripciontarea?></SPAN></P>
+ <DIV align=center id="Layer_componentes">
+ <TABLE class="tabla_listados" cellspacing=1 cellpadding=0 id="TABLACOMANDOS">
+ <TR height=20>
+ <TH><IMG src="../images/iconos/eliminar.gif"></TH>
+ <TH align=left>&nbsp;<?echo $TbMsg[3]?></TH>
+ <TH><?echo $TbMsg[4]?></TH>
+ <TH>A</TH>
+ </TR>
+ <?
+ $rs=new Recordset;
+ $cmd->texto='SELECT tareas_acciones.*, comandos.descripcion,comandos.visuparametros
+ FROM tareas_acciones
+ INNER JOIN procedimientos ON tareas_acciones.idprocedimiento = procedimientos.idprocedimiento
+ INNER JOIN procedimientos_acciones ON procedimientos.idprocedimiento = procedimientos_acciones.idprocedimiento
+ INNER JOIN comandos ON procedimientos_acciones.idcomando = comandos.idcomando
+ WHERE tareas_acciones.idtarea='.$idtarea.' ORDER BY tareas_acciones.orden';
+ $rs->Comando=&$cmd;
+ if ($rs->Abrir()){
+ $rs->Primero();
+ $tabla_parametros=""; // Tabla para localizar parametros
+ $cont_parametros=0; // Contador de la tabla
+ CreaTablaParametros($cmd); // Crea tabla especificaciones de parametros
+ while (!$rs->EOF){
+ echo '<TR id=TR-'.$rs->campos["idtareacomando"].'>';
+ echo '<TD align=center ><INPUT id=checkbox-'.$rs->campos["idtareacomando"].' type=checkbox
+ onclick="gestion_comandos('.$rs->campos["idtareacomando"].',this)" checked ></INPUT></TD>';
+ // Descripcion de la comando
+ echo '<TD>&nbsp;'.$rs->campos["descripcion"].'</TD>';
+ // Orden del item del item
+ echo '<TD align=center >&nbsp;<INPUT class="formulariodatos" id=orden-'.$rs->campos["idtareacomando"].'
+ style="WIDTH:20px" type=text value="'.$rs->campos["orden"].'"></INPUT></TD>';
+ echo '<TD width="10%" align=center id="imgact-'.$rs->campos["idtareacomando"].'">
+ <IMG src="../images/iconos/actualizar.gif" style="cursor:hand" onclick="ActualizarAccion('.$rs->campos["idtareacomando"].')"></TD>';
+ echo '</TR>';
+ pintacomandos($cmd,$rs);
+ echo '<TR height=3><TD style="BACKGROUND-COLOR: #999999;" colspan=5></TD></TR>'.chr(13);
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ ?>
+ </TABLE>
+ </DIV>
+ <DIV id="Layer_nota" align=center>
+ <br>
+ <span align=left class=notas><I><?echo $TbMsg[7]?>.</I></span>
+ </DIV>
+</FORM>
+</BODY>
+</HTML>
+<?
+// *************************************************************************************************************************************************
+function pintacomandos($cmd,$rs){
+ global $TbMsg;
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+ global $tabla_parametros;
+ global $cont_parametros;
+
+ $HTMLparametros='<TR id="PAR-'.$rs->campos["idtareacomando"].'">'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4; " >'.$TbMsg[5].'</TH>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4;" >'.$TbMsg[6].'</TH>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #D4D4D4;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '</TR>'.chr(13);
+
+ $textambito="";
+ $urlimg="";
+ $nombre="";
+ switch($rs->campos["ambito"]){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito="Center";
+ $nombre=TomaDato($cmd,0,'centros',$rs->campos["idambito"],'idcentro','nombrecentro');
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Group of labs";
+ $nombre=TomaDato($cmd,0,'grupos',$rs->campos["idambito"],'idgrupo','nombregrupo');
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito="Labs";
+ $nombre=TomaDato($cmd,0,'aulas',$rs->campos["idambito"],'idaula','nombreaula');
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Group of computers";
+ $nombre=TomaDato($cmd,0,'gruposordenadores',$rs->campos["idambito"],'idgrupo','nombregrupoordenador');
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Computers";
+ $nombre=TomaDato($cmd,0,'ordenadores',$rs->campos["idambito"],'idordenador','nombreordenador');
+ break;
+ }
+ $HTMLparametros.='<TR id="PAR-'.$rs->campos["idtareacomando"].'">'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$TbMsg[8].'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$textambito.'&nbsp;';
+ $HTMLparametros.= '<IMG src="'.$urlimg.'">&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #b5daad;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '</TR>';
+
+ $HTMLparametros.='<TR id="PAR-'.$rs->campos["idtareacomando"].'">'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$TbMsg[9].'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$nombre.'&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #b5daad;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '</TR>';
+
+ $auxVP=split(";",$rs->campos["visuparametros"]); // Parametros visualizables
+ $auxP=split(chr(13),$rs->campos["parametros"]); // Recorre parametros para visualizar los que así sean
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split("=",$auxP[$i]);
+ for ($k=0;$k<sizeof($auxVP);$k++){
+ if($auxVP[$k]==$dualparam[0]){
+ $posp=busca_indicebinariodual($dualparam[0],$tabla_parametros,$cont_parametros); // Busca datos del parámetro en la tabla cargada previamentre con todos los parámetros
+ if ($posp>=0){
+ $auxtabla_parametros=$tabla_parametros[$posp][1];
+ $HTMLparametros.='<TR id="PAR-'.$rs->campos["idtareacomando"].'">'.chr(13);
+ $HTMLparametros.= '<TD>&nbsp;</TD>'.chr(13);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$auxtabla_parametros["descripcion"].'&nbsp;</TD>'.chr(13);
+ if($auxtabla_parametros["tipopa"]==1){
+ $valor=TomaDato($cmd,0,$auxtabla_parametros["nomtabla"],$dualparam[1],$auxtabla_parametros["nomidentificador"],$auxtabla_parametros["nomliteral"]);
+ }else
+ $valor=$dualparam[1];
+ if($dualparam[0]!="iph")
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$valor.'&nbsp;</TD>'.chr(13);
+ else{
+ $tablaipes=PintaOrdenadores($cmd,$valor);
+ $HTMLparametros.= '<TD style="BACKGROUND-COLOR: #b5daad;">&nbsp;'.$tablaipes.'&nbsp;</TD>'.chr(13);
+ }
+ $HTMLparametros.= '<TH style="FONT-WEIGHT: 700;COLOR: #000000;BACKGROUND-COLOR: #b5daad;" >&nbsp;</TH>'.chr(13);
+ $HTMLparametros.= '</TR>'.chr(13);
+ }
+ }
+ }
+ }
+ echo $HTMLparametros;
+}
+//________________________________________________________________________________________________________
+function PintaOrdenadores($cmd,$cadenaip){
+ $auxP=split(";",$cadenaip);
+ if(sizeof($auxP)<1) return("");
+ $clauslaIN="'".$auxP[0]."'";
+ for ($i=1;$i<sizeof($auxP);$i++)
+ $clauslaIN.=",'".$auxP[$i]."'";
+ $rs=new Recordset;
+ $contor=0;
+ $maxord=7; // Máximos ordenadores por linea
+ $cmd->texto=" SELECT nombreordenador,ip FROM ordenadores INNER JOIN aulas ON aulas.idaula=ordenadores.idaula WHERE ip IN(".$clauslaIN.") ORDER by nombreaula,nombreordenador";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $tablaHtml='<TABLE align=left border=0><TR>';
+ while (!$rs->EOF){
+ $contor++;
+ $tablaHtml.= '<TD align=center style="BACKGROUND-COLOR: #b5daad;FONT-FAMILY: Arial, Helvetica, sans-serif; BORDER-BOTTOM:#000000 none;FONT-SIZE: 8px">
+ <IMG src="../images/iconos/ordenador.gif"><br><span style="FONT-SIZE:9px" >'.$rs->campos["nombreordenador"].'</TD>';
+ if($contor>$maxord){
+ $contor=0;
+ $tablaHtml.='</TR><TR>';
+ }
+ $rs->Siguiente();
+ }
+ $tablaHtml.='</TR>';
+ $tablaHtml.= '</TR></TABLE>';
+ return($tablaHtml);
+}
diff --git a/admin/WebConsole/varios/toma_mes.php b/admin/WebConsole/varios/toma_mes.php
new file mode 100644
index 00000000..9ff73c64
--- /dev/null
+++ b/admin/WebConsole/varios/toma_mes.php
@@ -0,0 +1,26 @@
+<?
+// *************************************************************************************************************************************************
+// 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: Noviembre-2005
+// Nombre del fichero: toma_mes.php
+// Descripción :
+// Crea la tabla del mes y el año elegidos
+// *************************************************************************************************************************************************
+
+include_once("../includes/ctrlacc.php");
+include_once("../idiomas/php/".$idioma."/clases/Almanaque_".$idioma.".php");
+
+// Toma parametros
+$pidmes=0;
+$pidanno=0;
+$pvitem=0;
+
+if (isset($_POST["idmes"])) $pidmes=$_POST["idmes"];
+if (isset($_POST["idanno"])) $pidanno=$_POST["idanno"];
+
+$mialmanaque= new Almanaque("tabla_meses");
+$retorno=$mialmanaque->MesAnno($pidmes,$pidanno);
+echo $retorno;
+?> \ No newline at end of file