var updateLineChart = function()

in source/web_site/js/dash.js [519:586]


    var updateLineChart = function(data, chartData, chart, labelFunc=identity) {
        var labels = chartData.labels;
        var serviceCallTimes = chartData.times;
        var serviceCallMap = chartData.values;

        var items = data.Items;

        for (var i=0; i<items.length; i++) {
            var queryTime = items[i].EventTime;
            serviceCallTimes.push(new Date(toUTC(queryTime)).getTime());
            var timeToPut = queryTime.split('.')[0].split(' ')[1];

            labels.push((timeToPut));

            ddbitem = JSON.parse(items[i].Data);

            ddbkeys = new Set(Object.keys(ddbitem));

            for (var key in  serviceCallMap) {

                if (!ddbkeys.has(key)) {ddbitem[key]=0;}
            }
            for (let entry of Object.keys(ddbitem)) {
                if (entry in serviceCallMap) {
                    serviceCallMap[entry].push(ddbitem[entry]);
                }
                else {
                    var newServiceEntry = new Array(labels.length-1);
                    newServiceEntry.fill(0);
                    newServiceEntry.push(ddbitem[entry]);
                    serviceCallMap[entry] = newServiceEntry;
                }
            }
        }



        dataObj=[];
        datasetLabels = Object.keys(serviceCallMap);
        for (var i=0; i<labels.length; i++) {
            dataObj.push({'time': serviceCallTimes[i], 'label': labels[i], 'values': datasetLabels.map(function(label) { return serviceCallMap[label][i]; }) });
        }
        sortLabels(dataObj);
        console.log(dataObj);
        var labels=[]
        var times=[]
        var vals=datasetLabels.map(function(label) {return []; });

        var dataLen = dataObj.length;
        var datasetLabelLen = datasetLabels.length;

        for (var i=0;i<dataLen;i++) {
            labels.push(dataObj[i]['label']);
            times.push(dataObj[i]['time']);
            for(var j=0;j<datasetLabelLen;j++) {
                vals[j].push(dataObj[i]['values'][j]);
            }
        }

        normalizeValues(labels,times,vals);
        limitValuesToOneHour(labels,times,vals);
        var newCallMap={};

        datasetLabels.forEach(function(label,index) { newCallMap[label]= vals[index];});
        //console.log(labels);
        updateData(chart, labels,  Object.values(newCallMap), Object.keys(newCallMap).map(labelFunc));
        return {'labels': labels, 'times': times, 'values': newCallMap};
    }