David Larlet
10e398d222
chore: better alerts CSS
2024-06-12 18:03:05 -04:00
David Larlet
6cb1be1fd4
chore: use direct import for ServerRequest in alerts
2024-06-12 18:03:05 -04:00
David Larlet
ddaafa8cda
chore: scroll when the help box is too big
2024-06-12 18:03:05 -04:00
David Larlet
c0ecc39439
chore: uniformize buttons across panels and alerts
2024-06-12 18:03:05 -04:00
David Larlet
e1f91b393d
chore: do not display zoom alert on save
2024-06-12 18:03:05 -04:00
David Larlet
6bbdec49bf
chore: refactor web components with templates
2024-06-12 18:03:04 -04:00
David Larlet
6f715c109b
chore: improve message/choice in case of conflicts
2024-06-12 18:03:04 -04:00
David Larlet
5c2528900e
chore: Use web components to display alerts + a11y roles
2024-06-12 18:03:04 -04:00
Yohan Boniface
8967ab5901
whore: prettier
2024-06-11 14:12:33 +02:00
Yohan Boniface
50ef073d36
Merge pull request #1883 from umap-project/remove-u-keys
...
chore: remove U.Keys, and refactor global shorcuts
2024-06-07 18:35:49 +02:00
fc2de3fc53
tests(sync): Change the way the websocket server is run in the tests
...
Using [pytest-xprocess](https://pytest-xprocess.readthedocs.io/ ) proved
not being as useful as I thought at first, because it was causing
intermitent failures when starting the process.
The code now directly uses `subprocess.popen` calls to start the server.
The tests are grouped together using the following decorator:
`@pytest.mark.xdist_group(name="websockets")`
Tests now need to be run with the `pytest --dist loadgroup` so that all
tests of the same group happen on the same process.
More details on this blogpost:
https://blog.notmyidea.org/start-a-process-when-using-pytest-xdist.html
2024-06-07 18:21:30 +02:00
98a7a56701
refactor(sync): rename ws.py
to websocket_server.py
...
Hopefully this is clearer :-)
2024-06-07 18:21:30 +02:00
f42498d195
refactor(sync): Sync layers creation with map.createDataLayer
utility.
...
Rather than having it done inside the datalayer itself. This gives us
more control.
2024-06-07 18:21:30 +02:00
149a0c1680
refactor: rename geometrytoFeatures
to geoJSONToLeaflet
...
Because we are dealing with technologies using overlapping vocabulary,
it is easy to get lost. Hopefully this change makes it clear that it
converts geoJSON inputs in Leaflet / uMap objects.
2024-06-07 18:21:30 +02:00
137cc21af2
feat(sync): Add a proxy to the SyncEngine
objects.
...
It is now possible to create proxy objects using `sync_engine.proxy(object)`.
The returned proxy object will automatically inject `metadata` and
`subject` parameters, after looking for them in the `getSyncMetadata`
method (these are only known to the synced objects).
As a result, the calls are now simplified:
```
this.sync.update("key", "value")
```
2024-06-07 18:21:30 +02:00
4e7ac23b53
refactor(sync): remove formbuilder this._redraw()
callbacks.
...
They are now handled in the `render()` call, so there is no more need
for them here.
2024-06-07 18:21:30 +02:00
5247bf77d3
refactor(sync): Remove syncUpdateProperties
function.
...
The function was only used once, so removing it simplified the whole
flow.
2024-06-07 18:21:30 +02:00
d3730a99ff
fix: use array.includes(string)
the proper way.
...
Because this `syncUpdatedProperties` function is only called once, it
didn't trigger any issue in practice (as the check was always returning
true).
2024-06-07 18:21:30 +02:00
d91c86e7fa
feat(websockets): run the WS server as a django management command.
...
This allows to handle the loading of the settings in a consistant way,
and aditionnaly to provide a way to override the `WEBSOCKET_BACK_HOST`
and `WEBSOCKET_BACK_PORT` settings with arg commands `--host` and
`--port`.
Without this change, because of how we are currently loading our
settings, we would require the settings the be exposed by the
`umap.settings.__init__` file.
Previous implementations were exposing these settings, with the
following code:
```python
settings_as_dict = {k: v for k, v in globals().items() if k.isupper()}
```
2024-06-07 18:21:30 +02:00
940ae77602
settings: Make the websocket settings clearer.
...
It is now using `WEBSOCKET_BACK_HOST`, `WEBSOCKET_BACK_PORT` and
`WEBSOCKET_FRONT_URI`.
We need to take in consideration that the "front" WebSocket address
(that clients will connect to) might be different than the "back" ip and
port which are bound in the host.
This happens for instance for reverse proxies, or when running inside
a container.
We considered using a `WEBSOCKET_TLS` setting, to try guessing the
"front" address based on `WEBSOCKET_HOST`, `WEBSOCKET_PORT` and
`WEBSOCKET_TLS`, but as the back and front address can differ, this
would need to introduce a `WEBSOCKET_URI` in any case, so we went with
just using it, and not adding an extra `WEBSOCKET_TLS`.
2024-06-07 18:21:30 +02:00
90780fbf6d
fixup: changes after @ybon's review.
2024-06-07 18:21:30 +02:00
50b7188647
fix(sync): sync the reference-version
across peers
...
This allows the merge algorithm to not be lost when receiving changes.
Without this change, the optimistic merge algorithm isn't able to make
the distinction between peers, and features end up duplicated.
2024-06-07 18:21:30 +02:00
516c3d9a0d
tests(sync): Add a test ensuring cloned features aren't duplicated
...
This is currently a bug in the current implementation. Hopefully fixed
in later commits.
2024-06-07 18:21:30 +02:00
b5eee142e7
test(sync): Ensure feature properties are synced
2024-06-07 18:21:30 +02:00
b1a4053b2e
chore(sync): remove belongsTo
for now
...
As it requires more discussion, it will happen in a separate
pull-request.
2024-06-07 18:21:30 +02:00
8fc116e7a8
chore(test): remove empty test
2024-06-07 18:21:30 +02:00
dfbdc1f975
chore(test): fix a typo
...
(but I would really like to see what web socker would look like)
2024-06-07 18:21:30 +02:00
db50c6cdd6
chore(sync): relax some validation logic on the websocket server
...
Messages are now checked for conformity with the procol we defined, but
stop at the `operation` boundary. Values aren't checked.
2024-06-07 18:21:30 +02:00
bc1dec245b
chore(sync): Sync engine now retrieves auth token
...
It's now it's responsability to get the authentication token from
the http server and pass it to the websocket server, it will make it
possible to redo the roundtrip when getting disconnected.
2024-06-07 18:21:30 +02:00
82ede035d6
chore(sync): use sync=false
everywhere to stop propagation
...
In some cases, you want to stop the propagation of events. The previous
code was using `fromSync=true` and `sync=false` interchangeably. This
makes it use `sync=false` everywhere.
2024-06-07 18:21:30 +02:00
637ab67b93
chore(utils): remove console.log
calls
2024-06-07 18:21:30 +02:00
5a565dd2ee
fix(schema): dashArray belongs to features as well
2024-06-07 18:21:30 +02:00
10a68a75e4
test(sync): Ensure datalayer properties are synced
2024-06-07 18:21:30 +02:00
d10a7b70f1
test(sync): Ensure map properties are synced
...
This tests that the name of the map, and that zoom-control visibility is
properly synced over websockets.
2024-06-07 18:21:30 +02:00
6f7dd61023
test(sync): ensure polygon drag-n-drop is synced
2024-06-07 18:21:30 +02:00
ad4d6ac672
test(sync): Ensure polygons and their edits can be synced
2024-06-07 18:21:30 +02:00
5feabd4c14
test(sync): Marker drag-n-drop and delete are synced
2024-06-07 18:21:30 +02:00
80f7efc810
tests(sync): Test that marker sync works properly
...
This commit handles the start and stop of the websocket server during
the tests, using the xprocess library
2024-06-07 18:21:30 +02:00
d0e2d900f7
chore(tests): Rename "collaboration" tests to "optimistic merge"
...
As "collaboration" can be mistaken between "websocket" and
"server-merge". This naming makes it explicit.
2024-06-07 18:21:30 +02:00
92676e03ae
chore(sync): Add message-dispatcher unit tests
2024-06-07 18:21:30 +02:00
74a1670c9d
feat(sync): Add JS unittests for updateObjectValue
, and refactor.
...
The new implementation uses `reduce`, in the hopes of producing a more
readable version than old-style loops and reassignment of object values.
2024-06-07 18:21:30 +02:00
9be613e3ce
feat(sync): add tests for the websocket token view
2024-06-07 18:21:30 +02:00
80eaa151de
refactor(sync): Remove unnecessary complexity
...
Because we're relying on the `geoJSONToFeatures` method, we don't need
anymore updaters, the default ones (map, datalayer, feature) are enough.
It also makes the codebase compatible with our eslint configuration.
2024-06-07 18:21:30 +02:00
9e36476abe
chore(sync) make the test pass
2024-06-07 18:21:30 +02:00
d5bff22081
fix(sync) only send datalayer options
2024-06-07 18:21:30 +02:00
898a3e93b2
fix(sync): do not call getSyncMetadata
if it doesn't exist
...
This can arise when the form isn't bound to a "syncable" object. We
might want to provide an utility to check an object is *syncable*, or a
specific form to not attempt to sync objects which don't need it.
2024-06-07 18:21:30 +02:00
8e5c434988
feat(sync): Allow the sync of datalayer creation
2024-06-07 18:21:30 +02:00
458d68a4bb
fix(sync): allow features geometries to be synced
...
By defining the `geometry` property in the schema.
2024-06-07 18:21:30 +02:00
1d9b086115
chore(sync): remove useless dependencies from ws.py
2024-06-07 18:21:30 +02:00
def915c561
feat(settings): allow reading socket-related settings from ENV variables
2024-06-07 18:21:30 +02:00
01408254c9
fix(sync): intialize the sync engine before entering edit mode.
...
Otherwise `this.sync` is not defined.
2024-06-07 18:21:30 +02:00
46207741ff
feat(sync): handle syncing of map limitbounds.
2024-06-07 18:21:30 +02:00
9cb87392c0
feat(sync): Avoid syncing remote datalayers' features
...
They will be synced on their own, and we dont want them to be present
twice on the map.
2024-06-07 18:21:30 +02:00
b99c242648
fix(sync): Initialize tilelayer
and remoteData
earlier.
...
It makes it possible to set these values on a remote peer.
2024-06-07 18:21:30 +02:00
059103b66c
fix(sync): Allow overlays to sync
...
`this.options.overlay` is now set during `map.initialize()`, which makes
it possible to be set by incoming websocket operations.
2024-06-07 18:21:30 +02:00
2fafad714e
chore(sync): Ensure properties can be updated before doing it.
...
When receiving a message, this checks the given properties belong to
the "subject" before applying the message.
2024-06-07 18:21:30 +02:00
25ccdde0b0
chore(schema): Add a belongsTo
field in the schema.
...
The goal is to use this as a security measure, to check that the
updated properties belong the the "subject" when receiving sync
operations.
2024-06-07 18:21:30 +02:00
28a359e03f
fix(sync): Allow cloning of features
...
Removing the `id` from the feature when cloning makes it generate a new
one. Without this change, the cloned feature keep the already existing
`id`, and during sync, the original object is lost (replaced by the
clone).
Nobody wants to be replaced by a clone.
2024-06-07 18:21:30 +02:00
e4bcb53c6f
feat(sync): Sync only when the edition of a feature is over.
...
It's less spectacular than sending the position as it changes, but takes
less bandwidth and seems good enough.
2024-06-07 18:21:30 +02:00
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
Yohan Boniface
e688ce8f57
chore: try to change Playwright expect timeout
...
Some tests randomly fail in the CI because of timeout a bit short.
2024-05-02 14:30:54 +02:00
Yohan Boniface
c40b01fc48
fix: add max-width to panel in landscape mode
...
In some situation in mobile (eg. when the keyboard is used), the
screen is still considered as landscape, but it is very small, so
make sure the panel does not overflow on the right.
cf #1788
2024-05-02 12:26:36 +02:00
Yohan Boniface
51d5095d2c
fix: allow panel expanded mode in mobile
2024-05-02 12:24:36 +02:00
David Larlet
49b240a3db
2.2.2
2024-05-01 14:08:56 -04:00
David Larlet
c05282f19c
2.2.1
2024-05-01 13:36:00 -04:00
David Larlet
2c1cd46167
fix: no .mjs extension for JS modules
...
It requires a special nginx configuration that we want to avoid for all instances deployments:
```
include mime.types;
types {
application/javascript mjs;
}
```
2024-05-01 13:27:45 -04:00
Yohan Boniface
dc69ec55c8
2.2.0
2024-05-01 18:05:44 +02:00
Yohan Boniface
55dc083866
i18n
2024-05-01 18:04:01 +02:00
Yohan Boniface
0f798d4cc6
Merge pull request #1774 from umap-project/browser-tabs
...
feat: add browser tabs submenu
2024-05-01 17:54:22 +02:00
Yohan Boniface
85e2a8ef5b
Merge pull request #1785 from umap-project/fix-modifier-macos
...
fix: deal with the modifier key under macOS
2024-05-01 17:51:58 +02:00
Yohan Boniface
5bfc65167a
wip: refactor credits css in caption
2024-05-01 17:48:35 +02:00
Yohan Boniface
6cc34d1f97
wip: change flat tags colors (in browser/caption/iconUrl field)
2024-05-01 17:43:20 +02:00
Yohan Boniface
4e7f1e43c0
wip: make owner closer to title in caption box
2024-05-01 17:43:20 +02:00
Yohan Boniface
00a3c2fe34
wip: change tabs rendering in browser and iconUrl form field
2024-05-01 17:43:20 +02:00
Yohan Boniface
b550c93b87
wip: move owner link above tabs in caption
2024-05-01 17:43:20 +02:00
Yohan Boniface
d013d6b0e3
wip: add browser tabs submenu
2024-05-01 17:43:20 +02:00
David Larlet
d00c394a99
fix: deal with the modifier key under macOS
2024-05-01 11:40:37 -04:00
Yohan Boniface
cd10a6259f
Merge pull request #1784 from umap-project/fix-alert-anonymous
...
fix: make sure to display anonymous edit link even if email is not configured
2024-05-01 17:07:57 +02:00
Yohan Boniface
713214e258
Merge pull request #1782 from umap-project/fix-caption
...
fix: ensure tilelayer attribution with smart text is displayed as HMTL
2024-05-01 17:05:24 +02:00
Yohan Boniface
0002b22f5c
chore: skip failing test for now
...
This test was relying on changing DEFAULT_FROM_EMAIL in the test,
but given this setting is used at load from urls.py, it has no
effect.
2024-05-01 16:57:46 +02:00
Yohan Boniface
596004c8c0
Merge pull request #1783 from umap-project/fix-name-click
...
fix: open caption form when clicking on map name, not advanced props
2024-05-01 16:28:40 +02:00
Yohan Boniface
fedb083612
chore: be more explicit on what HTML we allow when escaping
2024-05-01 16:26:38 +02:00
Yohan Boniface
200ee6ea10
chore: fix formatting
2024-05-01 16:26:38 +02:00
Yohan Boniface
c3516516cd
chore: change DomUtil.element signature
2024-05-01 16:26:37 +02:00
Yohan Boniface
8c20397209
fix: make sure to display anonymous edit link even if email is not configured
2024-05-01 15:43:10 +02:00
Yohan Boniface
757cc1ee6c
fix: open caption form when clicking on map name, not advanced props
2024-05-01 15:31:32 +02:00
Yohan Boniface
dccb93c8a8
fix: make sure we escape all innerHTML calls
2024-04-30 23:19:19 +02:00
Yohan Boniface
cdb46752a9
fix: ensure tilelayer attribution with smart text is displayed as HMTL
2024-04-30 20:02:13 +02:00
Yohan Boniface
acb5a68755
fix: fix back button in the layer edit form
2024-04-25 10:56:51 +02:00
Yohan Boniface
6a48d641c9
2.2.0b0
2024-04-24 21:29:21 +02:00
Yohan Boniface
453056cb15
feat: remove Map.description
...
The field was not populated since years, and we already have the
info inside the JSONB `settings`.
2024-04-24 16:39:59 +02:00
Yohan Boniface
52ab531362
Merge pull request #1751 from umap-project/browse-data-expanded
...
make that "browse data" opens the browser in expanded mode
2024-04-19 17:39:26 +02:00
David Larlet
dc40addef4
Merge pull request #1766 from umap-project/redraw-popup-on-marker-change
...
fix: redraw popup on marker’s modifications
2024-04-19 11:34:04 -04:00
David Larlet
dd69efb45b
chore: set default navigation timeout for CI
2024-04-19 11:33:38 -04:00
David Larlet
788c638f3d
fix: redraw popup on marker’s modifications
2024-04-19 11:24:06 -04:00
David Larlet
d8c2e14b42
Merge pull request #1763 from umap-project/flammermann-facet-date
...
Date and number support for facets
2024-04-19 10:58:02 -04:00
David Larlet
c5507fbafe
fix: tests with iso dates and explicit days
2024-04-19 10:27:32 -04:00
Yohan Boniface
65e226ff1c
Merge pull request #1753 from umap-project/msg-no-csv-header
...
feat: display a message when importer cannot find lat/lng columns
2024-04-19 16:05:04 +02:00
David Larlet
5232d77382
Merge pull request #1765 from umap-project/ci-mock-osm-tiles
...
Mock OSM tiles requests in Playwright for speed
2024-04-19 09:54:39 -04:00
Yohan Boniface
a1d78437d5
chore: use translate instead of L._ in facets module
2024-04-19 13:19:20 +02:00
Yohan Boniface
37e0582b30
chore: try to parse naive dates as UTC
2024-04-19 13:15:53 +02:00
Yohan Boniface
eb0d17154c
chore: add facets.getParser method
2024-04-19 13:15:53 +02:00
Yohan Boniface
b0c6b42c17
chore: fix typo in css
2024-04-19 13:15:53 +02:00
Yohan Boniface
ab85e945be
chore: remove unwanted span in translated string
2024-04-19 13:15:53 +02:00
Yohan Boniface
68a22a9177
chore: redraw facets panel if open when changing facetKey
2024-04-19 13:15:53 +02:00
Yohan Boniface
0b1693a1a2
chore: add some tests for facet search
2024-04-19 13:15:53 +02:00
Yohan Boniface
91f0f29d5e
chore: refactor FeatureMixin.matchFacets
2024-04-19 13:15:53 +02:00
Yohan Boniface
9c326d09e1
chore: remove the need for makeDirty in U.FormBuilder
2024-04-19 13:15:53 +02:00
Yohan Boniface
53f93ee97e
chore: move facets to a dedicated module
2024-04-19 13:15:52 +02:00
Yohan Boniface
47c6473285
chore: refactor facet date and number HTML widgets
2024-04-19 13:11:45 +02:00
flammermann
39857decda
resolve merge conflict
2024-04-19 13:11:45 +02:00
flammermann
f4413a8a74
translation capability and small cleanups
2024-04-19 13:11:44 +02:00
flammermann
10b1bc6265
Support date and number properties in facet search - mini fix in placeholder
2024-04-19 13:10:27 +02:00
flammermann
b0c9edba7f
Support date and number properties in facet search - refactoring
2024-04-19 13:10:27 +02:00
flammermann
839bb4c5d8
Support date properties in facet search - split type into dataType and inputType
2024-04-19 13:10:27 +02:00
flammermann
2c48b97b4b
Support date properties in facet search - enhance UI
2024-04-19 13:10:27 +02:00
flammermann
4042b86746
Support date properties in facet search - state allowed data types
2024-04-19 13:10:27 +02:00
flammermann
ce485f88f9
Support date properties in facet search - remove comments parseDateField
2024-04-19 13:10:27 +02:00
flammermann
763341eacf
Support date properties in facet search - move parseDateField
2024-04-19 13:10:27 +02:00
flammermann
ba88dfafcd
Support date properties in facet search - change default type
2024-04-19 13:10:27 +02:00
flammermann
4de6bc6c91
Support date properties in facet search - fix indents
2024-04-19 13:10:27 +02:00
flammermann
a2e3d6f327
Support date properties in facet search
2024-04-19 13:10:27 +02:00
David Larlet
836c3361d7
ci: mock OSM tiles requests in Playwright for speed
...
Also, cast the PLAYWRIGHT_TIMEOUT parameter.
2024-04-18 14:08:57 -04:00
Yohan Boniface
4ded52e3fc
chore: change Panel.open signature
2024-04-18 17:46:56 +02:00
Yohan Boniface
9a46901795
Merge pull request #1750 from umap-project/latest-open-popup
...
feat: open popup when default view is set to latest
2024-04-17 19:30:10 +02:00
Yohan Boniface
62e7e3c01a
Merge pull request #1755 from umap-project/browser-no-control
...
fix: make sure we do not render browser in map fragment
2024-04-17 18:33:54 +02:00
Yohan Boniface
1bd1511d6d
Merge pull request #1757 from umap-project/fix-browser-on-save
...
fix: prevent rebuilding the browser at each save
2024-04-17 18:33:19 +02:00
Yohan Boniface
ba72f59624
Merge pull request #1760 from umap-project/fix-esc-fragment
...
fix: do not try to close editPanel if not set
2024-04-17 15:10:12 +02:00
Yohan Boniface
67bc181098
Merge pull request #1756 from umap-project/edit-in-osm-in-contextmenu
...
feat: add link in contextmenu to edit map in OSM
2024-04-17 15:04:09 +02:00
Yohan Boniface
1bf2642090
Merge pull request #1762 from umap-project/pw-timeout
...
chore: allow to set playwright timeout from env var
2024-04-17 15:03:46 +02:00
Yohan Boniface
0c1c5f117d
fix: do not try to close editPanel if not set
...
When in the user dashboard and opening a map preview, when we
press escape it will try to close non existing panels (they are
not instantiated given there is not edit mode there)
2024-04-17 15:03:25 +02:00
Yohan Boniface
d985a6585e
chore: formatting
2024-04-17 14:58:04 +02:00
Yohan Boniface
89c92471bd
Merge pull request #1761 from umap-project/increase-url-template
...
fix: increase TileLayer.url_template size
2024-04-17 14:57:30 +02:00
Yohan Boniface
c79660c354
chore: allow to set playwright timeout from env var
...
so we can increase it in the CI
2024-04-17 14:57:02 +02:00
Yohan Boniface
0acf5f2f2f
chore: change zoomTo signature to make it more explicit
2024-04-17 14:55:20 +02:00
Yohan Boniface
d743ffeea0
fix: increase TileLayer.url_template size
...
fix #255
2024-04-17 11:19:31 +02:00
Yohan Boniface
17e96e6c63
feat: add minimal OpenGraph links
...
cf #1591
2024-04-17 10:55:07 +02:00
Yohan Boniface
c4b8e24dab
fix: prevent rebuilding the browser at each save
...
Otherwise we lose the browser current context (some layer may
be opened, or user may have scrolled down)
2024-04-17 10:03:30 +02:00
Yohan Boniface
d0cc1cdd3d
i18n
2024-04-17 09:45:13 +02:00
Yohan Boniface
87e2467a4c
feat: add link in contextmenu to edit map in OSM
...
fix #1651
2024-04-17 09:34:39 +02:00
Yohan Boniface
99d5165fcf
fix: make sure we do not render browser in map fragment
...
There was an edge case when map has "dataLayersControl=expanded":
we only overrided "onLoadPanel", so dataLayersControl was still
considerer. Let's have a more generic stop.
2024-04-17 08:27:58 +02:00
Yohan Boniface
a6ed20b120
wip: make that "browse data" opens the browser in expanded mode
...
And also add a "See layer" action in the context menu.
I'm not totally sure it's the way to go, but it's closer to the
current behaviour, and as a user a way missing a way to go straight
to the extanded browser version.
2024-04-16 18:07:21 +02:00
Yohan Boniface
8c418287e4
feat: display a message when importer cannot find lat/lng columns
...
fix #1699
2024-04-16 17:39:15 +02:00
Yohan Boniface
e2413d1b83
Merge pull request #1749 from umap-project/layers-list-import-panel
...
fix: update layers list in import panel
2024-04-16 16:36:12 +02:00
Yohan Boniface
4b05a62b8b
feat: open popup when default view is set to latest
...
fix #1726
2024-04-16 14:52:52 +02:00
Yohan Boniface
4f58b64ce5
fix: update layers list in import panel
...
fix #1729
2024-04-16 13:49:03 +02:00
Yohan Boniface
d3bf9fcdf0
fix: hide delete button for editors in dashboard
...
fix #1739
2024-04-16 11:32:00 +02:00
Yohan Boniface
2602b27f34
chore: fix tests after rebase
2024-04-16 10:30:05 +02:00
Yohan Boniface
65bad68efe
wip: change icon for panel expanded/condensed
2024-04-16 09:09:59 +02:00
Yohan Boniface
9ee672f1e7
wip: fix border for dark panel
2024-04-16 09:09:59 +02:00
Yohan Boniface
4cfe319a91
fix: remove white border from black edit buttons
2024-04-16 09:09:59 +02:00
Yohan Boniface
b933c4badd
wip: align panel bottom above scale control
2024-04-16 09:09:59 +02:00
Yohan Boniface
e615e0926a
chore: fix tests
2024-04-16 09:09:59 +02:00
Yohan Boniface
573a33df5a
chore: use CSS vars for panel
2024-04-16 09:09:59 +02:00
Yohan Boniface
211a86f27c
chore: lint
2024-04-16 09:09:59 +02:00
Yohan Boniface
2f1a85144e
chore: make panel toolbox sticky instead of fixed
...
No need to deal with width, that way.
2024-04-16 09:09:59 +02:00
Yohan Boniface
cd01e4085f
chore: better align icon and title in panels
2024-04-16 09:09:59 +02:00
Yohan Boniface
8279ae8a62
chore: put back order of edit buttons
...
We'll certainly change them later, but for now let's create
useless noise for users
2024-04-16 09:09:59 +02:00
Yohan Boniface
2f3d579079
chore: make captionControl nullable in schema.js
...
So it can be configured to appears in the "More" button
2024-04-16 09:09:59 +02:00
Yohan Boniface
c9acb22d64
chore: remove calls to L. from browser.js
2024-04-16 09:09:59 +02:00
Yohan Boniface
2c248ea124
chore: panel.MODE has been renamed to panel.mode
2024-04-16 09:09:59 +02:00
Yohan Boniface
70cca268e8
chore: fix icons in the dashboard
2024-04-16 09:09:59 +02:00
Yohan Boniface
fa69192804
chore: add min-height for textarea
2024-04-16 09:09:59 +02:00
Yohan Boniface
737292ca76
chore: remove unused CSS
2024-04-16 09:09:59 +02:00
Yohan Boniface
11cd61ff84
chore: remove useless back button from table editor
2024-04-16 09:09:59 +02:00
Yohan Boniface
c5e3dfb95c
chore: fix JS syntax to be compatible with browser >= 2020
...
Safari only supports public field since 2021…
2024-04-16 09:09:59 +02:00
Yohan Boniface
46016cb10b
chore: replace panel:xxx events
2024-04-16 09:09:59 +02:00
Yohan Boniface
581f7134fd
chore: fix integration tests
2024-04-16 09:09:59 +02:00
Yohan Boniface
7fd2f0ded9
chore: fix drag class
2024-04-16 09:09:59 +02:00
Yohan Boniface
44bae50c85
chore: remove remaining openPanel/closePanel calls
2024-04-16 09:09:59 +02:00
Yohan Boniface
e3ff769ab9
chore: import modules in panel.js
2024-04-16 09:09:59 +02:00
Yohan Boniface
849b194d4f
chore: use a specific panel class for table view
2024-04-16 09:09:59 +02:00
Yohan Boniface
0b175d1a56
chore: use icon buttons where possible
2024-04-16 09:09:59 +02:00
Yohan Boniface
3bc57a8512
chore: refactor simple button controls
2024-04-16 09:09:59 +02:00
Yohan Boniface
c4e86c4ab9
wip: move panel to a dedicated module
2024-04-16 09:09:58 +02:00
Yohan Boniface
1e2d990a3a
chore: start moving icon related CSS rules to a dedicated file
2024-04-16 09:08:15 +02:00
Yohan Boniface
a516cbd2a3
chore: panel in condensed mode by default
2024-04-16 09:08:15 +02:00
Yohan Boniface
2a2f38e3cd
chore: change edit button order
2024-04-16 09:08:15 +02:00
Yohan Boniface
e4ecb1a847
chore: fix test
...
This action is managed in the header panel, thus it's not a button.
We may make all header actions proper buttons, but maybe in another
PR ?
2024-04-16 09:08:15 +02:00
Yohan Boniface
a360ca0e13
chore: make browser expanded/condensed mode persistent
2024-04-16 09:08:15 +02:00
Yohan Boniface
2147e5a612
chore: add missing umap-icon-16 class in browser toggle button
2024-04-16 09:08:15 +02:00
Yohan Boniface
a018b8863f
chore: refactor browser back button
2024-04-16 09:08:15 +02:00
Yohan Boniface
86956c4563
chore: use umap-icon-16 CSS class in panel toolbox
2024-04-16 09:08:15 +02:00
Yohan Boniface
87f611d0b5
chore: refactore panel header/toolbox
2024-04-16 09:08:15 +02:00
Yohan Boniface
8524cc785f
chore: fix tests
2024-04-16 09:08:15 +02:00
Yohan Boniface
56e6b20087
wip: add resize button in panel
2024-04-16 09:08:15 +02:00
Yohan Boniface
af203d7b90
wip: remove extra actions from browser/facets
2024-04-16 09:08:15 +02:00
Yohan Boniface
9e3984fdcb
wip: do not change panel color if it's not browser
...
Ugly way to do, but for now I haven't found a better option
2024-04-16 09:08:15 +02:00
Yohan Boniface
41e7b34813
wip: allow to open browser in condensed mode
2024-04-16 09:08:14 +02:00
Yohan Boniface
5b78d6f0ff
wip: refactor browser related CSS
2024-04-16 09:04:10 +02:00
Yohan Boniface
b92695dd7f
wip: first shot on merging data browser and features browser
2024-04-16 09:04:07 +02:00
517d3a1a81
tests: move functional tests in test_edit_map.py
.
2024-04-15 23:46:43 +02:00
6e71009467
chore: Schema: deduplicate impacts
keys.
...
Also:
- move the `type` key before the `impacts` one.
- avoid one-line objects
2024-04-15 23:46:43 +02:00
6841b5fc0f
tests: Fix the test with the proper data.
2024-04-15 23:46:43 +02:00
5526a3f4d2
fix: Fix module location for some utils.
2024-04-15 23:46:43 +02:00
5aedf51d0c
fix: Use formatNum
from Leaflet.Util
...
It was currently looked for in the uMap utils, where it wasn't present.
2024-04-15 23:46:43 +02:00
3764bcfe3e
tests: Use the first visible name when testing.
...
There are now multiple elements accessed with the same CSS selector.
2024-04-15 23:46:43 +02:00
d52a0c63f0
chore: Always put type
before impacts
in the schema definition.
2024-04-15 23:46:43 +02:00
0e12e0e5c3
chore: Add schema entries for layers.
2024-04-15 23:46:43 +02:00
ac866e3943
chore: Reorganize tests, remove duplicated ones.
2024-04-15 23:46:43 +02:00
2bcb862319
tests: Add on_edit integration tests
2024-04-15 23:46:43 +02:00