X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/78f8e2a4503f95e23c8312193aecfb20455fa01e..73eb8a5336ea14fa1ccc6de9442125b6475bf6bb:/app/assets/javascripts/router.js?ds=inline diff --git a/app/assets/javascripts/router.js b/app/assets/javascripts/router.js index 56616c269..05e47c356 100644 --- a/app/assets/javascripts/router.js +++ b/app/assets/javascripts/router.js @@ -106,19 +106,15 @@ OSM.Router = function(map, rts) { currentPath = path; currentRoute = routes.recognize(currentPath); currentRoute.run('popstate', currentPath); - var state = e.originalEvent.state; - if (state.center) { - map.setView(state.center, state.zoom, {animate: false}); - map.updateLayers(state.layers); - } + map.setState(e.originalEvent.state, {animate: false}); }); router.route = function (url) { var path = url.replace(/#.*/, ''), route = routes.recognize(path); if (!route) return false; - window.history.pushState(OSM.parseHash(url) || {}, document.title, url); currentRoute.run('unload'); + window.history.pushState(OSM.parseHash(url), document.title, url); currentPath = path; currentRoute = route; currentRoute.run('pushstate', currentPath); @@ -154,9 +150,7 @@ OSM.Router = function(map, rts) { if (hash === currentHash) return; currentHash = hash; var state = OSM.parseHash(hash); - if (!state) return; - map.setView(state.center, state.zoom); - map.updateLayers(state.layers); + map.setState(state); router.stateChange(state, hash); }; @@ -169,16 +163,20 @@ OSM.Router = function(map, rts) { }; router.load = function() { - if (currentRoute) { - var loadState = currentRoute.run('load', currentPath); - router.stateChange(loadState || {}); - } else { - throw "Unable to match route for: " + currentPath; - } + var loadState = currentRoute.run('load', currentPath); + router.stateChange(loadState || {}); + }; + + router.setCurrentPath = function (path) { + currentPath = path; + currentRoute = routes.recognize(currentPath); }; map.on('moveend baselayerchange overlaylayerchange', router.updateHash); $(window).on('hashchange', router.hashUpdated); + $(window).on('unload', function(e) { + $(".query_wrapper.routing input").val(""); + }); return router; };