Support old style URLs

This commit is contained in:
Gautier Pelloux-Prayer 2017-04-24 16:38:25 +02:00
parent 2188183d3f
commit ab85ec31e1
2 changed files with 21 additions and 2 deletions

View file

@ -263,10 +263,18 @@
}
};
var onInvalidHashChangeCb = function(params) {
params = params.replace('zoom=', 'map=');
params = params.replace('&lat=', '/');
params = params.replace('&lon=', '/');
params = params.replace('&layer=', '/');
return params;
};
urlHash = new L.Hash(map, mapLayers, function() {
var url = router.getUrl(routing.getWaypoints(), null);
return "&" + url.substr('brouter?'.length + 1);
}, onHashChangeCb);
}, onHashChangeCb, onInvalidHashChangeCb);
routingOptions.on('update', urlHash.updateHash, urlHash);
nogos.on('update', urlHash.updateHash, urlHash);
// waypoint add, move, delete (but last)

View file

@ -5,10 +5,11 @@
(doc_mode === undefined || doc_mode > 7);
})();
L.Hash = function(map, layers, additionalCb, onHashChangeCb) {
L.Hash = function(map, layers, additionalCb, onHashChangeCb, onInvalidHashChangeCb) {
this.onHashChange = L.Util.bind(this.onHashChange, this);
this.additionalCb = additionalCb;
this.onHashChangeCb = onHashChangeCb;
this.onInvalidHashChangeCb = onInvalidHashChangeCb;
this.layers = layers;
if (map) {
this.init(map, layers);
@ -127,6 +128,16 @@
return;
}
var parsed = this.parseHash(hash);
if (!parsed) {
// migration from old hash style to new one
if (this.onInvalidHashChangeCb != null) {
var newHash = this.onInvalidHashChangeCb(hash);
if (newHash != null && newHash != hash) {
parsed = this.parseHash(newHash);
}
}
}
if (parsed) {
this.isUpdatingHash = true;