Commit graph

1703 commits

Author SHA1 Message Date
Yohan Boniface
bb002dffba
Merge pull request #1668 from umap-project/fix-osmid-popup
fix: read id and @id as osm id in osm template
2024-03-01 17:02:20 +01:00
Yohan Boniface
42129a3a45
Merge pull request #1667 from umap-project/fix-querystring-feature
fix: make sure to reset feature query string parameter
2024-03-01 17:02:03 +01:00
Yohan Boniface
103893def2 fix: read id and @id as osm id in osm template
cf #1663
2024-03-01 16:05:41 +01:00
Yohan Boniface
dee6073428 chore: add test to cover opening feature on load 2024-03-01 15:49:27 +01:00
Yohan Boniface
2a084466df fix: make sure to reset feature query string parameter
fix #1662
2024-03-01 15:45:07 +01:00
Alexis Métaireau
d0738e93e7 fix: allow empty datalayers reference on merges.
Previously, an error was thrown when the reference datalayer
had no `features`defined.

When looking for features, it now defaults to an empty list if the key
doesn't exist.
2024-02-29 22:41:20 +01:00
Alexis Métaireau
b0334a027d feat: Ensure features ids match the requested format 2024-02-29 11:38:18 +01:00
Yohan Boniface
24acd5c42d i18n 2024-02-27 23:08:31 +01:00
David Larlet
337c75151c
Merge pull request #1589 from umap-project/css-vars
chore: Use CSS variables
2024-02-27 08:57:04 -05:00
Yohan Boniface
ef7a6b9f8f
Merge pull request #1645 from umap-project/fix-zoomcontrol-duplicated
fix: zoomControl rendered twice
2024-02-27 14:54:48 +01:00
Yohan Boniface
d48aeae6bd
Merge pull request #1653 from datendelphin/patch-1
path was doubled
2024-02-27 11:03:19 +01:00
Alexis Métaireau
f82897f202 chore: make the datalayer uuid migration reversible 2024-02-26 23:33:33 +01:00
Alexis Métaireau
9648c8ba42 chore: migrate existing local remoteURL datalayers 2024-02-26 21:00:51 +01:00
Yohan Boniface
9cad054746 fix: catch SMTPException when sending secret edit link 2024-02-26 19:41:07 +01:00
Alexis Métaireau
ffe7f18af1 chore: enhance naming in tests 2024-02-26 15:03:37 +01:00
Alexis Métaireau
51889f3238 chore: fetch datalayer index name before dropping it.
This can be helpful in situations where the name of the index is not known, as it can be with pre 1.0 deployed instance.

This commit also generates the UUIDs directly using an SQL statement.
2024-02-26 15:01:19 +01:00
Alexis Métaireau
ff4870730a chore: ensure old-format layers' versions are returned 2024-02-26 15:01:19 +01:00
Alexis Métaireau
99d7b8a6e1 chore: ruff format 2024-02-26 15:01:19 +01:00
Alexis Métaireau
f869d77f2c chore: update migrations 2024-02-26 15:01:19 +01:00
Alexis Métaireau
d18a32b5d3 chore: use path rather than re_path in urls.py 2024-02-26 15:01:19 +01:00
Alexis Métaireau
1415f96c6f chore: fix tests 2024-02-26 15:01:19 +01:00
Alexis Métaireau
c5fd72fe2b chore: use Django JSON serializer when calling json.dumps 2024-02-26 15:01:19 +01:00
Alexis Métaireau
c46f59e3dd chore: Use datalayers' UUIDs in the views 2024-02-26 15:01:19 +01:00
Alexis Métaireau
6b7efda37a chore: replace datalayer ids with uuids 2024-02-26 15:01:19 +01:00
Alexis Métaireau
d5b1821117 chore: format templates 2024-02-26 09:11:57 +01:00
datendelphin
6c07aefa70
path was doubled
If I wanted to import path "maki", that tried to open "maki/maki/pictogram.svg"
2024-02-25 10:50:13 +01:00
David Larlet
3fee658938
chore: Use CSS variables 2024-02-23 14:49:28 -05:00
David Larlet
6300696a22
Merge branch 'master' into css-vars 2024-02-23 14:37:09 -05:00
Alexis Métaireau
702713e768 chore: add missing string parameter 2024-02-22 17:10:52 +01:00
Alexis Métaireau
f9175e98b9 chore: change generateID() implementation 2024-02-22 16:45:21 +01:00
Alexis Métaireau
bcd650e844 chore: add ids on features 2024-02-22 16:32:18 +01:00
Yohan Boniface
371af7827f fix: zoomControl rendered twice
fix #1644
2024-02-21 23:24:37 +01:00
Yohan Boniface
76ed2200cf
Merge pull request #1637 from umap-project/fix-iconurl-order
fix: picto category title was added after the related pictograms
2024-02-20 14:39:37 +01:00
Yohan Boniface
7d7eb37772
Merge pull request #1639 from umap-project/fix-statics-test
chore: attempt to fix randomly failing test
2024-02-20 14:23:46 +01:00
David Larlet
5e3058e54b
Merge pull request #1631 from umap-project/no-global-map-namespace
chore: generate messages following map creation
2024-02-20 08:23:38 -05:00
Yohan Boniface
eb755c02c6 chore: attempt to fix randomly failing test 2024-02-20 13:59:59 +01:00
Yohan Boniface
2fa1d42ee7 i18n 2024-02-20 12:27:36 +01:00
Yohan Boniface
ab8c69e990 fix: picto category title was added after the related pictograms 2024-02-20 12:25:00 +01:00
David Larlet
5c0ca55f8c
chore: generate messages following map creation
Also, reuse the `U` global namespace for `MAP`.
2024-02-19 17:08:48 -05:00
Yohan Boniface
8ca3a2248d chore: raise error if any in storage post_process
I'm not totally sure it's the way to go (maybe ignoring here is
fine ?), but it seems still more usefull to have a proper error
instead of a python error a few lines forward.
2024-02-19 13:47:57 +01:00
Yohan Boniface
8cbed32f3d 2.0.2 2024-02-19 10:05:30 +01:00
David Larlet
875c7c4c69
fix: Do not use compress anymore for Docker image
Fixes #1619
2024-02-18 10:22:24 -05:00
Yohan Boniface
e72bc3fb8e i18n 2024-02-17 22:27:15 +01:00
David Larlet
71febbaf3f
Getting ready for 2.0.0 2024-02-16 11:27:14 -05:00
Yohan Boniface
2b196ab614
Merge pull request #1614 from umap-project/fix-send-edit-link
fix: send edit link was using old post method
2024-02-16 16:55:36 +01:00
Yohan Boniface
217aec5556
Merge pull request #1615 from umap-project/default-from-email
chore: replace settings.FROM_EMAIL by settings.DEFAULT_FROM_EMAIL
2024-02-16 16:40:16 +01:00
Yohan Boniface
8eb2a518f1
Merge pull request #1613 from umap-project/fix-star-control
fix: star control was using old post method
2024-02-16 14:46:33 +01:00
Yohan Boniface
49718c8aff
Merge pull request #1617 from umap-project/fix-dashboard-preview
fix: dashboard preview was still calling L.U.
2024-02-16 14:46:12 +01:00
Yohan Boniface
1a67d01c61 chore: replace deprecated FORM_RENDERER setting 2024-02-16 12:40:37 +01:00
Yohan Boniface
434a292878 fix: dashboard preview was still calling L.U. 2024-02-16 12:36:05 +01:00
Yohan Boniface
1db2455d51 chore: replace settings.FROM_EMAIL by settings.DEFAULT_FROM_EMAIL
DEFAULT_FROM_EMAIL is a Django standard setting
2024-02-16 11:49:38 +01:00
Yohan Boniface
4c224fccbc fix: send edit link was using old post method 2024-02-16 11:43:29 +01:00
Yohan Boniface
b3ce523ba2 fix: star control was using old post method
Also, only display it if the user is already logged in, given
we do not deal anymore with login during ajax calls.
2024-02-16 10:59:25 +01:00
Yohan Boniface
3f3392952c 2.0.0a3 2024-02-15 15:10:27 +01:00
Yohan Boniface
c2853e289f i18n 2024-02-15 14:56:39 +01:00
Yohan Boniface
a8e37500dd fix: reset table editor properties after creating a new one 2024-02-15 11:50:44 +01:00
Yohan Boniface
2dd7266d21 feat: show recent picto in a separate tab 2024-02-15 10:56:07 +01:00
Yohan Boniface
126e47eef9 feat: show last used pictograms in list
This feature was planned in the initial rework of the pictogram
form UI, but not yet done. Some recent discussion in the OSM French
forum reactivated the need for it.

cf https://forum.openstreetmap.fr/t/marker-and-marker-colors/21051
2024-02-15 10:54:59 +01:00
Yohan Boniface
9e805ea8da fix: make default picto always white for now
fix #1594
2024-02-14 18:41:07 +01:00
Yohan Boniface
34608f55c1
Merge pull request #1592 from umap-project/zoomto-from-qs
feat: allow to set zoomTo from query string
2024-02-14 18:34:04 +01:00
Yohan Boniface
709674b7d9
Merge pull request #1607 from umap-project/osm-oauth2
chore: migrate to OAuth 2 for OpenStreetMap backend
2024-02-14 18:31:57 +01:00
Yohan Boniface
0dc49d2de3 fix: do not try to animate the panel
The panel inherits from the classic Popup, but given it's fixed on
the UI, it does not make sense to try to move it, and it some
situation there is a race condition that make Leaflet try to animate
but this fails
2024-02-14 17:54:48 +01:00
Yohan Boniface
a99ee90e15 chore: migrate to OAuth 2 for OpenStreetMap backend
fix #1279
2024-02-14 11:30:16 +01:00
Yohan Boniface
c378d5dc60 feat: allow to set zoomTo from query string
When using data/dataUrl querystring, uMap will import data at load,
and will set view using this data bounds. In some situation (Deveco),
the user wants to control the max zoom of the final view.

Also add labelKey and showLabel to be parsed from query string, still
for Deveco needs.
2024-02-13 18:00:23 +01:00
David Larlet
c86e01ffd0
Merge pull request #1601 from umap-project/oembed-quote
fix: encode the whole url parameter for OEmbed
2024-02-13 08:29:19 -05:00
Yohan Boniface
d02360ed60
Merge pull request #1606 from umap-project/remove-duplicate-saved-msg
chore: remove duplicate "map updated" message
2024-02-13 14:27:31 +01:00
Yohan Boniface
e1e255f709
Merge pull request #1593 from umap-project/icon-img-breakpoint
feat: change breakpoint to switch black SVG img to white
2024-02-13 14:16:25 +01:00
David Larlet
44a254725f
Merge pull request #1604 from umap-project/fix-dashboard-style
fix: improve dashboard styles
2024-02-13 07:52:10 -05:00
Yohan Boniface
e1ae60a4ff chore: remove duplicate "map updated" message
It is already handled by the front-end, and as it also handle the
"map created" message (including anonymous link form), I arbitrated
to keep all front-end side
2024-02-13 12:15:35 +01:00
Yohan Boniface
59cb10342b chore: prettier 2024-02-13 12:10:47 +01:00
Yohan Boniface
6c38a063fd i18n 2024-02-13 11:57:09 +01:00
Yohan Boniface
9ba8adbd85 feat: use a WCAG algo to define contrast colour
I've decided for a basic home made util, because:
- I'm not sure color is still maintained
- colorjs.io sounds very cool and maintained, but is 105k
- there is no custom bundle yet
- it uses proper modules, but for just the contrast util we need
  to pull all the class logic, and it's a lot
2024-02-13 11:29:56 +01:00
David Larlet
cf319ca53e
fix: only query OEmbed map on id and fallback to 404 2024-02-12 21:14:21 -05:00
David Larlet
4f469ced47
fix: improve dashboard styles 2024-02-12 20:59:35 -05:00
David Larlet
9426570b6e
fix: encode the whole url parameter for OEmbed
See https://github.com/umap-project/umap/pull/1526#issuecomment-1937040472
2024-02-12 15:58:16 -05:00
Yohan Boniface
a239633fae feat: change threshold to switch black SVG img to white 2024-02-12 17:54:53 +01:00
David Larlet
22412ffe13
chore: Use CSS variables 2024-02-09 22:22:21 -05:00
Yohan Boniface
148c119c05 2.0.0a2 2024-02-09 19:09:21 +01:00
Yohan Boniface
f3d1a3995c fix: add pointer cursor to buttons in dashboard 2024-02-09 19:08:43 +01:00
Yohan Boniface
92cc014c2e fix: delete map from dashboard confirm was not active 2024-02-09 18:58:58 +01:00
Yohan Boniface
ef06ca46b3 2.0.0a1 2024-02-09 18:45:05 +01:00
Yohan Boniface
f460b39dae chore: log in collectstatic when a file is None after process
This should not happen, but given we are not totally sure, let's
keep a log in case in happen during the deployement on a remote
server.
2024-02-09 18:42:52 +01:00
Yohan Boniface
d6c4dfa332 fix: remove umap.browser.js from <head> as it does not exist anymore 2024-02-09 18:42:18 +01:00
Yohan Boniface
5da032973a 2.0.0a0 2024-02-09 18:23:59 +01:00
Yohan Boniface
06d5af2a84 i18n 2024-02-09 18:19:20 +01:00
Yohan Boniface
a0634e5f55
Merge pull request #1587 from umap-project/use-global-l
chore: do not introduce a new global, use L and L.U already there
2024-02-09 18:04:48 +01:00
David Larlet
4ac5d4c056
fix: lint template 2024-02-09 12:01:13 -05:00
Yohan Boniface
074bf675c4 chore: replace window.L.U by window.U 2024-02-09 18:01:05 +01:00
David Larlet
285b9337ad
fix: consistency in logos colors and links 2024-02-09 11:54:37 -05:00
Yohan Boniface
68f2de7f44 chore: do not introduce a new global, use L and L.U already there 2024-02-09 17:10:19 +01:00
Yohan Boniface
1f5bfcb567
Merge pull request #1586 from umap-project/fix-browser-inbbox
fix: browser inBbox setting not persistent and features click not opening popup
2024-02-09 17:09:11 +01:00
David Larlet
81a1367696
fix: color consistency between buttons and icons 2024-02-09 10:47:04 -05:00
Yohan Boniface
e8a9c68dde fix: fix dashboard buttons height and alignment in Firefox Linux 2024-02-09 16:35:20 +01:00
David Larlet
96acd710dc
fix: improve responsiveness of dashboard header 2024-02-09 10:30:48 -05:00
Yohan Boniface
5a275ee883 i18n 2024-02-09 16:29:42 +01:00
David Larlet
8eec5e7d12
fix: trim translate blocks contents to ease translations 2024-02-09 10:18:57 -05:00
David Larlet
63a213a95f
fix: dashboard title alignments and links 2024-02-09 10:15:14 -05:00
David Larlet
5827a4cab0
fix: make dashboard table scrollable 2024-02-09 10:14:44 -05:00
Yohan Boniface
275c012e4e i18n 2024-02-09 11:58:44 +01:00
David Larlet
afdc732204
Merge pull request #1430 from umap-project/download-all-from-dashboard
Ability to clone, delete and download all maps from user’s dashboard
2024-02-08 09:51:01 -05:00
Yohan Boniface
a7425aa121 fix: messages coming from Django where never displayed in map view 2024-02-08 14:45:47 +01:00
Yohan Boniface
4cec24797e chore: move Browser to a module 2024-02-08 13:09:18 +01:00
Yohan Boniface
355cdd9f07 fix: browser inBbox setting not persistent and features click not opening popup
Refactor the way it updates itself in the process.
2024-02-08 12:57:08 +01:00
David Larlet
1acadc746a
fix: use the regular delete view instead of ajax 2024-02-07 17:38:39 -05:00
Yohan Boniface
009f2c916f fix: use variable for color in browser if any 2024-02-07 19:38:46 +01:00
Yohan Boniface
10efc5d103
Merge pull request #1573 from umap-project/map-preview
feat: add experimental "map preview" in /map/ endpoint
2024-02-07 19:14:37 +01:00
Yohan Boniface
7943c61b3e chore: do not consume style query string now that we handle keys separatly 2024-02-07 18:47:00 +01:00
David Larlet
bc8679a597
chore: put login fixture in a dedicated conftest 2024-02-07 12:42:37 -05:00
David Larlet
2af7705d4c
Use the request module for dashboard deletions 2024-02-07 12:32:01 -05:00
David Larlet
d4b380aa5f
feat: add icons to the dashboard actions 2024-02-07 12:32:00 -05:00
David Larlet
8a6e992b9c
Ability to clone a map and overall UI improvements 2024-02-07 12:32:00 -05:00
David Larlet
5d69d3c22f
Provide a link to delete maps from user’s dashboard 2024-02-07 12:32:00 -05:00
David Larlet
46cf432eb4
Paginate user’s maps combined downloads 2024-02-07 12:32:00 -05:00
David Larlet
5476cbee0f
Ability to download all maps from user’s dashboard 2024-02-07 12:32:00 -05:00
Yohan Boniface
f09e399b3c chore: refactor setting Map options from querystring 2024-02-07 17:53:45 +01:00
Yohan Boniface
77b35d079a
Merge pull request #1581 from umap-project/fix-legend-onload
fix: non loaded layers should still be visible in legend and data browser
2024-02-07 17:04:57 +01:00
Yohan Boniface
bd626690ef fix: non loaded layers should still be visible in legend and data browser
Also rework the browsable/browse methods to try to make them more
understandable…

fix #1554
2024-02-07 16:32:51 +01:00
David Larlet
3468a77ce7
Merge pull request #1569 from umap-project/sentry
feat: Adding Sentry errors reporter support
2024-02-07 09:35:52 -05:00
Yohan Boniface
c334f7554e feat: add experimental "map preview"
This is the same as "map new", but it is not in edit mode. This
allow to click on the elements and see the popups instead of editing
it when using a `dataUrl` query string.
This way of using uMap is not documented, but it's used by some
partners (Deveco recently, data.gouv.fr historicaly).

In the same time, this PR adds two things:
- possibility to pass data direclty in querystring (instead of an URL):
  in the case of Deveco, they have pages where only point is shown (for
  each company)
- possibility to pass style options directly from query string: may
  allow for example to control the `popupTemplate`, eg. to use a table
  one that will display all properties of the clicked feature

Note: dataUrl and such also works in normal "map new" view. There are
two use cases around those parameters, from external sites:
- see this data on uMap (should point on map preview)
- create a map with those data (should point on map new)
2024-02-07 13:57:20 +01:00
Yohan Boniface
33b4dc093d tests: remove sleep from test_owned_map
fix #1441
2024-02-07 13:48:16 +01:00
David Larlet
1ee9d7dd52
feat: allow to inject a header.html template
Useful to add scripts integration like Sentry
2024-02-06 12:45:40 -05:00
Yohan Boniface
0ebb7615aa chore: make Request and ServerRequest pure JS class
And use UI for dealing with dataloading/dataload events (used
for progress bar).
2024-02-05 07:23:16 +01:00
Yohan Boniface
4a99f357f2 chore: lint 2024-02-05 07:23:16 +01:00
Yohan Boniface
325880f86f chore: make all request errors inherit the same parent class 2024-02-05 07:23:16 +01:00
Yohan Boniface
6b5ecac9c6 chore: move Map.Init.js test to playwright suite 2024-02-05 07:23:16 +01:00
Yohan Boniface
0b65d0dd9d chore: move iframe options test to playwright 2024-02-05 07:23:16 +01:00
Yohan Boniface
2271669e80 chore: move browser tests to playwright 2024-02-05 07:23:16 +01:00
Yohan Boniface
e44e0df69a tests: fix 90% of the javascript tests 2024-02-05 07:23:15 +01:00
Yohan Boniface
d1df70b0f4 fix: proper way to deal with 412 2024-02-05 07:22:53 +01:00
Yohan Boniface
d07d9f61d2 chore: refactore datalayers loading 2024-02-05 07:22:53 +01:00
Yohan Boniface
3f1070c90d chore: rename NokError and fix init param 2024-02-05 07:22:53 +01:00
Yohan Boniface
da7d09527b chore: catch error when using Request, and make remote URL working again
I decided to remove the check `is_ajax` from `validate_url` to simplify
and edge case, and because I think it was more or less useless.
Basically, when getting remote data, we have two cases:
- direct call to the remote URL
- proxy through our `ajax_proxy` system (to work around CORS limitations)

In the first case, we cannot set the `X-Requested-With` header, otherwise
preflight step will fail, and in the second case, until now, we needed
to set this header for this `is_ajax` check to pass. So keeping this check
would mean adapting the behaviour of the Request/ServerRequest class in
a non elegant way. So let's make it simple…
2024-02-05 07:22:53 +01:00
Yohan Boniface
5926eb53ba chore: catch error in getMore 2024-02-05 07:22:53 +01:00
Yohan Boniface
16265b566e chore: remove xhr module, now replaced by request.js 2024-02-05 07:22:53 +01:00
Yohan Boniface
ab966722f9 wip: rework request error flow 2024-02-05 07:22:53 +01:00
Yohan Boniface
b947134fa2 chore: ServerRequest returns an explicit error if any 2024-02-05 07:22:53 +01:00
Yohan Boniface
c50be398ab wip: use new request for fetching remote data 2024-02-05 07:22:53 +01:00
Yohan Boniface
8b2778116d wip: make the getMore button work again with new Request 2024-02-05 07:22:53 +01:00
Yohan Boniface
49f600adfa wip: refactor login flow
Instead of dealing with in JavaScript, let's do a more classic
HTTP flow.

The main flows work, but there is still at least one to deal with:
when editing a map without being logged in, the server may ask for
login, and in this case we should login THEN reissue the request,
so we need to interrupt the first request in some way,
otherwise the server will still answer with a 403, which is what
happens after this commit.
2024-02-05 07:22:53 +01:00
Yohan Boniface
084bc3d518 wip: move xhr management to a module and refactor
It sort of work for common cases, but edge cases needs work,
specifically the login flow.
2024-02-05 07:22:53 +01:00
Yohan Boniface
1d80645eda
Merge pull request #1576 from umap-project/fix-redraw-zoomend
fix: do not try to reset tooltip of feature not on map
2024-02-05 07:13:51 +01:00
Yohan Boniface
84bff2e416 fix: do not try to reset tooltip of feature not on map
This can happen in a situation where:
- a layer as zoom limits
- we click on a feature, which opens a popup
- then zoom over the layer's limit (with
  scroll or keyboard, not keyboard, in order to not close the popup)
- then click in anywhere in the map, which will close the popup

Since the highlight of features on click (cf #1359), we redraw them
on popupclose, which explains the bug described above.

fix #1575
2024-02-04 19:33:01 +01:00
Yohan Boniface
79bac2c353
Merge pull request #1572 from umap-project/real-counters
feat: adapt browser counter to the currently displayed features
2024-02-01 08:52:54 +01:00
Yohan Boniface
60832797d0 feat: adapt browser counter to the currently displayed features 2024-01-31 08:06:21 +01:00
Yohan Boniface
1c88f7f88c
Merge pull request #1571 from umap-project/intercept-options-geojson
fix: make sure we do not add geojson in options
2024-01-31 06:57:00 +01:00
Yohan Boniface
9cb6ed6400 fix: make sure we do not add geojson in options
This change is already in production, but has not been commited yet…
2024-01-30 19:04:59 +01:00
David Larlet
65f1cdd6b4
lint: use eslint with a browserslist configuration 2024-01-29 16:44:04 -05:00
Yohan Boniface
20998f05be
Merge pull request #1565 from umap-project/playwright-wait-for-ajax
tests: fix test_collaborative_editing_draw_markers
2024-01-29 18:26:51 +01:00
Yohan Boniface
074fc1bc18
Merge pull request #1552 from umap-project/preconnect-tilelayer
feat: set preconnect link for tilelayer
2024-01-29 18:26:24 +01:00
Yohan Boniface
dd57794ca6
Merge pull request #1562 from umap-project/svg-default-icon
feat: use svg for default icon (circle)
2024-01-29 18:05:45 +01:00