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

  1. var queryString = require('query-string')
  2. var OpenStreetBrowserLoader = require('./OpenStreetBrowserLoader')
  3. register_hook('state-apply', function (state) {
  4. if (!('categories' in state)) {
  5. return
  6. }
  7. var list = state.categories.split(',')
  8. list.forEach(function (id) {
  9. let param
  10. let m = id.match(/^([0-9A-Z_-]+)(\[(.*)\])/i)
  11. if (m) {
  12. id = m[1]
  13. param = queryString.parse(m[3])
  14. }
  15. OpenStreetBrowserLoader.getCategory(id, function (err, category) {
  16. if (err) {
  17. console.log("Can't load category " + id + ': ', err)
  18. return
  19. }
  20. if (category) {
  21. if (param) {
  22. category.setParam(param)
  23. }
  24. if (!category.parentDom) {
  25. category.setParentDom(document.getElementById('contentListAddCategories'))
  26. }
  27. category.open()
  28. }
  29. })
  30. })
  31. })