diff options
-rw-r--r-- | admin/Database/ogAdmBD.sql | 17 | ||||
-rw-r--r-- | admin/WebConsole/gestores/gestor_proyectores.php | 201 | ||||
-rw-r--r-- | admin/WebConsole/idiomas/php/esp/propiedades_proyectores_esp.php | 16 | ||||
-rw-r--r-- | admin/WebConsole/includes/constantes.php | 2 | ||||
-rw-r--r-- | admin/WebConsole/principal/aulas.php | 115 | ||||
-rw-r--r-- | admin/WebConsole/propiedades/propiedades_proyectores.php | 149 | ||||
-rwxr-xr-x | installer/opengnsys_installer.sh | 6 | ||||
-rwxr-xr-x | installer/opengnsys_update.sh | 6 |
8 files changed, 505 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/gestores/gestor_proyectores.php b/admin/WebConsole/gestores/gestor_proyectores.php new file mode 100644 index 00000000..dd2f663f --- /dev/null +++ b/admin/WebConsole/gestores/gestor_proyectores.php @@ -0,0 +1,201 @@ +<?php +// ************************************************************************************************************************************************* +// Autor: Ramón M. Gómez, ETSII Universidad de Sevilla +// Fecha Creación: +// Fecha Última modificación: junio 2018 +// Nombre del fichero: gestor_proyectores.php +// Descripción : +// Gestiona el mantenimiento de la tabla de proyectores +// ************************************************************************************************************************************************* +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/proyectores_eliminacion.php"); +include_once("../includes/opciones.php"); +//include_once("../idiomas/php/".$idioma."/gestor_proyectores_".$idioma.".php"); + +//________________________________________________________________________________________________________ +$opcion=0; // Inicializa parametros + +$idaula=0; +$idproyector=0; +$nombreproyector=""; +$modelo=""; +$tipo=""; +$ip=""; +$datosduplicados=""; +if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros +if (isset($_POST["idaula"])) $idaula=$_POST["idaula"]; +if (isset($_POST["idproyector"])) $idproyector=$_POST["idproyector"]; +if (isset($_POST["nombreproyector"])) $nombreproyector=$_POST["nombreproyector"]; +if (isset($_POST["modelo"])) $modelo=$_POST["modelo"]; +if (isset($_POST["tipo"])) $tipo=$_POST["tipo"]; +if (isset($_POST["ip"])) $ip=$_POST["ip"]; +//________________________________________________________________________________________________________ +$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_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_proyectores"; + break; + case $op_modificacion: + $literal="resultado_modificar_proyectores"; + break; + case $op_eliminacion : + $literal="resultado_eliminar_proyectores"; + break; + case $op_movida : + $literal="resultado_cambiar_proyectores"; + break; + default: + break; + } +if ($resul){ + if ($opcion==$op_alta ) { + if ( $datosduplicados != '') { + echo $literal."(0,'".$TbMsg["DUPLICADO"].$datosduplicados." ',".$idproyector.",o.innerHTML);".chr(13); + } else { + echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idproyector.",o.innerHTML);".chr(13); + } + } + else + echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombreproyector."');".chr(13); +} +else + echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idproyector.")"; + +if($opcion!=$op_movida){ + echo ' </SCRIPT>'; + echo '</BODY> '; + echo '</HTML>'; +} +/*________________________________________________________________________________________________________ + Inserta, modifica o elimina datos en la tabla proyectores +________________________________________________________________________________________________________*/ +function Gestiona(){ + global $cmd; + global $opcion; + global $idproyector; + global $nombreproyector; + global $modelo; + global $tipo; + global $ip; + global $idaula; + + global $op_alta; + global $op_modificacion; + global $op_eliminacion; + global $op_movida; + global $tablanodo; + + global $datosduplicados; + + $cmd->CreaParametro("@idaula",$idaula,1); + $cmd->CreaParametro("@idproyector",$idproyector,1); + $cmd->CreaParametro("@nombreproyector",$nombreproyector,0); + $cmd->CreaParametro("@modelo",$modelo,0); + $cmd->CreaParametro("@tipo",$tipo,0); + $cmd->CreaParametro("@ip",$ip,0); + + switch($opcion){ + case $op_alta : + // Comprueba que no existan duplicados + $ipduplicada='no'; + $nombreduplicado='no'; + $cmd->texto=<<<EOD +SELECT * + FROM projectors + WHERE name=@nombreproyector OR ipddr=@ip; +EOD; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(0); // Error al abrir recordset + $rs->Primero(); + while (!$rs->EOF){ + if ( $nombreproyector == $rs->campos["nombreproyector"]) $datosduplicados ="nombre: $nombreproyector,"; + if ( $ip == $rs->campos["ip"]) $datosduplicados .=" ip: $ip,"; + $rs->Siguiente(); + } + $rs->Cerrar(); + // quitamos última coma + $datosduplicados = trim($datosduplicados, ','); + + // Si no hay datos duplicados insertamos el proyector; + if ( $datosduplicados == "" ) { + $cmd->texto = <<<EOD +INSERT INTO projectors (name, model, type, ipaddr) + VALUES (@nombreproyector, @modelo, @tipo, @ip); +EOD; + } + $resul=$cmd->Ejecutar(); + if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta + $idproyector=$cmd->Autonumerico(); + // Insertar datos en el árbol de configuración. + $arbolXML=SubarbolXML_proyectores($idproyector,$nombreproyector); + $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=<<<EOD +UPDATE projectors + SET name=@nombreordenador, model=@modelo, type=@tipo, ipaddr=@ip + WHERE id=@idproyector; +EOD; + $resul=$cmd->Ejecutar(); + break; + case $op_eliminacion : + $resul=EliminaProyectores($cmd,$idproyector,"idproyector");// Eliminación en cascada + break; + case $op_movida : + $cmd->texto=<<<EOD +UPDATE projectors + SET lab_id=@idaula + WHERE id=@idproyector; +EOD; + $resul=$cmd->Ejecutar(); + break; + default: + break; + } + return($resul); +} +/*________________________________________________________________________________________________________ + Crea un arbol XML para el nuevo nodo insertado +________________________________________________________________________________________________________*/ +function SubarbolXML_proyectores($idproyector,$nombreproyector){ + global $LITAMBITO_ORDENADORES; + $cadenaXML='<PROYECTOR'; + // Atributos + $cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$LITAMBITO_PROYECTORES."'" .')"'; + $cadenaXML.=' imagenodo="../images/iconos/proyector.gif"'; + $cadenaXML.=' infonodo="'.$nombreproyector.'"'; + $cadenaXML.=' nodoid='.$LITAMBITO_PROYECTORES.'-'.$idproyector; + $cadenaXML.='></PROYECTOR>'; + return($cadenaXML); +} diff --git a/admin/WebConsole/idiomas/php/esp/propiedades_proyectores_esp.php b/admin/WebConsole/idiomas/php/esp/propiedades_proyectores_esp.php new file mode 100644 index 00000000..b6361137 --- /dev/null +++ b/admin/WebConsole/idiomas/php/esp/propiedades_proyectores_esp.php @@ -0,0 +1,16 @@ +<?php +//______________________________________________________________ +// +// Fichero de idiomas php: propiedades_proyectores_esp.php +// Idioma: Español +//______________________________________________________________ +if (empty ($TbMsg)) $TbMsg=array(); +$TbMsg[0]="Sin Opción"; +$TbMsg[1]="Insertar"; +$TbMsg[2]="Modificar"; +$TbMsg[3]="Eliminar"; +$TbMsg[4]="Gestión Proyectores"; +$TbMsg["PROP_IPADDR"]="Dirección IP"; +$TbMsg["PROP_MODEL"]="Marca y Modelo"; +$TbMsg["PROP_NAME"]="Nombre"; +$TbMsg["PROP_TYPE"]="Tipo de Proyector"; 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/admin/WebConsole/propiedades/propiedades_proyectores.php b/admin/WebConsole/propiedades/propiedades_proyectores.php new file mode 100644 index 00000000..775e43a2 --- /dev/null +++ b/admin/WebConsole/propiedades/propiedades_proyectores.php @@ -0,0 +1,149 @@ +<?php +// **************************************************************************************************** +// Autor: Ramón M. Gómez, ETSII Universidad de Sevilla +// Fecha Creación: junio 2018 +// Fecha Última modificación: junio 2018 +// Nombre del fichero: propiedades_proyectores.php +// Descripción : +// Presenta el formulario de captura de datos de un proyector 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/HTMLCTESELECT.php"); +include_once("../clases/AdoPhp.php"); +include_once("../idiomas/php/".$idioma."/propiedades_proyectores_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/avisos_".$idioma.".php"); +//________________________________________________________________________________________________________ +$opcion=0; +$opciones=array($TbMsg[0],$TbMsg[1],$TbMsg[2],$TbMsg[3]); +//________________________________________________________________________________________________________ +$idproyector=0; +$nombreproyector=""; +$ip=""; +$modelo=""; +$tipo=""; +$idaula=0; + +if (isset($_GET["opcion"])) $opcion=$_GET["opcion"]; // Recoge parametros +if (isset($_GET["idproyector"])) $idordenador=$_GET["idproyector"]; +if (isset($_GET["idaula"])) $idaula=$_GET["idaula"]; +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,$idproyector); + 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/validators.js"></SCRIPT> + <script language="javascript" src="../jscripts/propiedades_proyectores.js"></script> + <script language="javascript" src="../jscripts/opciones.js"></script> + <?php echo '<script language="javascript" src="../idiomas/javascripts/'.$idioma.'/propiedades_proyectores_'.$idioma.'.js"></script>'?> +</head> +<body> +<form name="fdatos" action="../gestores/gestor_proyectores.php" method="post" enctype="multipart/form-data"> + <input type="hidden" name="opcion" value="<?php echo $opcion?>" /> + <input type="hidden" name="idproyector" value="<?php echo $idproyector?>" /> + <input type="hidden" name="idaula" value="<?php echo $idaula?>" /> + <p align="center" class="cabeceras"><?php echo $TbMsg[4]?><br /> + <span class="subcabeceras"><?php echo $opciones[$opcion]?></span></p> +<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + <table align="center" border="0" cellPadding="1" cellSpacing="1" class="tabla_datos"> + <tr> + <th align="center"> <?php echo $TbMsg["PROP_NAME"]?> </th> + <?php if ($opcion==$op_eliminacion) { + echo '<td>'.$nombreproyector.'</td>'."\n"; + } else { + echo '<td><input class="formulariodatos" name="nombreproyector" type="text" value="'.$nombreproyector.'"></td>'."\n"; + } + ?> + </tr> +<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + <tr> + <th align="center"> <?php echo $TbMsg["PROP_IPADDR"]?> </th> + <?php if ($opcion==$op_eliminacion) { + echo '<td>'.$ip.'</td>'."\n"; + } else { + echo '<td><input class="formulariodatos" name=ip type=text value="'.$ip.'"></td>'."\n"; + } + ?> + </tr> +<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + <tr> + <th align="center"> <?php echo $TbMsg["PROP_MODEL"]?> </th> + <?php if ($opcion==$op_eliminacion) { + echo '<td><input type="hidden" name="modelo" value="'.$mac.'" />'.$mac.'</td>'; + } else { + echo '<td><input class="formulariodatos" name="modelo" type="text" value="'. $modelo.'"></td>'."\n"; + } + ?> + </tr> +<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + <tr> + <th align="center"> <?php echo $TbMsg["PROP_TYPE"]?> </th> + <?php if ($opcion==$op_eliminacion) { + echo '<td><input type="hidden" name="modelo" value="'.$tipo.'" />'.$mac.'</td>'."\n"; + } else { + $tiposproy ="standalone=standalone".chr(13); + $tiposproy.="pjlink=pjlink".chr(13); + $tiposproy.="unknown=unknown"; + echo '<td>'.HTMLCTESELECT($tiposproy,"tipo","estilodesple","",$tipo,100).'</td>'."\n"; + } + ?> + </tr> +<!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> + </table> +</form> +<?php +//________________________________________________________________________________________________________ +include_once("../includes/opcionesbotonesop.php"); +//________________________________________________________________________________________________________ +?> +<br /> +</body> +</html> +<?php +//________________________________________________________________________________________________________ +// 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 $nombreproyector; + global $ip; + global $modelo; + global $tipo; + + $rs=new Recordset; + $cmd->texto=<<<EOD +SELECT projectors.* + FROM projectors + JOIN aulas ON aulas.idaula=projectors.id + WHERE id='$id'; +EOD; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return(false); // Error al abrir recordset + $rs->Primero(); + if (!$rs->EOF){ + $nombreproyector=$rs->campos["name"]; + $modelo=$rs->campos["model"] == 1; + $tipo=$rs->campos["type"]; + $ip=$rs->campos["ipaddr"]; + $rs->Cerrar(); + return(true); + } + return(false); +} 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 } |