diff options
-rw-r--r-- | admin/WebConsole/comandos/Configurar.php | 11 | ||||
-rw-r--r-- | admin/WebConsole/comandos/IniciarSesion.php | 25 | ||||
-rw-r--r-- | admin/WebConsole/includes/ConfiguracionesParticiones.php | 9 | ||||
-rw-r--r-- | admin/WebConsole/includes/configfunctions.php | 94 | ||||
-rw-r--r-- | admin/WebConsole/includes/pintaTablaConfiguraciones.php | 7 |
5 files changed, 86 insertions, 60 deletions
diff --git a/admin/WebConsole/comandos/Configurar.php b/admin/WebConsole/comandos/Configurar.php index 7a634c3c..d67eec8d 100644 --- a/admin/WebConsole/comandos/Configurar.php +++ b/admin/WebConsole/comandos/Configurar.php @@ -74,7 +74,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; //________________________________________________________________________________________________________ - echo '<P align=center><SPAN align=center class=subcabeceras>'.$TbMsg[19].'</SPAN></P>'; + echo '<p align="center"><span class="subcabeceras">'.$TbMsg[19].'</span></p>'; if($ambito!=$AMBITO_ORDENADORES){ $cadenaid=""; $cadenaip=""; @@ -172,10 +172,13 @@ function opeFormatear() /*________________________________________________________________________________________________________ Crea la etiqueta html <SELECT> de los tipos de particiones ________________________________________________________________________________________________________*/ -function HTMLSELECT_tipospar($codpar) +function HTMLSELECT_tipospar($tablapar="MSDOS", $codpar) { - $json=json_decode(file_get_contents(ENGINEJSON)); - return(htmlSelectPartitions($json, $codpar, "tipopar", 150, "", "formulariodatos", "MSDOS")); + $html ='<select class="formulariodatos" name="tipopar" style="width: 150px">'."\n"; + $html.=' <option value="0"></option>'."\n"; + $html.=htmlOptionPartitions($tablapar, $codpar, ""); + $html.='</select>'."\n"; + return($html); } /*________________________________________________________________________________________________________ Crea la etiqueta html <SELECT> de los sistemas de ficheros diff --git a/admin/WebConsole/comandos/IniciarSesion.php b/admin/WebConsole/comandos/IniciarSesion.php index 5bcf5b9f..0c89c971 100644 --- a/admin/WebConsole/comandos/IniciarSesion.php +++ b/admin/WebConsole/comandos/IniciarSesion.php @@ -58,8 +58,9 @@ if (!$cmd) RecopilaIpesMacs($cmd,$ambito,$idambito); ?> - <P align=center><SPAN class=subcabeceras><?php echo $TbMsg[7] ?></SPAN></P> - <BR> + <P align=center> + <SPAN align=center class=subcabeceras><?php echo $TbMsg[7] ?></SPAN> + <br> <form align=center name="fdatos" method="POST"> <INPUT type="hidden" name="idambito" value="<?php echo $idambito?>"> <INPUT type="hidden" name="ambito" value="<?php echo $ambito?>"> @@ -94,6 +95,7 @@ function toma_propiedades($cmd,$idordenador){ global $idperfilhard; global $idservidordhcp; global $idservidorrembo; + $rs=new Recordset; $cmd->texto="SELECT nombreordenador,ip,mac,idperfilhard FROM ordenadores WHERE idordenador='".$idordenador."'"; $rs->Comando=&$cmd; @@ -115,30 +117,35 @@ function toma_propiedades($cmd,$idordenador){ ________________________________________________________________________________________________________*/ function tabla_configuraciones($cmd,$idordenador){ global $idcentro; + $tablaHtml=""; $cmd->texto="SELECT ordenadores_particiones.numpar, - ordenadores_particiones.tamano, + ordenadores_particiones.codpar, ordenadores_particiones.tamano, ordenadores_particiones.idnombreso, nombresos.nombreso, - tipospar.tipopar, imagenes.descripcion AS imagen, + 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." - AND tipospar.clonable=1 AND nombresos.nombreso!='DATA' ORDER BY ordenadores_particiones.numpar"; +<<<<<<< HEAD $rs=new Recordset; +======= + + $rs->Comando=&$cmd; + $rs=new Recordset; +>>>>>>> #812: Usar fichero de configuración JSON en comandos Configurar e Iniciar Sesión. $rs->Comando=&$cmd; if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ - if(!empty($rs->campos["idnombreso"])){ + if(!empty($rs->campos["idnombreso"]) and isClonable($rs->campos["codpar"])){ $tablaHtml.='<TR>'.chr(13); $tablaHtml.='<TD ><input type="radio" name="particion" value='.$rs->campos["numpar"].'></TD>'.chr(13); $tablaHtml.='<TD align=center> '.$rs->campos["numpar"].' </TD>'.chr(13); @@ -150,3 +157,7 @@ function tabla_configuraciones($cmd,$idordenador){ $rs->Cerrar(); return($tablaHtml); } +<<<<<<< HEAD +======= + +>>>>>>> #812: Usar fichero de configuración JSON en comandos Configurar e Iniciar Sesión. diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php index b5da9d68..319c26be 100644 --- a/admin/WebConsole/includes/ConfiguracionesParticiones.php +++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php @@ -67,9 +67,6 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) global $msk_perfil; global $msk_cache; - // Cargar datos JSON de configuración. - $json=json_decode(file_get_contents(ENGINEJSON)); - // Comprobar modos SQL para hacer que la consulta sea compatible. $cmd->texto="SELECT @@sql_mode AS mode"; $cmd->ejecutar(); @@ -152,11 +149,11 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) $codpar=$rs->campos["codpar"]; if ($numpar == 0) { // Tipo de tabla de particiones. - $tipopar = getParttableData($json, $codpar); - $clonable = ""; + $tipopar = getParttableData($codpar); + $clonable = false; } else { // Saltar si no es clonable en restauración. - list($tipopar, $clonable) = getPartitionData($json, $codpar); + list($tipopar, $clonable) = getPartitionData($codpar); if ($swr and $clonable == false) { continue; } diff --git a/admin/WebConsole/includes/configfunctions.php b/admin/WebConsole/includes/configfunctions.php index 04d265f0..8321c954 100644 --- a/admin/WebConsole/includes/configfunctions.php +++ b/admin/WebConsole/includes/configfunctions.php @@ -1,16 +1,20 @@ <?php -// Fichero de configuración JSON. +/** + * @license GPLv3+ + * @author Ramón M. Gómez <ramongomez@us.es> + */ + +// JSON configuration file path define("ENGINEJSON", __DIR__ . "/../../client/etc/engine.json"); /** - * @function getPartitionData - * @brief Busca en la configuración JSON los datos de partición para el código hexadecimal correspondiente - * @param object $json datos JSON de configuración - * @param string $code código hexadecimal de partición - * @return array tipo de partición (string) e indicador de clonable (bool) - * @date 2018-17-05 + * @param string $code Partition code, in hexadecimal + * @return array Partition data (type and clonable indicator) */ -function getPartitionData($json, $code) { +function getPartitionData($code) { + /** @var object $json JSON configuration data */ + $json=json_decode(file_get_contents(ENGINEJSON)); + if (isset($json->partitiontables)) { foreach ($json->partitiontables as $tab) { if (isset($tab->partitions)) { @@ -26,14 +30,35 @@ function getPartitionData($json, $code) { } /** - * @function getParttableData - * @brief Busca en la configuración JSON los datos de tabla de particiones para el código correspondiente. - * @param object $json datos JSON de configuración - * @param string $code código de tabla de particiones - * @return string tipo de tabla de particiones - * @date 2018-17-05 + * @param string $code Partition code, in hexadecimal + * @return bool True, if partition is marked as clonable */ -function getParttableData($json, $code) { +function isClonable($code) { + /** @var object $json JSON configuration data */ + $json=json_decode(file_get_contents(ENGINEJSON)); + + if (isset($json->partitiontables)) { + foreach ($json->partitiontables as $tab) { + if (isset($tab->partitions)) { + foreach ($tab->partitions as $par) { + if (hexdec($par->id) == $code) { + return $par->clonable; + } + } + } + } + } + return false; +} + +/** + * @param int $code Partition table code + * @return string partition table type + */ +function getParttableData($code) { + /** @var object $json JSON configuration data */ + $json=json_decode(file_get_contents(ENGINEJSON)); + if (isset($json->partitiontables)) { foreach ($json->partitiontables as $tab) { if ($tab->id == $code) { @@ -45,26 +70,16 @@ function getParttableData($json, $code) { } /** - * @function htmlSelectPartitions - * @brief Devuelve la cláusula <select> de HTML con datos de todas las particiones válidas para una tabla determinada. - * @param object $json datos JSON de configuración - * @param string $type tipo de partición seleccionada por defecto - * @param string $name nombre del elemento HTML - * @param integer $width ancho del elemento - * @param string $eventChg evento JavaScript cuando cambia la selección - * @param string $class clase del elemento - * @param string $partTable tipo de tabla de particiones - * @return string código HTML - * @date 2018-17-23 + * @param string $partTable Partition table type + * @param string $type Partition type selected by default + * @param string $exclude Partition type to exclude + * @return string HTML <select> clause */ -function htmlSelectPartitions($json, $type, $name="", $width, $eventChg="", $class="", $partTable) { - if (!empty($eventhg)) $eventChg='onchange="'.$eventChg.'(this);"'; - if (empty($class)) $class='formulariodatos'; - if (empty($name)) $name='id'; - - /** @var string $html */ - $html ='<select '.$eventChg.' class="'.$class.'" name="'.$name.'" style="width: '.$width.'px">'.chr(13); - $html.=' <option value="0"></option>'.chr(13); +function htmlOptionPartitions($partTable="MSDOS", $type="", $exclude="") { + /** @var object $json JSON configuration data */ + $json=json_decode(file_get_contents(ENGINEJSON)); + /** @var string $html HTML code */ + $html=''; if (isset($json->partitiontables)) { foreach ($json->partitiontables as $tab) { @@ -73,15 +88,16 @@ function htmlSelectPartitions($json, $type, $name="", $width, $eventChg="", $cla } if (isset($tab->partitions)) { foreach ($tab->partitions as $par) { - $html.=' <option value="'.$par->id.'"'; - if ($par->type == $type) { - $html.=' selected'; + if ($par->type != $exclude) { + $html.=' <option value="'.$par->id.'"'; + if ($par->type == $type) { + $html.=' selected'; + } + $html.='>'.$par->type.'</option>'."\n"; } - $html.='>'.$par->type.'</option>'.chr(13); } } } } - $html.='</select>'.chr(13); return($html); } diff --git a/admin/WebConsole/includes/pintaTablaConfiguraciones.php b/admin/WebConsole/includes/pintaTablaConfiguraciones.php index b557da37..f15879ac 100644 --- a/admin/WebConsole/includes/pintaTablaConfiguraciones.php +++ b/admin/WebConsole/includes/pintaTablaConfiguraciones.php @@ -188,7 +188,6 @@ function tablaConfiguracionesCrearImagen($cmd,$idordenador,$idrepositorio) { global $idcentro; global $TbMsg; - $json = json_decode(file_get_contents(ENGINEJSON)); $tablaHtml=""; $cmd->texto="SELECT ordenadores.ip AS masterip, ordenadores_particiones.numdisk, ordenadores_particiones.numpar, @@ -215,7 +214,7 @@ function tablaConfiguracionesCrearImagen($cmd,$idordenador,$idrepositorio) $actualDisk = $rs->campos["numdisk"]; $tablaHtml.='<TR><td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;"> <strong>'.$TbMsg["DISK"].' '.$actualDisk.'</strong></td></TR>'.chr(13); } - list($rs->campos["tipopar"], $rs->campos["clonable"]) = getPartitionData($json, $rs->campos["codpar"]); + list($rs->campos["tipopar"], $rs->campos["clonable"]) = getPartitionData($rs->campos["codpar"]); $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; @@ -298,10 +297,10 @@ function tablaConfiguracionesSincronizacion1($idordenador) $actualDisk = $rs->campos["numdisk"]; $tablaHtml.='<td colspan="'.$columns.'" style="BORDER-TOP: #999999 1px solid;BACKGROUND-COLOR: #D4D0C8;"> <strong>'.$TbMsg["DISK"].' '.$actualDisk.'</strong></td>'.chr(13); } - list($rs->campos["tipopar"], $rs->campos["clonable"]) = getPartitionData($json, $rs->campos["codpar"]); + list($rs->campos["tipopar"], $rs->campos["clonable"]) = getPartitionData($rs->campos["codpar"]); //$swcc=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]) && !empty($rs->campos["idperfilsoft"]); $sw=$rs->campos["clonable"] && !empty($rs->campos["idnombreso"]); - if($sw){// Una partici�n es clonable si es cierta esta variable + if($sw){// Una partición es clonable si es cierta esta variable $tbPAR.=$rs->campos["numpar"].";"; // Cadena con las particiones a procesar $tablaHtml.='<tr id="trPar-'.$rs->campos["numpar"].'">'; $tablaHtml.='<td align=center><input type=radio name="particion" value="'.$rs->campos["codpar"].'"></td>'; |