Merge branch 'master' of github.com:okfn/recline
This commit is contained in:
commit
98393498ab
9
dist/recline.dataset.js
vendored
9
dist/recline.dataset.js
vendored
@ -713,20 +713,23 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
|
||||
this._applyFreeTextQuery = function(results, queryObj) {
|
||||
if (queryObj.q) {
|
||||
var terms = queryObj.q.split(' ');
|
||||
var patterns=_.map(terms, function(term) {
|
||||
return new RegExp(term.toLowerCase());;
|
||||
});
|
||||
results = _.filter(results, function(rawdoc) {
|
||||
var matches = true;
|
||||
_.each(terms, function(term) {
|
||||
_.each(patterns, function(pattern) {
|
||||
var foundmatch = false;
|
||||
_.each(self.fields, function(field) {
|
||||
var value = rawdoc[field.id];
|
||||
if (value !== null) {
|
||||
if ((value !== null) && (value !== undefined)) {
|
||||
value = value.toString();
|
||||
} else {
|
||||
// value can be null (apparently in some cases)
|
||||
value = '';
|
||||
}
|
||||
// TODO regexes?
|
||||
foundmatch = foundmatch || (value.toLowerCase() === term.toLowerCase());
|
||||
foundmatch = foundmatch || (pattern.test(value.toLowerCase()));
|
||||
// TODO: early out (once we are true should break to spare unnecessary testing)
|
||||
// if (foundmatch) return true;
|
||||
});
|
||||
|
||||
18
dist/recline.js
vendored
18
dist/recline.js
vendored
@ -1032,20 +1032,23 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
|
||||
this._applyFreeTextQuery = function(results, queryObj) {
|
||||
if (queryObj.q) {
|
||||
var terms = queryObj.q.split(' ');
|
||||
var patterns=_.map(terms, function(term) {
|
||||
return new RegExp(term.toLowerCase());;
|
||||
});
|
||||
results = _.filter(results, function(rawdoc) {
|
||||
var matches = true;
|
||||
_.each(terms, function(term) {
|
||||
_.each(patterns, function(pattern) {
|
||||
var foundmatch = false;
|
||||
_.each(self.fields, function(field) {
|
||||
var value = rawdoc[field.id];
|
||||
if (value !== null) {
|
||||
if ((value !== null) && (value !== undefined)) {
|
||||
value = value.toString();
|
||||
} else {
|
||||
// value can be null (apparently in some cases)
|
||||
value = '';
|
||||
}
|
||||
// TODO regexes?
|
||||
foundmatch = foundmatch || (value.toLowerCase() === term.toLowerCase());
|
||||
foundmatch = foundmatch || (pattern.test(value.toLowerCase()));
|
||||
// TODO: early out (once we are true should break to spare unnecessary testing)
|
||||
// if (foundmatch) return true;
|
||||
});
|
||||
@ -2682,9 +2685,6 @@ my.Map = Backbone.View.extend({
|
||||
try {
|
||||
self.features.addData(feature);
|
||||
|
||||
if (feature.properties && feature.properties.popupContent) {
|
||||
self.features.bindPopup(feature.properties.popupContent);
|
||||
}
|
||||
} catch (except) {
|
||||
wrongSoFar += 1;
|
||||
var msg = 'Wrong geometry value';
|
||||
@ -2832,7 +2832,11 @@ my.Map = Backbone.View.extend({
|
||||
var bg = new L.TileLayer(mapUrl, {maxZoom: 18, attribution: osmAttribution ,subdomains: '1234'});
|
||||
this.map.addLayer(bg);
|
||||
|
||||
this.features = new L.GeoJSON();
|
||||
this.features = new L.GeoJSON(null,
|
||||
{onEachFeature: function(feature,layer) {
|
||||
layer.bindPopup(feature.properties.popupContent);
|
||||
}
|
||||
});
|
||||
this.map.addLayer(this.features);
|
||||
|
||||
this.map.setView([0, 0], 2);
|
||||
|
||||
@ -142,20 +142,23 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {};
|
||||
this._applyFreeTextQuery = function(results, queryObj) {
|
||||
if (queryObj.q) {
|
||||
var terms = queryObj.q.split(' ');
|
||||
var patterns=_.map(terms, function(term) {
|
||||
return new RegExp(term.toLowerCase());;
|
||||
});
|
||||
results = _.filter(results, function(rawdoc) {
|
||||
var matches = true;
|
||||
_.each(terms, function(term) {
|
||||
_.each(patterns, function(pattern) {
|
||||
var foundmatch = false;
|
||||
_.each(self.fields, function(field) {
|
||||
var value = rawdoc[field.id];
|
||||
if (value !== null) {
|
||||
if ((value !== null) && (value !== undefined)) {
|
||||
value = value.toString();
|
||||
} else {
|
||||
// value can be null (apparently in some cases)
|
||||
value = '';
|
||||
}
|
||||
// TODO regexes?
|
||||
foundmatch = foundmatch || (value.toLowerCase() === term.toLowerCase());
|
||||
foundmatch = foundmatch || (pattern.test(value.toLowerCase()));
|
||||
// TODO: early out (once we are true should break to spare unnecessary testing)
|
||||
// if (foundmatch) return true;
|
||||
});
|
||||
|
||||
@ -217,9 +217,6 @@ my.Map = Backbone.View.extend({
|
||||
try {
|
||||
self.features.addData(feature);
|
||||
|
||||
if (feature.properties && feature.properties.popupContent) {
|
||||
self.features.bindPopup(feature.properties.popupContent);
|
||||
}
|
||||
} catch (except) {
|
||||
wrongSoFar += 1;
|
||||
var msg = 'Wrong geometry value';
|
||||
@ -367,7 +364,11 @@ my.Map = Backbone.View.extend({
|
||||
var bg = new L.TileLayer(mapUrl, {maxZoom: 18, attribution: osmAttribution ,subdomains: '1234'});
|
||||
this.map.addLayer(bg);
|
||||
|
||||
this.features = new L.GeoJSON();
|
||||
this.features = new L.GeoJSON(null,
|
||||
{onEachFeature: function(feature,layer) {
|
||||
layer.bindPopup(feature.properties.popupContent);
|
||||
}
|
||||
});
|
||||
this.map.addLayer(this.features);
|
||||
|
||||
this.map.setView([0, 0], 2);
|
||||
|
||||
@ -74,7 +74,7 @@ test('query string', function () {
|
||||
});
|
||||
|
||||
data.query({q: 'UK 6'}).then(function(out) {
|
||||
equal(out.total, 1);
|
||||
equal(out.total, 2); // the new regex support will find 2 hits
|
||||
deepEqual(out.hits[0].id, 1);
|
||||
});
|
||||
});
|
||||
@ -234,7 +234,7 @@ test('query string', function () {
|
||||
});
|
||||
|
||||
dataset.query({q: 'UK 6'}).then(function() {
|
||||
equal(dataset.records.length, 1);
|
||||
equal(dataset.records.length, 2);
|
||||
deepEqual(dataset.records.models[0].id, 1);
|
||||
});
|
||||
});
|
||||
|
||||
@ -177,7 +177,7 @@ test('Popup - Custom', function () {
|
||||
assertPresent(popup);
|
||||
|
||||
var text = popup.html();
|
||||
ok((text.indexOf('<h3>3</h3>y: 6') != -1))
|
||||
ok((text.indexOf('<h3>1</h3>y: 2') != -1))
|
||||
|
||||
view.remove();
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user