in server/src/main/resources/twitter-server/js/histogram-dom.js [44:129]
function setup() {
// Extracts query parameters from url
function extractParameters(parameters) {
var pairs = window.location.search.split("?")[1].split("&");
for (var i = 0; i < pairs.length; i++) {
var kv = pairs[i].split("=");
var key = kv[0];
var value = kv[1];
parameters[key] = value;
}
if (parameters.log_scale == undefined)
parameters.log_scale = "false";
if (parameters.fmt == undefined)
parameters.fmt = "plot_cdf";
}
/** Provide on/off button functionality
* @param {Object} controller Active field controls on/off
* @param {string} mod Id of element which functions as the on button
* @param {string} mod norm of element which functions as the off button
* @param {function} onModify callback after clicking the on button
* @param {function} onNormalize callback after clicking the off button
*/
function colorSwap(controller, mod, norm, onModify, onNormalize) {
function getBackgroundColor(element) {
return document.defaultView.getComputedStyle(element, null).getPropertyValue('background-color');
}
var modifier = document.getElementById(mod);
var normal = document.getElementById(norm);
var onColor = getBackgroundColor(normal);
var offColor = getBackgroundColor(modifier);
modifier.onclick = function() {
if (controller.active === false) {
modifier.style.background = onColor;
normal.style.background = offColor;
controller.active = true;
if (onModify != undefined) onModify();
}
}
normal.onclick = function() {
if (controller.active === true) {
modifier.style.background = offColor;
normal.style.background = onColor;
controller.active = false;
if (onNormalize != undefined) onNormalize();
}
}
if (controller.active === true) {
modifier.style.background = onColor;
normal.style.background = offColor;
}
}
// Fill the params object
extractParameters(params);
// Initialize controllers
shouldRefresh = {active: false};
colorSwap(shouldRefresh, "refreshOn", "refreshOff", loopWhileRefresh, stopRefresh);
scaleColorSwitch = {active: params.log_scale == "true"};
colorSwap(scaleColorSwitch, "log", "reg",
function() {params.log_scale = "true"; refresh();},
function() {params.log_scale = "false"; refresh();}
)
formatColorSwitch = {active: params.fmt === "plot_pdf"}
colorSwap(formatColorSwitch, "PDF", "CDF",
function() {params.fmt = "plot_pdf"; refresh();},
function() {params.fmt = "plot_cdf"; refresh();}
)
// Add download functionality
var downloadLink = document.getElementById("download-link");
downloadLink.setAttribute("href", generateUrl(extractFormat(params.fmt), "false"));
downloadLink.download = name + "_" + extractFormat(params.fmt) +
"_" + (new Date()).getTime().toString() + ".json";
// Load google charts library
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(refresh);
}