Skip to content

Commit

Permalink
made the query builder a breadcrumb #52
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Boyer committed May 21, 2011
1 parent 1d13c7b commit 4dba18e
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 12 deletions.
28 changes: 20 additions & 8 deletions censusweb/api/templates/_query_builder.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,23 @@
<script id="query-template" type="x-js-template">

<% if (query.get('summarylevel')) { %>
Find data for <b><%= query.get('summarylevelDisplay') %></b>
<span id="summarylevel-select">
<span class="link">Find data</span> for
<% if (_.values(query.attributes).length > 2) { %>
<span class="link" data-val="<%= query.get('summarylevel') %>"><%= query.get('summarylevelDisplay') %></span>
<% } else { %>
<b><%= query.get('summarylevelDisplay') %></b>
<% } %>
</span>
<% } else { %>
Find data for
<span id="summarylevel-select">
<span class="link" data-val="<%= SUMLEV_TRACT %>"><%= query.mappings.summarylevelDisplays[SUMLEV_TRACT] %></span>,
<span class="link" data-val="<%= SUMLEV_PLACE %>"><%= query.mappings.summarylevelDisplays[SUMLEV_PLACE] %></span>,
<span class="link" data-val="<%= SUMLEV_COUNTY %>"><%= query.mappings.summarylevelDisplays[SUMLEV_COUNTY] %></span>,
<span class="link" data-val="<%= SUMLEV_STATE %>"><%= query.mappings.summarylevelDisplays[SUMLEV_STATE] %></span>, or
<span class="link" data-val="<%= SUMLEV_NATION %>"><%= query.mappings.summarylevelDisplays[SUMLEV_NATION] %></span>.
</span>
<span class="link" data-val="<%= SUMLEV_TRACT %>"><%= query.mappings.summarylevelDisplays[SUMLEV_TRACT] %></span>,
<span class="link" data-val="<%= SUMLEV_PLACE %>"><%= query.mappings.summarylevelDisplays[SUMLEV_PLACE] %></span>,
<span class="link" data-val="<%= SUMLEV_COUNTY %>"><%= query.mappings.summarylevelDisplays[SUMLEV_COUNTY] %></span>,
<span class="link" data-val="<%= SUMLEV_STATE %>"><%= query.mappings.summarylevelDisplays[SUMLEV_STATE] %></span>, or
<span class="link" data-val="<%= SUMLEV_NATION %>"><%= query.mappings.summarylevelDisplays[SUMLEV_NATION] %></span>.
</span>
<% } %>

<% if (query.get('summarylevel') && (query.get('summarylevel') != SUMLEV_NATION) && !query.get(SUMLEV_STATE)) { %>
Expand All @@ -56,7 +63,12 @@
<% }); %>
</span>
<% } else if (query.get(SUMLEV_STATE)) { %>
in <b><%= query.get(SUMLEV_STATE +'Display') %></b>
in
<% if (_.values(query.attributes).length > 5) { %>
<span id="state-select"><span class="link" data-val="<%= query.get(SUMLEV_STATE) %>"><%= query.get(SUMLEV_STATE + 'Display') %></span></span>
<% } else { %>
<b><%= query.get(SUMLEV_STATE +'Display') %></b>
<% } %>
<% } %>

<% if (query.mappings.counties && !query.get(SUMLEV_COUNTY)) { %>
Expand Down
30 changes: 26 additions & 4 deletions censusweb/media/js/query.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,39 @@ $(function(){
return _.filter(list, function(item){ return matcher.test(item[0]); });
},

select: function(level, e) {
select: function(level, e) {
this.filter = "";
var attrs = {};

//so that we can work backwards up the builder, resetting stuff
if(level == 'summarylevel' || level == SUMLEV_STATE) {
delete query.attributes[SUMLEV_NATION];
delete query.attributes[SUMLEV_COUNTY];
delete query.attributes[SUMLEV_TRACT];
delete query.attributes[SUMLEV_PLACE];
delete query.attributes[SUMLEV_BLOCK];
delete query.attributes[SUMLEV_NATION + 'Display'];
delete query.attributes[SUMLEV_COUNTY + 'Display'];
delete query.attributes[SUMLEV_TRACT + 'Display'];
delete query.attributes[SUMLEV_PLACE + 'Display'];
delete query.attributes[SUMLEV_BLOCK + 'Display'];
delete query.mappings['places'];
delete query.mappings['counties'];
delete query.mappings['tracts'];
//the top level, reset everything
if(level == 'summarylevel') {
delete query.attributes[SUMLEV_STATE];
delete query.attributes[SUMLEV_STATE + 'Display'];
delete query.attributes['summarylevelDisplay'];
}
}

var el = $(e.currentTarget);
var val = attrs[level] = el.attr('data-val');
var display = attrs[level + 'Display'] = el.text();
this.currentLevel = level;
this.set(attrs);
//this.controller.saveLocation('query/' + this.location());
this.loadNext();

// Remove this section to enable "go button" prompt:
var q = window.query;
Expand Down Expand Up @@ -155,8 +179,6 @@ $(function(){
},

loadNext: function() {
console.log(this.currentLevel);
console.log(this.get('summarylevel'));
var level = this.currentLevel;
if (level == SUMLEV_STATE) {
if (_.include([SUMLEV_TRACT, SUMLEV_COUNTY], this.get('summarylevel'))) {
Expand Down

0 comments on commit 4dba18e

Please sign in to comment.