diff options
author | Ramón M. Gómez <ramongomez@us.es> | 2018-05-23 12:42:19 +0200 |
---|---|---|
committer | Ramón M. Gómez <ramongomez@us.es> | 2019-12-12 14:06:43 +0100 |
commit | 4bab5466cbdd99f9bc6c148cc1b508f6b77e1779 (patch) | |
tree | 134f8b7741014174d5f93dee9ed490b99af748aa /admin | |
parent | 63bd45b339e0c1f9efb3f6c9cfab6e6b31520a91 (diff) |
#812: Tomar tipos de partición del fichero JSON en formularios de comandos web.
Diffstat (limited to 'admin')
-rw-r--r-- | admin/WebConsole/comandos/Configurar.php | 10 | ||||
-rw-r--r-- | admin/WebConsole/includes/ConfiguracionesParticiones.php | 53 | ||||
-rw-r--r-- | admin/WebConsole/includes/configfunctions.php | 87 | ||||
-rw-r--r-- | admin/WebConsole/includes/pintaParticiones.php | 5 | ||||
-rw-r--r-- | admin/WebConsole/includes/pintaTablaConfiguraciones.php | 12 |
5 files changed, 108 insertions, 59 deletions
diff --git a/admin/WebConsole/comandos/Configurar.php b/admin/WebConsole/comandos/Configurar.php index 5474294c..7a634c3c 100644 --- a/admin/WebConsole/comandos/Configurar.php +++ b/admin/WebConsole/comandos/Configurar.php @@ -129,7 +129,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; echo '<TABLE style="visibility:hidden"><TR id="TR_patron">'; echo '<TD align=center><input id="CHK_patron" type="checkbox"></TD>'; echo '<TD align=center>'.HTMLSELECT_particiones(0).'</TD>'; - echo '<TD align=center>'.HTMLSELECT_tipospar($cmd,"").'</TD>'; + echo '<TD align=center>'.HTMLSELECT_tipospar("").'</TD>'; echo '<TD align=center>'.HTMLSELECT_sistemasficheros($cmd,"").'</TD>'; echo '<TD align=center><INPUT type="text" style="width:100px" value="0"></TD>'; echo '<TD align=center> </TD>'; @@ -172,10 +172,11 @@ function opeFormatear() /*________________________________________________________________________________________________________ Crea la etiqueta html <SELECT> de los tipos de particiones ________________________________________________________________________________________________________*/ -function HTMLSELECT_tipospar($cmd,$codpar) +function HTMLSELECT_tipospar($codpar) { - return(HTMLSELECT($cmd,0,"tipospar",$codpar,"tipopar","tipopar",150,"","formulariodatos","codpar<256")); -} + $json=json_decode(file_get_contents(ENGINEJSON)); + return(htmlSelectPartitions($json, $codpar, "tipopar", 150, "", "formulariodatos", "MSDOS")); +} /*________________________________________________________________________________________________________ Crea la etiqueta html <SELECT> de los sistemas de ficheros ________________________________________________________________________________________________________*/ @@ -183,5 +184,4 @@ function HTMLSELECT_sistemasficheros($cmd,$idsistemafichero) { return(HTMLSELECT($cmd,0,"sistemasficheros",$idsistemafichero,"idsistemafichero","descripcion",150,"","formulariodatos")); } -?> diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php index e27899f0..b5da9d68 100644 --- a/admin/WebConsole/includes/ConfiguracionesParticiones.php +++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php @@ -1,44 +1,6 @@ <?php -define("ENGINEJSON", __DIR__ . "/../../client/etc/engine.json"); -include_once("pintaParticiones.php"); - -/** - * 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) - */ -function getPartitionData($json, $code) { - 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->type, $par->clonable]; - } - } - } - } - } - return [$code, true]; -} - -/** - * 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 - */ -function getParttableData($json, $code) { - if (isset($json->partitiontables)) { - foreach ($json->partitiontables as $tab) { - if (hexdec($tab->id) == $code) { - return $tab->type; - } - } - } - return ""; -} +include_once(__DIR__ . "/configfunctions.php"); +include_once(__DIR__ . "/pintaParticiones.php"); /*________________________________________________________________________________________________________ UHU - 2013/05/14 - Se añade la clave número de disco @@ -177,9 +139,9 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) $cmd->texto.=" GROUP BY configuracion"; // Comprobar compatiblidad de cláusula GROUP BY. - if (strpos($mode, 'ONLY_FULL_GROUP_BY') === false) + if (strpos($mode, 'ONLY_FULL_GROUP_BY') === false) { $cmd->texto=preg_replace('/ANY_VALUE/', '', $cmd->texto); - + } $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset @@ -191,6 +153,7 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) if ($numpar == 0) { // Tipo de tabla de particiones. $tipopar = getParttableData($json, $codpar); + $clonable = ""; } else { // Saltar si no es clonable en restauración. list($tipopar, $clonable) = getPartitionData($json, $codpar); @@ -224,6 +187,7 @@ function cargaCaves($cmd,$idambito,$ambito,$sws,$swr) } $conKeys=$idx; // Guarda contador $rs->Cerrar(); + return(true); } /*________________________________________________________________________________________________________ UHU - 2013/05/14 - Se añade la clave número de disco @@ -297,8 +261,7 @@ function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr,$pintaPar INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso 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"; + LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft"; switch($ambito){ case $AMBITO_AULAS : @@ -410,7 +373,7 @@ function cargaSistemasFicheros($cmd,$idambito,$ambito) global $AMBITO_AULAS; global $AMBITO_GRUPOSORDENADORES; global $AMBITO_ORDENADORES; - + $cmd->texto="SELECT COUNT(*) AS con, ordenadores_particiones.idsistemafichero, ordenadores_particiones.numdisk, diff --git a/admin/WebConsole/includes/configfunctions.php b/admin/WebConsole/includes/configfunctions.php new file mode 100644 index 00000000..04d265f0 --- /dev/null +++ b/admin/WebConsole/includes/configfunctions.php @@ -0,0 +1,87 @@ +<?php +// Fichero de configuración JSON. +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 + */ +function getPartitionData($json, $code) { + 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->type, $par->clonable]; + } + } + } + } + } + return [$code, true]; +} + +/** + * @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 + */ +function getParttableData($json, $code) { + if (isset($json->partitiontables)) { + foreach ($json->partitiontables as $tab) { + if ($tab->id == $code) { + return $tab->type; + } + } + } + return ""; +} + +/** + * @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 + */ +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); + + if (isset($json->partitiontables)) { + foreach ($json->partitiontables as $tab) { + if (isset($partTable) and $tab->type != $partTable) { + continue; + } + if (isset($tab->partitions)) { + foreach ($tab->partitions as $par) { + $html.=' <option value="'.$par->id.'"'; + if ($par->type == $type) { + $html.=' selected'; + } + $html.='>'.$par->type.'</option>'.chr(13); + } + } + } + } + $html.='</select>'.chr(13); + return($html); +} diff --git a/admin/WebConsole/includes/pintaParticiones.php b/admin/WebConsole/includes/pintaParticiones.php index 5b43a54c..ecfbd687 100644 --- a/admin/WebConsole/includes/pintaParticiones.php +++ b/admin/WebConsole/includes/pintaParticiones.php @@ -333,7 +333,7 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) echo '<tr id="TR_'.$icp.'" align="center">'; echo '<td><input type="checkbox" onclick="eliminaParticion(this,\''.$icp.'\')"></td>'; echo '<td>'.HTMLSELECT_particiones($tbKeys[$k]["numpar"]).'</td>'; - echo '<td>'.HTMLSELECT_tipospar($cmd,$tbKeys[$k]["tipopar"]).'</td>'; + echo '<td>'.HTMLSELECT_tipospar($tbKeys[$k]["tipopar"]).'</td>'; $sf=tomaSistemasFicheros($tbKeys[$k]["numpar"],$idordenadores,true); echo '<td>'.HTMLSELECT_sistemasficheros($cmd,$sf).'</td>'; $tm=tomaTamano($tbKeys[$k]["numpar"],$idordenadores); @@ -357,7 +357,8 @@ function pintaParticionesConfigurar($cmd,$configuraciones,$idordenadores,$cc) $tm=tomaTamano(0,$idordenadores); echo '<tr id="TRIMG_'.$cc.'" align="center">'. "\n<td></td>\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "'.">".$TbMsg["DISK"]."</td>". - "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0; "> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>"))." <input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100px' value='".$tm."'></td>". + "\n<td></td>\n<td".' style="font-size: 1em; padding: 1px 0;"> '.(isset($tm)?$tm:("<em>".$TbMsg["VARIABLE"]."</em>")). + "<input type='hidden' id='hdsize$cc' name='hdsize$cc' style='width:100px' value='".$tm."'></td>". "\n<td></td>\n<td></td>\n</tr>"; echo '<tr><th colspan="'.$colums.'"> '.$TbMsg["WARN_DISKSIZE"].'</th></tr>'; // Mostrar aviso: solo disco 1 con tabla MSDOS. diff --git a/admin/WebConsole/includes/pintaTablaConfiguraciones.php b/admin/WebConsole/includes/pintaTablaConfiguraciones.php index bd17fed5..b557da37 100644 --- a/admin/WebConsole/includes/pintaTablaConfiguraciones.php +++ b/admin/WebConsole/includes/pintaTablaConfiguraciones.php @@ -1,5 +1,5 @@ <?php -include_once(__DIR__ . "/ConfiguracionesParticiones.php"); +include_once(__DIR__ . "/configfunctions.php"); include_once("../idiomas/php/".$idioma."/pintaParticiones_".$idioma.".php"); /*________________________________________________________________________________________________________ @@ -37,7 +37,6 @@ function tablaConfiguracionesIniciarSesion($cmd,$idambito,$ambito){ $tablaSinConfiguracion.='<tr><th align="center" >'.$TbMsg["CONFIG_NOOS"].'</th><tr>'.chr(13).'</table>'.chr(13); // CONSULTA BD: grupo de equipos con iguales sistemas operativos: idordenadores,configuracion - $cmd->texto=""; // agrupamos equipos con igual conf de disco. $cmd->texto="SELECT GROUP_CONCAT(pcconf.idordenador SEPARATOR ',') AS idordenadores, pcconf.configuraciones FROM ("; @@ -126,14 +125,12 @@ function tablaConfiguracionesInventarioSoftware($cmd,$idordenador){ $cmd->texto="SELECT ordenadores_particiones.numdisk,ordenadores_particiones.numpar, ordenadores_particiones.tamano, ordenadores_particiones.idnombreso, nombresos.nombreso, - imagenes.descripcion AS imagen, perfilessoft.descripcion AS perfilsoft, - sistemasficheros.descripcion AS sistemafichero + imagenes.descripcion AS imagen, perfilessoft.descripcion AS perfilsoft FROM ordenadores INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso 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 nombresos.nombreso!='DATA' ORDER BY ordenadores_particiones.numdisk,ordenadores_particiones.numpar"; @@ -191,18 +188,19 @@ 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, ordenadores_particiones.codpar, ordenadores_particiones.tamano, ordenadores_particiones.idnombreso, nombresos.nombreso, imagenes.nombreca, imagenes.descripcion AS imagen, perfilessoft.idperfilsoft, - perfilessoft.descripcion AS perfilsoft, sistemasficheros.descripcion AS sistemafichero + perfilessoft.descripcion AS perfilsofttemafichero FROM ordenadores INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso 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." ORDER BY ordenadores_particiones.numdisk,ordenadores_particiones.numpar"; $rs=new Recordset; $rs->Comando=&$cmd; |