[#154,filtereditor][s]: refactor how we lay out the filters in order to group inputs for a given filter together more.

* Model.Query: use distance_unit for geo_distance filter.
This commit is contained in:
Rufus Pollock
2012-06-16 16:46:34 +01:00
parent 8ff885759f
commit 81167e39fe
2 changed files with 24 additions and 16 deletions

View File

@@ -423,7 +423,8 @@ my.Query = Backbone.Model.extend({
term: '' term: ''
}, },
geo_distance: { geo_distance: {
distance: '10km', distance: 10,
distance_unit: 'km',
point: { point: {
lon: 0, lon: 0,
lat: 0 lat: 0

View File

@@ -39,23 +39,30 @@ my.FilterEditor = Backbone.View.extend({
', ',
filterTemplates: { filterTemplates: {
term: ' \ term: ' \
<div class="control-group filter-{{type}} filter"> \ <div class="filter-{{type}} filter"> \
<label class="control-label" for="">{{field}}</label> \ <fieldset> \
<div class="controls"> \ <legend> \
<input type="text" value="{{term}}" name="term" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \ {{field}} <small>{{type}}</small> \
<a class="js-remove-filter" href="#">&times;</a> \ <a class="js-remove-filter" href="#" title="Remove this filter">&times;</a> \
</div> \ </legend> \
<input type="text" value="{{term}}" name="term" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \
</fieldset> \
</div> \ </div> \
', ',
geo_distance: ' \ geo_distance: ' \
<div class="control-group filter-{{type}} filter"> \ <div class="filter-{{type}} filter"> \
<label class="control-label" for="">{{field}}</label> \ <fieldset> \
<a class="js-remove-filter" href="#">&times;</a> \ <legend> \
<div class="controls"> \ {{field}} <small>{{type}}</small> \
<input type="text" value="{{point.lon}}" name="lon" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \ <a class="js-remove-filter" href="#" title="Remove this filter">&times;</a> \
<input type="text" value="{{point.lat}}" name="lat" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \ </legend> \
<input type="text" value="{{distance}}" name="distance" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \ <label class="control-label" for="">Longitude</label> \
</div> \ <input type="text" value="{{point.lon}}" name="lon" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \
<label class="control-label" for="">Latitude</label> \
<input type="text" value="{{point.lat}}" name="lat" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \
<label class="control-label" for="">Distance (km)</label> \
<input type="text" value="{{distance}}" name="distance" data-filter-field="{{field}}" data-filter-id="{{id}}" data-filter-type="{{type}}" /> \
</fieldset> \
</div> \ </div> \
' '
}, },
@@ -126,7 +133,7 @@ my.FilterEditor = Backbone.View.extend({
filters[filterIndex].term = value; filters[filterIndex].term = value;
} else if (filterType === 'geo_distance') { } else if (filterType === 'geo_distance') {
if (name === 'distance') { if (name === 'distance') {
filters[filterIndex].distance = parseInt(value); filters[filterIndex].distance = parseFloat(value);
} else { } else {
filters[filterIndex].point[name] = parseFloat(value); filters[filterIndex].point[name] = parseFloat(value);
} }