You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
860 B
39 lines
860 B
var queryString = require('query-string')
|
|
|
|
var OpenStreetBrowserLoader = require('./OpenStreetBrowserLoader')
|
|
|
|
register_hook('state-apply', function (state) {
|
|
if (!('categories' in state)) {
|
|
return
|
|
}
|
|
|
|
var list = state.categories.split(',')
|
|
list.forEach(function (id) {
|
|
let param
|
|
|
|
let m = id.match(/^([0-9A-Z_-]+)(\[(.*)\])/i)
|
|
if (m) {
|
|
id = m[1]
|
|
param = queryString.parse(m[3])
|
|
}
|
|
|
|
OpenStreetBrowserLoader.getCategory(id, function (err, category) {
|
|
if (err) {
|
|
console.log("Can't load category " + id + ': ', err)
|
|
return
|
|
}
|
|
|
|
if (category) {
|
|
if (param) {
|
|
category.setParam(param)
|
|
}
|
|
|
|
if (!category.parentDom) {
|
|
category.setParentDom(document.getElementById('contentListAddCategories'))
|
|
}
|
|
category.open()
|
|
|
|
}
|
|
})
|
|
})
|
|
})
|