From f750cd4f21699e8457fa15d0b1fcaae14f10482a Mon Sep 17 00:00:00 2001 From: Benjamin Renard <benjamin.renard@akka.eu> Date: Fri, 27 Aug 2021 10:21:53 +0200 Subject: [PATCH] Add size & display_time in user defined paramters list from WS (#9649) --- php/WebServices/WebServer.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+), 0 deletions(-) diff --git a/php/WebServices/WebServer.php b/php/WebServices/WebServer.php index d3da13c..9294a5f 100644 --- a/php/WebServices/WebServer.php +++ b/php/WebServices/WebServer.php @@ -382,6 +382,41 @@ class WebServer return array('success' => true,'ParameterList' => array("LocalDataBaseParameters" => WSConfigClass::getUrl().$locParamDst)); + // Inject size & display_type + // => In derived parameters + $dom = new DOMDocument( "1.0"); + $dom->formatOutput = TRUE; + $dom->preserveWhiteSpace = FALSE; + $dom->load(WSConfigClass::getWsResultDir().$wsParamDst); + $paramNodes = $dom->getElementsByTagName("param"); + foreach ($paramNodes as $paramNode) { + $dim_1 = $paramNode->getAttribute('dim_1'); + $dim_1 = empty($dim_1) ? 1 : intval($dim_1); + $dim_2 = $paramNode->getAttribute('dim_2'); + $dim_2 = empty($dim_2) ? 1 : intval($dim_2); + $paramNode->setAttribute('size', $dim_1 * $dim_2); + + $display_type = 'timeseries'; + if ($dim_1 > 1 && $dim_2 > 1) { + $display_type = 'spectrogram'; + } + else if ($dim_1 > 3 || $dim_2 > 3) { + $display_type = 'spectrogram'; + } + $paramNode->setAttribute('display_type', $display_type); + } + // => In parameters from an uploaded file + $paramNodes = $dom->getElementsByTagName("mydata"); + foreach ($paramNodes as $paramNode) { + // size already exists + $display_type = 'timeseries'; + if ($paramNode->getAttribute('plottype') == 'Spectra') { + $display_type = 'spectrogram'; + } + $paramNode->setAttribute('display_type', $display_type); + } + $dom->save(WSConfigClass::getWsResultDir().$wsParamDst); + return array('success' => true,'ParameterList' => array("UserDefinedParameters" => WSConfigClass::getUrl().$wsParamDst, "LocalDataBaseParameters" => WSConfigClass::getUrl().$locParamDst)); -- libgit2 0.21.2