Skip to content

Conversation

@goto-10
Copy link

@goto-10 goto-10 commented May 5, 2022

related issue: #42 (comment)

changes:

  • converts getWorldByName to async function
    • checks for a local map.json first, then falls back to the cloud cdn if enabled (ui.useCloudTiles)
    • if cloud is used _useCloudTiles property is injected into the world data (checked in initMap fn)
  • refactored promise chain in processOp fn a bit to leverage the catch fn to show errors properly

@fank fank self-requested a review May 6, 2022 10:48
@indig0fox indig0fox merged commit 35528a4 into OCAP2:ind/leaflet-functionality May 7, 2022
@indig0fox indig0fox linked an issue May 24, 2023 that may be closed by this pull request
fank added a commit that referenced this pull request Jan 30, 2026
…s) (#87)

* number of improvements

- adds leaflet control
- allows satellite layer to be loaded if available and switched between topo and sat
- allows show/hide of units/vehicles, side markers, global markers, and projectile markers

- fixes setCrew bug

* visual improvements, cloud tiling

* enough for now

* more

* adds generalEvent for custom event announcements in timeline

* fix markers

* fix for sideLogic units

* small ui changes

* changes to new topo modes

* fixes cloud tiling CORS issues

* now uses https map.json fetch

* crisper entity popup text

* hide AI names by default, more work needed

* hotfix leaflet.pattern failure

* minor index cleanup

* Update static/scripts/localizable.js

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>

* Update static/scripts/localizable.js

Co-authored-by: Florian Kinder <florian.kinder@fankserver.com>

* use cloud tiles as fallback (#44)

* only use cloud tiles as fallback when enabled

* debug log

* show cloud map data parsing error

* fix `world._useCloudTiles` condition check

* fix vehicle crew display, dont carry d/c deaths to rejoined players

* ignore data and maps files in git

* ensure that groups in left pane are ordered alphabetically

* update missing tiles URL

* update data and maps ignores

* fix basemaps control file reference

* addon and extension version in info screen

* - account for new "displayName" attribute in worlds' map.json to supercede the previous "name" attribute
- reduce max zoom by 1 level
- fix console logging for incomplete hit/killed events
- change to calculating initial view bounds by initial marker positions if BIS_fnc_moduleCoverMap not present
- add better logging in general, including in debug stream
- if world isn't rendered in cloud or local, show alert & load placeholder map so playback can still be viewed
- don't cache map.json to support future installation/render and stop it from requiring a full browser cache clear
- cleanup old geojson code
- move Leaflet controls to bottom right and integrate with Leaflet DOM
- removes a couple css overrides for the above
- update ui title bar to also include the played date and map name
- linting
- fix error where popup is not initialized yet but tries to update

* fix loading share URL, fix websiteLogo position

- reposition website logo to bottom left
- ensure it follows left panel visibility
- fix loading the shareURL using proper URLSearchParams
- parse date from opRecord, or if from share URL, from filename if possible. if backup file that was manually restored and failed initial upload, show "<UnknownDate>"
- created setting.json.example, but left setting.json so as not to break Docker build on accident

* fix fetch exception for loading without a rendered map

* fix: revert Leaflet to 1.6.0 for plugin compatibility

The PR's Leaflet 1.7.1 uses ES module syntax which breaks
when loaded as a regular script tag. The plugins (rotatedMarker,
svgIcon, pattern, etc.) depend on the global L variable being
defined synchronously.

* fix: set worldObject global in streaming mode

The streaming mode path (processOpStreaming) was not setting
the global worldObject variable, causing getMapImageBounds()
to fail with 'Cannot read properties of null'.

* fix: use HTTPS for cloud tile URLs and fix corrupted .gitkeep

- Change all http://maps.ocap2.com to https://maps.ocap2.com to avoid
  mixed content warnings when served over HTTPS
- Fix maps/.gitkeep which contained RTF markup instead of being empty

* chore: remove unnecessary .gitkeep files

The data/ and maps/ directories are already in .gitignore,
so .gitkeep files cannot be tracked anyway. The application
or deployment should create these directories as needed.

* chore: remove redundant .gitignore patterns

The patterns /data/*.json.gz, /data/*.json, and /maps/*/ are
already covered by data/ and maps/ respectively.

* chore: gitignore setting.json, expand setting.json.example

- Add setting.json to .gitignore (contains secrets)
- Update setting.json.example with all available options:
  - prefixURL, db, markers, ammo, maps, data, static paths
  - conversion settings (enabled, interval, batchSize, chunkSize, storageEngine)
- Change example secret to 'change-me' to make it clear it must be changed

* feat: implement leaflet.pattern support for marker brushes

Re-enable L.StripePattern support for marker brush types:
- Horizontal, Vertical, Grid, FDiagonal, BDiagonal, DiagGrid, Cross

The pattern is created in the constructor when brush options are set,
and added to the map when the marker is rendered. The pattern library
handles duplicate additions gracefully via L.stamp tracking.

Removes commented-out dead code that was marked as 'broken'.

---------

Co-authored-by: IndigoFox <indifox926@gmail.com>
Co-authored-by: goto-10 <suckonmyrocket+github@gmail.com>
Co-authored-by: JessevGool <jvgool2001@gmail.com>
Co-authored-by: IndigoFox <indigo@indigofox.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants