umap-project 2.7.3__py3-none-any.whl → 2.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. umap/__init__.py +1 -1
  2. umap/forms.py +4 -14
  3. umap/locale/am_ET/LC_MESSAGES/django.mo +0 -0
  4. umap/locale/am_ET/LC_MESSAGES/django.po +278 -151
  5. umap/locale/ar/LC_MESSAGES/django.mo +0 -0
  6. umap/locale/ar/LC_MESSAGES/django.po +335 -141
  7. umap/locale/bg/LC_MESSAGES/django.mo +0 -0
  8. umap/locale/bg/LC_MESSAGES/django.po +279 -152
  9. umap/locale/br/LC_MESSAGES/django.mo +0 -0
  10. umap/locale/br/LC_MESSAGES/django.po +95 -79
  11. umap/locale/ca/LC_MESSAGES/django.mo +0 -0
  12. umap/locale/ca/LC_MESSAGES/django.po +85 -68
  13. umap/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  14. umap/locale/cs_CZ/LC_MESSAGES/django.po +78 -66
  15. umap/locale/da/LC_MESSAGES/django.mo +0 -0
  16. umap/locale/da/LC_MESSAGES/django.po +280 -153
  17. umap/locale/de/LC_MESSAGES/django.mo +0 -0
  18. umap/locale/de/LC_MESSAGES/django.po +80 -64
  19. umap/locale/el/LC_MESSAGES/django.mo +0 -0
  20. umap/locale/el/LC_MESSAGES/django.po +82 -66
  21. umap/locale/en/LC_MESSAGES/django.po +73 -61
  22. umap/locale/es/LC_MESSAGES/django.mo +0 -0
  23. umap/locale/es/LC_MESSAGES/django.po +75 -63
  24. umap/locale/et/LC_MESSAGES/django.mo +0 -0
  25. umap/locale/et/LC_MESSAGES/django.po +280 -153
  26. umap/locale/eu/LC_MESSAGES/django.mo +0 -0
  27. umap/locale/eu/LC_MESSAGES/django.po +82 -66
  28. umap/locale/fa_IR/LC_MESSAGES/django.mo +0 -0
  29. umap/locale/fa_IR/LC_MESSAGES/django.po +80 -64
  30. umap/locale/fi/LC_MESSAGES/django.mo +0 -0
  31. umap/locale/fi/LC_MESSAGES/django.po +278 -151
  32. umap/locale/fr/LC_MESSAGES/django.mo +0 -0
  33. umap/locale/fr/LC_MESSAGES/django.po +75 -63
  34. umap/locale/gl/LC_MESSAGES/django.mo +0 -0
  35. umap/locale/gl/LC_MESSAGES/django.po +280 -153
  36. umap/locale/he/LC_MESSAGES/django.mo +0 -0
  37. umap/locale/he/LC_MESSAGES/django.po +281 -154
  38. umap/locale/hu/LC_MESSAGES/django.mo +0 -0
  39. umap/locale/hu/LC_MESSAGES/django.po +80 -64
  40. umap/locale/is/LC_MESSAGES/django.mo +0 -0
  41. umap/locale/is/LC_MESSAGES/django.po +280 -153
  42. umap/locale/it/LC_MESSAGES/django.mo +0 -0
  43. umap/locale/it/LC_MESSAGES/django.po +82 -66
  44. umap/locale/ja/LC_MESSAGES/django.mo +0 -0
  45. umap/locale/ja/LC_MESSAGES/django.po +280 -153
  46. umap/locale/ko/LC_MESSAGES/django.mo +0 -0
  47. umap/locale/ko/LC_MESSAGES/django.po +280 -153
  48. umap/locale/lt/LC_MESSAGES/django.mo +0 -0
  49. umap/locale/lt/LC_MESSAGES/django.po +280 -153
  50. umap/locale/ms/LC_MESSAGES/django.mo +0 -0
  51. umap/locale/ms/LC_MESSAGES/django.po +82 -66
  52. umap/locale/nl/LC_MESSAGES/django.mo +0 -0
  53. umap/locale/nl/LC_MESSAGES/django.po +280 -153
  54. umap/locale/pl/LC_MESSAGES/django.mo +0 -0
  55. umap/locale/pl/LC_MESSAGES/django.po +82 -66
  56. umap/locale/pt/LC_MESSAGES/django.mo +0 -0
  57. umap/locale/pt/LC_MESSAGES/django.po +75 -63
  58. umap/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  59. umap/locale/pt_BR/LC_MESSAGES/django.po +280 -153
  60. umap/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  61. umap/locale/pt_PT/LC_MESSAGES/django.po +280 -153
  62. umap/locale/ru/LC_MESSAGES/django.mo +0 -0
  63. umap/locale/ru/LC_MESSAGES/django.po +280 -153
  64. umap/locale/sk_SK/LC_MESSAGES/django.mo +0 -0
  65. umap/locale/sk_SK/LC_MESSAGES/django.po +280 -153
  66. umap/locale/sl/LC_MESSAGES/django.mo +0 -0
  67. umap/locale/sl/LC_MESSAGES/django.po +280 -153
  68. umap/locale/sr/LC_MESSAGES/django.mo +0 -0
  69. umap/locale/sr/LC_MESSAGES/django.po +280 -153
  70. umap/locale/sv/LC_MESSAGES/django.mo +0 -0
  71. umap/locale/sv/LC_MESSAGES/django.po +81 -65
  72. umap/locale/th_TH/LC_MESSAGES/django.mo +0 -0
  73. umap/locale/th_TH/LC_MESSAGES/django.po +257 -185
  74. umap/locale/tr/LC_MESSAGES/django.mo +0 -0
  75. umap/locale/tr/LC_MESSAGES/django.po +280 -153
  76. umap/locale/uk_UA/LC_MESSAGES/django.mo +0 -0
  77. umap/locale/uk_UA/LC_MESSAGES/django.po +280 -153
  78. umap/locale/vi/LC_MESSAGES/django.mo +0 -0
  79. umap/locale/vi/LC_MESSAGES/django.po +278 -151
  80. umap/locale/zh/LC_MESSAGES/django.mo +0 -0
  81. umap/locale/zh/LC_MESSAGES/django.po +278 -151
  82. umap/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  83. umap/locale/zh_TW/LC_MESSAGES/django.po +97 -81
  84. umap/management/commands/empty_trash.py +35 -0
  85. umap/management/commands/migrate_to_S3.py +29 -0
  86. umap/migrations/0023_alter_datalayer_uuid.py +19 -0
  87. umap/migrations/0024_alter_map_share_status.py +30 -0
  88. umap/migrations/0025_alter_datalayer_geojson.py +24 -0
  89. umap/models.py +68 -116
  90. umap/settings/base.py +23 -3
  91. umap/settings/local_s3.py +45 -0
  92. umap/static/umap/base.css +3 -603
  93. umap/static/umap/content.css +5 -3
  94. umap/static/umap/css/bar.css +202 -0
  95. umap/static/umap/css/form.css +620 -0
  96. umap/static/umap/css/icon.css +21 -1
  97. umap/static/umap/css/popup.css +125 -0
  98. umap/static/umap/img/16-white.svg +16 -4
  99. umap/static/umap/img/16.svg +1 -1
  100. umap/static/umap/img/source/16-white.svg +46 -45
  101. umap/static/umap/img/source/16.svg +1 -753
  102. umap/static/umap/js/components/fragment.js +3 -1
  103. umap/static/umap/js/modules/browser.js +20 -19
  104. umap/static/umap/js/modules/caption.js +21 -22
  105. umap/static/umap/js/modules/data/features.js +120 -78
  106. umap/static/umap/js/modules/data/layer.js +195 -153
  107. umap/static/umap/js/modules/facets.js +9 -9
  108. umap/static/umap/js/modules/formatter.js +5 -5
  109. umap/static/umap/js/modules/global.js +4 -52
  110. umap/static/umap/js/modules/help.js +18 -21
  111. umap/static/umap/js/modules/importer.js +133 -56
  112. umap/static/umap/js/modules/importers/cadastrefr.js +4 -0
  113. umap/static/umap/js/modules/importers/geodatamine.js +3 -3
  114. umap/static/umap/js/modules/importers/overpass.js +5 -0
  115. umap/static/umap/js/modules/permissions.js +85 -87
  116. umap/static/umap/js/modules/rendering/icon.js +2 -1
  117. umap/static/umap/js/modules/rendering/layers/base.js +15 -15
  118. umap/static/umap/js/modules/rendering/layers/classified.js +1 -1
  119. umap/static/umap/js/modules/rendering/layers/cluster.js +1 -1
  120. umap/static/umap/js/modules/rendering/layers/heat.js +1 -1
  121. umap/static/umap/js/modules/rendering/map.js +390 -0
  122. umap/static/umap/js/modules/rendering/popup.js +19 -19
  123. umap/static/umap/js/modules/rendering/template.js +88 -21
  124. umap/static/umap/js/modules/rendering/ui.js +63 -14
  125. umap/static/umap/js/modules/request.js +2 -2
  126. umap/static/umap/js/modules/rules.js +22 -25
  127. umap/static/umap/js/modules/saving.js +47 -0
  128. umap/static/umap/js/modules/schema.js +6 -0
  129. umap/static/umap/js/modules/share.js +21 -24
  130. umap/static/umap/js/modules/slideshow.js +24 -20
  131. umap/static/umap/js/modules/sync/updaters.js +7 -9
  132. umap/static/umap/js/modules/tableeditor.js +20 -19
  133. umap/static/umap/js/modules/ui/bar.js +196 -0
  134. umap/static/umap/js/modules/ui/dialog.js +5 -0
  135. umap/static/umap/js/modules/ui/panel.js +10 -9
  136. umap/static/umap/js/modules/umap.js +1691 -0
  137. umap/static/umap/js/modules/urls.js +2 -2
  138. umap/static/umap/js/modules/utils.js +22 -6
  139. umap/static/umap/js/umap.controls.js +81 -305
  140. umap/static/umap/js/umap.core.js +29 -50
  141. umap/static/umap/js/umap.forms.js +78 -27
  142. umap/static/umap/keycloak.png +0 -0
  143. umap/static/umap/locale/am_ET.js +26 -10
  144. umap/static/umap/locale/am_ET.json +26 -10
  145. umap/static/umap/locale/ar.js +26 -10
  146. umap/static/umap/locale/ar.json +26 -10
  147. umap/static/umap/locale/ast.js +26 -10
  148. umap/static/umap/locale/ast.json +26 -10
  149. umap/static/umap/locale/bg.js +26 -10
  150. umap/static/umap/locale/bg.json +26 -10
  151. umap/static/umap/locale/br.js +27 -20
  152. umap/static/umap/locale/br.json +27 -20
  153. umap/static/umap/locale/ca.js +32 -29
  154. umap/static/umap/locale/ca.json +32 -29
  155. umap/static/umap/locale/cs_CZ.js +24 -17
  156. umap/static/umap/locale/cs_CZ.json +24 -17
  157. umap/static/umap/locale/da.js +26 -10
  158. umap/static/umap/locale/da.json +26 -10
  159. umap/static/umap/locale/de.js +21 -14
  160. umap/static/umap/locale/de.json +21 -14
  161. umap/static/umap/locale/el.js +28 -12
  162. umap/static/umap/locale/el.json +28 -12
  163. umap/static/umap/locale/en.js +14 -9
  164. umap/static/umap/locale/en.json +14 -9
  165. umap/static/umap/locale/en_US.json +26 -10
  166. umap/static/umap/locale/es.js +16 -13
  167. umap/static/umap/locale/es.json +16 -13
  168. umap/static/umap/locale/et.js +26 -10
  169. umap/static/umap/locale/et.json +26 -10
  170. umap/static/umap/locale/eu.js +16 -9
  171. umap/static/umap/locale/eu.json +16 -9
  172. umap/static/umap/locale/fa_IR.js +16 -9
  173. umap/static/umap/locale/fa_IR.json +16 -9
  174. umap/static/umap/locale/fi.js +26 -10
  175. umap/static/umap/locale/fi.json +26 -10
  176. umap/static/umap/locale/fr.js +14 -9
  177. umap/static/umap/locale/fr.json +14 -9
  178. umap/static/umap/locale/gl.js +26 -10
  179. umap/static/umap/locale/gl.json +26 -10
  180. umap/static/umap/locale/he.js +26 -10
  181. umap/static/umap/locale/he.json +26 -10
  182. umap/static/umap/locale/hr.js +26 -10
  183. umap/static/umap/locale/hr.json +26 -10
  184. umap/static/umap/locale/hu.js +16 -9
  185. umap/static/umap/locale/hu.json +16 -9
  186. umap/static/umap/locale/id.js +26 -10
  187. umap/static/umap/locale/id.json +26 -10
  188. umap/static/umap/locale/is.js +26 -10
  189. umap/static/umap/locale/is.json +26 -10
  190. umap/static/umap/locale/it.js +26 -10
  191. umap/static/umap/locale/it.json +26 -10
  192. umap/static/umap/locale/ja.js +26 -10
  193. umap/static/umap/locale/ja.json +26 -10
  194. umap/static/umap/locale/ko.js +26 -10
  195. umap/static/umap/locale/ko.json +26 -10
  196. umap/static/umap/locale/lt.js +26 -10
  197. umap/static/umap/locale/lt.json +26 -10
  198. umap/static/umap/locale/ms.js +28 -12
  199. umap/static/umap/locale/ms.json +28 -12
  200. umap/static/umap/locale/nl.js +28 -12
  201. umap/static/umap/locale/nl.json +28 -12
  202. umap/static/umap/locale/no.js +26 -10
  203. umap/static/umap/locale/no.json +26 -10
  204. umap/static/umap/locale/pl.js +28 -12
  205. umap/static/umap/locale/pl.json +28 -12
  206. umap/static/umap/locale/pl_PL.json +26 -10
  207. umap/static/umap/locale/pt.js +16 -9
  208. umap/static/umap/locale/pt.json +16 -9
  209. umap/static/umap/locale/pt_BR.js +26 -10
  210. umap/static/umap/locale/pt_BR.json +26 -10
  211. umap/static/umap/locale/pt_PT.js +16 -9
  212. umap/static/umap/locale/pt_PT.json +16 -9
  213. umap/static/umap/locale/ro.js +26 -10
  214. umap/static/umap/locale/ro.json +26 -10
  215. umap/static/umap/locale/ru.js +26 -10
  216. umap/static/umap/locale/ru.json +26 -10
  217. umap/static/umap/locale/si.js +7 -7
  218. umap/static/umap/locale/si.json +7 -7
  219. umap/static/umap/locale/sk_SK.js +26 -10
  220. umap/static/umap/locale/sk_SK.json +26 -10
  221. umap/static/umap/locale/sl.js +26 -10
  222. umap/static/umap/locale/sl.json +26 -10
  223. umap/static/umap/locale/sr.js +26 -10
  224. umap/static/umap/locale/sr.json +26 -10
  225. umap/static/umap/locale/sv.js +27 -11
  226. umap/static/umap/locale/sv.json +27 -11
  227. umap/static/umap/locale/th_TH.js +28 -12
  228. umap/static/umap/locale/th_TH.json +28 -12
  229. umap/static/umap/locale/tr.js +26 -10
  230. umap/static/umap/locale/tr.json +26 -10
  231. umap/static/umap/locale/uk_UA.js +26 -10
  232. umap/static/umap/locale/uk_UA.json +26 -10
  233. umap/static/umap/locale/vi.js +26 -10
  234. umap/static/umap/locale/vi.json +26 -10
  235. umap/static/umap/locale/vi_VN.json +26 -10
  236. umap/static/umap/locale/zh.js +26 -10
  237. umap/static/umap/locale/zh.json +26 -10
  238. umap/static/umap/locale/zh_CN.json +26 -10
  239. umap/static/umap/locale/zh_TW.Big5.json +26 -10
  240. umap/static/umap/locale/zh_TW.js +34 -27
  241. umap/static/umap/locale/zh_TW.json +34 -27
  242. umap/static/umap/map.css +39 -530
  243. umap/static/umap/unittests/URLs.js +15 -15
  244. umap/static/umap/unittests/utils.js +23 -1
  245. umap/static/umap/vars.css +2 -1
  246. umap/static/umap/vendors/formbuilder/Leaflet.FormBuilder.js +5 -1
  247. umap/storage/__init__.py +3 -0
  248. umap/storage/fs.py +101 -0
  249. umap/storage/s3.py +61 -0
  250. umap/templates/base.html +2 -0
  251. umap/templates/registration/login.html +7 -6
  252. umap/templates/umap/components/alerts/alert.html +4 -0
  253. umap/templates/umap/css.html +6 -0
  254. umap/templates/umap/js.html +3 -2
  255. umap/templates/umap/map_init.html +6 -5
  256. umap/templates/umap/user_dashboard.html +20 -19
  257. umap/tests/base.py +5 -1
  258. umap/tests/fixtures/test_upload_simple_marker.json +19 -0
  259. umap/tests/integration/conftest.py +2 -1
  260. umap/tests/integration/test_anonymous_owned_map.py +18 -10
  261. umap/tests/integration/test_browser.py +16 -1
  262. umap/tests/integration/test_dashboard.py +1 -1
  263. umap/tests/integration/test_edit_datalayer.py +29 -7
  264. umap/tests/integration/test_import.py +28 -6
  265. umap/tests/integration/test_optimistic_merge.py +31 -8
  266. umap/tests/integration/test_owned_map.py +22 -16
  267. umap/tests/integration/test_popup.py +44 -0
  268. umap/tests/integration/test_save.py +35 -0
  269. umap/tests/integration/test_view_marker.py +12 -0
  270. umap/tests/integration/test_view_polyline.py +257 -0
  271. umap/tests/integration/test_websocket_sync.py +81 -9
  272. umap/tests/test_dashboard.py +82 -0
  273. umap/tests/test_datalayer.py +6 -7
  274. umap/tests/test_datalayer_s3.py +135 -0
  275. umap/tests/test_datalayer_views.py +28 -10
  276. umap/tests/test_empty_trash.py +34 -0
  277. umap/tests/test_map.py +12 -3
  278. umap/tests/test_map_views.py +69 -37
  279. umap/tests/test_statics.py +1 -1
  280. umap/tests/test_team_views.py +35 -1
  281. umap/tests/test_views.py +31 -52
  282. umap/urls.py +3 -3
  283. umap/views.py +126 -90
  284. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/METADATA +16 -13
  285. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/RECORD +289 -269
  286. umap/management/commands/purge_purgatory.py +0 -28
  287. umap/static/umap/js/umap.js +0 -1903
  288. umap/tests/test_purge_purgatory.py +0 -25
  289. /umap/{storage.py → storage/staticfiles.py} +0 -0
  290. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/WHEEL +0 -0
  291. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/entry_points.txt +0 -0
  292. {umap_project-2.7.3.dist-info → umap_project-2.8.0.dist-info}/licenses/LICENSE +0 -0
umap/static/umap/map.css CHANGED
@@ -45,9 +45,6 @@ html[dir="rtl"] .leaflet-tooltip-pane > * {
45
45
  .umap-edit-enabled {
46
46
  --current-header-height: var(--header-height);
47
47
  }
48
- .umap-caption-bar-enabled {
49
- --current-footer-height: var(--footer-height);
50
- }
51
48
  .leaflet-top {
52
49
  top: var(--current-header-height);
53
50
  }
@@ -166,7 +163,7 @@ html[dir="rtl"] .leaflet-tooltip-pane > * {
166
163
  min-height: 23px;
167
164
  height: 23px;
168
165
  }
169
- .leaflet-control-edit-enable [type="button"]:before {
166
+ .edit-enable [type="button"]:before {
170
167
  content: ' ';
171
168
  width: 24px;
172
169
  height: 24px;
@@ -175,7 +172,7 @@ html[dir="rtl"] .leaflet-tooltip-pane > * {
175
172
  background-image: url('./img/16-white.svg');
176
173
  background-position: -48px -48px;
177
174
  }
178
- .leaflet-control-edit-enable [type="button"] {
175
+ .edit-enable [type="button"] {
179
176
  width: initial;
180
177
  padding: 0 20px;
181
178
  background-color: #353c3e;
@@ -187,7 +184,7 @@ html[dir="rtl"] .leaflet-tooltip-pane > * {
187
184
  display: block;
188
185
  }
189
186
  .leaflet-control-toolbar .leaflet-toolbar-icon.dark:hover,
190
- .leaflet-control-edit-enable [type="button"]:hover {
187
+ .edit-enable [type="button"]:hover {
191
188
  background-color: #4d5759;
192
189
  }
193
190
  .umap-permanent-credits-container {
@@ -476,245 +473,12 @@ ul.photon-autocomplete {
476
473
  .umap-edit-actions li:hover {
477
474
  background-color: #353c3e;
478
475
  }
479
-
480
-
481
- /* ********************************* */
482
- /* Edit main toolbox */
483
- /* ********************************* */
484
- .umap-main-edit-toolbox [type="button"] {
485
- color: #fff;
486
- font-size: 1.2em;
487
- border: none;
488
- background-color: var(--color-darkGray);
489
- width: auto;
490
- margin-bottom: 0;
491
- }
492
- .umap-main-edit-toolbox [type="button"]:hover {
493
- text-decoration: underline;
494
- }
495
-
496
- .leaflet-container [type="button"].umap-help-link {
497
- font-size: 12px;
498
- padding-bottom: 3px;
499
- background-color: inherit;
500
- }
501
- .leaflet-container .leaflet-control-edit-save,
502
- .leaflet-container .leaflet-control-edit-cancel,
503
- .leaflet-container .leaflet-control-edit-disable,
504
- .leaflet-container .leaflet-control-connected-peers
505
- {
506
- display: block;
507
- border: none;
508
- font-size: 12px;
509
- border-radius: 20px;
510
- color: #f8f8f8;
511
- height: 32px;
512
- line-height: 30px;
513
- padding: 0 20px;
514
- }
515
- .leaflet-container .leaflet-control-connected-peers,
516
- .dark [type="button"].leaflet-control-connected-peers:hover
517
- {
518
- background-color: var(--color-lightCyan);
519
- color: var(--color-dark);
520
- }
521
-
522
- .leaflet-container .leaflet-control-edit-disable:before,
523
- .leaflet-container .leaflet-control-edit-save:before,
524
- .leaflet-container .leaflet-control-edit-cancel:before,
525
- .leaflet-container .leaflet-control-connected-peers:before {
526
- display: inline-block;
527
- width: 19px;
528
- height: 24px;
529
- background-position: -50px -122px;
530
- background-repeat: no-repeat;
531
- background-image: url('./img/16-white.svg');
532
- vertical-align: middle;
533
- content: ' ';
534
- text-align: center;
535
- }
536
-
537
- .leaflet-container .leaflet-control-connected-peers:before {
538
- background-image: url('./img/16.svg');
539
- }
540
-
541
- .leaflet-container .leaflet-control-edit-disable span,
542
- .leaflet-container .leaflet-control-edit-save span,
543
- .leaflet-container .leaflet-control-edit-cancel span,
544
- .leaflet-container .leaflet-control-connected-peers span{
545
- margin-inline-start: 10px;
546
- }
547
- .leaflet-container .leaflet-control-edit-save:before {
548
- background-position: -148px -2px;
549
- }
550
- .leaflet-container .leaflet-control-edit-disable:before {
551
- background-position: -50px -25px;
552
- }
553
- .leaflet-container .leaflet-control-connected-peers:before {
554
- background-position: -2px -95px;
555
- }
556
- .leaflet-container .leaflet-control-edit-cancel,
557
- .leaflet-container .leaflet-control-edit-disable,
558
- .leaflet-container .leaflet-control-connected-peers{
559
- border: 0.5px solid rgba(153, 153, 153, 0.40);
560
- }
561
- .leaflet-container .leaflet-control-edit-cancel:hover,
562
- .leaflet-container .leaflet-control-edit-disable:hover {
563
- border: 0.5px solid rgba(153, 153, 153, 0.80);
564
- text-decoration: none;
565
- }
566
- .leaflet-container .leaflet-control-edit-save {
567
- opacity: 0.5;
568
- cursor: not-allowed;
569
- border-radius: 16px;
570
- border: 0.5px solid rgba(153, 153, 153, 0.40);
571
- background: rgba(153, 153, 153, 0.10);
572
- }
573
- .dark [type="button"].leaflet-control-edit-save:hover {
574
- background: rgba(153, 153, 153, 0.10);
575
- text-decoration: none;
576
- }
577
- .umap-is-dirty .leaflet-control-edit-save {
578
- opacity: 1;
579
- cursor: pointer;
580
- border: 0.5px solid rgba(66, 236, 230, 0.40);
581
- background: rgba(66, 236, 230, 0.10);
582
- color: #42ECE6;
583
- }
584
- .umap-is-dirty .leaflet-control-edit-save:before {
585
- background-position: -148px -26px;
586
- }
587
- .umap-is-dirty .dark [type="button"].leaflet-control-edit-save:hover {
588
- border-color: rgba(66, 236, 230, 0.80);
589
- background: rgba(66, 236, 230, 0.10);
590
- }
591
- .leaflet-container .leaflet-control-edit-save,
592
- .leaflet-container .leaflet-control-edit-cancel,
593
- .leaflet-container .leaflet-control-edit-disable,
594
- .umap-edit-enabled .leaflet-control-edit-enable {
595
- display: none;
596
- }
597
- .umap-edit-enabled .leaflet-control-edit-save,
598
- .umap-edit-enabled .leaflet-control-edit-disable,
599
- .umap-edit-enabled .umap-is-dirty .leaflet-control-edit-cancel {
600
- display: inline-block;
601
- }
602
- .umap-is-dirty .leaflet-control-edit-disable {
603
- display: none;
604
- }
605
- .umap-caption-bar {
606
- display: none;
607
- }
608
- .umap-main-edit-toolbox {
609
- top: -46px;
610
- position: absolute;
611
- width: 100%;
612
- left: 0;
613
- right: 0;
614
- height: 46px;
615
- padding: 0 10px;
616
- text-align: start;
617
- line-height: var(--control-size);
618
- cursor: auto;
619
- border-bottom: 1px solid #222;
620
- z-index: var(--zindex-panels);
621
- display: flex;
622
- justify-content: space-between;
623
- background-color: var(--background-color);
624
- color: var(--text-color);
625
- }
626
- .umap-left-edit-toolbox,
627
- .umap-right-edit-toolbox {
628
- display: flex;
629
- column-gap: 10px;
630
- }
631
- .umap-right-edit-toolbox {
632
- align-items: baseline;
633
- }
634
-
635
- .umap-main-edit-toolbox .logo {
636
- width: 39px;
637
- height: 100%;
638
- }
639
- .umap-main-edit-toolbox .logo a {
640
- background-image: url('./img/logo_small.svg');
641
- background-position: 0 center;
642
- background-repeat: no-repeat;
643
- display: inline-block;
644
- width: 39px;
645
- height: 100%;
646
- vertical-align: middle;
647
- text-indent: -9999px;
648
- }
649
- .umap-main-edit-toolbox .map-name {
650
- display: inline-block;
651
- overflow: hidden;
652
- white-space: nowrap;
653
- text-overflow: ellipsis;
654
- font-weight: bold;
655
- text-align: start;
656
- }
657
- .umap-main-edit-toolbox .share-status {
658
- font-size: 1em;
659
- font-style: italic;
660
- overflow: hidden;
661
- text-overflow: ellipsis;
662
- }
663
- .map-name:after {
664
- content: '\00a0';
665
- padding-inline-start: 3px;
666
- width: 1ch;
667
- display: inline-block;
668
- }
669
- .umap-is-dirty .map-name:after {
670
- content: '*';
671
- }
672
- .umap-edit-enabled .umap-main-edit-toolbox {
673
- top: 0;
674
- }
675
- .umap-caption-bar h3,
676
- .umap-main-edit-toolbox h3 {
677
- display: inline;
678
- }
679
- .umap-caption-bar button {
680
- margin-inline-start: 10px;
681
- }
682
- .umap-caption-bar button + button:before {
683
- content: '|';
684
- padding-inline-end: 10px;
685
- }
686
- .umap-main-edit-toolbox .umap-user {
687
- color: #fff;
688
- }
689
- .umap-main-edit-toolbox .umap-user:hover {
690
- text-decoration: underline;
691
- }
692
- .umap-main-edit-toolbox .umap-user:after {
693
- content: '|';
694
- padding-inline-start: 20px;
695
- display: inline-block; /* Prevents underline on hover. */
696
- }
697
- .umap-caption-bar-enabled .umap-caption-bar {
698
- display: block;
699
- height: var(--footer-height);
700
- background-color: #fff;
701
- width: 100%;
702
- position: absolute;
703
- left: 0;
704
- bottom: 0;
705
- right: 0;
706
- padding: var(--gutter);
707
- text-align: start;
708
- line-height: 100%;
709
- cursor: auto;
710
- border-top: 1px solid var(--color-lightGray);
711
- opacity: 0.93;
712
- z-index: var(--zindex-panels);
713
- }
714
476
  .umap-help {
715
477
  font-style: italic;
716
478
  }
717
479
 
480
+
481
+
718
482
  .umap-datalayer-version {
719
483
  padding: 5px 0;
720
484
  border-bottom: 1px solid #202425;
@@ -1025,54 +789,6 @@ a.umap-control-caption,
1025
789
  text-align: center;
1026
790
  }
1027
791
 
1028
- /* ********************************* */
1029
- /* Popup */
1030
- /* ********************************* */
1031
- .umap-popup {
1032
- display: flex;
1033
- flex-flow: column nowrap;
1034
- height:100%;
1035
- }
1036
-
1037
- .umap-popup-footer {
1038
- position: relative;
1039
- background-color: rgb(68, 68, 68);
1040
- color: white;
1041
- display: flex;
1042
- width: 100%;
1043
- margin-top: auto;
1044
- min-width: 99px;
1045
- border-radius: 2px;
1046
- max-height: 24px;
1047
- justify-content: space-around;
1048
- }
1049
- .umap-popup a:hover {
1050
- text-decoration: underline;
1051
- }
1052
- .popup-title {
1053
- display: flex;
1054
- align-items: center;
1055
- }
1056
- .popup-title .icon {
1057
- margin: 5px;
1058
- }
1059
- a[href^='mailto']::before {
1060
- content: '✉︎ ';
1061
- }
1062
- a[href^='tel']::before {
1063
- content: '☎︎ ';
1064
- }
1065
- address span {
1066
- padding-inline-end: 5px;
1067
- }
1068
- .osm-link {
1069
- margin-top: 10px;
1070
- text-align: end;
1071
- font-style: italic;
1072
- }
1073
- span.popup-icon {
1074
- padding: 5px;
1075
- }
1076
792
 
1077
793
 
1078
794
  /* ************* */
@@ -1208,7 +924,6 @@ span.popup-icon {
1208
924
  width: 2px;
1209
925
  }
1210
926
  .umap-icon-active {
1211
- z-index: var(--zindex-icon-active)!important;
1212
927
  opacity: 1.0!important;
1213
928
  }
1214
929
  .umap-edit-enabled .readonly {
@@ -1219,173 +934,42 @@ span.popup-icon {
1219
934
  /* ********************************* */
1220
935
  /* Ajax loader */
1221
936
  /* ********************************* */
1222
- .umap-loading .umap-loader
1223
- {
1224
- display: block;
1225
- -webkit-animation: shift-rightwards 3s ease-in-out infinite;
1226
- -moz-animation: shift-rightwards 3s ease-in-out infinite;
1227
- -ms-animation: shift-rightwards 3s ease-in-out infinite;
1228
- -o-animation: shift-rightwards 3s ease-in-out infinite;
1229
- animation: shift-rightwards 3s ease-in-out infinite;
1230
- -webkit-animation-delay: .2s;
1231
- -moz-animation-delay: .2s;
1232
- -o-animation-delay: .2s;
1233
- animation-delay: .2s;
1234
- }
1235
937
  .umap-loader {
1236
- position: absolute;
1237
- display: none;
1238
- top: 0;
1239
- left: 0;
1240
- right: 0;
1241
- height: 4px;
1242
- z-index: var(--zindex-loader);
1243
- background-color: #79c1c0 !important;
1244
- -webkit-transform: translateX(100%);
1245
- -moz-transform: translateX(100%);
1246
- -o-transform: translateX(100%);
1247
- transform: translateX(100%);
1248
- }
1249
-
1250
-
1251
- @-webkit-keyframes shift-rightwards
1252
- {
1253
- 0%
1254
- {
1255
- -webkit-transform:translateX(-100%);
1256
- -moz-transform:translateX(-100%);
1257
- -o-transform:translateX(-100%);
1258
- transform:translateX(-100%);
1259
- }
1260
-
1261
- 40%
1262
- {
1263
- -webkit-transform:translateX(0%);
1264
- -moz-transform:translateX(0%);
1265
- -o-transform:translateX(0%);
1266
- transform:translateX(0%);
1267
- }
1268
-
1269
- 60%
1270
- {
1271
- -webkit-transform:translateX(0%);
1272
- -moz-transform:translateX(0%);
1273
- -o-transform:translateX(0%);
1274
- transform:translateX(0%);
1275
- }
1276
-
1277
- 100%
1278
- {
1279
- -webkit-transform:translateX(100%);
1280
- -moz-transform:translateX(100%);
1281
- -o-transform:translateX(100%);
1282
- transform:translateX(100%);
1283
- }
1284
-
1285
- }
1286
- @-moz-keyframes shift-rightwards
1287
- {
1288
- 0%
1289
- {
1290
- -webkit-transform:translateX(-100%);
1291
- -moz-transform:translateX(-100%);
1292
- -o-transform:translateX(-100%);
1293
- transform:translateX(-100%);
1294
- }
1295
-
1296
- 40%
1297
- {
1298
- -webkit-transform:translateX(0%);
1299
- -moz-transform:translateX(0%);
1300
- -o-transform:translateX(0%);
1301
- transform:translateX(0%);
1302
- }
1303
-
1304
- 60%
1305
- {
1306
- -webkit-transform:translateX(0%);
1307
- -moz-transform:translateX(0%);
1308
- -o-transform:translateX(0%);
1309
- transform:translateX(0%);
1310
- }
1311
-
1312
- 100%
1313
- {
1314
- -webkit-transform:translateX(100%);
1315
- -moz-transform:translateX(100%);
1316
- -o-transform:translateX(100%);
1317
- transform:translateX(100%);
1318
- }
1319
-
1320
- }
1321
- @-o-keyframes shift-rightwards
1322
- {
1323
- 0%
1324
- {
1325
- -webkit-transform:translateX(-100%);
1326
- -moz-transform:translateX(-100%);
1327
- -o-transform:translateX(-100%);
1328
- transform:translateX(-100%);
1329
- }
1330
-
1331
- 40%
1332
- {
1333
- -webkit-transform:translateX(0%);
1334
- -moz-transform:translateX(0%);
1335
- -o-transform:translateX(0%);
1336
- transform:translateX(0%);
1337
- }
1338
-
1339
- 60%
1340
- {
1341
- -webkit-transform:translateX(0%);
1342
- -moz-transform:translateX(0%);
1343
- -o-transform:translateX(0%);
1344
- transform:translateX(0%);
1345
- }
1346
-
1347
- 100%
1348
- {
1349
- -webkit-transform:translateX(100%);
1350
- -moz-transform:translateX(100%);
1351
- -o-transform:translateX(100%);
1352
- transform:translateX(100%);
1353
- }
1354
-
938
+ width: 100%;
939
+ height: 6px;
940
+ display: inline-block;
941
+ position: absolute;
942
+ background: var(--color-brightCyan);
943
+ overflow: hidden;
944
+ display: none;
945
+ top: 0;
946
+ left: 0;
947
+ right: 0;
948
+ height: 4px;
949
+ z-index: var(--zindex-loader);
950
+ }
951
+ .umap-loader::after {
952
+ content: '';
953
+ box-sizing: border-box;
954
+ width: 0;
955
+ height: 4.8px;
956
+ background: var(--color-darkerGray);
957
+ position: absolute;
958
+ top: 0;
959
+ left: 0;
960
+ animation: animFw 10s linear infinite;
961
+ }
962
+
963
+ @keyframes animFw {
964
+ 0% {
965
+ width: 0;
966
+ }
967
+ 100% {
968
+ width: 100%;
969
+ }
1355
970
  }
1356
- @keyframes shift-rightwards
1357
- {
1358
- 0%
1359
- {
1360
- -webkit-transform:translateX(-100%);
1361
- -moz-transform:translateX(-100%);
1362
- -o-transform:translateX(-100%);
1363
- transform:translateX(-100%);
1364
- }
1365
-
1366
- 40%
1367
- {
1368
- -webkit-transform:translateX(0%);
1369
- -moz-transform:translateX(0%);
1370
- -o-transform:translateX(0%);
1371
- transform:translateX(0%);
1372
- }
1373
-
1374
- 60%
1375
- {
1376
- -webkit-transform:translateX(0%);
1377
- -moz-transform:translateX(0%);
1378
- -o-transform:translateX(0%);
1379
- transform:translateX(0%);
1380
- }
1381
-
1382
- 100%
1383
- {
1384
- -webkit-transform:translateX(100%);
1385
- -moz-transform:translateX(100%);
1386
- -o-transform:translateX(100%);
1387
- transform:translateX(100%);
1388
- }
971
+ .umap-loading .umap-loader {
972
+ display: block;
1389
973
  }
1390
974
 
1391
975
  /* *************************** */
@@ -1403,75 +987,6 @@ span.popup-icon {
1403
987
  .leaflet-top, .leaflet-bottom {
1404
988
  z-index: var(--zindex-controls);
1405
989
  }
1406
- .leaflet-popup-content {
1407
- min-width: 200px;
1408
- line-height: inherit;
1409
- }
1410
- .leaflet-popup-content-wrapper, .leaflet-popup-tip {
1411
- box-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
1412
- }
1413
- .leaflet-popup-content-wrapper {
1414
- border-radius: 4px;
1415
- }
1416
- .umap-popup-content {
1417
- max-height: 500px;
1418
- flex-grow: 1;
1419
- margin-bottom: 4px;
1420
- display: flex;
1421
- flex-direction: column;
1422
- overflow-y: auto;
1423
- overflow-x: hidden;
1424
- }
1425
- .umap-popup-content iframe {
1426
- min-width: 300px;
1427
- max-width: 100%;
1428
- }
1429
- .umap-popup-content tr:nth-child(odd) {
1430
- background-color: #f6f6f6;
1431
- }
1432
- .umap-popup-content th {
1433
- text-align: start;
1434
- }
1435
- .umap-popup-content td {
1436
- word-break: break-word;
1437
- }
1438
- .umap-popup-content th,
1439
- .umap-popup-content td {
1440
- padding: 1px 3px;
1441
- }
1442
- .umap-popup-container {
1443
- flex-grow: 1;
1444
- margin-bottom: 10px;
1445
- }
1446
- .umap-popup-container ul {
1447
- list-style-type: disc;
1448
- }
1449
- .leaflet-control-toolbar,
1450
- .leaflet-bar {
1451
- box-shadow: none;
1452
- }
1453
- .marker-cluster {
1454
- background-color: white;
1455
- width: 40px;
1456
- height: 40px;
1457
- }
1458
- .leaflet-contextmenu-icon {
1459
- display: none;
1460
- }
1461
- .umap-popup-large iframe {
1462
- /* See https://github.com/Leaflet/Leaflet/commit/61d746818b99d362108545c151a27f09d60960ee#commitcomment-6061847 */
1463
- max-width: 100% !important;
1464
- min-width: 500px;
1465
- }
1466
- .umap-popup-large .umap-popup-content {
1467
- width: 500px;
1468
- }
1469
- .umap-popup-content img {
1470
- max-width: 100%;
1471
- }
1472
- .umap-georss-link .popup-title {
1473
- text-align: center;
1474
- }
1475
990
  .leaflet-inplace-toolbar {
1476
991
  z-index: var(--zindex-toolbar)!important;
1477
992
  }
@@ -1547,12 +1062,6 @@ span.popup-icon {
1547
1062
  .umap-permanent-credits-container {
1548
1063
  max-width: 100%;
1549
1064
  }
1550
- .umap-popup-large iframe {
1551
- min-width: 300px;
1552
- }
1553
- .umap-popup-large .umap-popup-content {
1554
- width: 300px;
1555
- }
1556
1065
 
1557
1066
  .attribution-toggle {
1558
1067
  display: inline-block;
@@ -8,10 +8,10 @@ import URLs from '../js/modules/urls.js'
8
8
  describe('URLs', () => {
9
9
  // Mock server URLs that will be used for testing
10
10
  const mockServerUrls = {
11
- map_create: '/maps/create',
12
- map_update: '/maps/{map_id}/update',
13
- datalayer_create: '/maps/{map_id}/datalayers/create',
14
- datalayer_update: '/maps/{map_id}/datalayers/{pk}/update',
11
+ map_create: '/maps/create/',
12
+ map_update: '/maps/{map_id}/update/',
13
+ datalayer_create: '/maps/{map_id}/datalayers/{pk}/create/',
14
+ datalayer_update: '/maps/{map_id}/datalayers/{pk}/update/',
15
15
  }
16
16
 
17
17
  let urls = new URLs(mockServerUrls)
@@ -22,37 +22,37 @@ describe('URLs', () => {
22
22
  })
23
23
 
24
24
  it('should return the correct templated URL for known urlNames', () => {
25
- expect(urls.get('map_create')).to.be.equal('/maps/create')
26
- expect(urls.get('map_update', { map_id: '123' })).to.be.equal('/maps/123/update')
25
+ expect(urls.get('map_create')).to.be.equal('/maps/create/')
26
+ expect(urls.get('map_update', { map_id: '123' })).to.be.equal('/maps/123/update/')
27
27
  })
28
28
 
29
29
  it('should return the correct templated URL when provided with parameters', () => {
30
30
  expect(urls.get('datalayer_update', { map_id: '123', pk: '456' })).to.be.equal(
31
- '/maps/123/datalayers/456/update'
31
+ '/maps/123/datalayers/456/update/'
32
32
  )
33
33
  })
34
34
  })
35
35
 
36
36
  describe('map_save()', () => {
37
37
  it('should return the create URL if no map_id is provided', () => {
38
- expect(urls.map_save({})).to.be.equal('/maps/create')
38
+ expect(urls.map_save({})).to.be.equal('/maps/create/')
39
39
  })
40
40
 
41
41
  it('should return the update URL if a map_id is provided', () => {
42
- expect(urls.map_save({ map_id: '123' })).to.be.equal('/maps/123/update')
42
+ expect(urls.map_save({ map_id: '123' })).to.be.equal('/maps/123/update/')
43
43
  })
44
44
  })
45
45
 
46
46
  describe('datalayer_save()', () => {
47
- it('should return the create URL if no pk is provided', () => {
48
- expect(urls.datalayer_save({ map_id: '123' })).to.be.equal(
49
- '/maps/123/datalayers/create'
47
+ it('should return the create URL if created is false', () => {
48
+ expect(urls.datalayer_save({ map_id: '123', pk: '00000000-0000-0000-0000-000000000000', created: false })).to.be.equal(
49
+ '/maps/123/datalayers/00000000-0000-0000-0000-000000000000/create/'
50
50
  )
51
51
  })
52
52
 
53
- it('should return the update URL if a pk is provided', () => {
54
- expect(urls.datalayer_save({ map_id: '123', pk: '456' })).to.be.equal(
55
- '/maps/123/datalayers/456/update'
53
+ it('should return the update URL if created is true', () => {
54
+ expect(urls.datalayer_save({ map_id: '123', pk: '00000000-0000-0000-0000-000000000000', created: true })).to.be.equal(
55
+ '/maps/123/datalayers/00000000-0000-0000-0000-000000000000/update/'
56
56
  )
57
57
  })
58
58
  })