summaryrefslogtreecommitdiff
path: root/projects/osm/net.cbaines.suma/script.js
diff options
context:
space:
mode:
Diffstat (limited to 'projects/osm/net.cbaines.suma/script.js')
-rw-r--r--projects/osm/net.cbaines.suma/script.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/projects/osm/net.cbaines.suma/script.js b/projects/osm/net.cbaines.suma/script.js
new file mode 100644
index 0000000..768acec
--- /dev/null
+++ b/projects/osm/net.cbaines.suma/script.js
@@ -0,0 +1,73 @@
+
+function parseDate(str) {
+ var y = str.substr(0,4),
+ m = str.substr(4,2) - 1,
+ d = str.substr(6,2);
+ var D = new Date(y,m,d);
+ return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : null;
+}
+
+function getData(csv, callback) {
+ Papa.parse(csv, {
+ download: true,
+ comments: "#",
+ complete: callback
+ });
+}
+
+function graph(div, results, cols, labels) {
+ var data = [];
+
+ for (var rowIndex in results.data) {
+ var row = results.data[rowIndex];
+
+ var createdRow = [];
+
+ var date = parseDate(row[0]);
+
+ if (date == null) {
+ continue;
+ }
+
+ createdRow.push(date);
+
+ for (var colIndex in cols) {
+ var col = cols[colIndex];
+
+ if (row.length < col) {
+ continue;
+ } else {
+ createdRow.push(parseInt(row[col], 10));
+ }
+ }
+
+ data.push(createdRow);
+ }
+
+ data.reverse();
+
+ var dygraph = new Dygraph(div,
+ data,
+ {
+ labels: labels,
+ width: 860
+ }
+ );
+}
+
+getData("stats/net.cbaines.suma_overall_installs.csv", function(results) {
+ graph(
+ document.getElementById("current"),
+ results,
+ [1],
+ ["Date", "Current Instalations by Device"]
+ );
+
+ graph(
+ document.getElementById("total"),
+ results,
+ [6],
+ ["Date", "Total User Installs"]
+ );
+});
+