diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2018-06-14 14:30:34 +0200 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2018-06-14 14:30:34 +0200 |
commit | bf518ed5fe81d7931ad459dcfec1cc78282b385d (patch) | |
tree | ee86aaa515f8b7e0819e563505cdf8f96b00e48f | |
parent | b60d6b807c580e58f06a337def9a1a83b1f3bcfc (diff) |
#794: Projector properties form (initial version).
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ó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/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); +} |