diff options
-rw-r--r-- | admin/Database/ogAdmBD.sql | 17 | ||||
-rw-r--r-- | admin/WebConsole/includes/constantes.php | 2 | ||||
-rw-r--r-- | admin/WebConsole/principal/aulas.php | 115 | ||||
-rwxr-xr-x | installer/opengnsys_installer.sh | 6 | ||||
-rwxr-xr-x | installer/opengnsys_update.sh | 6 |
5 files changed, 139 insertions, 7 deletions
diff --git a/admin/Database/ogAdmBD.sql b/admin/Database/ogAdmBD.sql index b45b59d8..2ca20128 100644 --- a/admin/Database/ogAdmBD.sql +++ b/admin/Database/ogAdmBD.sql @@ -783,6 +783,23 @@ CREATE TABLE `programaciones` ( -- -------------------------------------------------------- -- +-- Estructura de tabla para la tabla `projector` +-- + +DROP TABLE IF EXISTS projectors; +CREATE TABLE `projectors` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL DEFAULT '', + `model` varchar(50) NOT NULL DEFAULT '', + `type` enum('standalone', 'pjlink', 'unknown') NOT NULL DEFAULT 'standalone', + `ipaddr` varchar(16) NOT NULL DEFAULT '', + `lab_id` int(11) DEFAULT NULL, + PRIMARY KEY(`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; + +-- -------------------------------------------------------- + +-- -- Estructura de tabla para la tabla `remotepc` -- diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php index 40c568e1..d37d8a7b 100644 --- a/admin/WebConsole/includes/constantes.php +++ b/admin/WebConsole/includes/constantes.php @@ -23,6 +23,7 @@ $AMBITO_PERFILESHARD=0x26; $AMBITO_PERFILESSOFT=0x27; $AMBITO_MENUS=0x28; $AMBITO_REPOSITORIOS=0x29; +$AMBITO_PROYECTORES=0x30; $AMBITO_RESERVAS=0x31; // Código del resto de ámbitos (grupos) @@ -62,6 +63,7 @@ $LITAMBITO_PERFILESHARD="perfileshard"; $LITAMBITO_PERFILESSOFT="perfilessoft"; $LITAMBITO_MENUS="menus"; $LITAMBITO_REPOSITORIOS="repositorios"; +$LITAMBITO_PROYECTORES="proyectores"; $LITAMBITO_RESERVAS="reservas"; $LITAMBITO_ADMINISTRACION="administracion"; diff --git a/admin/WebConsole/principal/aulas.php b/admin/WebConsole/principal/aulas.php index 631e68dc..7dc29034 100644 --- a/admin/WebConsole/principal/aulas.php +++ b/admin/WebConsole/principal/aulas.php @@ -72,8 +72,10 @@ $XMLcontextual=ContextualXMLGruposOrdenadores(); // Grupos de ordenadores echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLOrdenadores(); // Ordenadores echo $flotante->CreaMenuContextual($XMLcontextual); +$XMLcontextual=ContextualXMLProyectores(); // Proyectores +echo $flotante->CreaMenuContextual($XMLcontextual); -// Crea contextual de los comandos para los distintos �bitos +// Crea contextual de los comandos para los distintos ámbitos $XMLcontextual=ContextualXMLComandos($LITAMBITO_CENTROS,$AMBITO_CENTROS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLComandos($LITAMBITO_GRUPOSAULAS,$AMBITO_GRUPOSAULAS); @@ -85,7 +87,7 @@ echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLComandos($LITAMBITO_ORDENADORES,$AMBITO_ORDENADORES); echo $flotante->CreaMenuContextual($XMLcontextual); -// Crea contextual de los comandos para los distintos �bitos +// Crea contextual de los comandos para los distintos ámbitos $XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_AULAS,$AMBITO_AULAS); echo $flotante->CreaMenuContextual($XMLcontextual); $XMLcontextual=ContextualXMLSincronizacion($LITAMBITO_GRUPOSORDENADORES,$AMBITO_GRUPOSORDENADORES); @@ -177,6 +179,7 @@ function SubarbolXML_grupos_aulas($cmd,$idcentro,$grupoid){ $cadenaXML.=' nodoid='.$LITAMBITO_AULAS.'-'.$rs->campos["idaula"]; $cadenaXML.='>'; $cadenaXML.=SubarbolXML_aulas_ordenadores($cmd,$rs->campos["idaula"],0); + $cadenaXML.=SubarbolXML_aulas_proyectores($cmd,$rs->campos["idaula"],0); // La siguiente línea está prevista para añadir operatores de aulas. //$cadenaXML.=SubarbolXML_aulas_operadores($cmd,$rs->campos["idaula"],$cc); $cadenaXML.='</AULA>'; @@ -257,6 +260,34 @@ function SubarbolXML_aulas_ordenadores($cmd,$idaula,$grupoid){ return($cadenaXML); } //________________________________________________________________________________________________________ +function SubarbolXML_aulas_proyectores($cmd,$idaula){ + global $TbMsg; + global $LITAMBITO_PROYECTORES; + $cadenaXML=""; + $rs=new Recordset; + $cmd->texto = "SELECT id, name + FROM projectors + WHERE lab_id='$idaula'"; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return($cadenaXML); // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF){ + $cadenaXML.='<PROYECTOR'; + // Atributos. + $cadenaXML.=' imagenodo="../images/iconos/proyector.gif"'; + $wpages="../propiedades/propiedades_proyectores.php"; + $wParam="0,0,0,0,'". $wpages."'"; + $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PROYECTORES."'" .')"'; + $cadenaXML.=' clicksupnodo="modificar('.$wParam.')"'; + $cadenaXML.=' infonodo="'.$rs->campos["name"].'"'; + $cadenaXML.=' nodoid='.$LITAMBITO_PROYECTORES.'-'.$rs->campos["id"]; + $cadenaXML.='></PROYECTOR>'; + $rs->Siguiente(); + } + $rs->Cerrar(); + return($cadenaXML); +} +//________________________________________________________________________________________________________ // // Mens Contextuales //________________________________________________________________________________________________________ @@ -513,7 +544,7 @@ function ContextualXMLAulas(){ $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"'; @@ -540,7 +571,23 @@ function ContextualXMLAulas(){ $layerXML.=' imgitem="../images/iconos/aula.gif"'; $layerXML.=' textoitem='.$TbMsg[27]; $layerXML.='></ITEM>'; + + $layerXML.='<SEPARADOR>'; + $layerXML.='</SEPARADOR>'; + $wLeft=170; + $wTop=80; + $wWidth=480; + $wHeight=480; + $wpages="../propiedades/propiedades_proyectores.php"; + $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'"; + $layerXML.='<ITEM'; + $layerXML.=' alpulsar="insertar('.$wParam.')"'; + $layerXML.=' imgitem="../images/iconos/proyector.gif"'; + //$layerXML.=' textoitem='.$TbMsg[9]; + $layerXML.=' textoitem="Nuevo Proyector"'; + $layerXML.='></ITEM>'; + $layerXML.='<SEPARADOR>'; $layerXML.='</SEPARADOR>'; @@ -661,6 +708,43 @@ function CreacontextualXMLUsuarios(){ $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 CreacontextualXMLProyectores(){ + global $LITAMBITO_PROYECTORES; + global $TbMsg; + + $layerXML='<MENUCONTEXTUAL'; + $layerXML.=' idctx="flo_'.$LITAMBITO_PROYECTORES.'"'; + $layerXML.=' maxanchu=130'; + $layerXML.=' swimg=1'; + $layerXML.=' clase="menu_contextual"'; + $layerXML.='>'; + + // Modificar proyector + $wLeft=140; + $wTop=115; + $wWidth=400; + $wHeight=320; + $wpages="../propiedades/propiedades_proyector.php"; + $wParam=$wLeft .",".$wTop.",".$wWidth.",".$wHeight.",'". $wpages."'"; + $layerXML.='<ITEM'; $layerXML.=' alpulsar="modificar('.$wParam.')"'; $layerXML.=' textoitem='.$TbMsg[13]; $layerXML.=' imgitem="../images/iconos/propiedades.gif"'; @@ -670,6 +754,15 @@ function CreacontextualXMLUsuarios(){ $layerXML.='</SEPARADOR>'; $layerXML.='<ITEM'; + $layerXML.=' alpulsar="estatus('.$wParam.')"'; + $layerXML.=' imgitem="../images/iconos/estatus.gif"'; + $layerXML.=' textoitem='.$TbMsg['STATUS']; + $layerXML.='></ITEM>'; + + $layerXML.='<SEPARADOR>'; + $layerXML.='</SEPARADOR>'; + + $layerXML.='<ITEM'; $layerXML.=' alpulsar="eliminar('.$wParam.')"'; $layerXML.=' imgitem="../images/iconos/eliminar.gif"'; $layerXML.=' textoitem='.$TbMsg[36]; @@ -954,6 +1047,22 @@ function ContextualXMLOrdenadores(){ return($layerXML); } //________________________________________________________________________________________________________ +function ContextualXMLProyectores(){ + global $TbMsg; + global $AMBITO_PROYECTORES; + global $LITAMBITO_PROYECTORES; + + $layerXML='<MENUCONTEXTUAL'; + $layerXML.=' idctx="flo_'.$LITAMBITO_PROYECTORES.'"'; + $layerXML.=' maxanchu=140'; + $layerXML.=' swimg=1'; + $layerXML.=' clase="menu_contextual"'; + $layerXML.='>'; + + $layerXML.='</MENUCONTEXTUAL>'; + return($layerXML); +} +//________________________________________________________________________________________________________ function ContextualXMLComandos($litambito,$ambito){ global $cmd; global $TbMsg; diff --git a/installer/opengnsys_installer.sh b/installer/opengnsys_installer.sh index c5375050..e8cd38c2 100755 --- a/installer/opengnsys_installer.sh +++ b/installer/opengnsys_installer.sh @@ -169,7 +169,7 @@ OSVERSION="${OSVERSION%%.*}" # Configuración según la distribución GNU/Linux (usar minúsculas). case "$OSDISTRIB" in ubuntu|debian|linuxmint) - DEPENDENCIES=( subversion apache2 php php-ldap libapache2-mod-php mysql-server php-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast shim-signed grub-efi-amd64-signed ) + DEPENDENCIES=( subversion apache2 php php-ldap libapache2-mod-php mysql-server php-mysql isc-dhcp-server bittorrent tftp-hpa tftpd-hpa xinetd build-essential g++-multilib libmysqlclient-dev wget curl doxygen graphviz bittornado ctorrent samba rsync unzip netpipes debootstrap schroot squashfs-tools btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast shim-signed grub-efi-amd64-signed python-pip ) UPDATEPKGLIST="apt-get update" INSTALLPKG="apt-get -y install --force-yes" CHECKPKG="dpkg -s \$package 2>/dev/null | grep Status | grep -qw install" @@ -206,7 +206,7 @@ case "$OSDISTRIB" in TFTPCFGDIR=/var/lib/tftpboot ;; fedora|centos) - DEPENDENCIES=( subversion httpd mod_ssl php php-ldap mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan procps-ng gettext moreutils jq net-tools http://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/$(arch)/RPMS.classic/netpipes-4.2-alt1.$(arch).rpm ) + DEPENDENCIES=( subversion httpd mod_ssl php php-ldap mysql-server mysql-devel mysql-devel.i686 php-mysql dhcp tftp-server tftp xinetd binutils gcc gcc-c++ glibc-devel glibc-devel.i686 glibc-static glibc-static.i686 libstdc++-devel.i686 make wget curl doxygen graphviz ctorrent samba samba-client rsync unzip debootstrap schroot squashfs-tools python-crypto arp-scan procps-ng gettext moreutils jq net-tools http://ftp.altlinux.org/pub/distributions/ALTLinux/5.1/branch/$(arch)/RPMS.classic/netpipes-4.2-alt1.$(arch).rpm python-pip ) INSTALLEXTRADEPS=( 'pushd /tmp; wget -t3 http://download.bittornado.com/download/BitTornado-0.3.18.tar.gz && tar xvzf BitTornado-0.3.18.tar.gz && cd BitTornado-CVS && python setup.py install && ln -fs btlaunchmany.py /usr/bin/btlaunchmany && ln -fs bttrack.py /usr/bin/bttrack; popd' ) INSTALLPKG="yum install -y libstdc++ libstdc++.i686" CHECKPKG="rpm -q --quiet \$package" @@ -331,6 +331,8 @@ case "$OSDISTRIB" in [ $OSVERSION -ge 20 ] && DEPENDENCIES=( ${DEPENDENCIES[*]/mysql-/mariadb-} ) ;; esac +# Instalar dependencias de Python. +pip install -U pjlink } diff --git a/installer/opengnsys_update.sh b/installer/opengnsys_update.sh index be36d643..0a6631f7 100755 --- a/installer/opengnsys_update.sh +++ b/installer/opengnsys_update.sh @@ -117,7 +117,7 @@ function autoConfigure() # Configuración según la distribución de Linux. if [ -f /etc/debian_version ]; then # Distribución basada en paquetes Deb. - DEPENDENCIES=( curl rsync btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast ) + DEPENDENCIES=( curl rsync btrfs-tools procps arp-scan realpath php-curl gettext moreutils jq wakeonlan udpcast python-pip ) UPDATEPKGLIST="add-apt-repository -y ppa:ondrej/php; apt-get update" INSTALLPKGS="apt-get -y install" DELETEPKGS="apt-get -y purge" @@ -137,7 +137,7 @@ function autoConfigure() INETDCFGDIR=/etc/xinetd.d elif [ -f /etc/redhat-release ]; then # Distribución basada en paquetes rpm. - DEPENDENCIES=( curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq net-tools ) + DEPENDENCIES=( curl rsync btrfs-progs procps-ng arp-scan gettext moreutils jq net-tools python-pip ) # En CentOS 7 instalar arp-scan de CentOS 6. [ "$OSDISTRIB$OSVERSION" == "centos7" ] && DEPENDENCIES=( ${DEPENDENCIES[*]/arp-scan/http://dag.wieers.com/redhat/el6/en/$(arch)/dag/RPMS/arp-scan-1.9-1.el6.rf.$(arch).rpm} ) INSTALLPKGS="yum install -y" @@ -394,6 +394,8 @@ function installDependencies() fi fi fi + # Dependencias Python. + pip install -U pjlink } |