Commit graph

3015 commits

Author SHA1 Message Date
Yohan Boniface
ff014429b9
Merge pull request #2102 from umap-project/edit-circlemarker-properties
fix: do not fail when trying to edit a circlemarker
2024-09-04 16:00:55 +02:00
Yohan Boniface
31371cc38c
Merge pull request #2101 from umap-project/datalayers-control-expanded-with-onloadpanel
fix: make sure datalayersControl=expanded does not override onLoadPanel
2024-09-04 15:55:27 +02:00
Yohan Boniface
1d7ad0b4d1
Merge pull request #2099 from umap-project/register-fa-ir
fix: register fa-ir in LANG_INFO
2024-09-04 15:46:44 +02:00
Yohan Boniface
0d5f0b175a fix: do not try to display author name/url for anonymous maps 2024-09-04 15:39:48 +02:00
Yohan Boniface
71ceb87fe2 fix: make sure datalayersControl=expanded does not override onLoadPanel
This value of datalayersControl exists for retrocompat only (it's now
replaced by onLoadPanel=browser)
2024-09-04 15:00:14 +02:00
Yohan Boniface
4f9b4a80c3 fix: do not fail when trying to edit a circlemarker
And for now open the properties panel (geometry/position may be
edited later, when Leaflet.Editable knows about CircleMarker)
2024-09-04 14:36:03 +02:00
Yohan Boniface
c976a86982 fix: make sure to compare comparable values in ternary operators
Comparing `"null"` (in the HTML) and `null` (in the JS) was returning
false.
2024-09-04 11:32:14 +02:00
Yohan Boniface
0be0a3d1a9 feat: display language code in footer language selector 2024-09-04 11:31:56 +02:00
Yohan Boniface
9bde88a513 fix: register fa-ir in LANG_INFO
fix #2086
2024-09-04 11:31:56 +02:00
Yohan Boniface
ee7439a0f9 fix: tilelayer plus icon where never displayed
We were testing the length of the `_layers` property, which where
sliced to `maxShown` before…
2024-09-04 11:23:20 +02:00
Yohan Boniface
c33adcf0e7
Merge pull request #2096 from umap-project/fix-more-button-icon
fix: correct position for more button icon
2024-09-03 15:44:12 +02:00
Yohan Boniface
f986ebf3b3 fix: correct position for more button icon 2024-09-03 15:43:19 +02:00
Yohan Boniface
c321a9e70d
Merge pull request #2095 from umap-project/fix-tilelayer-plus-button
fix: only show + button in tilelayer switcher when more available
2024-09-03 15:35:08 +02:00
Yohan Boniface
ca75955ca9 fix: only show + button in tilelayer switcher when more available 2024-09-03 15:34:15 +02:00
Yohan Boniface
e9b17ea9f2 feat: make boundary persistent in overpass importer 2024-09-03 15:29:40 +02:00
Yohan Boniface
f3f61f5d98 feat: add more context in overpass importer autocomplete results 2024-09-02 17:01:04 +02:00
Yohan Boniface
fe36f44d1a 2.6.0b0 2024-08-30 20:50:33 +02:00
Yohan Boniface
661c57ebc8 i18n 2024-08-30 20:29:27 +02:00
Yohan Boniface
2b3f0b00fb
Merge pull request #2055 from umap-project/dependabot/pip/django-5.1
chore: bump django from 5.0.8 to 5.1
2024-08-30 20:28:28 +02:00
David Larlet
5ca26335d4 exp: try to increase the number of process passes 2024-08-30 20:16:51 +02:00
David Larlet
aeee58b42a
Merge pull request #2062 from umap-project/user-groups
feat: add teams
2024-08-30 13:05:02 -04:00
David Larlet
c6ebfd4363
fix: proper way to test if we have a user 2024-08-30 12:37:48 -04:00
David Larlet
2a2a4be357
lint: fix imports order 2024-08-30 12:34:04 -04:00
David Larlet
5c31014086
tests: check collectstatic generates files with hash 2024-08-30 12:32:10 -04:00
David Larlet
11d3152682
chore: display user’s teams with a table 2024-08-30 11:12:36 -04:00
David Larlet
426780af2c
chore: clean up CSS for buttons in content pages 2024-08-30 11:03:00 -04:00
David Larlet
a202ed4767
chore: add Team to django admin 2024-08-30 10:55:46 -04:00
David Larlet
a877dd1714
chore: remove logo_url from Team model 2024-08-30 10:55:26 -04:00
Yohan Boniface
b895013709 fix: do not redraw remote layer if not dynamic 2024-08-30 16:03:14 +02:00
Yohan Boniface
13735a5739 chore: use our own Team model
We suppose we'll quickly want more than a name, like a description
or a logo_url, and maybe a access_status or permissions…
2024-08-30 15:53:18 +02:00
Yohan Boniface
a45f6ddbe5 i18n 2024-08-30 15:44:56 +02:00
Yohan Boniface
360014901c
Merge pull request #2076 from umap-project/table-input-position
fix: remove position fixed for input and textarea in tableeditor
2024-08-30 15:38:47 +02:00
Yohan Boniface
6b6be017bb wip: use autocomplete to add users in groups 2024-08-29 20:12:24 +02:00
Yohan Boniface
1058e6074f chore: lint 2024-08-29 20:12:24 +02:00
Yohan Boniface
a5a68cc922 wip: show user groups maps in dashboard 2024-08-29 20:12:24 +02:00
Yohan Boniface
eccbbda44d wip: add basic tests for group views 2024-08-29 20:12:24 +02:00
Yohan Boniface
9b2a99019b wip: add very basic CRUD for groups 2024-08-29 20:12:24 +02:00
Yohan Boniface
a3e972bf5d wip: add group maps page and display group as author when defined 2024-08-29 20:12:22 +02:00
Yohan Boniface
dce0ee5f73 wip: use auth.models.Group and manage permissions 2024-08-29 20:11:19 +02:00
Yohan Boniface
061edd3198
Merge pull request #2081 from umap-project/fix-white-space-panel
fix: white space was broken since using loadTemplate
2024-08-29 20:08:51 +02:00
Yohan Boniface
d208b19ddb fix: use position fixed for input and textarea in tableeditor
Otherwise when scrolling the table, the input will not appear at
the expected position, and may even appear outside of the view when
the table is bigger than the viewport.

Drawback: the table will resize its columns when the input/textarea
is created (as position: sticky is in the flow). So I've also removed
the width reset.

fix #2071
2024-08-29 20:07:28 +02:00
Yohan Boniface
f236e7e3b6
Merge pull request #2077 from umap-project/fix-continue-backward-measure
fix: correctly add drawn latlng when continuing line backward
2024-08-29 20:01:01 +02:00
Yohan Boniface
f96f2e1405
Merge pull request #2079 from umap-project/delete-button-tiled
chore: use tiled icon css for big delete buttons
2024-08-29 19:59:44 +02:00
Yohan Boniface
9894c6a669 chore: use tiled icon css for big delete buttons
That's a bit of an experiment, so to see what needs to be done:
- move the icon in the 24px svg normal and white to it's on the same
  place as in the 16px
- replace the JS code (which used a :before class) to use a <i> element
- remove the old CSS class

I've a concern that the way we create elements using the loadTemplate is
more verbose and not DRY, let's discuss this :)
2024-08-29 19:52:29 +02:00
Yohan Boniface
957e80edf9
Update umap/templates/umap/content_footer.html
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-08-29 19:41:40 +02:00
Yohan Boniface
5bbbf6a988 fix: white space was broken since using loadTemplate
Since a2ca3a1436, the panel/popup
template uses loadTemplate, which used to remove all white spaces
from the inner html. We had to do this to workaround white space
breaking the slideshow toolbox buttons.

So this commits fixes this problem in another way: do not remove
white space (usefull for text content in popup/panels), but use
a display: flex instead of inline-block.
2024-08-29 12:21:51 +02:00
Yohan Boniface
a72691e390 feat: display contact infos in the footer
This adds a new settings: UMAP_HOST_INFOS

Also, renames UMAP_FEEDBACK_LINK in UMAP_HELP_URL.

cf #2004
2024-08-29 11:41:11 +02:00
Yohan Boniface
3b66c40b01
Merge pull request #2078 from umap-project/fim100-RTL-support--css-logical-properties
Fim100 rtl support  css logical properties
2024-08-29 09:30:43 +02:00
Yohan Boniface
5314fcc13b chore: better icon css default so to work in RTL too 2024-08-28 22:40:44 +02:00
Yohan Boniface
7a7553c52f chore: use imports instead of globals in share.js 2024-08-28 22:40:44 +02:00
Yohan Boniface
d0c1a55b2f chore: make icon.css more logical and working in rtl 2024-08-28 22:40:44 +02:00
fim100
ca86721b89 revert MarkerCluster.Default.css 2024-08-28 22:39:48 +02:00
fim100
431cd91d4c revert leaflet.css 2024-08-28 22:39:48 +02:00
fim100
f9ba7f3c50 Update map.css 2024-08-28 22:39:48 +02:00
fim100
e74ca192d6 fix placement of navigation links in dashboard
My Map and My Profile
2024-08-28 22:39:48 +02:00
fim100
80a842bd32 fix icon position in dashboard 2024-08-28 22:39:48 +02:00
fim100
c52207ee0f make map.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
c554427fa8 make alert.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
ed2a91330f make nav.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
3d7ca9c6f9 make importers.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
b886dbac3c make content.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
26b1369a3c make base.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
a39d89295c making slideshow.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
1671a0bef1 making Update icon.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
d65c48a88a making Update leaflet.css rtl-friendly 2024-08-28 22:39:48 +02:00
fim100
ec790ad296 making MarkerCluster.Default.css rtl-friendly 2024-08-28 22:39:48 +02:00
Yohan Boniface
ca4df94e7f fix: correctly add drawn latlng when continuing line backward
Otherwise the measure if wrong.

fix #2069
2024-08-28 15:01:43 +02:00
Dimitar
f4c3a10251
Also update regex 2024-08-19 12:20:58 +03:00
Dimitar
92e3de87db
Use preferred tile.openstreetmap.org URL
For reference: https://github.com/openstreetmap/operations/issues/737
2024-08-15 19:58:15 +03:00
Yohan Boniface
ab8bce985e
Merge pull request #2053 from umap-project/bubble-layer
Add "Proportional Circles" layer type
2024-08-15 11:04:47 +02:00
Yohan Boniface
f05590e605
Merge pull request #2025 from umap-project/login-from-map
fix: catch login_required from map page and add a way to login
2024-08-15 10:57:10 +02:00
Yohan Boniface
e42ed4373f wip: do not fail when setting "Circles" layer with non markers data 2024-08-15 10:36:54 +02:00
Yohan Boniface
b0c37671a8
Merge pull request #2060 from umap-project/georss-link-title
fix: do not append HTML element as title in GeoRSSLink popup
2024-08-15 10:25:21 +02:00
Yohan Boniface
bc34851def fix: do not append HTML element as title in GeoRSSLink popup 2024-08-15 10:17:43 +02:00
Yohan Boniface
0847dc1ba6 fix: import GPX desc as description 2024-08-14 11:01:31 +02:00
Yohan Boniface
930463032b wip: add minimal legend for circles layer 2024-08-13 12:30:39 +02:00
Yohan Boniface
cbb022f804 wip: use sqrt for computing circles radius to smooth the sizes
The theory is that the circles surface should be proportional, not
the radius.
2024-08-13 11:11:24 +02:00
Yohan Boniface
6b60b0de64 wip: add "Proportional Circles" layer 2024-08-13 11:11:24 +02:00
Yohan Boniface
5a33709cc9
Merge pull request #2057 from umap-project/icon-to-modules
chore: move icon.js to modules
2024-08-13 11:10:32 +02:00
Yohan Boniface
a04accf16c
Merge pull request #1994 from umap-project/more-tilelayers-button
feat: add a "+" button in the tilelayer switcher
2024-08-13 11:05:02 +02:00
Yohan Boniface
f9484c3336 chore: move icon.js to modules 2024-08-13 11:00:17 +02:00
Yohan Boniface
f08e9cadb5
Merge pull request #2041 from umap-project/mask-polygon
feat: allow to display a polygon "negative"
2024-08-13 10:57:37 +02:00
Yohan Boniface
327c1603f5 Revert "chore: switch to an UI class getter"
This reverts commit 6b793758c5d7d85a2120a5376134f485ea0807bc.
2024-08-13 10:20:46 +02:00
David Larlet
7863cebc32 chore: switch to an UI class getter 2024-08-13 10:20:46 +02:00
Yohan Boniface
00c384bf25 feat: allow to display a polygon "negative"
fix #1125
2024-08-13 10:20:44 +02:00
Yohan Boniface
a0ec0de6f7 feat: align celllayer and cellayerplus border 2024-08-07 09:12:46 +02:00
Yohan Boniface
facccc1c70 feat: add a "+" button in the tilelayer switcher 2024-08-06 13:38:39 +02:00
Yohan Boniface
91c9088082 i18n 2024-08-03 07:37:20 +02:00
David Larlet
29c07755b5
fix: reposition convert to polyline icon 2024-08-02 15:03:40 -04:00
Yohan Boniface
d574abfc36 chore: remove umap.popup.js from js.html
The file has been deleted.
2024-08-02 17:39:45 +02:00
David Larlet
a73134cdb0
Merge pull request #2042 from umap-project/vendors-included
chore: include vendorized static dependencies
2024-08-02 11:19:35 -04:00
Yohan Boniface
5d0abe7dc1
Merge pull request #2033 from umap-project/nocontrol-no-loading
fix: deactivate loader on map fragments
2024-08-02 17:18:02 +02:00
Yohan Boniface
9f5361f2c0
Merge pull request #2034 from umap-project/popup-to-modules
chore: move popups to modules
2024-08-02 17:15:26 +02:00
David Larlet
ff8903e751
fix: remove Ctrl from tests for cross OS compatibility 2024-08-02 11:04:24 -04:00
David Larlet
c6b2dbd04c
fix: avoid vendorizing lealfet useless files 2024-08-02 10:13:55 -04:00
David Larlet
5c7624a08e
fix: avoid vendorizing markercluster sources 2024-08-02 10:06:27 -04:00
David Larlet
cf00069017
fix: avoid vendorizing leaflet.toolbar sources 2024-08-02 10:01:57 -04:00
David Larlet
4125bd1be0
chore: include vendorized static dependencies 2024-08-02 09:54:54 -04:00
Yohan Boniface
5a0b75fd33
Merge pull request #2027 from umap-project/tableditor-direct-import
chore: import TableEditor directly from layer
2024-07-31 22:53:19 +02:00
Yohan Boniface
144c757e0f chore: remove old TableEditor.js tests file 2024-07-31 22:42:23 +02:00
Yohan Boniface
222e69fbf4 chore: import TableEditor directly from layer 2024-07-31 22:42:22 +02:00
Yohan Boniface
6de5dabcc6 fix: fix georss import 2024-07-31 22:31:43 +02:00
Yohan Boniface
5145404dc4 fix: show delete button for owner and anonymous owner 2024-07-31 22:29:29 +02:00
Yohan Boniface
a2ca3a1436 chore: move popups to modules 2024-07-30 16:59:44 +02:00
Yohan Boniface
3bdd5bedf1 fix: catch login_required from map page and add a way to login 2024-07-30 14:41:10 +02:00
Yohan Boniface
084c674847 fix: deactivate loader on map fragments
Since 8ddc570e23 we lost the link
request <=> map, so the "dataloading" and "dataload" events are
global to the DOM, so when loading a list of maps, all instances
react to all dataloading events, which makes the list a mess.

I'd prefer to keep this loading indicator per map, but it's much
easier to just hide it, so let's go that way.
2024-07-30 14:28:41 +02:00
David Larlet
c240357922
fix: do not rely on the hasChildNodes() method
Introduced in 5ba1c28408

TIL: `hasChildNodes()` is sensitive to white spaces.
2024-07-29 21:15:24 -04:00
David Larlet
5ba1c28408
chore: reformat templates with djlint 2024-07-29 10:53:34 -04:00
Yohan Boniface
671d88296f wip: remove print 2024-07-29 16:24:59 +02:00
Yohan Boniface
cd439bb7d0 wip: remove umap.features.js 2024-07-29 16:24:59 +02:00
Yohan Boniface
65c5cb5ab5 wip: refactor isolateShape 2024-07-29 16:24:59 +02:00
Yohan Boniface
cd30f49773 wip: move back click handler to Leaflet Marker/Path
We tried to have only one listened at map level, but we get into
troubles with bindTooltip({permanent: false} and MarkerClusterGroup
stoping the event to each the map.

Let's go back to previous behaviour, and try later to clean this
event management.
2024-07-29 16:24:59 +02:00
Yohan Boniface
1bbdaa4c90 wip: do not try to redraw cluserized marker 2024-07-29 16:24:59 +02:00
Yohan Boniface
565f6d87b6 wip: fix editing Point coordinates by hand
For now we edit ui._latlng, but in an ideal world, we should edit
Point coordinates and then sync to the ui Marker.
2024-07-29 16:24:59 +02:00
Yohan Boniface
25d12420b2 wip: fix popup position for markers
Not sure what changed during the refactor, but now all popups
where opening at click position (plus the popupAnchor for markers).
2024-07-29 16:24:59 +02:00
Yohan Boniface
f80d471203 wip: do not sync twice on commit 2024-07-29 16:24:59 +02:00
Yohan Boniface
a022619625 wip: refactor DataLayer.geojsonToFeatures and fix sync tests 2024-07-29 16:24:59 +02:00
Yohan Boniface
081323dc8a wip: (almost) fix tests 2024-07-29 16:24:59 +02:00
Yohan Boniface
7aa07709b3 wip: first step in moving features to modules (work in progress) 2024-07-29 16:24:56 +02:00
Yohan Boniface
e2d8201321 chore: move permissions to modules 2024-07-29 15:18:25 +02:00
Yohan Boniface
aae75d86e9
Merge pull request #2008 from umap-project/layer-var-in-popup
feat: add {layer} as popup variable (aka extended properties)
2024-07-23 21:49:04 +02:00
Yohan Boniface
ab34765c30
Merge pull request #1989 from umap-project/layer-to-modules
chore: move layers to modules/
2024-07-23 21:42:22 +02:00
Yohan Boniface
6b67ce26a1 feat: expose marker altitude in variables (as "alt") 2024-07-23 21:33:55 +02:00
Yohan Boniface
ef4e33a6ec
Merge pull request #2010 from umap-project/var-null
Fix variable pointing to null value displayed instead of the fallback
2024-07-22 17:58:15 +02:00
David Larlet
a8468cb4fa
chore: modern JS 2024-07-22 09:58:17 -04:00
Yohan Boniface
6b4b6ce53b fix: do not consider null as value in greedyTemplate
cf #820#issuecomment-2227821746
2024-07-22 11:56:10 +02:00
Yohan Boniface
da8e206cd0 chore: pass biome on utils unittests 2024-07-22 11:55:35 +02:00
Yohan Boniface
67ec77fd8a fix: broken sortKey help
And move properties to shema.js. Given those keys does not have
a "guessable" handler, let's have a "customHandlers" prop to deal
with those (instead of keeping them outside of the schema…)

fix #2006
2024-07-22 11:09:25 +02:00
Yohan Boniface
d54843bbe2 feat: add {layer} as popup variable (aka extended properties)
fix #2007
2024-07-22 10:41:46 +02:00
David Larlet
9609fafe93
fix: handle the 'auto' value special case for z-index
Fix #1997
2024-07-15 13:33:07 -04:00
Yohan Boniface
abbd0e4803 chore: move layers to modules/
This is a small step in the direction of spliting the data part
and the rendering part.

Basically in modules/data relies the data part, and in modules/rendering
the rendering part, which at some point in the history should be
the only place where we use and inherit from Leaflet, including utils
and such.
2024-07-12 23:21:41 +02:00
David Larlet
f5fd0eb6e9
fix: remove padding from table editor inputs
Also, decrease line-height of header cells
2024-07-12 14:23:54 -04:00
Yohan Boniface
764fbb4247 2.5.1 2024-07-12 19:01:42 +02:00
Yohan Boniface
163d24c7d0 fix: correct way to replace imports in collecstatic 2024-07-12 19:00:59 +02:00
Yohan Boniface
3226be1bdb 2.5.0 2024-07-12 18:46:45 +02:00
Yohan Boniface
8c58b06ce4 i18n 2024-07-12 18:34:03 +02:00
David Larlet
f40387d5fc
Merge pull request #1968 from umap-project/filter-layer-3
Refactor the table editor including mass actions and filters
2024-07-12 12:18:47 -04:00
David Larlet
75e4679cc9
chore: fix tests 2024-07-12 12:12:29 -04:00
David Larlet
f8cb195336
chore: back to this.properties for TableEditor 2024-07-12 12:02:28 -04:00
David Larlet
b63a0f7f2d
chore: better errors on name validation 2024-07-12 11:53:12 -04:00
David Larlet
85a4fda0ed
chore: use datalayer._propertiesIndex directly 2024-07-12 11:51:04 -04:00
David Larlet
238798acc3
chore: clean table editor CSS 2024-07-12 11:41:14 -04:00
David Larlet
7ce5646c54
chore: move computePosition to Positioned base class 2024-07-12 11:37:03 -04:00
Yohan Boniface
b4d13304f0 fix: add back slideshow.setOptions method, called from U.Map 2024-07-12 15:18:52 +02:00
Yohan Boniface
a51cc8102f fix: fix race condition when slideshow is in autostart mode
Given `setViewFromQueryString` is now async, the slideshow may start
before it is run and thus it has called `initCaptionBar`, so let's
call it directly (and it's not linked to query string, so…)
2024-07-12 15:16:42 +02:00
Yohan Boniface
a101309e03 wip: use Input not BlurInput in tableeditor
BlurInput adds a "check" button we don't want here.
2024-07-12 12:31:50 +02:00
Yohan Boniface
96c9bf9413 wip: set contextmenu x/y according to position in window 2024-07-12 12:21:30 +02:00
Yohan Boniface
4a6b271bbe wip: deal with escape in tableeditor input/textarea 2024-07-11 20:39:05 +02:00
Yohan Boniface
9f04f56c7c wip: use position: fixed for input/textarea in tableeditor
so it does not increase the cell width and does not change all
the table size.
Actually, there is still a small size change as we remove the cell
content before adding the input/textarea, but more subtle than before
2024-07-11 20:39:05 +02:00
Yohan Boniface
3fb7be28ec wip: remove old tableeditor class 2024-07-11 20:39:05 +02:00
Yohan Boniface
2f8cda83b6 wip: do not try to read map.fullPanel blindly
It is only defined when user has write permissions.
2024-07-11 20:39:05 +02:00
Yohan Boniface
f1c34f9d27 wip: minimal keyboard navigation in table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
f62f3b4ab9 wip: make outline appears on click on table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
1ef416a622 wip: allow to open table "editor" (readonly) for remote data layers 2024-07-11 20:39:05 +02:00
Yohan Boniface
5909630e0e wip: fix bugs and add tests for table editor 2024-07-11 20:39:05 +02:00
Yohan Boniface
9ac3de2b33 wip: (huge) table editor refactor 2024-07-11 20:39:05 +02:00
Yohan Boniface
ae9659620a wip: another attemp to massiverly delete features from a condition 2024-07-11 20:39:05 +02:00
Yohan Boniface
ec7b546bf5 chore: try to fix toZoom and fromZoom randomly failing tests 2024-07-11 16:07:27 +02:00
Yohan Boniface
a035b6cb38 chore: use our own page fixture so to print console messages 2024-07-11 10:53:33 +02:00
Yohan Boniface
3fa478abac
Merge pull request #1981 from umap-project/autocomplete-datalist
feat: add AutocompleteDatalist and use it for conditional rules
2024-07-10 11:36:59 +02:00
Yohan Boniface
75e36f1c54
Merge pull request #1980 from umap-project/osm-relation-tags
fix: import unified relations from OSM data (use latest osmtogeojson)
2024-07-10 10:34:03 +02:00
Yohan Boniface
7baa70d1b6 feat: add AutocompleteDatalist and use it for conditional rules 2024-07-10 10:10:53 +02:00
Yohan Boniface
d830978f6f fix: import unified relations and tags from OSM data (use latest osmtogeojson)
fix #1011
2024-07-10 09:23:52 +02:00
Yohan Boniface
76fbb306fc
Merge pull request #1982 from umap-project/categorized-color
fix: use correct color for categorized/choropleth layers in browser
2024-07-09 15:16:19 +02:00
Yohan Boniface
ed6f0fcdf1
Merge pull request #1979 from umap-project/fix-blurinput
fix: BlurInput was not updating the object in some situations
2024-07-09 15:15:26 +02:00
Yohan Boniface
e3f59850a7 fix: fix preview color for polygons
Use usually set the `color` property, but we want to use the
fillColor if it sets.
2024-07-09 12:47:10 +02:00
Yohan Boniface
00483882a1 fix: use correct color for categorized/choropleth layers in browser 2024-07-09 11:58:29 +02:00
Yohan Boniface
dd9c3ba194 chore: biome 2024-07-09 11:47:34 +02:00
Yohan Boniface
3be274929a fix: BlurInput was not updating the object in some situations
Steps to reproduce:
- click in any BlurInput
- change to any value
- click outside the input => the value will be set to the object
- click again in the input
- change value to the initial
- click outside => the value will not be set

This is because the BlurInput in sync on blur, and it was comparing
the current field value with an "initial" one, only set at build.
This check is made because we don't want to trigger an edit when a
user click in a blurinput and click outside without changing the value.
2024-07-09 10:46:22 +02:00
Yohan Boniface
36b4510e46 fix: make sure panels are above controls
fix #1954
2024-07-05 18:59:13 +02:00
Yohan Boniface
4ae47de8a9
Merge pull request #1958 from umap-project/broken-help
fix: main help button from edit toolbar was broken
2024-07-05 18:51:14 +02:00
Yohan Boniface
207860ecf5 chore: refactor help.button arguments 2024-07-05 18:27:53 +02:00
Yohan Boniface
ec5f8d7b3c
Update umap/static/umap/js/modules/help.js
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-07-05 18:19:00 +02:00
Yohan Boniface
257d205690
Merge pull request #1953 from umap-project/categorized-layer
feat: add new type of layer Categorized
2024-07-05 18:18:36 +02:00
Yohan Boniface
1b8b130805 wip: no need for await here 2024-07-05 17:52:35 +02:00
Yohan Boniface
cc6ae95371 wip: make Map.initialize async
We want to be able to await function there.

Specifically, we want to await the data creation when it comes from
the `data` url param, so when we also consume the `feature` url param,
that feature is already on the map so we can open it
2024-07-05 17:52:35 +02:00
Yohan Boniface
49db1f9aaa chore: move share to modules 2024-07-05 17:52:33 +02:00
Yohan Boniface
741fc70a17 wip: simpler syntax for dynamic import in formatters 2024-07-05 17:51:53 +02:00
Yohan Boniface
891f04656f wip: make collectstatic happy with import() in comments
Also add missing .map files.

Maybe a proper solution would be to commit the vendors/ and
remove manually the comments.
2024-07-05 17:51:53 +02:00
Yohan Boniface
ca0f771947 wip: move formatters to a module
This mainly allows to dynamically load the third party libraries.

In the same process, those libs have changed:

- tokml => switch to placemarkio fork, more up to date and available
  as ESM
- togpx => switch to geojson-to-gpx, more up to date and available as
  ESM (note: this lib does not export polygons, because they do not
  make sense in GPX world, while the previous was converting them as
  lines before)
2024-07-05 17:51:53 +02:00
Yohan Boniface
f293f9c929 chore: move slideshow to a module 2024-07-05 17:35:08 +02:00
Yohan Boniface
6aa74060ad chore: make explicit that the "show get started dialog" is a special case 2024-07-05 09:52:39 +02:00
David Larlet
8b62aecd31
chore: create a WithTemplate base class
Allows to load a string/template and bind all `data-ref` references to `this.elements`.
2024-07-04 20:11:38 -04:00
Yohan Boniface
6976fd1f63
Merge pull request #1963 from umap-project/overpass-departement
fix: allow to search a French departement in Overpass importer
2024-07-02 22:51:40 +02:00
Yohan Boniface
6cbda1f373
Merge pull request #1964 from umap-project/throttle-search
fix: add throttle in autocomplete
2024-07-02 22:51:09 +02:00
Yohan Boniface
1839c48234
Merge pull request #1956 from umap-project/custom-prompt
chore: add custom prompt
2024-07-02 22:49:05 +02:00
Yohan Boniface
6872a584be wip: fix tests 2024-07-02 21:09:23 +02:00
Yohan Boniface
4c1ea8b97f wip: make sure dialog polyfill works 2024-07-02 20:49:14 +02:00
Yohan Boniface
f8577c3639 chore: always use real tiles in playwright when in debug mode 2024-07-02 19:11:39 +02:00
Yohan Boniface
abbd0eef62 fix: add throttle in autocomplete 2024-07-02 19:06:11 +02:00
Yohan Boniface
91badcdb5e wip: rework dialog class 2024-07-02 18:11:22 +02:00
Yohan Boniface
23396ad4df fix: allow to search a French departement in Overpass importer
And make it configurable in the same time.
2024-07-02 10:45:05 +02:00
Yohan Boniface
759dd34ef3 fix: main help button from edit toolbar was broken 2024-07-01 18:58:01 +02:00
Yohan Boniface
186025e0f0 chore: add custom prompt 2024-07-01 18:54:06 +02:00
Yohan Boniface
ce3439f6b5 feat: add new type of layer Categorized
This is like Choropleth, but with categories instead of graduated.

fix #1433
2024-07-01 12:48:46 +02:00
Yohan Boniface
796037cd74 2.4.2 2024-06-26 23:19:28 +02:00
Yohan Boniface
3a10b0c4e0 i18n 2024-06-26 23:18:30 +02:00
Yohan Boniface
3db414cb97 fix tests broken in c09adffb64 2024-06-26 23:16:02 +02:00
Yohan Boniface
c09adffb64 fix: make sure to quote spaces in URL when using proxy
space is a control character, and thus is forbidden in an URL, and
we do have spaces in overpass URL (containing raw queries).
2024-06-26 22:57:25 +02:00
David Larlet
3805d7f308
fix: better line-height for importers’ names 2024-06-26 15:43:46 -04:00
David Larlet
b01a194469
Merge pull request #1943 from umap-project/multiple-dataurl-onload
feat: handle multiple dataUrl parameters on map load
2024-06-26 14:22:11 -04:00
David Larlet
84e7f7a0a8
Merge pull request #1944 from umap-project/apply-biome-unsafe-2
chore: apply Biome unsafe changes
2024-06-26 13:21:56 -04:00
David Larlet
31d1c36a48
chore: explicit comment for global isNaN usage 2024-06-26 13:05:24 -04:00
7a7977c5cd fix(sync): do not send messages when loading data from the server
This introduces a `sync=true/false` parameter that can be passed along
when loading data from our own server, in which case we don't want to
send "operation" messages.
2024-06-26 18:59:20 +02:00
0dcedeb525 fix(sync): sync feature layer changes
This commits adds a way to differenciate "end of edit" events that are
triggered rightfully and the one which are triggered during the deletion
of a feature.

Also, directly call the `sync.upsert()` method after the move happened.
2024-06-26 18:59:20 +02:00
4f19824805 fix(sync): pass the correct datalayer uuid 2024-06-26 18:59:20 +02:00
David Larlet
b5cb092cd4
chore: from switch with unique case to if/else 2024-06-26 11:29:20 -04:00
David Larlet
04c50c4453
chore: deal with missing label for url_template 2024-06-26 10:35:46 -04:00
David Larlet
7c2b5839a9
Merge pull request #1942 from umap-project/rational-zindexes
chore: rationalize z-indexes in CSS
2024-06-26 10:10:47 -04:00
David Larlet
d1ded301a5
chore: do not use Number.isNaN in special cases 2024-06-25 21:41:29 -04:00
David Larlet
c61ca9c506
chore: remove the noDelete rule completely 2024-06-25 21:31:37 -04:00
David Larlet
b819c554ee
chore: there is a difference between unset and delete 2024-06-25 20:53:02 -04:00
David Larlet
7a82b6547e
chore: do not use Number.isNaN in special cases 2024-06-25 18:14:34 -04:00
David Larlet
5c88502a2e
chore: set a sync default value on createDataLayer
Rel: https://biomejs.dev/linter/rules/use-default-parameter-last/
2024-06-25 17:23:52 -04:00
David Larlet
445a793c3e
chore: apply Biome unsafe changes
Without `useBlockStatements`
2024-06-25 17:11:17 -04:00
David Larlet
b426d212f0
feat: handle multiple dataUrl parameters on map load 2024-06-25 16:41:39 -04:00
David Larlet
735c9dc6d8
chore: rationalize z-indexes in CSS
Positive side-effect: alerts are now above importers panel.
2024-06-25 14:56:25 -04:00
David Larlet
ef33a26f11
chore: apply Biome safe changes 2024-06-25 10:00:57 -04:00
David Larlet
e32deedcc8
chore: setup Biome to replace Prettier
If you are using SublimeText: https://packagecontrol.io/packages/LSP-biome
2024-06-25 09:59:40 -04:00
adc1cf460f Use css variables
Co-authored-by: David Larlet <3556+davidbgk@users.noreply.github.com>
2024-06-25 14:15:23 +02:00
c3a412059a fix: better spacing for the alert box, when activated 2024-06-25 14:15:23 +02:00
David Larlet
0b031dc7cc
fix: Distinction between clearing data vs. layers
Fix #1934
2024-06-24 17:04:33 -04:00
Yohan Boniface
5a5bada7b8 2.4.1 2024-06-24 08:33:23 +02:00
Yohan Boniface
e4af031ca1
Merge pull request #1933 from umap-project/fix-change-datalayer
fix: fix path disappearing when changing its datalayer
2024-06-24 08:32:32 +02:00
Yohan Boniface
d1fd842c1a i18n 2024-06-24 08:16:41 +02:00
Yohan Boniface
8d9bd4aec1 fix: fix path disappearing when changing its datalayer
fix #1931
2024-06-24 08:08:23 +02:00
Yohan Boniface
2123f7d1e6 2.4.0 2024-06-21 22:09:51 +02:00
Yohan Boniface
37c5601609
Merge pull request #1930 from umap-project/feature-panel-querystring
feat: give precedence to feature in query string over onLoadPanel
2024-06-21 22:04:05 +02:00
Yohan Boniface
a8daca425c i18n 2024-06-21 21:59:43 +02:00
Yohan Boniface
82c9ec7d39 feat: give precedence to feature in query string over onLoadPanel
cf #1893
2024-06-21 21:57:34 +02:00
Yohan Boniface
c2fc9ffb57 chore: use button element for "back to browser" action
As we did for other actions in c0ecc39439
2024-06-21 21:53:22 +02:00
Yohan Boniface
2b2a63fe29 chore: fix failing test 2024-06-21 18:29:40 +02:00
Yohan Boniface
02dd29a55f chore: add margin left to radio buttons 2024-06-21 18:03:02 +02:00
Yohan Boniface
e5259b3ffe
Merge pull request #1929 from umap-project/heading-css-size
chore: change heading CSS size
2024-06-21 17:46:44 +02:00
Yohan Boniface
9fabfe08cd
Merge pull request #1922 from umap-project/smaller-headings
chore: smaller headings in descriptions
2024-06-21 16:39:44 +02:00
Yohan Boniface
2b8326bd61
Merge pull request #1928 from umap-project/fix-slideshow-buttons
fix: fix slideshow toolbar position and size
2024-06-21 16:38:28 +02:00
Yohan Boniface
cd69e5fbb0
Merge pull request #1924 from umap-project/popup-min-width
fix: increase popup min-width
2024-06-21 16:38:06 +02:00
Yohan Boniface
5e480627cc
Merge pull request #1923 from umap-project/white-space-description
fix: also use white-space: pre-line on map description
2024-06-21 16:37:43 +02:00
Yohan Boniface
25cd19049e
Merge pull request #1921 from umap-project/fix-layer-labelkey
fix: use layer labelKey if any when filtering features
2024-06-21 16:37:14 +02:00
Yohan Boniface
73493258f1
Merge pull request #1920 from umap-project/fix-overlay-null
chore: do not set overlay=null as default
2024-06-21 16:36:57 +02:00
Yohan Boniface
ebafb6d40a chore: change heading CSS size 2024-06-21 16:35:07 +02:00
Yohan Boniface
7be62f3dab fix: fix slideshow toolbar position and size
broken by c0ecc39439
2024-06-21 16:33:37 +02:00
Yohan Boniface
3037128540 fix: add icon to "edit map details" panel title 2024-06-21 15:14:27 +02:00
Yohan Boniface
36db88f5a6 fix: increase popup min-width
Since fa2bef85d3 popup are smaller,
let's try to have them as before.
2024-06-21 14:55:42 +02:00
Yohan Boniface
25f338f51d fix: also use white-space: pre-line on map description
We removed line breaks management on the JS side so to manage it
in CSS, but this CSS was only active on popup/panels for features.
Let's have a class for this, and add it to the map description to
(about panel).
2024-06-21 14:39:12 +02:00
Yohan Boniface
6f38dcf4d7 fix: this css var has been renamed elsewhere 2024-06-21 14:07:48 +02:00
Yohan Boniface
3ed548b097 chore: smaller headings in descriptions
We already have a h3 as title, both in the popup or in the panel
2024-06-21 14:05:47 +02:00
Yohan Boniface
4fc66da80c fix: use layer labelKey if any when filtering features
fix #1908
2024-06-21 13:35:06 +02:00
Yohan Boniface
5609092cc0 chore: do not set overlay=null as default
FormBuilder will break when reimporting an exported map with this
default value (at the casting to object was only made on the init,
so reimporting will override this to null again).
2024-06-21 11:39:39 +02:00
David Larlet
ed2386eaae
2.4.0b2 2024-06-20 10:56:26 -04:00
David Larlet
0edf7cc5d9
i18n 2024-06-20 10:56:04 -04:00
David Larlet
8b2610947a
Merge pull request #1917 from umap-project/1911-better-importers-styles
fix: CSS adjustments for importers
2024-06-20 09:59:40 -04:00
David Larlet
f78320d153
Merge pull request #1916 from umap-project/1913-alert-on-import
fix: display an alert if the import is successful
2024-06-20 09:59:26 -04:00
David Larlet
41abbc90d0
Merge pull request #1914 from umap-project/1912-native-radio-inputs
fix: remove custom styles for radio inputs
2024-06-20 09:59:00 -04:00
David Larlet
0a9f57d2d8
fix: CSS adjustments for importers
Fix #1911
2024-06-18 15:11:58 -04:00
David Larlet
7e6d264796
fix: display an alert if the import is successful
Fix #1913
2024-06-18 14:53:27 -04:00
David Larlet
f1b1abb38f
Merge pull request #1903 from umap-project/set-layername-from-dataset
feat: set layer name when importing from dataset
2024-06-18 14:41:02 -04:00
David Larlet
08f5debd62
fix: remove custom styles for radio inputs
Fix #1912
2024-06-18 14:38:00 -04:00
Yohan Boniface
b977d26eae feat: set layer name when importing from dataset 2024-06-17 11:54:06 +02:00
Yohan Boniface
afcaf2a07a fix: correct way to open files dialgo with ctrl+O 2024-06-17 10:46:46 +02:00
David Larlet
1a3377723b
2.4.0b1 2024-06-14 21:44:44 -04:00
David Larlet
411452ac70
fix: allow first radio input click when second selected 2024-06-14 17:43:00 -04:00
David Larlet
a3afadb677
fix: hide importers section if none is defined 2024-06-14 17:21:09 -04:00
David Larlet
ceab5090a7
fix: explicit import paths for collectstatic hashes 2024-06-14 17:20:16 -04:00
David Larlet
6de3e1f881
2.4.0b0 2024-06-14 16:42:13 -04:00
Yohan Boniface
c144c9d958 fix: django cannot run collectstatic with circular imports in modules
alert.js was importing request.js which then imports alert.js

In the process, we moved the post to send the email out of the
alert.js file, and thus tried another pattern to communicate data
between an alert and its caller.
2024-06-14 22:05:56 +02:00
Yohan Boniface
99595e3e2f chore: fix translated test 2024-06-14 20:51:29 +02:00
Yohan Boniface
b747b347f4 fix: dialog class should have "window" class to get propert buttons 2024-06-14 20:45:39 +02:00
Yohan Boniface
74e0b43311 fix: correct syntax for translating string when sending emails 2024-06-14 20:41:53 +02:00
Yohan Boniface
ca18c5b7df chore: move alert.html inside templates and update translations
When alert.html was in static, Django was creating a new translation
file, while we want it to just add those strings in the backend
po file.
2024-06-14 20:41:53 +02:00
Yohan Boniface
34f00dfec1 tests: try to fix randomly failing test test_should_honour_fromZoom 2024-06-14 18:51:58 +02:00
Yohan Boniface
710b0cf1d9
Merge pull request #1857 from umap-project/geodatamine-plugin
Importers for custom external sources
2024-06-14 18:47:45 +02:00
Yohan Boniface
88b7e401c0
Merge pull request #1776 from umap-project/conditional-rules
feat: very minimal experimental conditional style rules
2024-06-14 18:40:37 +02:00
Yohan Boniface
e16d3a629c wip: fix tests 2024-06-14 18:40:05 +02:00
Yohan Boniface
ca16e5b2c9 wip: use new alert API after rebase 2024-06-14 18:40:05 +02:00
Yohan Boniface
e9f9c30639 wip: shorter labels in importer panel 2024-06-14 18:40:05 +02:00
Yohan Boniface
6f0d42d817 wip: re-center radio and checkbox inputs 2024-06-14 18:40:05 +02:00
Yohan Boniface
4ed7c45086 wip: use same label in buttons and title for "Import data"
The control says "Import data", let's keep this for now.
2024-06-14 18:40:05 +02:00
Yohan Boniface
e90ad4b9cd wip: sort themes in GeoDataMine importer 2024-06-14 18:40:05 +02:00
Yohan Boniface
d928195a5b wip: rename and document UMAP_IMPORTERS 2024-06-14 18:40:05 +02:00
Yohan Boniface
4127ffb891 wip: simplify a bit input CSS height 2024-06-14 18:40:05 +02:00
Yohan Boniface
4f1eb20be9 wip: move importers css to a dedicated file and refactor 2024-06-14 18:40:05 +02:00
Yohan Boniface
017e407758 wip: refactor margin bottom management in caption title 2024-06-14 18:40:05 +02:00
Yohan Boniface
3f6940cd5b wip: make sure importers are always in the same order
Given they are loaded from an import() call, the order they are
added in IMPORTERS in asynchronous, so we cannot rely on this order
2024-06-14 18:40:05 +02:00
Yohan Boniface
c51f8ae5ce wip: close importer dialog on escape in any 2024-06-14 18:40:05 +02:00
Yohan Boniface
460843b900 wip: add icons for importers 2024-06-14 18:40:05 +02:00
Yohan Boniface
115130083d wip: make sure we do not add an invalid overpass URL 2024-06-14 18:40:05 +02:00
Yohan Boniface
a70307ea29 wip: rename presets to datasets 2024-06-14 18:40:05 +02:00
Yohan Boniface
2c9623aff6 wip: refine geodatamine importer 2024-06-14 18:40:05 +02:00
Yohan Boniface
f1901ea84c wip: add margin-bottom on select element 2024-06-14 18:40:04 +02:00
Yohan Boniface
c1ab57d952 wip: add quick help for overpass importer expressions syntax 2024-06-14 18:38:44 +02:00
Yohan Boniface
c599082eca wip: deal with multiple dialog z-index 2024-06-14 18:38:44 +02:00
Yohan Boniface
b7dd771a7f wip: prettier 2024-06-14 18:38:44 +02:00
Yohan Boniface
c3ae3b5770 wip: minimal overpass importer
cf #112
2024-06-14 18:38:44 +02:00
Yohan Boniface
43f7e6a467 feat: allow to set the new layer name at import 2024-06-14 18:38:44 +02:00
Yohan Boniface
3998a88d43 wip: use dt/dd for import formats help box 2024-06-14 18:38:43 +02:00
Yohan Boniface
b0e9bbd86c wip: smaller dialog width 2024-06-14 18:38:30 +02:00
Yohan Boniface
35189cc9fb wip(importer): use only one submit button and be smarter to guess action 2024-06-14 18:38:30 +02:00
Yohan Boniface
8dd1c4bc7f wip: remove AutoComplete.URL (can't set class properties yet) 2024-06-14 18:38:30 +02:00
Yohan Boniface
1cefd4c9a7 wip: allow to control geodatamine baseUrl from settings 2024-06-14 18:38:30 +02:00
Yohan Boniface
d35e72dab9 wip: add aspoint attribute to geodatamine URL 2024-06-14 18:38:30 +02:00
Yohan Boniface
4e3228d114 feat: allow to create remote data layer from import panel
And make the form conditional.
2024-06-14 18:38:30 +02:00
Yohan Boniface
dbafe19b7f chore: declare ttl property in schema 2024-06-14 18:38:30 +02:00
Yohan Boniface
16fd5d8ca3 wip: typo 2024-06-14 18:38:30 +02:00
Yohan Boniface
342dcbabbe wip: no need for AVAILABLE_IMPORTERS 2024-06-14 18:38:30 +02:00
Yohan Boniface
f5eea1fe3f wip(naming): replace "plugin" by "importer"
We are not ready yet to talk about plugins
2024-06-14 18:38:30 +02:00
Yohan Boniface
93a189497b wip: control plugins from settings 2024-06-14 18:38:29 +02:00
Yohan Boniface
a7a214d7fe wip: deal with boundary types in geodatamine importer 2024-06-14 18:38:29 +02:00
Yohan Boniface
03ce8e90d6 wip: refactor importer 2024-06-14 18:38:29 +02:00
Yohan Boniface
c7cd87ec8a wip: move presets to importer plugins 2024-06-14 18:38:29 +02:00
Yohan Boniface
b657a5e9b3 wip: simpler importer API 2024-06-14 18:38:29 +02:00
Yohan Boniface
1e4de02694 wip: add a basic importer for commune shapes
Mainly wanted to have two improters to play with, in order to
better understand the common part, and thus the API we may define
between them and the importer panel.
2024-06-14 18:38:29 +02:00
Yohan Boniface
5b914c1bd2 wip: make it simpler to create an autocomplete class 2024-06-14 18:38:29 +02:00
Yohan Boniface
e51347e239 wip: very naive geodatamine and communes importers 2024-06-14 18:38:29 +02:00
Yohan Boniface
22ccd61d87 chore: remove empty help entry inclusion 2024-06-14 18:30:32 +02:00
Yohan Boniface
191fb6d853 chore: reviewing labels with Aurélie 2024-06-14 18:24:56 +02:00
Yohan Boniface
59dbde4f32 chore: make browser labels consistent 2024-06-14 18:24:54 +02:00
Yohan Boniface
d407949138 chore: be more explicit on browser modes 2024-06-14 18:24:10 +02:00
Yohan Boniface
e023321ee5
Merge pull request #1895 from umap-project/request-error-alert
fix: display an alert on any request error
2024-06-14 18:22:54 +02:00
Yohan Boniface
713be1538c chore: change alert CSS sizing 2024-06-14 18:21:44 +02:00
David Larlet
eda3823b3a
Merge pull request #1896 from umap-project/better-alerts
chore: overall alerts improvements
2024-06-14 11:51:46 -04:00
Yohan Boniface
7e86bc6db8 wip: do not display alerts from the maps in a content list page 2024-06-14 17:51:42 +02:00
Yohan Boniface
a2ba35cb93
Merge pull request #1894 from umap-project/fix-feature-edit-icon
fix: use correct icon class in edit feature panel
2024-06-14 17:31:42 +02:00
David Larlet
fb1407cdbf
chore: overall alerts improvements 2024-06-14 11:08:59 -04:00
Yohan Boniface
9dc11ec9f9 wip: fix tests after rebase on master 2024-06-14 16:55:36 +02:00
Yohan Boniface
6bdba1d0ed wip: do not use public class fields yet
Browser support is not enough.
2024-06-14 16:55:36 +02:00
Yohan Boniface
f10d345113 wip: use this.rules.getOption directly 2024-06-14 16:55:36 +02:00
Yohan Boniface
907ba09c45 wip: do not use private property yet
Support is not ready for us.
2024-06-14 16:55:36 +02:00
Yohan Boniface
05ea45acd2 wip: use getter/setter for Rule dynamic properties 2024-06-14 16:55:36 +02:00
Yohan Boniface
7367de5545 wip: deal with boolean values in conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
5ec944fce0 wip: deal with gt/lt and numbers in conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
129f46dd6d wip: add minimal tests for conditional rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
d6ae4744a6 wip: make sure we update rule when condition is changed
And make sure we redraw data on map
2024-06-14 16:55:36 +02:00
Yohan Boniface
805c09e34e wip: allow to deactivate a conditional rule from list 2024-06-14 16:55:36 +02:00
Yohan Boniface
a2d04b9ad4 wip: use direct imports instead of L. global 2024-06-14 16:55:36 +02:00
Yohan Boniface
4f8e453012 wip: allow to reorder rules 2024-06-14 16:55:36 +02:00
Yohan Boniface
05eab25da4 feat: very minimal experimental conditional style rules 2024-06-14 16:55:33 +02:00
Yohan Boniface
15de486425 fix: use correct icon class in edit feature panel 2024-06-14 15:31:16 +02:00
Yohan Boniface
d221a98e78 fix: display an alert on any request error
This used to be the case, but was changed by mistake in the
request refactor (swicht from xhr)
2024-06-14 15:24:01 +02:00
b94995120a refactoring(sync): Simplify the design of the sync engine.
Removes the concept of message dispatcher and message sender, all of
it can be done by the syncengine class, making it easier to grasp.
2024-06-14 00:20:59 +02:00
Yohan Boniface
e968261dff wip: fix more tests 2024-06-13 20:53:07 +02:00
Yohan Boniface
897d4f22f4 chore(tests): make sure we send a valid geojson when data is empty 2024-06-13 20:52:28 +02:00
David Larlet
b863beaec9
chore: fix tests 2024-06-13 14:13:42 -04:00
David Larlet
802d5d9d6c
chore: set default language for tests as en-GB 2024-06-13 13:41:00 -04:00
David Larlet
b197e067e8
fix: listen to the correct event for conflicts 2024-06-12 19:06:28 -04:00
David Larlet
8400b55b9d
chore: direct import of the Alert class in modules 2024-06-12 18:30:40 -04:00
David Larlet
cea2aee88f
chore: rename alert choice to conflict + CSS vars 2024-06-12 18:15:28 -04:00
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 tilelayerand 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
ff019d08de tests: Add getImpactsFromSchema tests 2024-04-15 23:46:43 +02:00
55cc7a098f refactor: Separate ui rendering from data updates
`U.SCHEMA` now contains an `impacts` key, which makes it possible to
specify what part of the UI is impacted by data changes.

A new `render` method has been added on `U.Map` and `U.DataLayer`, which
is used to rerender the proper parts of the UI depending on the passed
properties.

`U.FormBuilder` calls this `render()` method (if present), during form
changes.
2024-04-15 23:46:43 +02:00
David Larlet
8c4d887999
chore: bump the timeout for integration tests 2024-04-02 14:01:27 -04:00
05a25ed8fe [tests] actually add the tests 2024-04-01 11:12:44 +02:00
c4e527bf8e [chore] move umap utils to a module
Allow the tests to be run from inside a cli, without requiring a browser.
2024-04-01 11:12:44 +02:00
Yohan Boniface
a28db94f72 chore: move Feature.js integration tests to PW 2024-04-01 11:12:26 +02:00
Yohan Boniface
5d88e0e270 fix: fix L.locale no more set 2024-04-01 11:12:26 +02:00
Yohan Boniface
bf769f26c1 2.1.3 2024-03-27 22:22:28 +01:00
Yohan Boniface
90ced76a11 fix: honour old_id in datalayers= query string parameter
fix #1714
2024-03-27 22:10:38 +01:00
Yohan Boniface
c92d24100f
Merge pull request #1716 from umap-project/refactor-init-center
chore: refactor initCenter and controls ordering
2024-03-27 21:38:22 +01:00
Yohan Boniface
e0ff82298a chore: move table editor tests to PW 2024-03-27 21:06:46 +01:00
Yohan Boniface
4669053b18 chore: refactor initCenter and controls ordering
We had an issue (not in Github :p) where a map was not loading
because the defaultView was set to "data", and the layers were
remote data layers. In this case, when computing the remote URL,
we allow to replace georelated variables (like east, west, north,
lat…), which needs the map to have a view.
So:
- the default view was expecting the data to be loaded (="data")
- the data to be loaded needed a default view…

So instead of adding yet another call to _setDefaultView in an
edge case, we reordered the way we initialize the map elements:

- first we initialize the controls (because initCenter needs the
  locate control to exist)
- then we call initCenter
- then we initialize the tile layers (because the miniMap needs it
  to render itself)
- then we call renderControls
2024-03-27 20:14:43 +01:00
Yohan Boniface
ca8f7bf280 chore: add openmap fixture 2024-03-27 13:01:01 +01:00
Yohan Boniface
490a1a6e19 chore: port DataLayer.js tests to PW 2024-03-27 13:00:45 +01:00
Yohan Boniface
6a1fb44085 chore: add leaflet-configure.js in test loaded scripts 2024-03-27 13:00:45 +01:00
Yohan Boniface
b1fbccbdc5 chore: move Map and import tests to PW 2024-03-27 13:00:45 +01:00
Yohan Boniface
8392a748f1
Merge pull request #1704 from umap-project/remove-js-tests
chore: move js tests to PW
2024-03-26 08:55:20 +01:00
Yohan Boniface
c57469ee8b chore: move part of Polyline.js tests to PW 2024-03-26 08:50:55 +01:00
Yohan Boniface
1a2482f1e4 chore: move Polygon integration tests to PW 2024-03-26 08:50:55 +01:00
Yohan Boniface
bd438605f3 2.1.2 2024-03-25 20:13:54 +01:00
Yohan Boniface
99207638d9 fix: make sure to order datalayer versions by time
When we changed from id to uuid, we broke the sorting, which
supposed to have a constant id as string prefix from version to
the other.
2024-03-25 20:13:34 +01:00
Yohan Boniface
258262ae14 fix: do not try to read undefined message on error in request.js 2024-03-25 19:44:14 +01:00
Yohan Boniface
b9e27fc885 chore: change default playwright timeout to 5000ms 2024-03-25 15:20:16 +01:00
Yohan Boniface
5d8706c261 chore: remove Permissions tests from JS and update PW ones 2024-03-25 15:20:16 +01:00
Yohan Boniface
98f1e48df9 chore: move Choropleth tests to PW 2024-03-25 15:20:16 +01:00
Yohan Boniface
288c7983fc fix: Path.replace called instead str.replace 2024-03-25 14:40:48 +01:00
Yohan Boniface
8d9468df00 2.1.0 2024-03-25 13:55:08 +01:00
Yohan Boniface
9d407c6b06 i18n 2024-03-25 13:52:48 +01:00
David Larlet
d1784b64a8
fix: See all button closing panel
Fixes #1700
2024-03-22 12:30:04 -04:00
998732b070 chore: move URLs tests to mocha cli 2024-03-22 17:05:40 +01:00
Yohan Boniface
15964b2edb chore: lint 2024-03-22 11:16:32 +01:00
Yohan Boniface
f8d08ea539 chore: more pw tests 2024-03-22 11:10:56 +01:00
Yohan Boniface
9e3eef341e chore: move exports tests from js to playwright 2024-03-22 10:50:50 +01:00
Yohan Boniface
01e94d45dc
Merge pull request #1666 from umap-project/almet/fix-same-second-last-modified
fix: Replace Last-Modified with custom headers
2024-03-14 18:15:36 +01:00
Yohan Boniface
093eb6b56b
Merge pull request #1690 from umap-project/photon-location-bias
fix: only use location bias in search for close zoom
2024-03-14 14:53:30 +01:00
Yohan Boniface
375ef69b1b fix: only use location bias in search for close zoom
And add a lower location bias
2024-03-14 14:45:39 +01:00
David Larlet
d050a70017
Set CORS-related header for oEmbed and map views 2024-03-13 14:02:34 -04:00
Yohan Boniface
8cc6d58752
Merge pull request #1688 from umap-project/fix-oembed-i18n
fix: deal with i18n in oembed URLs
2024-03-13 18:36:14 +01:00
Yohan Boniface
409c79415f fix: deal with i18n in oembed URLs 2024-03-13 18:03:20 +01:00
Yohan Boniface
d431acd4e3
Merge pull request #1669 from umap-project/make-remodata-async
fix: make sure we wait for remote data before sending "dataloaded" event
2024-03-12 09:15:12 +01:00
29992e10e6 fix: Replace Last-Modified with custom headers.
`X-Datalayer-Version` and `X-Datalayer-Reference` are now used instead
of the `Last-Modified` and `If-Unmodified-Since` headers.

`Last-Modified` is granular to the second, which led to problems with
the versionning. The new system uses timestamps instead.

This commit also changes the way versions were created. Previously,
the associated version was coming from two different places:
the last modified time from the filesystem and a `time.time()` call
done when saving the model, which could result in the two getting
out of sync.
2024-03-08 22:34:54 +01:00
9071d92986 chore: ensure merge + assigning ids are rejected
The current code already ensures that items
changed in the reference weren't also changed
in the latest changes, so we are covered.
2024-03-08 18:01:58 +01:00
Yohan Boniface
6396ee5e58
Merge pull request #1661 from umap-project/schema-i18n
Add minimal schema module
2024-03-05 17:57:40 +01:00
Yohan Boniface
6ed5ebc9fb
Merge pull request #1630 from umap-project/datalayer-uuids
chore: replace datalayer ids with uuids
2024-03-05 17:26:50 +01:00
Yohan Boniface
bfcdfdcfc1 chore: bump ruff 2024-03-05 17:23:49 +01:00
b0c1f56979 chore: factorize json.dumps in an util function.
In order to use the Django JSON Encoder by default.
2024-03-05 11:25:37 +01:00
1b41ff0ddc chore: Rename datalayer id to old_id 2024-03-05 11:23:12 +01:00
Yohan Boniface
e7bd94a099 wip: do not expose UMAP_SCHEMA for now 2024-03-04 17:43:40 +01:00
Yohan Boniface
24e46847b7 chore: use &rcub; for consistency 2024-03-04 17:43:40 +01:00
David Larlet
908750b42b chore: escape help messages with curly brackets 2024-03-04 17:43:40 +01:00
David Larlet
ba41ae4000 fix: wait for agnocomplete in test 2024-03-04 17:43:40 +01:00
David Larlet
5295e931a5 wip(forms): remove defaultOptions from builder 2024-03-04 17:43:40 +01:00
Yohan Boniface
4cdf682706 wip(forms): Try to be smart and use MultiChoice only for short labels 2024-03-04 17:43:40 +01:00
Yohan Boniface
a7a854dd74 wip: move default options to schema
This commit also introduce a new settings UMAP_SCHEMA, that could
be used to easily override schema default, like the default color, the
default path weigth and so on. I'm not documenting yet, because I'm
not yet totally sure we want this.
2024-03-04 17:43:40 +01:00
Yohan Boniface
da945cf733 wip: remove Leaflet.i18n from frontend and expose L._
But we keep Leaflet.i18n for now, as we use its script to collect
strings (this script to be tweaked to support also `translate`).
2024-03-04 17:43:40 +01:00
Yohan Boniface
fcf22195cb chore: move defaultOptions from forms to schema 2024-03-04 17:43:38 +01:00
David Larlet
68f3a9686a chore: Extract a schema module from Map 2024-03-04 17:43:15 +01:00
David Larlet
a6a1959c09 chore: Integrate i18n changes from Leaflet PR
See https://github.com/Leaflet/Leaflet/pull/9281
2024-03-04 17:42:23 +01:00
Yohan Boniface
fa0208519e
Merge pull request #1649 from umap-project/add-features-ids
chore: add ids on features
2024-03-04 11:18:39 +01:00
Yohan Boniface
17120537e3 fix: make sure we wait for remote data before sending "dataloaded" event 2024-03-01 18:39:59 +01:00
Yohan Boniface
c658b28f6e 2.0.4 2024-03-01 18:18:07 +01:00
Yohan Boniface
3e651956f1 2.0.3 2024-03-01 17:55:05 +01:00
Yohan Boniface
a67ee1d1c0 i18n 2024-03-01 17:54:18 +01:00
Yohan Boniface
aa25867517 chore: fix js tests 2024-03-01 17:52:00 +01:00
Yohan Boniface
40d0095b3c
Merge pull request #1658 from umap-project/catch-mail-error
fix: catch SMTPException when sending secret edit link
2024-03-01 17:45:18 +01:00
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
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
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
f82897f202 chore: make the datalayer uuid migration reversible 2024-02-26 23:33:33 +01:00
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
ffe7f18af1 chore: enhance naming in tests 2024-02-26 15:03:37 +01:00
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
ff4870730a chore: ensure old-format layers' versions are returned 2024-02-26 15:01:19 +01:00
99d7b8a6e1 chore: ruff format 2024-02-26 15:01:19 +01:00
f869d77f2c chore: update migrations 2024-02-26 15:01:19 +01:00
d18a32b5d3 chore: use path rather than re_path in urls.py 2024-02-26 15:01:19 +01:00
1415f96c6f chore: fix tests 2024-02-26 15:01:19 +01:00
c5fd72fe2b chore: use Django JSON serializer when calling json.dumps 2024-02-26 15:01:19 +01:00
c46f59e3dd chore: Use datalayers' UUIDs in the views 2024-02-26 15:01:19 +01:00
6b7efda37a chore: replace datalayer ids with uuids 2024-02-26 15:01:19 +01:00
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
702713e768 chore: add missing string parameter 2024-02-22 17:10:52 +01:00
f9175e98b9 chore: change generateID() implementation 2024-02-22 16:45:21 +01:00
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