summaryrefslogtreecommitdiffstats
path: root/web/getstats/global.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/getstats/global.js')
-rw-r--r--web/getstats/global.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/web/getstats/global.js b/web/getstats/global.js
index a750fb3..733fdd1 100644
--- a/web/getstats/global.js
+++ b/web/getstats/global.js
@@ -5,6 +5,7 @@ var anySpace = / /g;
// --- END Global variables -----------------------------------
+// ### 2 B DOCUMENTED!
function updateStatus(msg, showSpinner) {
// Note: the "span[id^=status]" selector matches all span elements
// with an id attribute that begins with "status".
@@ -18,6 +19,7 @@ function updateStatus(msg, showSpinner) {
}
}
+// ### 2 B DOCUMENTED!
function trim(s)
{
var i;
@@ -27,6 +29,7 @@ function trim(s)
return (i <= j) ? s.substr(i, (j - i) + 1) : "";
}
+// ### 2 B DOCUMENTED!
function queryStringArgs() {
pairs = document.location.search.slice(1).split("&");
var args = [];
@@ -41,6 +44,7 @@ function queryStringArgs() {
return args;
}
+// ### 2 B DOCUMENTED!
function extractArg(args, name) {
arg = args[name];
if (arg == null) {
@@ -49,16 +53,36 @@ function extractArg(args, name) {
return arg;
}
+// ### 2 B DOCUMENTED!
function isNonNullNumber(x) {
return (x != null) && (!isNaN(x));
}
+// ### 2 B DOCUMENTED!
function changeMagnitudeScore(change) {
var maxChange = 2.0;
var absChange = (change < 1.0) ? (1.0 / change) : change;
return (Math.min(absChange, maxChange) - 1.0) / (maxChange - 1.0);
}
+// ### 2 B DOCUMENTED!
+function normalizedQuality(lsd, ni, nz, nc, mdrse) {
+ var maxBadSnapshots = 30; // experimental; maybe use max durability score?
+ var maxSampleSize = 5;
+ var maxLSD = maxBadSnapshots;
+ var maxNI = maxBadSnapshots * maxSampleSize;
+ var maxNZ = maxBadSnapshots * maxSampleSize;
+ var maxNC = maxBadSnapshots;
+
+ var lsdScore = Math.min(1, lsd / maxLSD);
+ var niScore = Math.min(1, ni / maxNI);
+ var nzScore = Math.min(1, nz / maxNZ);
+ var ncScore = Math.min(1, nc / maxNC);
+ var mdrseScore = mdrse / 100;
+
+ return (lsdScore + niScore + nzScore + ncScore + mdrseScore) / 5;
+}
+
// Assigns tooltip with text 'text' to jQuery object 'obj'.
function setTooltip(obj, text) {
obj.attr(
@@ -97,10 +121,12 @@ function daysToSecs(days) {
return days * secsInDay;
}
+// ### 2 B DOCUMENTED!
function zeroPad2(s) {
return (s.length == 2) ? s : ("0" + s);
}
+// ### 2 B DOCUMENTED!
function ageColor(secsAgo) {
var secsInDay = 86400; // 24 * 60 * 60
@@ -128,6 +154,7 @@ function ageColor(secsAgo) {
return color;
}
+// ### 2 B DOCUMENTED!
function initTablesorter() {
// Define a parser that handles mixed standard- and scientific notation
// and sorts in _descending_ order before any missing values (i.e.