Browse Source

CategoryOverpass: add 'categories' parameter to state

master
parent
commit
e4a26ef910
  1. 30
      src/CategoryOverpass.js
  2. 20
      src/categories.js
  3. 1
      src/index.js

30
src/CategoryOverpass.js

@ -2,6 +2,7 @@ var OpenStreetBrowserLoader = require('./OpenStreetBrowserLoader')
var OverpassLayer = require('overpass-layer')
var OverpassLayerList = require('overpass-layer').List
var CategoryBase = require('./CategoryBase')
var state = require('./state')
var defaultValues = {
feature: {
title: "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}",
@ -107,6 +108,31 @@ function CategoryOverpass (id, data) {
this.domStatus.className = 'status'
this.dom.appendChild(this.domStatus)
register_hook('state-get', function (state) {
if (this.isOpen) {
if (state.categories) {
state.categories += ','
} else {
state.categories = ''
}
state.categories += this.id
}
}.bind(this))
register_hook('state-apply', function (state) {
if (!('categories' in state)) {
return
}
var list = state.categories.split(',')
if (list.indexOf(this.id) === -1) {
this.close()
}
// opening categories is handled by src/categories.js
}.bind(this))
}
CategoryOverpass.prototype.load = function (callback) {
@ -156,6 +182,8 @@ CategoryOverpass.prototype.open = function () {
}
this.isOpen = true
state.update()
}
CategoryOverpass.prototype.recalc = function () {
@ -170,6 +198,8 @@ CategoryOverpass.prototype.close = function () {
this.layer.remove()
this.list.remove()
state.update()
}
CategoryOverpass.prototype.get = function (id, callback) {

20
src/categories.js

@ -0,0 +1,20 @@
var OpenStreetBrowserLoader = require('./OpenStreetBrowserLoader')
register_hook('state-apply', function (state) {
if (!('categories' in state)) {
return
}
var list = state.categories.split(',')
for (var i = 0; i < list.length; i++) {
OpenStreetBrowserLoader.getCategory(list[i], function (err, category) {
if (category) {
category.open()
if (!category.parentDom) {
category.setParentDom(document.getElementById('contentList'))
}
}
})
}
}.bind(this))

1
src/index.js

@ -27,6 +27,7 @@ require('./overpassChooser')
require('./fullscreen')
require('./mapLayers')
require('./twigFunctions')
require('./categories')
window.onload = function() {
var initState = {}

Loading…
Cancel
Save