summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2018-05-24 11:02:20 +0200
committerRamón M. Gómez <ramongomez@us.es>2019-12-12 14:07:04 +0100
commita9c3adca434fc223fb32b0e6c0b427a3f6b0ce27 (patch)
tree6d4737d15681646138545c42e1852c63b18afc43 /admin
parent4bab5466cbdd99f9bc6c148cc1b508f6b77e1779 (diff)
#812: Usar fichero de configuración JSON en comandos Configurar e Iniciar Sesión.
Diffstat (limited to 'admin')
-rw-r--r--admin/WebConsole/comandos/Configurar.php11
-rw-r--r--admin/WebConsole/comandos/IniciarSesion.php25
-rw-r--r--admin/WebConsole/includes/ConfiguracionesParticiones.php9
-rw-r--r--admin/WebConsole/includes/configfunctions.php94
-rw-r--r--admin/WebConsole/includes/pintaTablaConfiguraciones.php7
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>&nbsp;'.$rs->campos["numpar"].'&nbsp;</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;">&nbsp;<strong>'.$TbMsg["DISK"].'&nbsp;'.$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;">&nbsp;<strong>'.$TbMsg["DISK"].'&nbsp;'.$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>';