Browse Source

CategoryOverpassFilter: add defaultQuery option

master
parent
commit
b472af6290
  1. 1
      doc/Filters.md
  2. 24
      src/CategoryOverpassFilter.js

1
doc/Filters.md

@ -37,6 +37,7 @@ Each filter can define the following values:
* 'strsearch' query string parts (e.g. "kai keb" would match "Kaiser Kebap") and query character variants (e.g. "cafe" would match "café").
* show_default: if true, this filter will be shown by default, others need to be added via the select box.
* placeholder: a text which is shown as placeholder (Twig enabled)
* defaultQuery: A filter query which is added when no value is selected.
### Values
#### Array

24
src/CategoryOverpassFilter.js

@ -139,16 +139,22 @@ class CategoryOverpassFilter {
this.formFilter = new form('filter-' + this.master.id, this.data, masterOptions)
this.formFilter.show(this.domFilter)
this.formFilter.onchange = function () {
this.formFilter.onchange = () => {
let param = JSON.parse(JSON.stringify(this.formFilter.get_data()))
this.applyParam(param)
state.update()
}.bind(this)
}
this.master.on('setParam', this.setParam.bind(this))
this.master.on('applyParam', this.applyParam.bind(this))
this.master.on('applyParam', (param) => {
this.applyParam(param)
if (!this.tabFilter.isSelected()) {
this.tabFilter.select()
}
})
this.master.on('open', this.openCategory.bind(this))
this.master.on('stateGet', this.stateGet.bind(this))
}
@ -227,6 +233,15 @@ class CategoryOverpassFilter {
}
}).filter(f => f) // remove null values
const defaultQueries = Object.keys(this.data)
.map(k => {
if (!param[k]) {
return this.data[k].defaultQuery
}
})
.filter(f => f)
this.additionalFilter = this.additionalFilter.concat(defaultQueries)
if (this.additionalFilter.length === 0) {
this.additionalFilter = []
} else if (this.additionalFilter.length === 1) {
@ -244,6 +259,9 @@ class CategoryOverpassFilter {
openCategory () {
this.formFilter.resize()
let param = JSON.parse(JSON.stringify(this.formFilter.get_data()))
this.applyParam(param)
}
stateGet (param) {

Loading…
Cancel
Save