fix legend values when value is undefined
+ improve mechanism to find value
This commit is contained in:
@ -1940,10 +1940,15 @@ function Graph(gindex, container, x_label, y_label, tag, scaleType = "linear"){
|
|||||||
if (x === null) return;
|
if (x === null) return;
|
||||||
for(let i in chart.data.datasets){
|
for(let i in chart.data.datasets){
|
||||||
let y = null;
|
let y = null;
|
||||||
for(let j = 0; j < chart.getDatasetMeta(i).data.length; j++){
|
let metadata = chart.getDatasetMeta(i).data;
|
||||||
let dp = chart.getDatasetMeta(i).data[j];
|
let dataset = chart.data.datasets[i];
|
||||||
if (dp.x >= x) break; //_model does not exist anymore, properties are defined directly on elements
|
if (metadata.length != dataset.data.length) {
|
||||||
y = chart.data.datasets[i].data[dp.$context.index].y; // $context not mentionned in ChartJS doc, seen with console.log
|
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];
|
valueElm = legendvalues[chart.data.datasets[i].key];
|
||||||
if (labelMinWidth == 0) {
|
if (labelMinWidth == 0) {
|
||||||
@ -1952,7 +1957,9 @@ function Graph(gindex, container, x_label, y_label, tag, scaleType = "linear"){
|
|||||||
labelMinWidth = valueElm.clientWidth;
|
labelMinWidth = valueElm.clientWidth;
|
||||||
valueElm.style.minWidth = labelMinWidth + 'px';
|
valueElm.style.minWidth = labelMinWidth + 'px';
|
||||||
}
|
}
|
||||||
if (y !== null) {
|
if (y == null) {
|
||||||
|
valueElm.innerHTML = '';
|
||||||
|
} else {
|
||||||
valueElm.innerHTML = strFormat(y, labelDigits);
|
valueElm.innerHTML = strFormat(y, labelDigits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ def to_json_sse(msg):
|
|||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
|
|
||||||
update_rider = circularlog.Rider("upd")
|
update_rider = circularlog.Rider("upd")
|
||||||
|
pollinterval = 0.1
|
||||||
|
|
||||||
@app.route('/update')
|
@app.route('/update')
|
||||||
def get_update(path=None):
|
def get_update(path=None):
|
||||||
@ -82,7 +83,7 @@ def get_update(path=None):
|
|||||||
yield to_json_sse(msg)
|
yield to_json_sse(msg)
|
||||||
if messages:
|
if messages:
|
||||||
lastmsg = time.time()
|
lastmsg = time.time()
|
||||||
gevent.sleep(1)
|
gevent.sleep(pollinterval)
|
||||||
else:
|
else:
|
||||||
if time.time() > lastmsg + 30:
|
if time.time() > lastmsg + 30:
|
||||||
if not client.info():
|
if not client.info():
|
||||||
@ -91,7 +92,7 @@ def get_update(path=None):
|
|||||||
yield to_json_sse(dict(type='heartbeat'))
|
yield to_json_sse(dict(type='heartbeat'))
|
||||||
lastmsg = time.time()
|
lastmsg = time.time()
|
||||||
else:
|
else:
|
||||||
gevent.sleep(0.5)
|
gevent.sleep(pollinterval)
|
||||||
except (GeneratorExit, tcp_lineserver.Disconnected) as e:
|
except (GeneratorExit, tcp_lineserver.Disconnected) as e:
|
||||||
logging.info("except clause %r", repr(e))
|
logging.info("except clause %r", repr(e))
|
||||||
logging.info('CLOSED %s', client.id)
|
logging.info('CLOSED %s', client.id)
|
||||||
|
Reference in New Issue
Block a user