changeset c6417f0a4121 in sao:default
details: https://hg.tryton.org/sao?cmd=changeset;node=c6417f0a4121
description:
Put data with the same x value at the same position
c3js put a point for each x value even if they are the same.
So we must add y value at the same position if the x is already
registered.
issue9539
review298671002
diffstat:
src/view/graph.js | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
diffs (47 lines):
diff -r ba37477c6315 -r c6417f0a4121 src/view/graph.js
--- a/src/view/graph.js Mon Nov 16 21:20:40 2020 +0100
+++ b/src/view/graph.js Mon Nov 16 21:24:59 2020 +0100
@@ -100,7 +100,10 @@
if (x && (x.isDate || x.isDateTime)) {
x = x.toString();
}
- data.columns[0][index + 1] = x;
+ var pos = data.columns[0].indexOf(x);
+ if (pos < 0) {
+ pos = data.columns[0].push(x) - 1;
+ }
this._add_id(x, record.id);
var column;
@@ -118,18 +121,17 @@
}
var decoder = new Sao.PYSON.Decoder(ctx);
if (!decoder.decode(yfield.domain)) {
- column[index + 1] = 0;
continue;
}
}
if (yfield.name == '#') {
- column[index + 1] = 1;
+ column[pos] += 1;
} else {
var value = record.field_get(yfield.name);
if (value && value.isTimeDelta) {
value = value.asSeconds();
}
- column[index + 1] = value || 0;
+ column[pos] = (column[pos] || 0) + (value || 0);
}
}
}.bind(this);
@@ -144,10 +146,6 @@
for (i = 0, len = group.length; i < len; i++) {
record = group[i];
fields2load.forEach(load_field(group[i]));
-
- for (j = 0, y_len = data.columns.length; j < y_len; j++) {
- data.columns[j].push(undefined);
- }
r_prms.push(
jQuery.when.apply(jQuery, prms).then(set_data(i)));
}