diff --git a/client/jsFiles/SEAWebClientGraphics.js b/client/jsFiles/SEAWebClientGraphics.js index cbdaca4..78f428d 100644 --- a/client/jsFiles/SEAWebClientGraphics.js +++ b/client/jsFiles/SEAWebClientGraphics.js @@ -1940,10 +1940,15 @@ function Graph(gindex, container, x_label, y_label, tag, scaleType = "linear"){ if (x === null) return; for(let i in chart.data.datasets){ let y = null; - for(let j = 0; j < chart.getDatasetMeta(i).data.length; j++){ - let dp = chart.getDatasetMeta(i).data[j]; - if (dp.x >= x) break; //_model does not exist anymore, properties are defined directly on elements - y = chart.data.datasets[i].data[dp.$context.index].y; // $context not mentionned in ChartJS doc, seen with console.log + let metadata = chart.getDatasetMeta(i).data; + let dataset = chart.data.datasets[i]; + if (metadata.length != dataset.data.length) { + console.log('length mismatch in dataset.data and metadata') + } + for(let j = 0; j < metadata.length; j++){ + let dp = metadata[j]; + if (dp.x >= x) break; + y = dataset.data[j].y; } valueElm = legendvalues[chart.data.datasets[i].key]; if (labelMinWidth == 0) { @@ -1952,7 +1957,9 @@ function Graph(gindex, container, x_label, y_label, tag, scaleType = "linear"){ labelMinWidth = valueElm.clientWidth; valueElm.style.minWidth = labelMinWidth + 'px'; } - if (y !== null) { + if (y == null) { + valueElm.innerHTML = ''; + } else { valueElm.innerHTML = strFormat(y, labelDigits); } } diff --git a/seaweb.py b/seaweb.py index 0bffd7b..b4b6396 100755 --- a/seaweb.py +++ b/seaweb.py @@ -57,6 +57,7 @@ def to_json_sse(msg): app = flask.Flask(__name__) update_rider = circularlog.Rider("upd") +pollinterval = 0.1 @app.route('/update') def get_update(path=None): @@ -82,7 +83,7 @@ def get_update(path=None): yield to_json_sse(msg) if messages: lastmsg = time.time() - gevent.sleep(1) + gevent.sleep(pollinterval) else: if time.time() > lastmsg + 30: if not client.info(): @@ -91,7 +92,7 @@ def get_update(path=None): yield to_json_sse(dict(type='heartbeat')) lastmsg = time.time() else: - gevent.sleep(0.5) + gevent.sleep(pollinterval) except (GeneratorExit, tcp_lineserver.Disconnected) as e: logging.info("except clause %r", repr(e)) logging.info('CLOSED %s', client.id)