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
  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);
  });
  }
  });