Commit graph

1249 commits

Author SHA1 Message Date
Joachim Schleicher
7d6830c7c6 add test case for 88746d5 2023-10-19 21:08:57 +02:00
Joachim Schleicher
88746d593c move higlight() into Marker class
options.icon pointer is invalid after hide() show() cycle.
2023-10-19 20:57:40 +02:00
Yohan Boniface
219b3e17dd Fix picto in add datalayer button 2023-10-18 11:52:07 +02:00
Yohan Boniface
d30f35ad78 1.9.3 2023-10-18 09:13:07 +02:00
Yohan Boniface
412a159cc2
Merge pull request #1370 from umap-project/drag-n-drop
Add experimental drag and drop of file on the map container
2023-10-18 09:12:10 +02:00
Joachim Schleicher
5778c4ff65 add testcase for marker highlight 2023-10-17 21:45:05 +02:00
Yohan Boniface
c50e21e395 Release scroll wheel zoom on drop 2023-10-17 21:15:47 +02:00
Joachim Schleicher
65ba1cd3ee simply call _redraw to reset style
thanks for the review to @yohanboniface
2023-10-17 20:55:37 +02:00
Yohan Boniface
48c86812b6 i18n 2023-10-17 10:35:51 +02:00
David Larlet
1d94ebbaa3
Responsiveness of the header when logged in 2023-10-16 16:28:41 -04:00
David Larlet
85c1af2b50
Use the createLink function when pertinent 2023-10-16 16:19:03 -04:00
David Larlet
8656ca3059
Deal with browsable layers from left sidebar 2023-10-16 15:46:11 -04:00
David Larlet
740ff90262
Keep save button in blue on hover 2023-10-16 15:37:25 -04:00
David Larlet
222af1b528
Header’s styles for logged in user 2023-10-16 15:37:09 -04:00
David Larlet
e87a77cf43
Hide the next icon in buttons’ sprites 2023-10-16 15:18:16 -04:00
David Larlet
9c7269eabc
Better styles for buttons and tooltips 2023-10-16 14:48:20 -04:00
David Larlet
79117f2a66
Better styles for buttons (vs. links) 2023-10-16 10:23:31 -04:00
David Larlet
7695906c38
Better styles for buttons (vs. links) 2023-10-16 10:23:30 -04:00
David Larlet
a28d427ba1
Set a default type="button" for JS buttons
> The `button` [type] has no default behavior, and does nothing when pressed by default. It can have client-side scripts listen to the element's events, which are triggered when the events occur. — https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button
2023-10-16 10:22:21 -04:00
David Larlet
688ef19c04
A11Y: switch from links to buttons when pertinent 2023-10-16 10:22:20 -04:00
Yohan Boniface
eda14bd742 Add affordance to drag-n-drop file onto the map 2023-10-13 17:02:08 +02:00
Yohan Boniface
b5bf1396f3 Experimental drag and drop of file on the map container 2023-10-13 12:01:19 +02:00
Yohan Boniface
3c234ead5b Add missing function after cherry-picking 2023-10-13 12:00:59 +02:00
Yohan Boniface
a94cac53ac Move map.importPanel to controls, as other similar functions 2023-10-13 11:58:47 +02:00
Yohan Boniface
d0782b8220 1.9.2 2023-10-12 11:45:41 +02:00
Yohan Boniface
7bdd56ee9e
Merge pull request #1369 from umap-project/heatlayer-map
Add back HeatLayer._map reference check
2023-10-12 11:45:05 +02:00
Yohan Boniface
1e8c51b0e5 Add back HeatLayer._map reference check
In some situation, the property is undefined, given the call is async,
and we can add/remove the layer during the async stack
2023-10-12 11:06:14 +02:00
Yohan Boniface
1f61378aac Fix map reference in DataLayersControl
This would create an error when DataLayersControl is not added to
the map, but the mouseenter/leave event would still be active through
the datalayers list
2023-10-12 10:57:05 +02:00
Yohan Boniface
23404e9870 1.9.1 2023-10-12 10:12:49 +02:00
Yohan Boniface
8fdddddc9e Prevent computing choropleth breaks for each feature when importing
When importing a choropleth layer, the layer does not have a umap_id,
thus "hasDataLoaded" is immediately true, instead of being true when
all the "known" data is imported.

At this point, I can't find a good reason to keep the check on umap_id,
so let's remove and move forward.
2023-10-12 10:07:51 +02:00
Yohan Boniface
7318ebd2f9 choropleth: be more defensive when consuming breaks 2023-10-12 10:06:19 +02:00
Yohan Boniface
e751cd0fc4 1.9.0 2023-10-12 09:21:22 +02:00
Yohan Boniface
3119c75fb2 i18n 2023-10-12 09:19:37 +02:00
Yohan Boniface
6aa6eb4c11
Merge pull request #1136 from umap-project/choropleth
Add experimental choropleth datalayer type
2023-10-12 08:47:30 +02:00
Yohan Boniface
02342c487a Choropleth: allow to control breakpoints manually 2023-10-12 08:39:47 +02:00
Yohan Boniface
dac1f16bc6
Merge pull request #1358 from umap-project/heat-improvements
Heatmap improvements
2023-10-11 22:50:30 +02:00
Yohan Boniface
c2feba1df0
Merge pull request #1349 from umap-project/toggle-attribution
Hide attribution on small screen and add a small ? to display it
2023-10-11 22:49:44 +02:00
Yohan Boniface
739626351c Choropleth: replace chromajs by colorbrewer + simple-statistics
simple-statistics has a few advantages:
- faster
- more accurate kmeans algo
- Jenks-Fisher algo

Also, I suspect will use it again for next step, which is Bubble
mode layer.
2023-10-11 19:36:12 +02:00
Yohan Boniface
e97e566c42 Use non full white as left color for default choropleth color scale 2023-10-10 21:58:38 +02:00
Yohan Boniface
3d2ad3c1c6
Update umap/static/umap/map.css
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2023-10-10 21:40:34 +02:00
Yohan Boniface
bcd9b1ac04 Fix getOption not considering null values 2023-10-10 21:22:19 +02:00
Yohan Boniface
84a5b3c6f5 Fix Choropleth JS tests 2023-10-10 21:22:19 +02:00
Yohan Boniface
7be238a4ab Add minimal Choropleth integration test 2023-10-10 21:22:17 +02:00
Yohan Boniface
3b304e5249 Tests: populate settings from _umap_options when data is passed 2023-10-10 21:19:20 +02:00
Yohan Boniface
35758a1e13 Choropleth: do not add layer before knowing the whole dataset
And only compute limits once.
2023-10-10 21:16:01 +02:00
Yohan Boniface
d9522d9c1f Add default value to choropleth mode MultiChoice 2023-10-10 21:16:01 +02:00
Yohan Boniface
ce39afc64a Allow to override MultiChoice default value 2023-10-10 21:16:01 +02:00
Yohan Boniface
7fd905741a Use MultiChoice input for "choropleth mode" 2023-10-10 21:16:01 +02:00
Yohan Boniface
3334db3fa2 Use Range input for choropleth steps, and limit to 9
This limit comes from ColorBrower sequential color sets, which
we use.
2023-10-10 21:16:01 +02:00
Yohan Boniface
82bb017b23 Basic Choropleth tests 2023-10-10 21:16:01 +02:00
Yohan Boniface
125aa72785 Make choropleth mode work with lines 2023-10-10 21:16:01 +02:00
Yohan Boniface
7b68c52a15 Allow to select choropleth property from a list instead of gessing it 2023-10-10 21:16:01 +02:00
Yohan Boniface
6c502c54b4 Better defaults for choropleth layer 2023-10-10 21:16:01 +02:00
Yohan Boniface
451eb8c0bf Naive Choropleth legend, WIP 2023-10-10 21:16:01 +02:00
Yohan Boniface
7a0dbd014a There is one more limit than the number of steps
Limits are steps boundaries, and first limit is always the lower value,
and latest limit always the bigger.
2023-10-10 21:16:01 +02:00
Yohan Boniface
bf116e8d93 Use brewer palettes for choropleth colors
cf https://gka.github.io/chroma.js/#chroma-brewer
2023-10-10 21:16:01 +02:00
Yohan Boniface
5d350a7cc9 Control property used in choropleth 2023-10-10 21:16:01 +02:00
Yohan Boniface
8e12e6cf24 POC of a choropleth layer 2023-10-10 21:16:01 +02:00
Yohan Boniface
31ea8d1a83
Merge pull request #1362 from umap-project/hide-datalayer-in-caption
Allow to hide a datalayer from the caption list
2023-10-10 21:06:09 +02:00
Joachim Schleicher
9ef09512db highlight: increase fillOpacity for polygons
sqrt gives larger increase for low opacities like 0.2
while preserving some (tiny) shine-through for large values like 0.8
and is limited to the desired range of (0,1]
2023-10-10 10:47:36 +02:00
Joachim Schleicher
836c17f2e8 fire events from Popup Panel
to also highlight path and markers when using the side panel.
Therefore we duplicate the event code from the base class.
2023-10-10 10:29:20 +02:00
Joachim Schleicher
3594bc2605 highlight markers
add .umap-icon-active class for currently selected marker icon.
CSS styles override the marker styles to display
* in the foreground
* with full opacity
* with larger sizes where possible (ball and circle)
2023-10-10 10:29:20 +02:00
Yohan Boniface
da01977414 Fix permissions tests 2023-10-09 18:30:44 +02:00
Yohan Boniface
547485e50f Allow to hide a datalayer from the caption list 2023-10-06 22:26:31 +02:00
Yohan Boniface
de6c9f3b84 Make sure we don't use DataLayer.settings by reference 2023-10-06 22:25:56 +02:00
Joachim Schleicher
7696203159 highlight selected path
when opening a popup increase opacity and weight.
In maps with multiple lines one can see much easier, where the line
starts and ends.
2023-10-05 21:18:05 +02:00
Yohan Boniface
5bfa2fce38 Patch HeatLayer for better rendering
Patch comes from https://github.com/Leaflet/Leaflet.heat/pull/78

We'll remove it when this PR get merged and released.
2023-10-05 18:15:59 +02:00
Yohan Boniface
ca7257658c Make that Range inherit from FloatInput
Otherwise we store a string
2023-10-05 18:15:21 +02:00
Yohan Boniface
3e54310c8d Add Range input for heatmap radius 2023-10-05 17:36:07 +02:00
Yohan Boniface
a5c7214533 Add back helpText on Range input 2023-10-05 17:32:27 +02:00
Yohan Boniface
20cdc837af Use toFixed instead of toPrecision in Range input
toPrecision returns an exponential notation for example for:
 const x = 100
 x.toPrecision(2)
2023-10-05 15:14:28 +02:00
Yohan Boniface
34122b1549
Remove unused CSS class .third
Co-authored-by: Joachim Schleicher <joachimsl@gmx.de>
2023-10-04 09:36:55 +02:00
Joachim Schleicher
79a1ea232a switch to grid layout for multiple choice buttons
to allow multi-line texts in translations
2023-10-04 09:19:09 +02:00
Yohan Boniface
495dd6444f Finally add Map.create_at field
This field should have been added at the beginning, but this is
like planting trees, isn't it ?
2023-09-27 11:01:50 +02:00
Yohan Boniface
ff27cdd04a Hide attribution on small screen and add a small ? to display it
fix #844
2023-09-27 10:30:57 +02:00
Yohan Boniface
f73308e99d 1.8.2 2023-09-27 07:21:06 +02:00
Yohan Boniface
677fd3d982
Merge pull request #1336 from umap-project/shared-edit-url
Redirect to canonical when URL contains the ?edit parameter
2023-09-27 07:17:29 +02:00
Yohan Boniface
013d2fd5ee Always remove ?edit from URL, so users do not share it by mistake 2023-09-27 07:13:30 +02:00
Yohan Boniface
50591e1ac5 i18n 2023-09-27 06:48:00 +02:00
Joachim Schleicher
ccda9aca3f Fix #1308
The star indicating a dirty map uses more than 5px (depending on font-size).
So the additional star switched from showing the map name to
ellipses-overflow in px-implementation.
1ch is the with of the digit '0'.
2023-09-26 20:57:58 +02:00
Yohan Boniface
cae52c905a
Merge pull request #1346 from umap-project/short-url-none
Make sure SHORT_SITE_URL is defined to expose Map.short_url
2023-09-26 15:52:51 +02:00
David Larlet
af3518ad08
Apply Black to settings files 2023-09-26 09:40:41 -04:00
Yohan Boniface
44910f5410 Do no try to fit data bounds if bounds are not valid
This may happen if:
- the map as some layers containing data, but set as not browsable
- any other layer is empty
2023-09-26 10:49:01 +02:00
Yohan Boniface
c1698545bd Make sure SHORT_SITE_URL is defined to expose Map.short_url 2023-09-26 10:34:50 +02:00
Yohan Boniface
649f21a0d5
Merge pull request #1339 from umap-project/browse-in-bbox
Allow to restrict data browser items to current map view
2023-09-26 08:16:22 +02:00
Yohan Boniface
af78d1e348
Merge pull request #1343 from umap-project/popup-large-width
Set an explicit width to popup large container
2023-09-25 22:00:15 +02:00
Yohan Boniface
a37c6005ce Set an explicit width to popup large container
Until now, the width was computed on the fly by Leaflet, based
on the popup content, but this leads to a bunch of issue on
image/iframe width.

cf https://forum.openstreetmap.fr/t/bugs-divers-relevees-sur-une-umap-absent-sur-une-autre/17254/8
2023-09-25 18:30:58 +02:00
David Larlet
27e8fd0cac
Merge pull request #1324 from openbrian/add-username-to-features
Add username to features
2023-09-25 11:08:32 -04:00
Yohan Boniface
1597cd731e Data browser: add back placeholder 2023-09-25 14:35:27 +02:00
Yohan Boniface
0ad6e425b5 Refactor data browser
- move a dedicated class (function was becoming big)
- user FormBuilder instead of custom form elements
2023-09-25 13:42:14 +02:00
Yohan Boniface
e0e7fc5844 Better way to set DataLayer.geojson content during tests 2023-09-25 13:40:01 +02:00
Yohan Boniface
9cf2bf1578 Allow to restrict browser items to current map view 2023-09-25 13:33:58 +02:00
Yohan Boniface
ff89125c80 Redirect to canonical URL when people share the ?edit link 2023-09-23 20:48:45 +02:00
David Larlet
98e57c150c
1.8.1 2023-09-22 14:55:46 -04:00
Yohan Boniface
dcbec3534c Fix datalayer's data duplicated at first save 2023-09-22 20:48:08 +02:00
Yohan Boniface
17104bfcbd Consume editMode from query string the proper way 2023-09-22 20:21:49 +02:00
David Larlet
18b43458e0
Merge pull request #1332 from umap-project/editmode-for-old-maps
Do not try to set editMode on _umap_options for old maps
2023-09-22 13:50:27 -04:00
Yohan Boniface
d67a17eca3 Do not try to set editMode on _umap_options for old maps 2023-09-22 19:03:01 +02:00
Yohan Boniface
27f3e08bc1 Fix anonymous maps displayed by mistake in user dashboard 2023-09-22 19:00:42 +02:00
David Larlet
500577a201
1.8.0 2023-09-22 12:29:58 -04:00
Yohan Boniface
76debf318b i18n 2023-09-22 18:28:41 +02:00
Yohan Boniface
2c7b6153b4 i18n 2023-09-22 18:27:41 +02:00
David Larlet
2563357c02
Merge pull request #1321 from umap-project/1318-restrict-zoom-options
Restrict possible min/max zoom values
2023-09-22 12:12:56 -04:00
David Larlet
f6dbb7d45b
Correct url type for background url templates 2023-09-22 12:10:53 -04:00
David Larlet
aed9e898e9
Restrict possible min/max zoom values
Fix #1318
2023-09-22 12:00:15 -04:00
Yohan Boniface
c36ea1e4b8 Fix error when trying to change map owner
This bug has been introduced with this change:

8b4842ff21

That was not the correct fix, and this one should be the proper one.

We don't want to edit the permissions reference until we do save, otherwise user
cannot save as it is already no more the owner.

So:
- change permissions.options
- save
- commit those changes to map.options.permissions
- use only those values to check for isOwner and isAnonymousMap
2023-09-22 17:34:44 +02:00
Yohan Boniface
157146dc04 Do not make map name and share status label clickable unless user can edit 2023-09-22 17:32:19 +02:00
Yohan Boniface
a04acb828d Update Map.can_edit docstring 2023-09-22 17:32:19 +02:00
Yohan Boniface
f05bdb2ac3 Use datalayer.isDataReadOnly in feature.isReadOnly 2023-09-22 17:32:19 +02:00
Yohan Boniface
a9b9a7e955 Tests: reuse name var 2023-09-22 17:32:19 +02:00
Yohan Boniface
dfd04c33b0 Fix typo in tests 2023-09-22 17:32:19 +02:00
Yohan Boniface
e13f3ac235 Add DataLayer.isDataReadonly
In some places we need to know if a given datalayer can accept new
features, or not, whether because being readonly or being remote
2023-09-22 17:32:19 +02:00
Yohan Boniface
5ffd1a1b10 Expose DataLayer.edit_status separately to the front
They now differ from the Map.edit_status ones
2023-09-22 17:32:19 +02:00
Yohan Boniface
6ba8166f86 Reset DataLayer.edit_status migration 2023-09-22 17:32:19 +02:00
Yohan Boniface
4e54a93ee0 Add DataLayer.INHERIT edit status option 2023-09-22 17:32:19 +02:00
Yohan Boniface
3cbd6cca40 Add back Map.edit_status
Revert "Fix existing permissions related tests"

This reverts commit 36d7d87301c54a1a40bc6bbc164120768b258fae.

WIP
2023-09-22 17:32:19 +02:00
Yohan Boniface
3dc4efe7b1 Remove data migration for edit_status 2023-09-22 17:32:19 +02:00
Yohan Boniface
360b6415cb Make OWNER mode the default edit_status for anonymous owned maps 2023-09-22 17:32:19 +02:00
Yohan Boniface
5f5196a52d Make sure to select only editable layers for attachin to features 2023-09-22 17:32:19 +02:00
Yohan Boniface
0afb0bff82 Include layer name in translation 2023-09-22 17:32:19 +02:00
Yohan Boniface
36befefbc6 Fix permissions related frontend tests 2023-09-22 17:32:19 +02:00
Yohan Boniface
84e3aa7121 Add default value for DataLayer.options.editMode 2023-09-22 17:32:19 +02:00
Yohan Boniface
6b269125d4 Make sure only owner see the delete map button 2023-09-22 17:32:19 +02:00
David Larlet
ddada8fb2b Remove the hasDirty concept
And only save the map in case of an `advanced` `editMode`.
2023-09-22 17:32:19 +02:00
Yohan Boniface
24e4aed8d3 Rename allowEdit in editMode 2023-09-22 17:32:17 +02:00
Yohan Boniface
de7c693c7b Remove console.log 2023-09-22 17:30:08 +02:00
Yohan Boniface
2d1d9281d9 Add SQL migration to populate DataLayer.edit_status from Map.edit_status 2023-09-22 17:30:08 +02:00
Yohan Boniface
af44b3a0a6 Add playwright test for editor's permissions form 2023-09-22 17:30:07 +02:00
Yohan Boniface
a15aa3566a Add playwright tests for anonymous map 2023-09-22 17:30:07 +02:00
Yohan Boniface
d902546da4 Add map update playwright tests 2023-09-22 17:30:07 +02:00
Yohan Boniface
168cc01c2e Do not try to access self.object in MapCreate 2023-09-22 17:30:07 +02:00
Yohan Boniface
42eb0e6ded Add more tests for datalayer permissions 2023-09-22 17:30:06 +02:00
Yohan Boniface
d6d55e619a Fix existing permissions related tests 2023-09-22 17:26:57 +02:00
Yohan Boniface
e52b40807a Expose correct edit statuses in anonymous mode 2023-09-22 17:26:57 +02:00
Yohan Boniface
e06da18f1e Fix helptext not displayed in anonymous permissions panel 2023-09-22 17:26:57 +02:00
Yohan Boniface
1cefd4e851 Hide create/delete datalayers button + map settings to users without rights 2023-09-22 17:26:57 +02:00
Yohan Boniface
35d7a5c550 Remove unused icon in 16.svg 2023-09-22 17:26:57 +02:00
Yohan Boniface
9189262855 Do not try to save map itself unless it has been modified 2023-09-22 17:26:57 +02:00
Yohan Boniface
ee9acf3427 Fix map check in DataLayerUpdate view 2023-09-22 17:26:57 +02:00
Yohan Boniface
70a1a1d584 Move copyToClipboard to L.Util 2023-09-22 17:26:57 +02:00
Yohan Boniface
76239ef55c Make DataLayer.isReadOnly explicit and true by default 2023-09-22 17:26:56 +02:00
Yohan Boniface
3d2e62c858 Do not use Map.edit_status anymore
But keep it for now, for data migration, and just in case
2023-09-22 17:26:55 +02:00
Yohan Boniface
de907dcb50 Do not expose readonly datalayers for features 2023-09-22 17:25:55 +02:00
Yohan Boniface
89ab029cab WIP: move edit_status from Map to DataLayer 2023-09-22 17:25:55 +02:00
Yohan Boniface
73d19e849f Refactor share_status check in datalayers views 2023-09-22 17:24:01 +02:00
Yohan Boniface
9bcc18b790
Merge pull request #1329 from umap-project/prune-gz
Prune old .gz when saving a datalayer
2023-09-22 17:14:31 +02:00
Yohan Boniface
b6b9943264 Prune old .gz when saving a datalayer
We'll not consume them.

fix #1317
2023-09-21 19:12:07 +02:00
Yohan Boniface
5b7fec5f9b
Merge pull request #1314 from openbrian/docker-compose-app-depends-on-db
Replace wait_for_database with depends_on and healthcheck.
2023-09-21 10:11:56 +02:00
Brian DeRocher
6720f76d85 Set the map option. No need for setting boolean from query string.
Only add the owner property if the feature flag (map.options.featuresHaveOwner) is enabled.

Default to features do NOT have owners.
2023-09-20 13:16:52 -04:00
Brian DeRocher
77b56623ed Remove field from map settings form. 2023-09-20 13:07:12 -04:00