diff --git a/kfet/static/kfet/js/statistic.js b/kfet/static/kfet/js/statistic.js
index 9baa08c4..23d66efe 100644
--- a/kfet/static/kfet/js/statistic.js
+++ b/kfet/static/kfet/js/statistic.js
@@ -1,28 +1,15 @@
-(function($){
+(function ($) {
window.StatsGroup = function (url, target) {
// a class to properly display statictics
// url : points to an ObjectResumeStat that lists the options through JSON
// target : element of the DOM where to put the stats
- var self = this;
var element = $(target);
var content = $("
");
var buttons;
- function dictToArray (dict, start) {
- // converts the dicts returned by JSONResponse to Arrays
- // necessary because for..in does not guarantee the order
- if (start === undefined) start = 0;
- var array = new Array();
- for (var k in dict) {
- array[k] = dict[k];
- }
- array.splice(0, start);
- return array;
- }
-
- function handleTimeChart (data) {
+ function handleTimeChart(data) {
// reads the balance data and put it into chartjs formatting
chart_data = new Array();
for (var i = 0; i < data.length; i++) {
@@ -36,7 +23,7 @@
return chart_data;
}
- function showStats () {
+ function showStats() {
// CALLBACK : called when a button is selected
// shows the focus on the correct button
@@ -44,24 +31,20 @@
$(this).addClass("focus");
// loads data and shows it
- $.getJSON(this.stats_target_url, {format: 'json'}, displayStats);
+ $.getJSON(this.stats_target_url, displayStats);
}
- function displayStats (data) {
+ function displayStats(data) {
// reads the json data and updates the chart display
var chart_datasets = [];
- var charts = dictToArray(data.charts);
-
// are the points indexed by timestamps?
var is_time_chart = data.is_time_chart || false;
// reads the charts data
- for (var i = 0; i < charts.length; i++) {
- var chart = charts[i];
-
+ for (let chart of data.charts) {
// format the data
- var chart_data = is_time_chart ? handleTimeChart(chart.values) : dictToArray(chart.values, 0);
+ var chart_data = is_time_chart ? handleTimeChart(chart.values) : chart.values;
chart_datasets.push(
{
@@ -76,29 +59,24 @@
// options for chartjs
var chart_options =
- {
- responsive: true,
- maintainAspectRatio: false,
- tooltips: {
- mode: 'index',
- intersect: false,
- },
- hover: {
- mode: 'nearest',
- intersect: false,
- }
- };
+ {
+ responsive: true,
+ maintainAspectRatio: false,
+ tooltips: {
+ mode: 'index',
+ intersect: false,
+ },
+ hover: {
+ mode: 'nearest',
+ intersect: false,
+ }
+ };
// additionnal options for time-indexed charts
if (is_time_chart) {
chart_options['scales'] = {
xAxes: [{
type: "time",
- display: true,
- scaleLabel: {
- display: false,
- labelString: 'Date'
- },
time: {
tooltipFormat: 'll HH:mm',
displayFormats: {
@@ -115,26 +93,19 @@
}
}],
- yAxes: [{
- display: true,
- scaleLabel: {
- display: false,
- labelString: 'value'
- }
- }]
};
}
// global object for the options
var chart_model =
- {
- type: 'line',
- options: chart_options,
- data: {
- labels: data.labels || [],
- datasets: chart_datasets,
- }
- };
+ {
+ type: 'line',
+ options: chart_options,
+ data: {
+ labels: data.labels || [],
+ datasets: chart_datasets,
+ }
+ };
// saves the previous charts to be destroyed
var prev_chart = content.children();
@@ -151,23 +122,26 @@
}
// initialize the interface
- function initialize (data) {
+ function initialize(data) {
// creates the bar with the buttons
buttons = $("
",
- {class: "nav stat-nav",
- "aria-label": "select-period"});
+ {
+ class: "nav stat-nav",
+ "aria-label": "select-period"
+ });
var to_click;
- var context = data.stats;
- for (var i = 0; i < context.length; i++) {
+ for (let stat of data.stats) {
// creates the button
- var btn_wrapper = $("- ", {role:"presentation"});
+ var btn_wrapper = $("
- ", { role: "presentation" });
var btn = $("",
- {class: "btn btn-nav",
- type: "button"})
- .text(context[i].label)
- .prop("stats_target_url", context[i].url)
+ {
+ class: "btn btn-nav",
+ type: "button"
+ })
+ .text(stat.label)
+ .prop("stats_target_url", stat.url)
.on("click", showStats);
// saves the default option to select
@@ -189,7 +163,7 @@
// constructor
(function () {
- $.getJSON(url, {format: 'json'}, initialize);
+ $.getJSON(url, initialize);
})();
};
})(jQuery);