Commit graph

1703 commits

Author SHA1 Message Date
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
Yohan Boniface
902240fe34 tests: fix test_collaborative_editing_draw_markers
We needed to:
- make playwright to wait for ajax requests
- add a sleep to prevent saving two datalayer's version in the same
  second
2024-01-29 17:36:43 +01:00
Yohan Boniface
caeb9d5b44
Merge pull request #1531 from umap-project/home-highlighted
Introduce UMAP_HOME_FEED to control which maps are shown on the home page
2024-01-29 12:48:24 +01:00
Yohan Boniface
ab73fde85e
Merge pull request #1542 from umap-project/unsupport-leaflet-storage-settings
chore: remove support for settings starting with LEAFLET_STORAGE_
2024-01-29 12:47:39 +01:00
Yohan Boniface
dee5af33a5
Merge pull request #1535 from umap-project/empty-fileinput
fix: empty file input when closing the importer panel
2024-01-29 12:47:15 +01:00
Yohan Boniface
c5270fb165
Merge pull request #1538 from umap-project/test-querystring
fix: honour datalayersControl=expanded in querystring
2024-01-29 12:46:55 +01:00
Yohan Boniface
1fdd5bbb78
Merge pull request #1541 from umap-project/site-link
chore: use https://umap-project.org link in map footer
2024-01-29 12:46:27 +01:00
Yohan Boniface
e69b5a7af0
Merge pull request #1547 from umap-project/1545-fix-icons
fix(1545): fix icons for mailto and tel
2024-01-29 12:46:03 +01:00
Yohan Boniface
cfe3bad5a4
Merge pull request #1550 from umap-project/choropleth-min-classes
fix: do not ask more classes than available values in choropleth mode
2024-01-29 12:45:40 +01:00
Yohan Boniface
95b457b38c
Merge pull request #1551 from umap-project/fix-browser-with-variable
fix: build browser once features are on the map, not before
2024-01-29 12:45:16 +01:00
Yohan Boniface
dadcaa0b76
Merge pull request #1526 from umap-project/oembed
Create an oEmbed endpoint for maps
2024-01-29 12:44:03 +01:00
Yohan Boniface
256d6c631c feat: use svg for default icon (circle)
fix #1560
2024-01-29 12:24:16 +01:00
Yohan Boniface
466470984a 1.14.0a5 2024-01-25 15:58:54 +01:00
Yohan Boniface
9ee9c5892e
Merge pull request #1559 from umap-project/fix-list.delete
fix: replace `list.delete` call by the proper `remove` method
2024-01-25 15:58:16 +01:00
Yohan Boniface
bc8084af97 fix: replace list.delete call by the proper remove method 2024-01-25 15:49:01 +01:00
Yohan Boniface
53ad987aea fix: prevent datalayer to resetting to an old version on save
This happens in collaborative mode only.

cf #1536
cf #1537

cf https://forum.openstreetmap.fr/t/probleme-de-sauvegarde-des-cartes/20596
cf https://forum.openstreetmap.fr/t/umap-soucis-de-debutants/20538
cf https://forum.openstreetmap.fr/t/probleme-de-maj-des-icones/20565
2024-01-25 15:42:00 +01:00
Yohan Boniface
d4e253190f feat: set preconnect link for tilelayer 2024-01-22 18:14:41 +01:00
Yohan Boniface
dc22cf823f 1.14.0a4 2024-01-22 14:42:12 +01:00
Yohan Boniface
abbc5237bd chore: try to force browser to load Leaflet script soon
Leaflet file is the bigger, and it is otherwise only loaded
when the browser understand that it needs it, which means when
global.js is parsed, which means after all scripts have been loaded.
2024-01-22 14:41:22 +01:00
Yohan Boniface
7ae742ca70 chore: add grey background to body on map page to prevent blinking
Otherwise the DOM loads and create a white script before the JS is
parsed and ready to display the map. This is due to using modules
and scripts in defer mode.
2024-01-22 14:41:21 +01:00
Yohan Boniface
ae4c1a9454 fix: build browser once features are on the map, not before
Features title may contain variables, which include geographical
ones (center, lat, lon…), and in this case the feature must be
on the map to be able to compute them (eg. the polygon center).

fix #1519
2024-01-22 12:49:33 +01:00
Yohan Boniface
d696fe885f fix: do not ask more classes than available values in choropleth
It actually does not make sense, and it's a sanity check: some
computation algorithms fail in this situation.
2024-01-22 11:12:14 +01:00
David Larlet
7c4009965a
Use minified versions + sourcemaps of vendor statics 2024-01-21 14:02:16 -05:00
Yohan Boniface
b9b8550073 1.14.0a3 2024-01-19 17:52:24 +01:00
David Larlet
7e5c15b5b0
fix(1545): fix icons for mailto and tel
Fix #1545
2024-01-19 11:48:23 -05:00
Yohan Boniface
283ad44515 chore: do not try to create source maps for now
It's more complex than what we thought.
2024-01-19 17:43:18 +01:00
Yohan Boniface
23af4c60cd chore: move UmapManifestStaticFilesStorage to a dedicated file 2024-01-19 17:16:35 +01:00
David Larlet
df3ed76f3e
feat: generate/link source map files for JS and CSS 2024-01-19 09:22:09 -05:00
Yohan Boniface
4541578b9b feat: compress static in collectstatic post_process 2024-01-19 12:27:21 +01:00
Yohan Boniface
5a6f1c1bcc chore: remove unused import 2024-01-17 22:27:05 +01:00
Yohan Boniface
031cff7435 1.14.0a2 2024-01-17 20:15:26 +01:00
Yohan Boniface
11045345fc i18n 2024-01-17 18:50:24 +01:00
Yohan Boniface
3f76f64d82 1.14.0a1
Removing django-compressor, and testing before doing a proper release
2024-01-17 18:49:06 +01:00
Yohan Boniface
96ae7ddbc7 chore: deactivate custom statics manager for test by default
And add one file that run it and check all js files are loaded.
2024-01-17 18:42:46 +01:00
Yohan Boniface
1b8e6164ed fix: use dynamic path for locale javascript 2024-01-17 16:36:17 +01:00
David Larlet
656e29c72b
Use custom storage instead of django-compressor 2024-01-17 09:09:00 -05:00
Yohan Boniface
502cd4cded chore: remove support for settings starting with LEAFLET_STORAGE_
They are deprecated since 1.0
2024-01-17 11:39:06 +01:00
Yohan Boniface
fb63588ac5 chore: use https://umap-project.org link in map footer 2024-01-17 11:25:47 +01:00
Yohan Boniface
cf13d15753 fix: honour datalayersControl=expanded in querystring
fix #1525
2024-01-16 19:58:10 +01:00
Yohan Boniface
9f377da1b2 Introduce UMAP_HOME_FEED to control which maps are shown on the home page
For now we have only three modes:
- latest, which is the default and shows the last updated maps
- highlighted, which shows only the map that have been starred by a least
  one staff member
- None, which does not show any map
2024-01-16 12:31:50 +01:00
Yohan Boniface
4227e171f3 fix: empty file input when closing the importer panel
Otherwise, we cannot import anything else than a file, even when
closing and reopening the panel. User needs to refresh the page.
2024-01-16 12:28:59 +01:00
Yohan Boniface
3e5927f65e Release JS module introduction as an alpha package
We want to test it live before an official release
2024-01-15 18:37:46 +01:00
Yohan Boniface
8026c16926 i18n 2024-01-15 18:32:51 +01:00
Alexis Métaireau
1eb0f352c9 Expose the MAP variable at the global scope to ease debugging 2024-01-15 12:15:35 +01:00
David Larlet
df76ffd80e
feat: Create an oEmbed endpoint for maps
Fix #162
2024-01-11 15:08:10 -05:00
Yohan Boniface
66d2345841 Escape map settings in map_fragment.html 2024-01-11 11:13:13 +01:00
David Larlet
5d758ebc0d
Create a dedicated js/components folder 2024-01-10 14:31:54 -05:00
David Larlet
7b5b5b1b22
Set a umap-fragment web component for lists 2024-01-09 14:49:14 -05:00
Alexis Métaireau
4b34a7d300 merge index.js with global.js 2024-01-08 19:29:43 +01:00
Alexis Métaireau
7c697f7529 Merge @ybon changes 2024-01-08 18:49:03 +01:00
Yohan Boniface
c6ce22f319 Also run login javascript when page is loaded 2024-01-08 18:43:54 +01:00
Yohan Boniface
ce22a2ee74 Only load Leaflet once, as module 2024-01-08 18:43:54 +01:00
Alexis Métaireau
95212dbdf5 [refactor] Use JS modules for client URL routing
Also expose some vendorized libs as modules in `modules/vendors.js`
2024-01-08 18:43:54 +01:00
Alexis Métaireau
d303330f2e chore: use system-specific modifier when running tests 2024-01-08 18:42:18 +01:00
Yohan Boniface
fca2c13eb7 1.13.1 2024-01-08 16:49:02 +01:00
Yohan Boniface
067d74de9f fix: icon element is undefined when clustered 2024-01-08 16:35:41 +01:00
Yohan Boniface
242a2469ac 1.13.0 2024-01-08 13:45:10 +01:00
Yohan Boniface
d0c560e29a i18n 2024-01-08 13:43:48 +01:00
Yohan Boniface
0f1e13b994 chore: fix failing JS test 2024-01-08 13:31:02 +01:00
Yohan Boniface
2812431722 feat(browser): add counter in datalayer headline 2024-01-08 12:46:06 +01:00
Yohan Boniface
cea5e30582
Merge pull request #1499 from umap-project/dedicated-layer-settings
Move layer specific settings to a dedicated fieldset
2024-01-08 12:30:41 +01:00
Yohan Boniface
75ff147371 Move layer specific settings to a dedicated fieldset
cf #1490
2024-01-08 12:25:40 +01:00
Yohan Boniface
fe61acd6c1
Merge pull request #1479 from umap-project/osm-template
Add a popup template to showcase OpenStreetMap data
2024-01-08 12:10:48 +01:00
Yohan Boniface
ba6371381a Better margin around popup title icon 2024-01-08 12:00:19 +01:00
Yohan Boniface
86de16521f Refactor icon element create and constrast 2024-01-08 11:52:15 +01:00
Yohan Boniface
ecd4c73a7e Add basic facet search integration test 2024-01-04 13:33:38 +01:00
Yohan Boniface
ab82fd975f
Merge pull request #1478 from umap-project/preview-map-on-click
Preview map only on click in user’s dashboard
2024-01-03 22:17:55 +01:00
Yohan Boniface
37b97403dc Use neutral button for preview in user dashboard 2024-01-03 21:49:20 +01:00
Yohan Boniface
d54b0e94b7 Only close ui panel if it is open
When calling ui.closePanel, this will fire "panel:closed", which
is listened by uMap to blindly call map.invalidateSize, which
creates trouble in the dashboard preview: when pressing twice ESC
key (eg. when switching from a preview to another), the map would pan once
to the north east (I guess because invalidateSize is called while
the map is not displayed, but not sure).
2024-01-03 21:25:20 +01:00
Yohan Boniface
558dabd113
Merge pull request #1480 from umap-project/search-latlng
Allow to type a latlng in the search box
2024-01-03 20:59:11 +01:00
Yohan Boniface
fb6230d1db
Merge pull request #1490 from umap-project/fix-choropleth-update
Be more explicit on changed fields when updating choropleth form
2024-01-03 20:52:06 +01:00
Yohan Boniface
7f4d5b270b Rename Layer.postUpdate to Layer.onEdit and pass explicit params 2024-01-03 18:09:09 +01:00
Yohan Boniface
1ed6a5972d Run prettier 2024-01-02 23:18:24 +01:00
Yohan Boniface
4b0bde5c90 Align copy button to input in share box
cf #1454
2024-01-02 22:14:13 +01:00
Yohan Boniface
05401af06b
Merge pull request #1454 from jschleic/download-ui
Refactor Share & Download UI for better usability
2024-01-02 21:42:34 +01:00
Yohan Boniface
ced7f3d6ff
Merge pull request #1497 from jschleic/fix-rank-on-reordering
fix dirty flags when re-ordering layers
2023-12-31 11:16:06 +01:00
Joachim Schleicher
70e5dbe7dd fix dirty flags when re-ordering layers
The index of the top layer in the view starts with zero, while the rank of
the layers count backwards. Thus moving the second-last to the last
position should set the dirty flag of rank 0 and 1.
Instead the former implementation set the dirty flag for layers >= 19 in
a list of 20 layers - resulting in the wrong layers saved.

Fixes #375
2023-12-30 21:39:48 +01:00
Joachim Schleicher
dbf0179297 cleanup sharebox changes
* "data" moved to helptext
* drop css introduced in previous draft
* prettier.js
2023-12-29 21:23:03 +01:00
Yohan Boniface
340c492efc 1.12.2 2023-12-29 11:22:23 +01:00
Yohan Boniface
2bb104d29e
Merge pull request #1493 from umap-project/tilelayer-preview-border
Add a small box-shadow to tilelayer preview
2023-12-28 20:36:27 +01:00
Yohan Boniface
974536debe
Merge pull request #1492 from umap-project/fix-tms-url-preview
Fix preview of TMS TileLayer preview
2023-12-28 20:36:06 +01:00
Yohan Boniface
ab54580820 Fix preview of TMS TileLayer preview
This is not the ideal fix, instead we'd prefer to use
`TileLayer.getTileUrl`, but this is not possible yet.

cf https://github.com/Leaflet/Leaflet/pull/9201

cf https://lists.openstreetmap.org/pipermail/umap/2023-December/000557.html
2023-12-28 16:32:57 +01:00
Yohan Boniface
1d85ee5167 Add a small box-shadow to tilelayer preview
In some situation, the preview is very close to the background, so
it's not visible enough.

fix #1485
2023-12-28 11:51:04 +01:00
Yohan Boniface
0a099b6ee1 i18n 2023-12-28 11:44:44 +01:00
David Larlet
36f72e3154
Linting templates 2023-12-27 13:50:21 -05:00
David Larlet
c4e55d82cb
Fix imports 2023-12-27 13:43:47 -05:00
David Larlet
7484e52142
Improve maps’ pagination for the dashboard 2023-12-27 13:26:31 -05:00
Yohan Boniface
c3cb813c23
Allow to reopen a dialog in dashboard previews 2023-12-27 11:41:08 -05:00
David Larlet
ded244c9ff
Put CSS and JS blocks to their dedicated places 2023-12-27 11:41:08 -05:00
David Larlet
8d11815625
Move _urls_for_js to utils.py (circular imports) 2023-12-27 11:41:08 -05:00
David Larlet
7ff543e1d5
Create the unique_id in the template (vs. model) 2023-12-27 11:41:08 -05:00
David Larlet
c9b4b96c01
Preview map only on click in user’s dashboard
Refs #1459
2023-12-27 11:41:07 -05:00
Yohan Boniface
936bbb9464 Be more explicit on changed fields when updating choropleth form
The postUpdate method of the Choropleth layer is called after
any form field change, even if this field is not in the dedicated
choropleth helper. So the previous check was too broad, and it
would try to fetch the breaks input value on any form helper, which
would fail if someone change any "non choropleth" property (like
the colour)
2023-12-27 09:17:29 +01:00
Yohan Boniface
9e346d2d4c search input: add a placeholder to mention typing coordinates 2023-12-26 12:37:17 +01:00
Yohan Boniface
a4dbb69545 Prettier on popup.js 2023-12-26 12:09:27 +01:00
Yohan Boniface
50e8161b89 Rename var in popup.js 2023-12-26 12:08:20 +01:00
Yohan Boniface
fcc07846a4 1.12.1 2023-12-23 09:16:53 +01:00
Yohan Boniface
01d89dbd93 Fix zoomEnd tests
By moving the tests that delete the datalayer at the end.
2023-12-23 09:12:34 +01:00
Yohan Boniface
acfcc2e2a6
Merge pull request #1482 from umap-project/greedytemplate-object
Do not fail on greedyTemplate when description is an object
2023-12-23 08:41:48 +01:00
Yohan Boniface
b19638bb8d
Merge pull request #1483 from umap-project/escape-drawing
Better way of handling escape while drawing
2023-12-23 08:41:33 +01:00
Yohan Boniface
5f8147c274 Remove zoom/moeveend events when deleting datalayer 2023-12-22 18:45:21 +01:00
Yohan Boniface
da2fb856c2 Better way of handling escape while drawing
With previous fix (in 60c002f94a), the
feature was created even if invalid.

cf #1428
2023-12-22 13:01:06 +01:00
Yohan Boniface
6890d47b91 Do not fail on greedyTemplate when description is an object
Quick fix for not failing with an error in case of #1481
2023-12-22 11:03:38 +01:00
Yohan Boniface
554352e003 Allow to type a latlng in the search box
fix #1000
cf #1001
2023-12-21 13:41:19 +01:00
Yohan Boniface
48ab865b9a More work on OpenStreetMap popup template 2023-12-20 12:16:35 +01:00
Yohan Boniface
2208a6c67d WIP: OpenStreetMap dedicated popup template 2023-12-20 12:16:35 +01:00
Yohan Boniface
cab87cd59f Deal with data:image in icon image form 2023-12-20 12:16:35 +01:00
Joachim Schleicher
3f6c705d2e re-style download panel
according to suggestion by @Aurelie-Jallut in
https://github.com/umap-project/umap/pull/1454#issuecomment-1858062371
2023-12-19 17:27:27 +01:00
Joachim Schleicher
aec4330df6 add download icons
file icon CC0 from https://www.iconfinder.com/icons/9110902/file_download_icon
arrow down drawn in inkscape
2023-12-19 16:44:04 +01:00
Yohan Boniface
417f1b9d08 i18n 2023-12-18 23:41:06 +01:00
Joachim Schleicher
d19cc60a7a refactor shareBox into separate class
download() and format() functions as well as dialog itself and
IFrameExporter helper moved into new file umap.share.js
2023-12-18 19:26:16 +01:00
Joachim Schleicher
931ac7442d refactor share dialog for better usability
* ordering is now short URL - download - backup - embed ordered by
  easier use cases for everyone to complex iframe code for web experts
* show available formats as buttons instead of hiding them in a dropdown
* add explaining labels
* change the dark options fieldset to light gray
2023-12-18 19:25:22 +01:00
Alexis Métaireau
396cbd34b4 build: Update makefile testjs to open the browser 2023-12-18 08:16:17 +00:00
Yohan Boniface
813b283a29
Merge pull request #1476 from umap-project/iconlayers-titles
Increase iconlayers titles on hover
2023-12-18 08:44:02 +01:00
Yohan Boniface
12ba5e61f8 Allow to edit pictogram categories from admin list 2023-12-17 12:20:30 +01:00
Yohan Boniface
a3abd5394e Increase iconlayers titles on hover 2023-12-17 10:58:02 +01:00
Yohan Boniface
feb2b06971 1.12.0 2023-12-17 10:03:06 +01:00
Yohan Boniface
3d92a8e845
Merge pull request #1475 from umap-project/iconlayers-polish
Iconlayers polish
2023-12-17 09:59:56 +01:00
Yohan Boniface
a0279165ce Add minimal integration tests for tilelayers 2023-12-16 19:26:10 +01:00
Alexis Métaireau
4fbd2fabe5 chore: fix a typo in umap.forms.js
Renamed `udpatePreview()` to `updatePreview()`
2023-12-16 18:20:23 +00:00
Yohan Boniface
629a049eba Inform iconLayers when we change current tilelayer
When an editor change the background layer from our own selector,
we need to inform iconLayers, so it can update its list and order
accordingly
2023-12-16 18:50:08 +01:00
Yohan Boniface
426297df4f Make sure we do not display twice the same background layer in selector
At this stage, uMap does not distinguish between a custom background
and the default background, both are saved in map.options.tilelayer.

Given we want a custom background (so not in the list) to appear in
the selector, we need this check to be sure we are not adding again
one layer from the list
2023-12-16 18:47:14 +01:00
Yohan Boniface
cbb02f9890 Make sure we update the tilelayers switcher when setting a custom one 2023-12-16 09:17:02 +01:00
Yohan Boniface
5d2b968863 chore: prettier 2023-12-16 09:16:13 +01:00
Yohan Boniface
625131f7df i18n 2023-12-16 08:22:16 +01:00
Yohan Boniface
e54e5752ae chore: Remove duplicate key in Map.editable_options 2023-12-15 23:20:35 +01:00
Yohan Boniface
7bcf751d46
Merge pull request #1449 from umap-project/kbd
Replace "Ctrl" by "Cmd" under macOS and style the "kbd" tag in keyboard shortcuts labels
2023-12-15 17:48:42 +01:00
Yohan Boniface
97068bdfdf
Merge pull request #1469 from umap-project/iconlayers
Use Leaflet.IconLayers as tilelayers switcher
2023-12-15 17:30:11 +01:00
Yohan Boniface
7f5960d1c4 Add parenthesis around keyboard when there is no kbd tag
This happens in title attributes, for example.
2023-12-15 17:24:55 +01:00
Yohan Boniface
87132314df
Merge pull request #1446 from umap-project/interactive-layer
Allow to control the `interactive` option from the layer
2023-12-15 17:18:57 +01:00
Yohan Boniface
3ffa29802e Use a variable to make explicit max number of shown layers 2023-12-15 17:11:49 +01:00
Yohan Boniface
49c17d6fd1 Simplify eachTilelayer method
Having a custom layer also in the predefined layers list is a
edge case we can deal with.
2023-12-15 17:05:00 +01:00
Yohan Boniface
b6b6139c79 Hide overflow from tilelayer title for now 2023-12-15 16:19:31 +01:00
Yohan Boniface
34d3beef25 Make sure custom tilelayer is displayed first, if any 2023-12-15 16:19:15 +01:00
Yohan Boniface
afd57d6806 Control the tilelayer change, instead of letting iconLayers do it
We want to control min/max zoom and such.
2023-12-15 16:16:53 +01:00
Yohan Boniface
fe9f4b4a48 WIP: POC of using Leaflet.IconLayers as tilelayers switcher 2023-12-15 11:40:52 +01:00
Yohan Boniface
b9f6645162 Use real tile URL in tests
It's easier to debug integration tests screenshots (otherwise
background is only grey).
2023-12-15 09:37:21 +01:00
Yohan Boniface
2f89a76e08 Add minimal CSS for kbd tag 2023-12-15 09:14:20 +01:00
Yohan Boniface
5a6cd9a5b5 Do not display keyboard shortcuts in main help for now
This main help already display some of them, so let's first
focus on this label refactor, and then do a refactor of that
main help modal.
2023-12-15 09:14:20 +01:00
Yohan Boniface
d98d5686fb Display Cmd instead of Ctrl for shortcuts on MacOS 2023-12-15 09:14:20 +01:00
Yohan Boniface
9c71d74ec9 WIP 2023-12-15 09:14:20 +01:00
Yohan Boniface
445ce7b6ba
Merge pull request #1468 from umap-project/fix-toolbox-overflow
Fix toolbox overflow with facets’ search
2023-12-15 08:26:56 +01:00
Yohan Boniface
a32b680a74
Merge pull request #1465 from umap-project/defaultview-latest-path
Use bounds instead of center when zooming to Polyline/Polygon
2023-12-15 08:24:58 +01:00
Yohan Boniface
8568159589
Merge pull request #1466 from umap-project/fix-remove-tilelayer
Do not call AttributionControl._update for removed tile layer
2023-12-15 08:24:41 +01:00
David Larlet
45c0805319
Fix toolbox overflow with facets’ search 2023-12-14 17:03:53 -05:00
Yohan Boniface
d1912f57e9 Do not call AttributionControl._update for removed tile layer 2023-12-14 22:55:01 +01:00
David Larlet
b25bb16858
Merge pull request #1455 from jschleic/tooltip-and-headline
Unify tooltip and headline and add the corresponding icon
2023-12-14 14:26:06 -05:00
Yohan Boniface
0852077634 Use bounds instead of center when zooming to Polyline/Polygon
Here is the initial issue:
- when using defaultView=latest (means latest element of the default layer)
- when map loads, we find the element, call getCenter to center the map on it
- but Polygon/Polyline needs the element to be already on the map to call
  this method (at least because the map CRS is needed)

So while trying to fix that issue, I also found that using a centroid for
a complex geometry was not very friendly: the map zoom on a part of this
geometry, while it seems to be that it's better to have a full view of it.
Now that we highlight the selected element, it's also easier to get which
element is focused when there are a lot close one to the others.
2023-12-14 15:45:43 +01:00
Yohan Boniface
d93a963e1f Wait for data to be loaded before opening the data browser
We need the map bounds to compute the isOnScreen check
2023-12-14 15:20:59 +01:00
Yohan Boniface
8ce09b039f
Merge pull request #1458 from umap-project/fix-datachanged
Make sure DataLayer._dataloaded is set only once all data is imported
2023-12-12 10:20:54 +01:00
Joachim Schleicher
e020a3656c finetune
* left align share icon
* add light tilelayer icon in "view" mode
2023-12-11 11:39:54 +01:00
Yohan Boniface
f54992c0e5 Make sure DataLayer._dataloaded is set only once all data is imported
When DataLayer._dataloaded is set, DataLayer.addLayer will send 'datachanged'
event (for once for each feature). When the data browser panel is open, the
browser is listening to 'datachanged' to rebuild itself.

Not sure this is the real final fix, but that may need more refactoring, so
I think this approach is already a better situation than the current.

fix #1457
2023-12-11 10:36:39 +01:00
Joachim Schleicher
259a002705 fix picto tests 2023-12-09 20:32:07 +01:00
Joachim Schleicher
20bbbbad0c fixup tests 2023-12-08 21:47:11 +01:00
Joachim Schleicher
69939ec2a3 add title and heading to layer and tilelayer 2023-12-08 21:11:19 +01:00
Joachim Schleicher
3b89c22c23 add title and icon to buttons
* search and share icons on the left get an `title` attribute
* all panels start with an `h3` headline including the corresponding icon
* thus add smaller versions of the 24px-icons to 16.svg or 16-white.svg
* unify strings for button and headline to match
2023-12-08 21:11:19 +01:00
Yohan Boniface
7ef3fb2caa
Merge pull request #1445 from umap-project/importer-class
Make it easier to open file dialog
2023-12-08 06:48:38 +01:00
Yohan Boniface
50da2c0e1c Add integration test for textarea import 2023-12-05 14:28:11 +01:00
Yohan Boniface
c62c327878 Importer: call showPicker only on openFiles, not at each open
This allows to open the files dialog with Ctrl+O
2023-12-05 12:59:49 +01:00
David Larlet
1bfbde320c Add working showPicker to open files dialog 2023-12-05 12:59:49 +01:00
Yohan Boniface
67f6fa7587 Add non working ways to focus the importer file input 2023-12-05 12:59:49 +01:00
Yohan Boniface
42906ea8b4 Add non working way to open files dialog 2023-12-05 12:59:49 +01:00
Yohan Boniface
84b5e2188a Move importer panel to a separate class 2023-12-05 12:59:43 +01:00
3st3ban3
daeaf093f1 fix: no data in facet filters when set as default panel 2023-12-03 17:45:17 +01:00
Yohan Boniface
d928028a97 Allow to control the interactive flag from the layer
This flag deactivate all interactions for a path. It can be useful
when some polygon is used to delimitate an area on the map, but
when we don't want this area to be clickable.

I've a case where I've many of those polygons in a given map, and
they are imported, so I don't want to go one by one to deactivate it.
2023-12-02 10:13:35 +01:00
Yohan Boniface
e251c84298
Merge pull request #1442 from umap-project/log-tilelayer-error
Log error when loading tilelayer
2023-11-29 18:10:01 +01:00
Yohan Boniface
9b28a48c9b
Merge pull request #772 from umap-project/optimistic-merge
Optimistic conflicts resolution mecanism
2023-11-29 17:56:17 +01:00
Yohan Boniface
312863b2d4
Merge pull request #1443 from umap-project/minimap-style
Use map style options to style minimap bbox rectangle
2023-11-29 17:51:40 +01:00
Yohan Boniface
7591031e63 Add integration tests covering basic polygon drawing 2023-11-29 17:34:12 +01:00
Yohan Boniface
64e90bb4c1 Add integrations tests covering basic line creation 2023-11-29 17:26:01 +01:00
Yohan Boniface
60c002f94a Call commitDrawing instead of stopDrawing on ESC
fix #1428
2023-11-29 16:32:22 +01:00
Yohan Boniface
f8d2ecdd32 Use map style options to style minimap bbox rectangle
Ref:

https://forum.openstreetmap.fr/t/option-dexport-mini-carte/19223/6
2023-11-29 16:15:33 +01:00
Yohan Boniface
7a78645055 Log error when loading tilelayer
I see this message from time to time, but I've no details so I
cannot investigate easily. Let's log the error to help.
2023-11-29 15:49:17 +01:00
Alexis Métaireau
f37ed700f6 [feat] add a simple conflict resolution mecanism.
The server tries to merge conflicting saves of
the same layer.

What it does:

- use the `If-Unmodified-Since` header to check
  if changes happened to the stored data ;
- Compare the incoming version with its reference version
  to get a diff.
- Reapply the diff on top of the latest version.
- If the merge is not possible, return a
  "422 Conflict" HTTP response.
- If the merge worked, return the merged document,
  to be updated by the client.
2023-11-29 13:04:24 +01:00
Yohan Boniface
34e0461ca8 Run prettier on umap.layer.js 2023-11-28 15:28:57 +01:00
Yohan Boniface
fc2b7e5d4b
Merge pull request #1438 from umap-project/table-fullwidth
Always use fullwidth table editor
2023-11-28 08:47:06 +01:00
Yohan Boniface
b716530f99 Remove '|' from label, now added in CSS
(Since #1422)
2023-11-27 22:44:35 +01:00
Yohan Boniface
d47c6f3214 Always use fullwidth table editor
Adding a property when table is not in fullwidth is buguish, so
let's make it simple.

In the future, we'd replace this table editor with a dedicated lib.

cf #1363
2023-11-27 22:43:14 +01:00
Yohan Boniface
c34e39319e Mention more keyboard shortcuts
cf #1436
2023-11-27 20:24:50 +01:00
Yohan Boniface
f274b39fc9 Fix slideshow buttons not show when facets are active
cf #1422
2023-11-27 16:39:42 +01:00
Yohan Boniface
35ff0dd7ce 1.11.1 2023-11-27 09:50:41 +01:00
Yohan Boniface
c36696cc31 i18n 2023-11-27 09:34:17 +01:00
Yohan Boniface
ab2bb6bb5c
Merge pull request #1419 from umap-project/stop-drag
Prevent dragging a datalayer to activate drag on the map
2023-11-26 21:59:16 +01:00
Yohan Boniface
3d7f87354b
Merge pull request #1420 from umap-project/restore-button
Restore style of "restore version button"
2023-11-26 21:58:58 +01:00
Yohan Boniface
84d7c8771e
Merge pull request #1432 from umap-project/locate-easing
Set map default center even if waiting for user location
2023-11-26 21:58:36 +01:00
Yohan Boniface
25a61f1808 Reset increasing icon text size
There are some usage with 5 chars that do not fit anymore.
Let's reset for now and maybe introduce later a way for the user
to configure the size
2023-11-26 17:17:19 +01:00
Yohan Boniface
4347d40e64 Set map default center even if waiting for user location
There is an edge case when using "locate" a default view AND
activating easing for transitions: in this case, Leaflet.locate needs
a  "starting view" to compute the easing to the new position (the
user location).

I could have only set the default_view when easing is on, but I
thought it was simpler to just set it anyway…
2023-11-26 11:13:56 +01:00
Alexis Métaireau
aff0181636 [style] Format the code 2023-11-24 23:31:18 +01:00
Alexis Métaireau
72b0bc44ad [chore] remove python2 imports 2023-11-24 23:31:18 +01:00
Alexis Métaireau
35dc1acb07 [fix] Use timezone aware datetimes 2023-11-24 23:31:18 +01:00
Alexis Métaireau
51c3ee3ce4 [ci] Add support for Github Actions
This runs the tests for different python versions,
with different working sets, and also run
a linter.
2023-11-24 23:31:18 +01:00
David Larlet
56bb414113
Provide space/separators between Dashboard actions 2023-11-24 15:32:44 -05:00
David Larlet
b4464a7ca2
Reuse the map_download view/url for the dashboard
Refs #1396
2023-11-24 15:28:58 -05:00
Yohan Boniface
1b87df7a7f
Merge pull request #1422 from umap-project/slideshow-buttons
Restore missing buttons in caption bar
2023-11-23 21:22:09 +01:00
Yohan Boniface
09903a8808
Merge pull request #1425 from umap-project/blue-links
But back blue links in popup and small credit
2023-11-23 17:37:45 +01:00
Yohan Boniface
e891ed61dd But back blue links in popup and small credit
fix #1418
2023-11-23 17:19:31 +01:00
Yohan Boniface
42ebe43698 Add minimal playwright test case for slideshow 2023-11-23 14:53:52 +01:00
Yohan Boniface
9781f6eb9c Restore missing buttons in caption bar
Those button, being width: 100% and display: block were not displayed
AND were pushing out also the slideshow buttons.
2023-11-23 13:07:18 +01:00
Yohan Boniface
4936a97218 Use step=any by default for FloatInput
This is fixed in Leaflet.FormBuilder itself
2023-11-23 12:29:52 +01:00
Yohan Boniface
fd2fb2a405 Restore style of "restore version button" 2023-11-23 11:00:35 +01:00
Yohan Boniface
0c99bc45a8 Prevent dragging a datalayer to activate drag on the map 2023-11-23 10:00:02 +01:00