summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2018-05-23 12:42:19 +0200
committerRamón M. Gómez <ramongomez@us.es>2019-12-12 14:06:43 +0100
commit4bab5466cbdd99f9bc6c148cc1b508f6b77e1779 (patch)
tree134f8b7741014174d5f93dee9ed490b99af748aa
parent63bd45b339e0c1f9efb3f6c9cfab6e6b31520a91 (diff)
#812: Tomar tipos de partición del fichero JSON en formularios de comandos web.
-rw-r--r--admin/WebConsole/comandos/Configurar.php10
-rw-r--r--admin/WebConsole/includes/ConfiguracionesParticiones.php53
-rw-r--r--admin/WebConsole/includes/configfunctions.php87
-rw-r--r--admin/WebConsole/includes/pintaParticiones.php5
-rw-r--r--admin/WebConsole/includes/pintaTablaConfiguraciones.php12
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>&nbsp;</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.'">&nbsp;'.$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;