store route_opts from url param in session rather than next_route_options, so that they persist after page reload etc

This commit is contained in:
Gwendolyn 2024-12-20 12:09:49 +01:00
parent e6d2afc99b
commit ef05647ec4

View file

@ -513,6 +513,7 @@ c3nav = {
$location_details.removeClass('loading'); $location_details.removeClass('loading');
}, },
next_route_options: null, next_route_options: null,
session_route_options: null,
load_route: function (origin, destination, nofly) { load_route: function (origin, destination, nofly) {
var $route = $('#route-summary'), var $route = $('#route-summary'),
$details_wrapper = $('#route-details'), $details_wrapper = $('#route-details'),
@ -525,7 +526,7 @@ c3nav = {
c3nav_api.post('routing/route', { c3nav_api.post('routing/route', {
origin: origin.id, origin: origin.id,
destination: destination.id, destination: destination.id,
options_override: c3nav.next_route_options ?? null, options_override: c3nav.next_route_options ?? c3nav.session_route_options ?? null,
}) })
.then(data => c3nav._route_loaded(data, nofly)) .then(data => c3nav._route_loaded(data, nofly))
.catch(data => { .catch(data => {
@ -803,7 +804,16 @@ c3nav = {
const route_options_str = new URLSearchParams(window.location.search).get('route_opts'); const route_options_str = new URLSearchParams(window.location.search).get('route_opts');
if (route_options_str) { if (route_options_str) {
try { try {
c3nav.next_route_options = JSON.parse(route_options_str); c3nav.session_route_options = JSON.parse(route_options_str);
if (sessionStorage) {
sessionStorage.setItem('session-route-opts', JSON.stringify(c3nav.session_route_options));
}
} catch (e) {
console.error(e);
}
} else if (sessionStorage) {
try {
c3nav.session_route_options = JSON.parse(sessionStorage.getItem('session-route-opts'));
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }