Skip to content

Streamline time slider loading#327

Open
1ec5 wants to merge 2 commits into
stagingfrom
1ec5-timeslider-control-subclass
Open

Streamline time slider loading#327
1ec5 wants to merge 2 commits into
stagingfrom
1ec5-timeslider-control-subclass

Conversation

@1ec5
Copy link
Copy Markdown
Member

@1ec5 1ec5 commented Oct 28, 2025

This PR restores normal page loading to be synchronous and loads the time slider synchronously as part of page loading. I’ve also fixed a bad merge in directions.js (which is currently inaccessible). The new streamlined initialization code only supports date parameters as hash parameters (after the #). I’ve removed support for date parameters as query parameters (after the ?), which were only supported on a couple of the pages and are probably rarely used.

This also removes a hard-coded list of time-enabled layer IDs, so there are fewer steps to remember when adding a new layer.

Fixes OpenHistoricalMap/issues#1179.

@1ec5 1ec5 requested a review from erictheise October 28, 2025 02:04
@1ec5 1ec5 self-assigned this Oct 28, 2025
@1ec5 1ec5 added the javascript Pull requests that update Javascript code label Oct 28, 2025
let ohmlayer;
map.eachLayer(function (layer) { // there's only 1 or 0 time layers at a time, so this works
if (historicalLayerKeys.indexOf(layer.options.layerId) !== -1) ohmlayer = layer;
if (layer instanceof L.OSM.OHM) ohmlayer = layer;
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assumes every instance of L.OSM.OHM is time-enabled. That’s currently true, but if we ever choose to publish an all-time cumulative style that isn’t filtered by date, then we’ll need to push this decision down to each instance of L.OSM.OHM via a new property in layers.yml.

1ec5 added 2 commits May 8, 2026 08:54
Restored normal page loading to be synchronous. Load the time slider synchronously as part of page loading. Fixed a bad merge in directions.js. Removed inconsistent support for date parameters as query parameters, leaving only support for date parameters as hash parameters.
@1ec5 1ec5 force-pushed the 1ec5-timeslider-control-subclass branch from 41d4dee to f61a503 Compare May 8, 2026 15:55
@@ -85,16 +84,5 @@ function addOpenHistoricalMapTimeSlider (map, params, onreadycallback) {
slideroptions.vectorLayer = ohmlayer;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to move the if (getHistoryLayerIfShowing()) check in here? So if (ohmlayer)?

If getHistoryLayerIfShowing() returns null, will this get called again by the 'baselayerchange' handler? (I'm just wondering about the source of the race condition.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Streamline time slider loading

2 participants