summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2018-06-14 14:30:34 +0200
committerRamón M. Gómez <ramongomez@us.es>2019-10-01 09:07:30 +0200
commita167244a30d78400120a38465e8b8da957174ad8 (patch)
tree6a3bd2bc4928dceae18daee3fa4331ae315d77dd
parent3046005ab472c0c9f4b596065e66771f4cf9d63f (diff)
#794: Projector properties form (initial version).
-rw-r--r--admin/WebConsole/gestores/gestor_proyectores.php201
-rw-r--r--admin/WebConsole/idiomas/php/esp/propiedades_proyectores_esp.php16
-rw-r--r--admin/WebConsole/propiedades/propiedades_proyectores.php149
3 files changed, 366 insertions, 0 deletions
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&oacute;n";
+$TbMsg[1]="Insertar";
+$TbMsg[2]="Modificar";
+$TbMsg[3]="Eliminar";
+$TbMsg[4]="Gestión Proyectores";
+$TbMsg["PROP_IPADDR"]="Direcci&oacute;n IP";
+$TbMsg["PROP_MODEL"]="Marca y Modelo";
+$TbMsg["PROP_NAME"]="Nombre";
+$TbMsg["PROP_TYPE"]="Tipo de Proyector";
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">&nbsp;<?php echo $TbMsg["PROP_NAME"]?>&nbsp;</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">&nbsp;<?php echo $TbMsg["PROP_IPADDR"]?>&nbsp;</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">&nbsp;<?php echo $TbMsg["PROP_MODEL"]?>&nbsp;</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">&nbsp;<?php echo $TbMsg["PROP_TYPE"]?>&nbsp;</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);
+}