Files
karma/assets/static/summary.js
2017-07-29 13:48:36 -07:00

84 lines
1.8 KiB
JavaScript

"use strict";
const $ = require("jquery");
const colors = require("./colors");
const templates = require("./templates");
var summary = {};
function render() {
var topTags = [];
$.each(summary, function(k, v) {
topTags.push({
name: k,
val: v
});
});
topTags.sort(function(a, b) {
if (a.val > b.val) return 1;
if (a.val < b.val) return -1;
if (a.name > b.name) return -1;
if (a.name < b.name) return 1;
return 0;
}).reverse();
var tags = [];
$.each(topTags.slice(0, 10), function(i, tag) {
var labelKey = tag.name.split(": ")[0];
var labelVal = tag.name.split(": ")[1];
tag.style = colors.getStyle(labelKey, labelVal);
tag.cls = colors.getClass(labelKey, labelVal);
tags.push(tag);
});
return templates.renderTemplate("breakdownContent", {tags: tags});
}
function init() {
summary = {};
$(".navbar-header").popover({
trigger: "hover",
delay: {
"show": 500,
"hide": 100
},
container: "body",
html: true,
placement: "bottom",
title: "Top labels",
content: render,
template: templates.renderTemplate("breakdown", {})
});
}
function update(data) {
summary = data;
}
function reset() {
summary = {};
render();
}
function push(labelKey, labelVal) {
var l = labelKey + ": " + labelVal;
if (summary[l] === undefined) {
summary[l] = 1;
} else {
summary[l]++;
}
}
function getCount(labelKey, labelVal) {
var l = labelKey + ": " + labelVal;
return summary[l];
}
exports.init = init;
exports.update = update;
exports.reset = reset;
exports.push = push;
exports.getCount = getCount;
exports.render = render;