1
0
forked from MTSR/mapserver
mapserver/static/js/components/Search.js
2019-09-01 12:06:47 +02:00

63 lines
1.3 KiB
JavaScript

import SearchResult from './SearchResult.js';
import { getMapObjects } from '../api.js';
const state = {
busy: false,
result: []
};
function searchFor(type, key, valuelike){
return getMapObjects({
pos1: { x:-2048, y:-2048, z:-2048 },
pos2: { x:2048, y:2048, z:2048 },
type: type,
attributelike: {
key: key,
value: "%" + valuelike +"%"
}
});
}
function search(query){
state.result = [];
var prom_list = [
searchFor("shop", "out_item", query),
searchFor("poi", "name", query),
searchFor("train", "station", query),
searchFor("travelnet", "station_name", query),
searchFor("bones", "owner", query),
searchFor("locator", "name", query),
searchFor("label", "text", query),
searchFor("digiterm", "display_text", query),
searchFor("digilinelcd", "text", query)
];
Promise.all(prom_list)
.then(function(results){
var arr = [];
results.forEach(function(r) {
arr = arr.concat(r);
});
state.result = arr;
state.busy = false;
});
}
export default {
oncreate(vnode){
search(vnode.attrs.query);
},
view(vnode){
if (state.result.length == 0) {
return m("div", vnode.attrs.query);
} else {
return m(SearchResult, { result: state.result });
}
}
};