Running curves settings

This commit is contained in:
l_samenv
2024-09-04 08:26:21 +02:00
parent 933088fd08
commit dc9a08dbee
2 changed files with 25 additions and 8 deletions

View File

@ -323,14 +323,10 @@ let curvesSettingsPopup = undefined;
function loadCurvesSettingsPopup(){
let graphsContainer = document.getElementsByClassName("graphs-container")[0];
curvesSettingsPopup = new CurvesSettingsPopup(applySettingsCallback);
curvesSettingsPopup = new CurvesSettingsPopup(graphs.applySettingsCallback);
graphsContainer.appendChild(curvesSettingsPopup);
}
function applySettingsCallback(userConfiguration){
console.log(JSON.stringify(userConfiguration));
}
let graphs = (function (){
let dataset_to_graph_map = {}; // a dictionnary mapping a variable name to a two values array, containing its graph index and its position inside the graph
let blocks, liveMode=true, top_vars=[], bottom_vars=[];
@ -1213,6 +1209,24 @@ let graphs = (function (){
exportPopup.show(blocks,currentMinTime, currentMaxTime);
}
function applySettingsCallback(userConfiguration){
cursorLine(null);
AJAX("http://" + hostPort + "/getvars?time=" + currentMinTime/1000 + "," + currentMaxTime/1000 + "&userconfiguration=" + JSON.stringify(userConfiguration) + "&id="+ clientID).getJSON().then(function(data){
blocks = data.blocks;
document.getElementById("device").innerHTML = data.device
maxTime = currentMaxTime;
minTime = currentMinTime;
globalIndicators.getIndicatorsMap()[datesKey].update(currentMinTime);
ngraphs = 0; // forces all the graphs to reset
createGraphs();
if (liveMode && currentMaxTime < lastTime) setLiveMode(false);
});
}
/**
* Make sure that the updatAuto() function called in chartJS' onZoomComplete callback is delayed
* This is needed for mobile phones, as this callback is triggered too often
@ -1257,7 +1271,8 @@ let graphs = (function (){
initGraphs: initGraphs,
onZoomCompleteCallback:onZoomCompleteCallback,
displayExportPopup:displayExportPopup
displayExportPopup:displayExportPopup,
applySettingsCallback:applySettingsCallback
}
})();

View File

@ -113,7 +113,7 @@ class InfluxGraph:
time = [float(t) for t in time.split(',')]
return dict(type='time', time= self.get_abs_time(time))
def w_getvars(self, time):
def w_getvars(self, time, userconfiguration = None):
"""
Gets the curve names available at a given point in time.
Called when the route /getvars is reached.
@ -130,8 +130,10 @@ class InfluxGraph:
time = [float(t) for t in time.split(',')]
start_time = int(self.get_abs_time(time)[0])
end_time = int(self.get_abs_time(time)[-1])
if not userconfiguration == None : userconfiguration = json.loads(userconfiguration)
blocks = self.influx_data_getter.get_available_variables_at_time([start_time, end_time], self.chart_configs)
blocks = self.influx_data_getter.get_available_variables_at_time([start_time, end_time], self.chart_configs, userconfiguration)
device_name = self.influx_data_getter.get_device_name(end_time)
# updates the self.variables attribute to keep track of the available variables
self.variables = {variable["name"]:variable["label"] for block in blocks for variable in block["curves"]}