David Larlet
c5c352cfac
fix: do not export layer ids in umap backup
2025-04-04 11:26:10 -04:00
David Larlet
d6f591b365
fix: remote data loading on import from umap backup ( #2598 )
2025-04-04 11:15:23 -04:00
David Larlet
90bbc72320
fix: restore width and height for default marker icon
...
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 11:15:03 -04:00
David Larlet
b05e6ec28c
fix: remote data loading on import from umap backup
2025-04-04 11:05:33 -04:00
David Larlet
0e56e71e87
fix: Minimize the default svg icon for marker
...
Co-authored-by: Yohan Boniface <yohanboniface@free.fr>
2025-04-04 10:28:43 -04:00
Yohan Boniface
5c51a7a735
feat: add keyboard shortcut for redo (ctrl+shift+z) ( #2596 )
...
I've reworked a bit the shortcut handling, as it was only dealing with
ctrl/meta only ones (no shift).
2025-04-04 16:25:04 +02:00
Yohan Boniface
563aee81e1
feat: add keyboard shortcut for redo (ctrl+shift+z)
2025-04-04 16:14:04 +02:00
Yohan Boniface
9e5c985d6c
feat: add minimal "raw" icon shape
2025-04-04 12:02:46 +02:00
Yohan Boniface
32b9217bd2
feat: add Map.tags and allow to edit from client ( #2530 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
cf #2283
Note: this PR uses ArrayField, which is Postgres only, so this would
officially remove the support of spatialite as it is. I'm not sure at
all uMap still works with spatialite, so maybe that the opportunity to
either add spatialite in the CI and make sure we support it, or remove
it and only target Postgres/PostGIS.
2025-04-03 18:52:17 +02:00
Yohan Boniface
4fd57e0c11
chore: remove tag icons for now
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 18:29:39 +02:00
Yohan Boniface
54420568af
chore: refine map fragment card CSS
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 18:20:50 +02:00
Yohan Boniface
8c90535105
chore: better CSS for tags in maps list
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:51:37 +02:00
Yohan Boniface
80a969917a
chore: simplify search form CSS and HTML
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:51:20 +02:00
Yohan Boniface
6582e85f18
Update the Dockerfile to expose websockets ( #2576 )
...
The Dockerfile now uses ASGI by default (via uvicorn).
2025-04-03 17:16:56 +02:00
Yohan Boniface
023645a160
wip: make Redis service optional in Docker image
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 17:12:12 +02:00
Yohan Boniface
e24695b68c
wip: display tags in maps list
2025-04-03 14:51:04 +02:00
Yohan Boniface
db72bfad8d
wip: sort tags by label, not by value
2025-04-03 11:10:36 +02:00
Yohan Boniface
738af24dfc
chore: fix tags related test
2025-04-03 11:10:36 +02:00
Yohan Boniface
06f963c07f
chore: align search form elements
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 11:10:36 +02:00
Yohan Boniface
c6ed896a6d
feat: associate icons to tags
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-04-03 11:10:36 +02:00
Yohan Boniface
1344fe6b46
feat: basic filtering by tags
2025-04-03 11:10:36 +02:00
Yohan Boniface
39f38a9cdf
feat: add Map.tags and allow to edit from client
...
cf #2283
2025-04-03 11:10:33 +02:00
Yohan Boniface
5259cab027
chore: remove saving.js import added by mistake during rebase
2025-03-28 18:00:14 +01:00
Yohan Boniface
7ede27bf0f
chore: top edit bar responsiveness
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
5807cfbbcd
wip: move undo/redo buttons to the left
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
e41ad4e069
wip: allow to sync version restore
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
c933df585c
wip: add test to make sure saving also save remote dirty datalayers
2025-03-28 18:00:14 +01:00
Yohan Boniface
50f2c08ecb
wip: do not call document during JS unittests
2025-03-28 18:00:14 +01:00
Yohan Boniface
d61e045903
wip: allow to sync/undo filter added/removed from table editor
2025-03-28 18:00:14 +01:00
Yohan Boniface
6b2038e83e
wip: permissions does not inherit from ServerStored anymore
2025-03-28 18:00:14 +01:00
Yohan Boniface
0389e9a185
wip: allow to undo/sync rules
...
When editing Rule(s), we are not editing the map data itself, but a
sort of proxy objects. This was done mainly because map.properties.rules
is an array of object, and at this time Leaflet.FormBuilder did not know
how to edit an array (something like properties.rules.0.condition).
Now that we integrated FormBuilder, it still does not know how to do this
but we could teach it, or find another way (real Proxy or use reference
to the original object in the Rule).
2025-03-28 18:00:14 +01:00
Yohan Boniface
a2e864ad73
wip: uncreated map should always appear as dirty
2025-03-28 18:00:14 +01:00
Yohan Boniface
d0fb85d552
wip: DataLayer does not inherit anymore from ServerStored
2025-03-28 18:00:14 +01:00
Yohan Boniface
fa83764c8b
wip: allow DataLayer.clear to be sync and undone
2025-03-28 18:00:14 +01:00
Yohan Boniface
d438a007e4
wip: uMap does not inherit anymore from ServerStored
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
be52e7ca2f
wip: remove not effective code
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
172de0e2d0
wip: add permissions related fields in schema
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
77da6425c2
wip: allow to mark an operation as not undoable
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
093ed061c1
wip: tests pass
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
5cb7cb2738
fixup: make sure to toggle remote client state at save too
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
dfdfae0080
wip: derive the dirty status from the undoManager
...
This should pave the way for removing the SaveManager.
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
4fd066387d
Update the tests and remove cancel edits
...
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-28 18:00:14 +01:00
fa3ba46ca8
Add integration test for batch undo/redo
2025-03-28 18:00:14 +01:00
Yohan Boniface
cb46a5f875
Batch operations
...
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 18:00:14 +01:00
Yohan Boniface
cc2625bfac
wip: undo redo
...
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-28 18:00:14 +01:00
Yohan Boniface
8292608365
chore: fix HLC comparison
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
This change was made by biome, but it breaks unittests, not
sure why but let's revert for now.
2025-03-28 17:59:35 +01:00
Yohan Boniface
ae8cbf39ad
feat: display maps list as a grid now ( #2590 )
...

2025-03-28 16:15:51 +01:00
Yohan Boniface
7c5d821ec8
feat: layers selector in bottom bar ( #2579 )
2025-03-28 16:15:20 +01:00
Yohan Boniface
4e9e828c8f
feat: display maps list as a grid now
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 16:05:11 +01:00
Yohan Boniface
79d60d0995
fix: update datalayers switcher when datalayer visibility changes
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-28 15:56:28 +01:00
Yohan Boniface
75457b6d5c
fix: do not fail when trying to read metadata of a missing geojson ( #2592 )
...
Some geojson have been removed by mistake time ago (cf #1003 ), when
someone tries to load a map referencing them, it was until recently just
showing an error message, but since recently we try to get the metadata
from it, and this will crash.
2025-03-28 15:28:13 +01:00
Yohan Boniface
8538db278d
feat: add titles in the text formatting dialog ( #2584 )
...

fix #813
2025-03-28 15:27:30 +01:00
Yohan Boniface
ba9e8ffe9b
chore: apply Biome check ( #2588 )
...
This is mostly imports ordering but there are a couple of subtleties 🐉
There are still 9 errors before we can automatize the check with the CI!
2025-03-28 15:26:52 +01:00
Yohan Boniface
dcf5f1a763
fix: make sure umap.properties.slideshow is defined ( #2583 )
2025-03-28 15:25:19 +01:00
Yohan Boniface
41264e740f
fix: do not fail when trying to read metadata of a missing geojson
...
Some geojson have been removed by mistake time ago (cf #1003 ), when someone
tries to load a map referencing them, it was until recently just
showing an error message, but since recently we try to get the
metadata from it, and this will crash.
2025-03-28 12:58:07 +01:00
Yohan Boniface
953b37a181
fixup: fix tests
2025-03-27 13:14:20 +01:00
Yohan Boniface
9eaf33c118
wip: only show layer selector if there are at least two layers
2025-03-27 13:11:24 +01:00
David Larlet
f2cde6af4e
fixup: positionning of caption bar elements
2025-03-27 13:11:24 +01:00
Yohan Boniface
a4abecbd2c
fixup: only show datalayers with inCaption=true in switcher
2025-03-27 13:11:24 +01:00
Yohan Boniface
254a2018f5
chore: use toggle to switch visibility in datalayer switcher
2025-03-27 13:11:24 +01:00
Yohan Boniface
3df52e002d
wip
2025-03-27 13:11:24 +01:00
David Larlet
82208d618a
chore: apply Biome check
2025-03-26 14:37:56 -04:00
Yohan Boniface
64c7fe1ec9
fix: fix icon and button for version restore
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-26 18:05:01 +01:00
Yohan Boniface
47c5c0a2f0
chore: remove old JS tests
...
Those are not ran since more than one year, so let's trash.
fix #2260
2025-03-19 08:16:38 +01:00
Yohan Boniface
ecca66ccc2
feat: add titles in the text formatting dialog
...
fix #813
2025-03-19 08:14:33 +01:00
Yohan Boniface
360ca100ba
fix: make sure umap.properties.slideshow is defined
2025-03-18 07:35:10 +01:00
Yohan Boniface
54a3aae912
chore: order importers by name instead of id ( #2578 )
2025-03-17 16:46:22 +01:00
Yohan Boniface
9d4069d9ae
chore: order importers by name instead of id
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-17 16:44:23 +01:00
Yohan Boniface
167bab70c5
feat: add experimental BAN importer ( #2565 )
...
This importer takes a CSV as input, sends it to the BAN API, and then
paste it into the import textarea, so it can be imported as usual.
https://github.com/user-attachments/assets/c13f8580-5c09-4b35-b092-baac664a57a1
2025-03-17 16:39:55 +01:00
Yohan Boniface
d3ed46356d
feat: add experimental BAN importer
...
This importer takes a CSV as input, sends it to the BAN API, and
then paste it into the import textarea, so it can be imported as usual.
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-17 16:20:57 +01:00
Yohan Boniface
f26536bff3
fix: iconUrl field was broken on older browsers
...
fix #2554
2025-03-14 14:50:47 +01:00
Yohan Boniface
1b058ce862
fixup: hide home button in edit mode ( #2562 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
The button is already on the edit bar.
Would be nicer to have a css transition (like for the bar itself), but
at least with this change it is not duplicated.
2025-03-13 16:52:41 +01:00
Yohan Boniface
a46430c420
fix: import iconUrl as absolute when possible ( #2563 )
...
This will only cover the cases where the icon is set at the map or at
the layer level, not the one of the marker itself.
cf #2552
2025-03-13 16:52:19 +01:00
Yohan Boniface
05e3f5ce3d
fix: use real redraw for datalayer, instead of hide/show ( #2568 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
The problem we've tried to fix is, during sync:
- peer A is editing a feature
- peer B changes the datalayer of this feature
- edit panel is closed for peer A
2025-03-12 17:41:18 +01:00
Yohan Boniface
c417e94698
fix(sync): fix tilelayer change not synced ( #2569 )
2025-03-12 17:39:19 +01:00
Yohan Boniface
e20648104b
fix: fix tilelayer change not synced
...
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-12 13:01:26 +01:00
Yohan Boniface
0c9d5325ba
fix: use real redraw for datalayer, instead of hide/show
...
The problem we've tried to fix is, during sync:
- peer A is editing a feature
- peer B changes the datalayer of this feature
- edit panel is closed for peer A
Co-authored-by: Alexis Métaireau <alexis@notmyidea.org>
2025-03-12 12:23:54 +01:00
Yohan Boniface
90be14ae89
fix: cast value to string before calling trim
...
fix #2566
2025-03-11 21:43:21 +01:00
Yohan Boniface
003b25d5e0
fix: import iconUrl as absolute when possible
...
This will only cover the cases where the icon is set at the map or
at the layer level, not the one of the marker itself.
cf #2552
2025-03-11 16:20:58 +01:00
Yohan Boniface
ef80396784
fixup: hide home button in edit mode
...
The button is already on the edit bar.
Would be nicer to have a css transition, but at least with this
change it is not duplicated.
2025-03-11 15:32:01 +01:00
Yohan Boniface
d85fc648b1
feat: add new "Back to home" icon ( #2551 )
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled

2025-03-10 22:31:42 +01:00
Yohan Boniface
bfb17788a4
chore: new icon, colors and title for search buttons
2025-03-10 19:06:39 +01:00
Yohan Boniface
8599199afa
feat: add more users counts in /stats/
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-10 16:38:53 +01:00
Yohan Boniface
7a2bf9fc4c
fixup: let the importer deal with getting the OSM url in search
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:58:56 +01:00
Yohan Boniface
b3e39bf654
fixup: square buttons in search results
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:40:16 +01:00
Yohan Boniface
89e2a01d60
fixup: do not close panel when clicking on search edit buttons
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:39:42 +01:00
Yohan Boniface
0def3292e1
fix: only display search edit tools in edit mode
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:26:46 +01:00
Yohan Boniface
beae551367
feat: add new "Back to home" icon
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-07 17:20:35 +01:00
Yohan Boniface
d4885f386a
i18n
2025-03-07 16:24:11 +01:00
Yohan Boniface
869db90b28
chore: update oauth provider deprecation message
...
Mention that it's important to logout and login again to have the
new provider replace the old one in the session
2025-03-07 16:17:26 +01:00
David Larlet
33cbe1ab71
a11y: turn embeded maps into inert elements ( #2533 )
...
One of the side-effects is to make the content of the map un-focusable
but we also loose the ability to interact with the map itself.
2025-03-07 10:10:29 -05:00
Yohan Boniface
782386bad4
feat: display a target on hover on search results
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-06 18:51:58 +01:00
Yohan Boniface
ae5bc9746c
feat: allow to import full geometries from search results
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-06 17:03:13 +01:00
Yohan Boniface
a044bfd672
chore: refactor search UX
...
cf #419
2025-03-06 15:48:51 +01:00
Yohan Boniface
188a0d6e98
chore: bump Leaflet.Photon
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
To display state in results, cf #419
2025-03-06 09:38:51 +01:00
Yohan Boniface
1981f73212
feat: expose active sessions in stats endpoint
2025-03-05 10:02:42 +01:00
Yohan Boniface
9974852975
2.9.2
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
2025-03-04 15:56:23 +01:00
Yohan Boniface
fb2fd217ab
fix: be defensive when getting the backend name from the session ( #2540 )
...
Seems that in some situation it is not defined.
We have this error in Sentry, but I'm not able to reproduce myself to
get a better context:
https://umap.sentry.io/issues/6351694806/?alert_rule_id=14960738&alert_timestamp=1741028858715&alert_type=email&environment=osmfr¬ification_uuid=2c437997-d14d-4e0f-a62f-55bd19739ad2&project=4506656504020992&referrer=alert_email
2025-03-04 15:51:05 +01:00
Yohan Boniface
3297296d59
fix: measure/drawing tooltip was misplaced
...
Since 70f87d8636
fix #2539
2025-03-04 11:52:06 +01:00
Yohan Boniface
470fc14d6d
fix: be defensive when getting the backend name from the session
...
Seems that in some situation it is not defined.
2025-03-04 11:20:49 +01:00
Yohan Boniface
c0f7e9d50d
2.9.1
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
2025-03-03 18:40:47 +01:00
Yohan Boniface
34259f6234
i18n
2025-03-03 18:39:08 +01:00
Yohan Boniface
284ca8fd9c
chore: be more persuasive in deprecating twitter login backend
...
- always redirect user from map to their profile page when they
used a deprecated backend to log in
- change the Twitter image to make clear it is to be removed
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 18:24:23 +01:00
Yohan Boniface
2cf3a4e6a3
fix: honour error status in alerts
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 16:48:44 +01:00
Yohan Boniface
bc1eaa05c9
chore: use a French quote in translation
...
To prevent escape from Django, as we then use it in a textContent
property for alerts.
Co-authored-by: David Larlet <david@larlet.fr>
2025-03-03 16:47:48 +01:00
Yohan Boniface
ce024d57fd
2.9.0
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
2025-03-03 15:49:27 +01:00
David Larlet
5eab942f25
a11y: switch to better contrasted links ( #2532 )
...
And underline for external links otherwise the new green color is too
close to the text one to clearly identify links.
2025-03-03 09:36:50 -05:00
Yohan Boniface
9e791a0ab4
fix: feature edit status not disabled on hide ( #2534 )
2025-03-03 15:34:49 +01:00
Yohan Boniface
26fe653456
i18n
2025-03-03 15:13:03 +01:00
David Larlet
ea58f93940
a11y: update URLs and (underlined) styles for help
2025-03-03 09:10:37 -05:00
Yohan Boniface
436c083744
fix: feature edit status not disabled on hide
2025-03-03 15:09:34 +01:00
Yohan Boniface
ea00d4fc32
chore: remove _marked_for_deletion pattern
...
We think it's useless now that we use "editable:edited" event everywhere
(vs using the "editable:commit" which was triggered also after a delete,
when closing the edit panel)
2025-03-03 15:09:07 +01:00
David Larlet
abe49cc1ba
a11y: turn embeded maps into inert elements
...
One of the side-effects is to make the content of the map un-focusable but we also loose the ability to interact with the map itself.
2025-02-28 16:18:28 -05:00
David Larlet
4f5d37b676
a11y: switch to better contrasted links
...
And underline for external links otherwise the new green color is too close to the text one to clearly identify links.
2025-02-28 14:05:26 -05:00
David Larlet
949a266437
a11y: set an aria-label for unlabelled search input
2025-02-28 13:58:40 -05:00
Yohan Boniface
48daa0a77f
fix: do not show tooltip with only spaces
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-27 19:28:38 +01:00
Yohan Boniface
ba20f5791c
fix: shift-click on a path should toggle edit
...
This was broken in 4adc558560
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-27 19:21:43 +01:00
Yohan Boniface
0fe2103b71
chore: bump Leaflet.Editable and DOMPurify
2025-02-27 17:12:02 +01:00
Yohan Boniface
14e90a1a0f
feat: add a quick link to layer's permalink ( #2529 )
...
This will open a new page with only this given layer shown.

2025-02-27 15:36:45 +01:00
Yohan Boniface
e919c5f168
fix(sync): make datalayer upsert idempotent ( #2528 )
...
That fix does not really fix the original issue, but it makes it
impactless, and I think it's safer anyway to have upsert idempotent.
The pattern to reproduce is:
- peer A create a synced map, add a datalayer, save it
- peer B loads the map, click on edit
- at this time, peer B have twice the datalayer data, once from the
server AND once from the sync
So a better fix would be to make that peer B send a meaningfull HLC to
peer A I guess.
For this we may save the last HLC is the map properties, or maybe try to
merge the "reference_version" and the HLC.
2025-02-27 15:32:09 +01:00
Yohan Boniface
b1076dcb7b
fix: make sure we sync a line when hitting esc while drawing ( #2526 )
...
I first tried to handle this on Leaflet.Editable side, to make it fire
the "editable:edited" event we use to trigger the sync, but deciding
what to do with a feature on escape needs some decisions that seems hard
to implement in a generic way in Leaflet.Editable.
We call stopDrawing, which then calls cancelDrawing, so here one need to
decide if cancelDrawing should keep the already drawn line (but cancel
the point being drawn) or cancel everything.
This is why I end up making this change in uMap itself.
2025-02-27 15:26:54 +01:00
Yohan Boniface
69ca89a6ba
fix: prevent client to open two websocket connections ( #2524 )
...
To reproduce:
- create a map
- saved it
- change the "syncEnabled" setting to on
- save again
- open another tab with this map
- switch on edit mode
In this case, the second client will try to authenticate:
- once switch on edit mode
- and once receiving the operation message from peer A about the
syncEnabled (which calls render, which calls initSyncEngine in in this
case)
I think we want to keep render to call initSyncEngine, so if a map owner
switch off the syncEnabled setting, this will (should) disconnect the
other peers.
2025-02-27 15:20:16 +01:00
Yohan Boniface
df0faa75aa
feat: add a quick link to layer's permalink
...
This will open a new page with only this given layer shown.
2025-02-26 15:38:48 +01:00
Yohan Boniface
b400ade44b
fix(sync): make datalayer upsert idempotent
...
That fix does not really fix the original issue, but it make it impactless.
The pattern is:
- peer A create a synced map, add a datalayer, save it
- peer B loads the map, click on edit
- at this time, peer B have twice the datalayer data, once from the server
AND once from the sync
So a better fix would be to make that peer B send a meaningfull HLC to
peer A I guess.
For this we may save the last HLC is the map properties, or maybe try
to merge the "reference_version" and the HLC.
2025-02-26 11:55:21 +01:00
Yohan Boniface
dc35039af8
chore: do not try to disconnect ws if not connected
...
cf https://umap.sentry.io/issues/6331841272/
2025-02-26 09:41:03 +01:00
Yohan Boniface
9858fc2190
fix: make sure we sync a line when hitting esc while drawing
...
I first tried to handle this on Leaflet.Editable side, to make
it fire the "editable:edited" event we use to trigger the sync,
but deciding what to do with a feature on escape needs some
decisions that seems hard to implement in a generic way in
Leaflet.Editable.
We call stopDrawing, which then calls cancelDrawing, so here
one need to decide if cancelDrawing should keep the already
drawn line (but cancel the point being drawn) or cancel
everything.
This is why I end up making this change in uMap itself.
2025-02-25 17:17:49 +01:00
Yohan Boniface
5ddd973eae
fix: prevent client to open two websocket connections
...
To reproduce:
- create a map
- saved it
- change the "syncEnabled" setting to on
- save again
- open another tab with this map
- switch on edit mode
In this case, the second client will try to authenticate:
- once switch on edit mode
- and once receiving the operation message from peer A about the
syncEnabled (which calls render, which calls initSyncEngine in
in this case)
I think we want to keep render to call initSyncEngine, so if a map
owner switch off the syncEnabled setting, this will (should) disconnect
the other peers.
2025-02-25 08:33:14 +01:00
Yohan Boniface
ab571925ff
chore: use template for layer advanced buttons
2025-02-24 17:19:46 +01:00
Yohan Boniface
a70e608e42
chore: use template for map advanced buttons
2025-02-24 17:05:54 +01:00
Yohan Boniface
fcac4df30b
chore: use our contexmenu class for inplace toolbar ( #2510 )
...
Test & Docs / tests (postgresql, 3.10) (push) Has been cancelled
Test & Docs / tests (postgresql, 3.12) (push) Has been cancelled
Test & Docs / lint (push) Has been cancelled
And remove Leaflet.Toolbar dependency.
This also teach ContextMenu how to display icons instead of text and how
to render in horizontal orientation instead of vertical.
Before:

After:

We've lost the bottom tip in the process, should I add this to the
ContextMenu class ?
Also, the automatic border for the focused button is a bit noisy imho,
not sure how to deal with that.
2025-02-14 17:25:13 +01:00
Yohan Boniface
b107de3421
fix(sync): wait for websocket full connection ( #2503 )
...
Websocket has now a "connect" method, which is a promise, that yields
"onconnect", so the engine can wait for it before proceding.
2025-02-14 17:22:57 +01:00
Yohan Boniface
b86db00e88
fix(sync): try to reconnect after network error when getting token ( #2502 )
...
Otherwise, if the token request fail, the process will be stopped and we
will never try to reconnect.
2025-02-14 17:22:41 +01:00
Yohan Boniface
244e637acc
chore: sync save state ( #2487 )
...
When a peer save the map, other peers in dirty state should not need to
save the map anymore.
That implementation uses the lastKnownHLC as a reference, but it changes
all dirty states at once. Another impementation could be to have each
object sync its dirty state, but in this case we do not have a HLC per
object as reference, and it also creates more messages.
ping @almet if you're around and wanna have a fresh look. :)
2025-02-14 17:17:59 +01:00
Yohan Boniface
c00de1a457
fix: use default value from schema for non inheritable fields ( #2513 )
...
Eg. moreControl
2025-02-14 17:17:15 +01:00
Yohan Boniface
48b4d61cd0
chore: add an hover on dark context menu buttons
...
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-14 17:16:35 +01:00
Yohan Boniface
b90328f65e
feat: make vertex icons bigger (and round) ( #2506 )
...
Before:

After:

(Size unchanged on mobile)
cf #673
2025-02-14 16:52:54 +01:00
Yohan Boniface
2089d3b0c6
fix: use default value from schema for non inheritable fields
...
Eg. moreControl
Co-authored-by: David Larlet <david@larlet.fr>
2025-02-14 16:44:11 +01:00
Yohan Boniface
52b4244333
chore: add missing default values in schema
2025-02-14 16:03:15 +01:00
Yohan Boniface
1b3852d0e8
i18n
2025-02-14 16:03:05 +01:00
Yohan Boniface
20b1dd6f26
i18n
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
2025-02-14 15:38:31 +01:00
Yohan Boniface
4adc558560
chore: use our contexmenu class for inplace toolbar
...
And remove Leaflet.Toolbar dependency.
This also teach ContextMenu how to display icons instead of
text and how to render in horizontal orientation instead of
vertical.
2025-02-12 14:59:43 +01:00
Yohan Boniface
04966cc068
feat: make the tooltip sticky in hover mode for paths
...
Until now, it was displayed on the path (line or polygon)
"center". So when zoomed in, if the center is not on the
screen, the tooltip will not be visible.
2025-02-11 15:51:43 +01:00
Yohan Boniface
c71a6aafdb
fix: do not display an error for an empty CSV ( #2505 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
fix #577
fix #2491
fix #1546
2025-02-11 15:00:16 +01:00
Yohan Boniface
008a996bea
feat: make vertex icons bigger (and round)
2025-02-11 14:00:09 +01:00
Yohan Boniface
8e13a15645
fix: do not display an error for an empty CSV
...
fix #577
fix #2491
fix #1546
2025-02-11 13:45:40 +01:00
Yohan Boniface
414cc805c2
fix(sync): wait for websocket full connection
...
Websocket has now a "connect" method, which is a promise,
that yields "onconnect", so the engine can wait for it before
proceding.
2025-02-11 13:26:27 +01:00
Yohan Boniface
1ce491a70c
fix(sync): try to reconnect after network error when getting token
2025-02-11 13:03:06 +01:00
Yohan Boniface
f0e87bab83
Fix broken showLabel=null (on hover) ( #2490 )
...
Broken since c27e675152
2025-02-11 12:14:52 +01:00
Yohan Boniface
c5417178c4
fix: "null" value was not honoured in showLabel field
2025-02-11 11:48:01 +01:00
Yohan Boniface
aea422a247
feat: add title attribute to layers in browser ( #2489 )
...
Test & Docs / tests (postgresql, 3.10) (push) Waiting to run
Test & Docs / tests (postgresql, 3.12) (push) Waiting to run
Test & Docs / lint (push) Waiting to run
Test & Docs / docs (push) Waiting to run
Usefull when the layer title is truncated because too long.


2025-02-10 17:17:55 +01:00