Add summary and activity screens, remove private datasets from counts
[ckanext-dga-stats.git] / ckanext / dga_stats / public / ckanext / stats / app.js
blob:a/ckanext/dga_stats/public/ckanext/stats/app.js -> blob:b/ckanext/dga_stats/public/ckanext/stats/app.js
--- a/ckanext/dga_stats/public/ckanext/stats/app.js
+++ b/ckanext/dga_stats/public/ckanext/stats/app.js
@@ -1,1 +1,60 @@
+jQuery(document).ready(function($) {
+	$('form').submit(function(e) {
+		e.preventDefault();
+		attribute = $('#form-attribute').val();
+		loadSolr(attribute);
+	})
+	// default! (also in html)
+	loadSolr('tags');
 
+	function loadSolr(attribute) {
+		var url = solrCoreUrl + '/select?indent=on&wt=json&facet=true&rows=0&indent=true&facet.mincount=1&facet.limit=30&q=*:*&facet.field=' + attribute;
+		function handleSolr(data) {
+			var results = [];
+			ourdata = data.facet_counts.facet_fields[attribute];
+			var newrow = {};
+			for (ii in ourdata) {
+				if (ii % 2 == 0) {
+					newrow.name = ourdata[ii];
+					if (!newrow.name) {
+						newrow.name = '[Not Specified]';
+					}
+				} else {
+					newrow.count = ourdata[ii];
+					results.push(newrow);
+					newrow = {};
+				}
+			}
+			display(results);
+		}
+
+		$.ajax({
+			url: url,
+			success: handleSolr,
+			dataType: 'jsonp',
+			jsonp: 'json.wrf'
+		});
+	}
+
+	function display(results) {
+		var list = $('#category-counts');
+		list.html('');
+		if (results.length == 0) {
+			return
+		}
+		var maximum = results[0]['count'];
+		for(ii in results) {
+			maximum = Math.max(maximum, results[ii]['count']);
+		}
+
+		$.each(results, function(idx, row) {
+			var newentry = $('<li></li>');
+			newentry.append($('<a href="#">' + row['name'] + '</a>'));
+			newentry.append($('<span class="count">' + row['count'] + '</a>'));
+			var percent = 100 * row['count'] / maximum;
+			newentry.append($('<span class="index" style="width: ' + percent + '%"></span>'));
+			list.append(newentry);
+		});
+	}
+});
+