Added NaN repr field in export popup

This commit is contained in:
l_samenv
2024-08-27 15:58:43 +02:00
parent 310582cd06
commit 9a9641a024
3 changed files with 13 additions and 5 deletions

View File

@ -104,6 +104,8 @@ class ExportPopup extends HTMLElement{
return
}
let nanRepresentation = this.getElementsByClassName("nan-input")[0].value;
let binningCheckbox = this.getElementsByClassName("binning-checkbox")[0];
let binningValue = null;
if(binningCheckbox.checked){
@ -123,7 +125,7 @@ class ExportPopup extends HTMLElement{
else
{
this.hide();
this.exportCallback(selectedVariables, startDateTimeMs, endDateTimeMs, binningValue);
this.exportCallback(selectedVariables, startDateTimeMs, endDateTimeMs, nanRepresentation, binningValue);
}
}
@ -171,6 +173,11 @@ class ExportPopup extends HTMLElement{
<input type=number class="export-end-hour" min="00" max="23">
<input type=number class="export-end-minute" min="00" max="59">
</div>
<div>
<span>NaN value : </span>
<input type=text class="nan-input" value="" spellcheck=false>
</div>
<div class="binning-container">
<input type=checkbox class="binning-checkbox">

View File

@ -284,12 +284,12 @@ function loadExportPopup(){
graphsContainer.appendChild(exportPopup);
}
function exportCallback(selectedVariables, startDateTimeMs, endDateTimeMs, binning=null){
function exportCallback(selectedVariables, startDateTimeMs, endDateTimeMs, nan, binning=null){
let binningParam = "None";
if (binning !== null)
binningParam = binning
let exportURL = "http://" + hostPort + "/export?time=" + startDateTimeMs/1000 + "," + endDateTimeMs/1000 + "&variables=" + selectedVariables + "&interval=" + binningParam + "&id=" + clientID
let exportURL = "http://" + hostPort + "/export?time=" + startDateTimeMs/1000 + "," + endDateTimeMs/1000 + "&variables=" + selectedVariables + "&nan=" + nan + "&interval=" + binningParam + "&id=" + clientID
let a = document.createElement('a');
a.href = exportURL
a.click()

View File

@ -163,7 +163,7 @@ class InfluxGraph:
self.livemode = self.LIVE
return dict(type='accept-graph', live=True)
def w_export(self, variables, time, interval):
def w_export(self, variables, time, nan, interval):
"""
Returns the bytes of a dataframe with the curves given by variables in the time range "time"
Called when the route /export is reached.
@ -171,6 +171,7 @@ class InfluxGraph:
Parameters :
variables (str) : a comma separataed value string of variable names (influx names) to retrieve
time (str) : a commma separated value string (range) of seconds.
nan (str) : the representation for NaN values in the TSV
interval (str) : the interval (resolution) of the values to get (string in seconds)
Returns :
@ -187,7 +188,7 @@ class InfluxGraph:
df = self.influx_data_getter.get_curves_data_frame(queried_variables, [start, end], interval)
mem = io.BytesIO()
df.to_csv(mem, sep="\t", index=False, float_format="%.15g")
df.to_csv(mem, sep="\t", index=False, float_format="%.15g", na_rep=nan)
mem.seek(0)
return mem