ce0f3c9d3e
fix(sync): Import the data when syncing GeoJSON objects.
...
Prior to these changes, the data wasn't transmitted over WebSocket, and
even if present it wasn't taken into account.
2024-06-07 18:21:30 +02:00
e24173eb9f
fix(sync): Keep features IDs for Polygons and Lines
...
It wasn't passed previously, so objects where duplicated.
2024-06-07 18:21:30 +02:00
c6ee25b906
feat(sync): Only sync when on edit mode
...
The is done to save server resources, for accessed maps which
aren't currently being edited.
2024-06-07 18:21:30 +02:00
66eb90ffd1
chore(sync): Move the sync flag in the options
...
The goal being for it to be hidden for now.
- Add a `is_owner` method on the map and use it in the view
- Remove duplicated line in `global.js`
- Rename `Datalayer` to `DataLayer` everywhere
- Move the sync flag in the map options (next to slideshow)
2024-06-07 18:21:30 +02:00
32a4f3feda
feat(sync): Add WebSocket specific settings
...
`WEBSOCKET_ENABLED`, `WEBSOCKET_HOST`, `WEBSOCKET_PORT` and
`WEBSOCKET_URI` have been added.
They are being transmitted to the client via the `map.options`.
When `WEBSOCKET_ENABLED` is set to `False`, the client doesn't have
the ability to be synced.
2024-06-07 18:21:30 +02:00
5e692d2280
feat(sync): Add a enableSync
option.
...
This changes how the syncEngine works. At the moment, it's always
instanciated, even if no syncing is configured. It just does nothing.
This is to avoid doing `if (engine) engine.update()` calls everywhere
we use it.
You now need to `start()` and `stop()` it.
2024-06-07 18:21:30 +02:00
9a74cc370c
feat(sync): initialize datalayers internal objects in the constructor.
...
Otherwise, an event can come from the websocket, trying to update an
`undefined` property.
2024-06-07 18:21:30 +02:00
b956101d5d
feat(sync): sync layer's properties.
...
This also changes the interface between the synced classes and the sync
engine.
The sync engines only requires two methods now:
- `getSyncMetadata()` which returns all the metadata needed, including
the `engine`.
- `render()` which renders the object, updating the needed parts.
2024-06-07 18:21:30 +02:00
66105127cb
feat(sync): Sync features over websockets
...
Added a new `geometryToFeature` method in `umap.layer.js` which can
update a given geometry if needed.
A new `id` property can also be passed to the features on creation, to
make it possible to have the same features `id` on different peers.
2024-06-07 18:21:30 +02:00
c9abb15dd1
feat(sync): sync map properties over websocket
...
All keystrokes are currently sent, which is not ideal because it will
use a lot of bandwidth.
2024-06-07 18:21:30 +02:00
698c926997
feat(sync): sync features and map properties
...
Synced objects now expose different methods, such as:
- `getSyncEngine` which returns the location of the sync object.
- `getMetadata` which returns the associated metadata with the object.
Hooks have been added when features are created or changed, so the
changes can be synced with other peers.
2024-06-07 18:21:30 +02:00
f255c3c8a5
feat(websockets): Authenticate with signed tokens.
...
Authentication is now done using a signed token provided by the Django
server, sent by the JS client and checked by the WebSocket server.
The token contains a `permissions` key that's checked to ensure the user
has access to the map "room", where events will be shared by the peers.
2024-06-07 18:21:30 +02:00
e2b9b161e6
feat(websockets): First SyncEngine appearance
...
A new SyncEngine module has been added to the JavaScript code. It aims
to sync the local changes with remote ones. This first implementation
relies on a websocket connection.
2024-06-07 18:21:30 +02:00
1128348db6
feat(WebSockets): Features a WebSocket server.
...
There is one "room" per map, and the server relays messages to all the
other connected peers.
Messages are checked for compliance with what's allowed as a security
measure. They should also be checked in the clients to avoid potential
attack vectors.
2024-06-07 18:21:30 +02:00
ee3dbb85ca
doc: update cookie-related comment
2024-06-07 18:21:30 +02:00
2daeaf12e0
WIP
2024-06-07 18:21:30 +02:00
c1fe86747b
feat(settings): Expose settings as a dict.
...
This makes it possible to use them in standalone scripts, when using
`django.settings.configure(**settings_dict)`.
2024-06-07 18:21:30 +02:00
Yohan Boniface
9d211005b1
chore: remove U.Keys, and refactor global shorcuts
2024-06-06 07:15:49 +02:00
Yohan Boniface
c70951a994
chore: move help to a separate module
2024-06-05 19:42:15 +02:00
Yohan Boniface
b7b39fa2f5
i18n
2024-06-05 10:50:21 +02:00
Yohan Boniface
50d16b633c
fix: display layer in naturel order in caption
...
This was broken in e6b4a54499
fix #1874
2024-06-03 14:57:20 +02:00
Yohan Boniface
88103f284a
Merge pull request #1868 from umap-project/fix-layer-old-storage
...
fix: support old storage options when importing a umap file
2024-05-30 16:14:45 +02:00
Yohan Boniface
5f5805dc09
fix: support old storage options when importing a umap file
2024-05-30 15:05:45 +02:00
Yohan Boniface
3a12865d62
Merge pull request #1867 from umap-project/catch-xml-error
...
fix: show message in case of xml parsing error
2024-05-29 20:17:40 +02:00
Yohan Boniface
442928f608
Merge pull request #1865 from umap-project/popup-newlines
...
fix: refactor new line management in popups
2024-05-29 20:03:27 +02:00
Yohan Boniface
16ab193b5d
fix: show message in case of xml parsing error
...
fix #1866
2024-05-29 11:51:47 +02:00
Yohan Boniface
fa2bef85d3
fix: refactor new line management in popups
...
Basically, we do not add `<br>` anymore, but instead let the newline
and use the css `white-space: pre-line;`. Also remove new lines after
title.
While doing that change, I needed to reorder regex so the ones needing
a newline before would still have it (bullets points).
I've added tests and removed some to cover those changes.
fix #1854
2024-05-29 10:35:25 +02:00
Yohan Boniface
fe74ffb008
fix: caption title rendering on multiple lines
...
fix #1853
2024-05-29 08:59:26 +02:00
Yohan Boniface
c10bc27fed
fix: panel condensed height should never be bigger than screen
2024-05-24 18:39:11 +02:00
Yohan Boniface
ebf9be296d
chore: move importer to modules/
2024-05-23 19:32:07 +02:00
Yohan Boniface
109545d006
chore: prettier
2024-05-23 18:26:36 +02:00
Yohan Boniface
1836647c00
chore: move autocomplete to modules/
2024-05-23 15:10:46 +02:00
David Larlet
d6a20b3dda
Merge pull request #1847 from umap-project/ui-to-modules
...
chore: move ui to dedicated modules
2024-05-22 13:05:32 -04:00
David Larlet
ef705a862e
Merge pull request #1851 from umap-project/audio-video-tags
...
fix: allow audio and video tags (+attributes) in HTML
2024-05-22 12:52:16 -04:00
David Larlet
5f29b8b0d5
fix: invert star icons when map is starred or not
...
Fixes #1848
2024-05-22 11:05:44 -04:00
David Larlet
5b624167c0
fix: allow audio and video tags (+attributes) in HTML
...
Refs https://forum.openstreetmap.fr/t/umap-audio-video-et-panneau-lateral/2804/2
2024-05-22 10:54:24 -04:00
Yohan Boniface
776d92e7cc
chore: add minimal dialog class to replace custom made help box
2024-05-22 14:00:53 +02:00
Yohan Boniface
8e446dbe70
chore: move panel.js to ui/ subfolder
2024-05-22 11:50:59 +02:00
Yohan Boniface
2ed9bc65ee
chore: move tooltip to a dedicated module
2024-05-22 11:40:48 +02:00
Yohan Boniface
8ddc570e23
chore: move alert to dedicated module
2024-05-22 11:39:16 +02:00
Yohan Boniface
c44e7ec38d
2.3.1
2024-05-17 17:45:55 +02:00
Yohan Boniface
8f17d6848a
i18n
2024-05-17 17:44:26 +02:00
Yohan Boniface
6113ac362e
Merge pull request #1837 from umap-project/browser-show-list
...
fix: always display data in browser unless in "layers" mode
2024-05-17 17:42:32 +02:00
Yohan Boniface
6294886faa
Merge pull request #1829 from umap-project/panel-mode
...
fix: make explicit default panel modes
2024-05-17 17:39:47 +02:00
Yohan Boniface
06f5b4447f
fix: always display data in browser unless in "layers" mode
2024-05-17 17:36:19 +02:00
Yohan Boniface
dfb78b32b3
Merge pull request #1822 from umap-project/switch-dark-color
...
feat: use accent color for switch and multichoices on dark background
2024-05-17 17:21:51 +02:00
Yohan Boniface
77ed24fb95
Merge pull request #1823 from umap-project/fix-location
...
fix: error when clicking on the geolocate button
2024-05-17 17:21:33 +02:00
Yohan Boniface
0e24e3041e
Merge pull request #1832 from umap-project/delete-datalayer-propagate
...
fix: do not close blindly editPanel when deleting a layer
2024-05-17 17:20:36 +02:00
Yohan Boniface
284ef1d7f3
feat: remove defaultPanelMode from now
...
After discussion, we prefer to go with decent defaults and see
how it goes.
2024-05-17 17:18:05 +02:00
Yohan Boniface
aa67d6d09d
Merge pull request #1834 from umap-project/modifier-shift
...
fix: do not consider shortcuts if shift is also pressed
2024-05-17 17:04:05 +02:00
Yohan Boniface
cac3c63ac0
Merge pull request #1835 from umap-project/classif-to-toggle
...
chore: replace DomUtil.classIf by classList.toggle
2024-05-17 17:02:35 +02:00
Yohan Boniface
6327c988ab
fix: do not close blindly editPanel when deleting a layer
...
fix #498
fix #1831
2024-05-17 17:01:47 +02:00
Yohan Boniface
26d4b439cd
chore: replace DomUtil.classIf by classList.toggle
...
cf #1342
2024-05-17 16:51:25 +02:00
Yohan Boniface
630de6d749
fix: do not consider shortcuts if shift is also pressed
...
fix #1452
2024-05-17 16:08:40 +02:00
Yohan Boniface
26c9f913e3
fix: do not autoclose panel blindly after map save
...
fix #1139
cf #1831
2024-05-17 15:19:10 +02:00
Yohan Boniface
c860866fe9
feat: add defaultPanelMode setting
...
cf https://forum.openstreetmap.fr/t/umap-2-3-changement-de-gestion-des-pop-up/23680/3
Trying to make this panel expanded/condenses thing simpler and more intuitive.
It's mode can be set:
- by explicitely setting defaultPanelMode = xxx
- or, if defaultPanelMode is undefined, with sensible default when there is
an onLoadPanel defined, and to respect previous uMap behaviour
- or, if defaultPanelMode is unset, and some feature opens in the panel, it
will be set to expanded (here again to respect previous behaviour
- then, when user change it manually (by clicking on the toggle button), then
we should never change it automatically, and respect the previous mode when
reopening the panel
(We are only talking about the left panel, here.)
2024-05-16 19:48:19 +02:00
Yohan Boniface
3a19b921a7
chore: prettier
2024-05-16 12:18:07 +02:00
Yohan Boniface
571154e4f3
fix: error when clicking on the geolocate button
...
fix #1812
2024-05-15 15:17:50 +02:00
Yohan Boniface
00ad05bb82
feat: use accent color for switch and multichoices on dark background
2024-05-14 18:59:05 +02:00
Yohan Boniface
9e2a29002a
Apply suggestions from code review
...
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-05-14 17:35:33 +02:00
Yohan Boniface
e6b4a54499
fix: show non visible layers in caption
...
fix #1820
2024-05-14 16:26:00 +02:00
Yohan Boniface
c58196b285
chore: move caption to its own module
2024-05-14 16:00:26 +02:00
Yohan Boniface
71a8aafeba
2.3.0
2024-05-09 18:08:08 +02:00
Yohan Boniface
6b3da97d73
i18n
2024-05-09 18:07:13 +02:00
Yohan Boniface
0ce1971b4e
Merge pull request #1794 from umap-project/integrate-facets
...
feat: integrate facets into browser filters
2024-05-09 17:57:15 +02:00
Yohan Boniface
eb1a0bae25
Merge pull request #1808 from umap-project/panel-height-with-footer-bar
...
fix: adapt panel expanded height when map has a caption bar
2024-05-09 17:56:39 +02:00
Yohan Boniface
5b4bf9d416
Merge pull request #1804 from umap-project/edit-layer-on-esc
...
fix: open edit panel when pressing ESC while drawing, if valid
2024-05-09 17:45:25 +02:00
Yohan Boniface
b5da347a67
fix: adapt panel expanded height when map has a caption bar
...
cf #1788
2024-05-09 17:07:33 +02:00
Yohan Boniface
58588761d5
fix: open edit panel when pressing ESC while drawing, if valid
2024-05-09 16:43:01 +02:00
Yohan Boniface
84b904c71d
fix: really focus on search input after showing the panel
...
fix #1806
2024-05-09 16:36:05 +02:00
Yohan Boniface
4ebbf8ed11
Merge pull request #1805 from umap-project/fix-continue-line
...
fix: do not try to render drawinTooltip on drawing start
2024-05-09 16:01:57 +02:00
Yohan Boniface
6c5bdf8670
wip: add integration test to make sure filters are kept when closing panel
2024-05-09 15:57:14 +02:00
Yohan Boniface
f06461967a
fix: do not try to render drawinTooltip on drawing start
...
The event does not contain latlng, so we cannot compute the
line length yet.
2024-05-09 13:32:39 +02:00
Yohan Boniface
b0b740f9b5
wip: fix CSS selector to determine if browser is open or not
2024-05-08 19:37:28 +02:00
Yohan Boniface
86ae6bb816
wip: better way of computing isMin/MaxModified in facets fields
2024-05-08 19:27:23 +02:00
Yohan Boniface
53458053a7
wip: properly deal with old onLoadPanel 'facet' value
...
We need to replace it, so the new value is saved and used
elsewhere (eg. in the "UI options" form)
2024-05-08 19:07:13 +02:00
Yohan Boniface
369f798839
Merge pull request #1790 from umap-project/panel-expanded-mobile
...
fix: allow panel expanded mode in mobile
2024-05-08 18:56:41 +02:00
Yohan Boniface
99effc880b
wip: rename facet by filters in user facing labels
2024-05-08 18:46:47 +02:00
Yohan Boniface
0741d2a943
wip: add min/max attributes to minmax filters inputs
2024-05-08 18:40:40 +02:00
Yohan Boniface
76c719f3b1
wip: add a reset button to filters form in browser
2024-05-08 18:40:00 +02:00
Yohan Boniface
46088f3213
wip: highlight modified inputs instead of fieldset in filters
2024-05-07 20:32:40 +02:00
Yohan Boniface
63d936a069
wip: review form style with Aurelie
2024-05-07 20:26:13 +02:00
Yohan Boniface
fa1752c992
fix: keep current selected date/number value when reopening browser
2024-05-07 16:39:28 +02:00
Yohan Boniface
8ef8ad538e
wip: one const per line
2024-05-07 15:43:27 +02:00
David Larlet
dcad0e1bb2
Merge pull request #1801 from umap-project/1796-add-purify-attributes
...
fix: allow `dir` and `title` attributes
2024-05-07 09:40:27 -04:00
Yohan Boniface
2f3e7d03ab
chore: fix tests after fieldset refactor
2024-05-07 13:29:03 +02:00
Yohan Boniface
b450acf81d
chore: prettier
2024-05-07 12:31:28 +02:00
Yohan Boniface
cd48267cf2
wip: remove unused code
2024-05-07 12:29:48 +02:00
Yohan Boniface
ba0ba1a85d
wip: add a badge on filters title and datalayers icon when active
2024-05-07 12:28:13 +02:00
Yohan Boniface
43755c81fa
fix: only set date/number facets selected if values have changed
...
For displaying the badge, we need to know when custom values have
been set. Also, this prevent useless facet checks when user has
changed one value then changed it back to default.
2024-05-07 12:23:17 +02:00
Yohan Boniface
701b00f4f7
wip: do not override selected values when recomputing facets
2024-05-07 12:21:31 +02:00
Yohan Boniface
d805653e3c
wip: make explicit in browser.build that we set mode only if defined
2024-05-07 12:20:40 +02:00
David Larlet
5b9746066c
fix: allow dir
and title
attributes
...
Fix #1796
2024-05-06 18:26:05 -04:00
Yohan Boniface
0b98ef2f9d
wip: replace fake fieldset by proper details/summary tags
2024-05-03 18:53:05 +02:00
Yohan Boniface
406198882a
wip: add filter icon for filters button
2024-05-03 18:48:26 +02:00
Yohan Boniface
f78e95b088
wip: remove tabs from browser
2024-05-03 16:06:51 +02:00
Yohan Boniface
aa78b13f8e
feat: integrate facets into browser filters
2024-05-03 12:53:06 +02:00
David Larlet
8679c0ded8
Merge pull request #1792 from umap-project/fix-title-html
...
fix: do not add title to button if content is a DOM node
2024-05-02 11:34:46 -04:00
Yohan Boniface
916da8be94
fix: do not add title to button if content is a DOM node
2024-05-02 17:14:48 +02:00
Yohan Boniface
f1a8180a29
Merge pull request #1789 from umap-project/panel-responsive
...
Add max-width to panel in landscape mode
2024-05-02 16:41:23 +02:00