Compare commits

..

15 commits

Author SHA1 Message Date
740c09ce6d
add icon for authentik 2024-05-27 13:00:00 -05: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
bce739065a
Merge pull request #1802 from CampaniaGuy/master
Expanded docker.md documentation
2024-05-17 17:38:15 +02:00
Yohan Boniface
1d8440a04d
Update docs/config/icons.md 2024-05-17 17:38:04 +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
667735aa97
Merge pull request #1836 from umap-project/dependabot/pip/mkdocs-material-9.5.23
chore: bump mkdocs-material from 9.5.21 to 9.5.23
2024-05-17 17:35:40 +02:00
dependabot[bot]
7c84576f1f
chore: bump mkdocs-material from 9.5.21 to 9.5.23
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.21 to 9.5.23.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.21...9.5.23)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-17 15:23:09 +00: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
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
CampaniaGuy
b6bc821d4d Specified import_pictograms has to be run from main folder. 2024-05-07 13:14:27 +02:00
CampaniaGuy
7b7583dfe6 Docs improvement 2024-05-07 10:03:34 +02:00
CampaniaGuy
1adf6af50c Expanded docker.md documentation 2024-05-07 09:33:41 +02:00
22 changed files with 286 additions and 238 deletions

View file

@ -1,5 +1,5 @@
# Force rtfd to use a recent version of mkdocs
mkdocs==1.6.0
pymdown-extensions==10.8.1
mkdocs-material==9.5.21
mkdocs-material==9.5.23
mkdocs-static-i18n==1.2.3

View file

@ -22,7 +22,7 @@ You can import icons manually by going to your uMap admin page: `https://your.se
## Import icons automatically
To import icons on your uMap server, you will need to use the command `umap import_pictograms`.
To import icons on your uMap server, you will need to use the command `umap import_pictograms` (making sure the virtualenv is active).
Note: you can get help with `umap import_pictograms -h`

View file

@ -27,6 +27,8 @@ services:
volumes:
- umap_userdata:/srv/umap/uploads
# FIX the path on the left, below, to your location
# OPTIONAL, you can comment the line below out for default
# values to apply
- /home/ubuntu/umap.conf:/etc/umap/umap.conf
restart: always
depends_on:
@ -42,3 +44,8 @@ Note that youll have to set a [`SECRET_KEY`](https://docs.djangoproject.com/e
```sh
$ python3 -c 'import secrets; print(secrets.token_hex(100))'
```
User accounts can be managed via the Django admin page ({SITE_URL}/admin). The required superuser must be created on the container command line with this command:
```bash
umap createsuperuser
```

View file

@ -1,5 +1,5 @@
# Force rtfd to use a recent version of mkdocs
mkdocs==1.6.0
pymdown-extensions==10.8.1
mkdocs-material==9.5.21
mkdocs-material==9.5.23
mkdocs-static-i18n==1.2.3

View file

@ -47,7 +47,7 @@ dev = [
"ruff==0.4.3",
"djlint==1.34.1",
"mkdocs==1.6.0",
"mkdocs-material==9.5.21",
"mkdocs-material==9.5.23",
"mkdocs-static-i18n==1.2.3",
"vermin==1.6.0",
"pymdown-extensions==10.8.1",

View file

@ -1 +1 @@
VERSION = "2.3.0"
VERSION = "2.3.1"

Binary file not shown.

View file

@ -7,7 +7,7 @@
# Daniel Koć <daniel@xn--ko-wla.pl>, 2015
# endro, 2016
# endro, 2015-2016
# Krzysztof Chorzempa, 2023
# Krzysztof Chorzempa, 2023-2024
# Maciej Kowalik <m.kowalik.79@gmail.com>, 2016
# maro21 OSM, 2020-2021
# Piotr Strębski <strebski@gmail.com>, 2020
@ -17,9 +17,9 @@ msgid ""
msgstr ""
"Project-Id-Version: uMap\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-15 13:53+0000\n"
"POT-Creation-Date: 2024-04-24 19:16+0000\n"
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
"Last-Translator: Bartosz Racławski <bartosz.raclawski@openstreetmap.pl>, 2023\n"
"Last-Translator: Krzysztof Chorzempa, 2023-2024\n"
"Language-Team: Polish (http://app.transifex.com/openstreetmap/umap/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -35,115 +35,115 @@ msgstr "Edycja możliwa tylko z sekretnym odnośnikiem"
msgid "Everyone can edit"
msgstr "Wszyscy mogą edytować"
#: forms.py:69 models.py:371
#: forms.py:69 models.py:384
msgid "Inherit"
msgstr ""
msgstr "Odziedzicz"
#: middleware.py:13
msgid "Site is readonly for maintenance"
msgstr "Strona jest w trybie tylko do odczytu z powodu prac konserwacyjnych"
#: models.py:50
#: models.py:53
msgid "name"
msgstr "nazwa"
#: models.py:81
#: models.py:84
msgid "details"
msgstr "szczegóły"
#: models.py:82
#: models.py:85
msgid "Link to a page where the licence is detailed."
msgstr "Odnośnik do strony ze szczegółowym opisem licencji."
#: models.py:92
#: models.py:95
msgid "URL template using OSM tile format"
msgstr "Szablon URL używający formatu kafelków OSM"
#: models.py:98
#: models.py:101
msgid "Order of the tilelayers in the edit box"
msgstr "Kolejność podkładów w oknie edycji"
#: models.py:144 models.py:372
#: models.py:147 models.py:385
msgid "Everyone"
msgstr "Każdy"
#: models.py:145 models.py:151 models.py:373
#: models.py:148 models.py:154 models.py:386
msgid "Editors only"
msgstr "Tylko edytorzy"
#: models.py:146 models.py:374
#: models.py:149 models.py:387
msgid "Owner only"
msgstr "Tylko właściciel"
#: models.py:149
#: models.py:152
msgid "Everyone (public)"
msgstr "Każdy (publiczne)"
#: models.py:150
#: models.py:153
msgid "Anyone with link"
msgstr "Każdy z linkiem"
#: models.py:152
#: models.py:155
msgid "Blocked"
msgstr "Zablokowane"
#: models.py:155 models.py:378
msgid "description"
msgstr "opis"
#: models.py:156
#: models.py:158
msgid "center"
msgstr "środek"
#: models.py:157
#: models.py:159
msgid "zoom"
msgstr "przybliżenie"
#: models.py:159
#: models.py:161
msgid "locate"
msgstr "lokalizuj"
#: models.py:159
#: models.py:161
msgid "Locate user on load?"
msgstr "Lokalizować użytkownika po załadowaniu?"
#: models.py:163
#: models.py:165
msgid "Choose the map licence."
msgstr "Wybierz licencję mapy."
#: models.py:164
#: models.py:166
msgid "licence"
msgstr "licencja"
#: models.py:175
#: models.py:177
msgid "owner"
msgstr "właściciel"
#: models.py:179
#: models.py:181
msgid "editors"
msgstr "edytorzy"
#: models.py:184 models.py:392
#: models.py:186 models.py:408
msgid "edit status"
msgstr "status edycji"
#: models.py:189
#: models.py:191
msgid "share status"
msgstr "udostępnij status"
#: models.py:192 models.py:387
#: models.py:194 models.py:403
msgid "settings"
msgstr "ustawienia"
#: models.py:320
#: models.py:325
msgid "Clone of"
msgstr "Kopia"
#: models.py:382
#: models.py:394
msgid "description"
msgstr "opis"
#: models.py:398
msgid "display on load"
msgstr "wyświetl po załadowaniu"
#: models.py:383
#: models.py:399
msgid "Display this layer on load."
msgstr "Wyświetl tę warstwę po załadowaniu."
@ -163,7 +163,7 @@ msgstr "%(current_user)s nie posiada map."
#: templates/auth/user_form.html:6
msgid "My Maps"
msgstr ""
msgstr "Moje Mapy"
#: templates/auth/user_form.html:7
msgid "My Profile"
@ -299,7 +299,7 @@ msgstr "Zainspiruj się, przejrzyj mapy"
msgid "You are logged in. Continuing..."
msgstr "Jesteś zalogowany. Kontynuowanie..."
#: templates/umap/map_list.html:9 views.py:341
#: templates/umap/map_list.html:9 views.py:349
msgid "by"
msgstr "przez"
@ -313,15 +313,15 @@ msgstr "Nazwa"
#: templates/umap/map_table.html:7
msgid "Preview"
msgstr ""
msgstr "Podgląd"
#: templates/umap/map_table.html:8
msgid "Who can see"
msgstr ""
msgstr "Kto może zobaczyć"
#: templates/umap/map_table.html:9
msgid "Who can edit"
msgstr ""
msgstr "Kto może edytować"
#: templates/umap/map_table.html:10
msgid "Last save"
@ -335,60 +335,60 @@ msgstr "Właściciel"
msgid "Actions"
msgstr "Akcje"
#: templates/umap/map_table.html:25 templates/umap/map_table.html:27
#: templates/umap/map_table.html:26 templates/umap/map_table.html:28
msgid "Open preview"
msgstr ""
msgstr "Otwórz podgląd"
#: templates/umap/map_table.html:46 templates/umap/map_table.html:48
#: templates/umap/map_table.html:48 templates/umap/map_table.html:50
msgid "Share"
msgstr "Udostępnij"
#: templates/umap/map_table.html:51 templates/umap/map_table.html:53
#: templates/umap/map_table.html:54 templates/umap/map_table.html:56
msgid "Edit"
msgstr "Edytuj"
#: templates/umap/map_table.html:56 templates/umap/map_table.html:58
#: templates/umap/map_table.html:60 templates/umap/map_table.html:62
msgid "Download"
msgstr "Pobierz"
#: templates/umap/map_table.html:63 templates/umap/map_table.html:65
#: templates/umap/map_table.html:66 templates/umap/map_table.html:68
msgid "Clone"
msgstr ""
msgstr "Skopiuj"
#: templates/umap/map_table.html:73 templates/umap/map_table.html:75
#: templates/umap/map_table.html:77 templates/umap/map_table.html:79
msgid "Delete"
msgstr ""
msgstr "Usuń"
#: templates/umap/map_table.html:88
#: templates/umap/map_table.html:93
msgid "first"
msgstr ""
msgstr "pierwszy"
#: templates/umap/map_table.html:89
#: templates/umap/map_table.html:94
msgid "previous"
msgstr ""
msgstr "poprzedni"
#: templates/umap/map_table.html:98
#: templates/umap/map_table.html:102
#, python-format
msgid "Page %(maps_number)s of %(num_pages)s"
msgstr ""
msgstr "Strona %(maps_number)s. z %(num_pages)s"
#: templates/umap/map_table.html:104
#: templates/umap/map_table.html:107
msgid "next"
msgstr ""
#: templates/umap/map_table.html:105
#: templates/umap/map_table.html:108
msgid "last"
msgstr ""
#: templates/umap/map_table.html:113
#: templates/umap/map_table.html:116
#, python-format
msgid "Lines per page: %(per_page)s"
msgstr ""
#: templates/umap/map_table.html:118
#: templates/umap/map_table.html:121
#, python-format
msgid "%(count)s maps"
msgstr ""
msgstr "%(count)s map"
#: templates/umap/navigation.html:10 templates/umap/user_dashboard.html:4
msgid "My Dashboard"
@ -481,78 +481,83 @@ msgstr "Znajdź mapy"
msgid "Search"
msgstr "Szukaj"
#: templates/umap/user_dashboard.html:7 templates/umap/user_dashboard.html:26
#: templates/umap/user_dashboard.html:7 templates/umap/user_dashboard.html:27
msgid "Search my maps"
msgstr "Przeszukaj moje mapy"
#: templates/umap/user_dashboard.html:11
#: templates/umap/user_dashboard.html:10
#, python-format
msgid "My Maps (%(count)s)"
msgstr ""
msgstr "Moje Mapy (%(count)s)"
#: templates/umap/user_dashboard.html:13
#: templates/umap/user_dashboard.html:12
msgid "My profile"
msgstr "Mój profil"
#: templates/umap/user_dashboard.html:21 templates/umap/user_dashboard.html:23
#: templates/umap/user_dashboard.html:20 templates/umap/user_dashboard.html:24
msgid "Maps title"
msgstr ""
msgstr "Nazwa mapy"
#: templates/umap/user_dashboard.html:32
#, python-format
msgid "Download %(count)s maps"
msgstr ""
msgstr "Pobierz %(count)s map"
#: templates/umap/user_dashboard.html:42
msgid "You have no map yet."
msgstr "Nie masz jeszcze żadnej mapy."
#: views.py:346
#: views.py:354
msgid "View the map"
msgstr "Zobacz mapę"
#: views.py:704
#: views.py:716
msgid "See full screen"
msgstr ""
#: views.py:803
#: views.py:817
msgid "Map editors updated with success!"
msgstr "Edytorzy mapy zaktualizowani pomyślnie!"
#: views.py:841
#: views.py:854
#, python-format
msgid "The uMap edit link for your map: %(map_name)s"
msgstr "Link uMap do edytowania twojej mapy: %(map_name)s"
#: views.py:844
#: views.py:857
#, python-format
msgid "Here is your secret edit link: %(link)s"
msgstr "Oto twój sekretny link do edycji: %(link)s"
#: views.py:850
#: views.py:864
#, python-format
msgid "Can't send email to %(email)s"
msgstr "Nie można wysłać emaila do %(email)s"
#: views.py:867
#, python-format
msgid "Email sent to %(email)s"
msgstr "Email wysłany do %(email)s"
#: views.py:861
#: views.py:878
msgid "Only its owner can delete the map."
msgstr "Tylko właściciel może usunąć mapę."
#: views.py:889
#: views.py:906
#, python-format
msgid ""
"Your map has been cloned! If you want to edit this map from another "
"computer, please use this link: %(anonymous_url)s"
msgstr "Twoja mapa została skopiowana! Jeśli chcesz edytować ją z innego komputera, użyj odnośnika: %(anonymous_url)s"
#: views.py:894
#: views.py:911
msgid "Congratulations, your map has been cloned!"
msgstr "Gratulacje, twoja mapa została skopiowana!"
#: views.py:1130
#: views.py:1146
msgid "Layer successfully deleted."
msgstr "Warstwa usunięta pomyślnie."
#: views.py:1152
#: views.py:1168
msgid "Permissions updated with success!"
msgstr ""
msgstr "Pomyślnie zaktualizowano uprawnienia!"

Binary file not shown.

View file

@ -4,14 +4,15 @@
#
# Translators:
# Joao Ponce de Leao Paulouro <joao.ponceleao@gmail.com>, 2014
# lecalam, 2024
# Rui <xymarior@yandex.com>, 2016,2018-2019
msgid ""
msgstr ""
"Project-Id-Version: uMap\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-15 13:53+0000\n"
"POT-Creation-Date: 2024-04-24 19:16+0000\n"
"PO-Revision-Date: 2013-11-22 14:00+0000\n"
"Last-Translator: Joao Ponce de Leao Paulouro <joao.ponceleao@gmail.com>, 2014\n"
"Last-Translator: lecalam, 2024\n"
"Language-Team: Portuguese (http://app.transifex.com/openstreetmap/umap/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -21,121 +22,121 @@ msgstr ""
#: forms.py:44 forms.py:70
msgid "Only editable with secret edit link"
msgstr "Unicamente editável através de link secreto"
msgstr "Unicamente editável através de hiperligação secreta"
#: forms.py:45 forms.py:71
msgid "Everyone can edit"
msgstr "Todos podem editar"
#: forms.py:69 models.py:371
#: forms.py:69 models.py:384
msgid "Inherit"
msgstr ""
msgstr "Herdado"
#: middleware.py:13
msgid "Site is readonly for maintenance"
msgstr "O site está em modo de leitura para manutenção"
#: models.py:50
#: models.py:53
msgid "name"
msgstr "nome"
#: models.py:81
#: models.py:84
msgid "details"
msgstr "detalhes"
#: models.py:82
#: models.py:85
msgid "Link to a page where the licence is detailed."
msgstr "Link para uma página detalhando a licença."
msgstr "Hiperligação para uma página detalhando a licença."
#: models.py:92
#: models.py:95
msgid "URL template using OSM tile format"
msgstr "Modelo de URL no formato de telas OSM"
msgstr "Modelo de URL no formato de mosaicos OSM"
#: models.py:98
#: models.py:101
msgid "Order of the tilelayers in the edit box"
msgstr "Ordem das camadas na caixa de edição"
msgstr "Ordem das camadas de mosaicos na caixa de edição"
#: models.py:144 models.py:372
#: models.py:147 models.py:385
msgid "Everyone"
msgstr ""
msgstr "Todos"
#: models.py:145 models.py:151 models.py:373
#: models.py:148 models.py:154 models.py:386
msgid "Editors only"
msgstr ""
msgstr "Apenas editores"
#: models.py:146 models.py:374
#: models.py:149 models.py:387
msgid "Owner only"
msgstr ""
#: models.py:149
msgid "Everyone (public)"
msgstr ""
#: models.py:150
msgid "Anyone with link"
msgstr ""
msgstr "Apenas o proprietário"
#: models.py:152
msgid "Everyone (public)"
msgstr "Todos (público)"
#: models.py:153
msgid "Anyone with link"
msgstr "Quem tiver a hiperligação"
#: models.py:155
msgid "Blocked"
msgstr ""
msgstr "Bloqueado"
#: models.py:155 models.py:378
msgid "description"
msgstr "descrição"
#: models.py:156
#: models.py:158
msgid "center"
msgstr "centro"
#: models.py:157
#: models.py:159
msgid "zoom"
msgstr "zoom"
#: models.py:159
#: models.py:161
msgid "locate"
msgstr "localizar"
#: models.py:159
#: models.py:161
msgid "Locate user on load?"
msgstr "Localizar utilizador no início?"
#: models.py:163
#: models.py:165
msgid "Choose the map licence."
msgstr "Escolha uma licença para o mapa."
#: models.py:164
#: models.py:166
msgid "licence"
msgstr "licença"
#: models.py:175
#: models.py:177
msgid "owner"
msgstr "proprietário"
#: models.py:179
#: models.py:181
msgid "editors"
msgstr "editores"
#: models.py:184 models.py:392
#: models.py:186 models.py:408
msgid "edit status"
msgstr "editar estado"
#: models.py:189
#: models.py:191
msgid "share status"
msgstr "partilhar estado"
#: models.py:192 models.py:387
#: models.py:194 models.py:403
msgid "settings"
msgstr "parâmetros"
#: models.py:320
#: models.py:325
msgid "Clone of"
msgstr "Clone de"
#: models.py:382
#: models.py:394
msgid "description"
msgstr "descrição"
#: models.py:398
msgid "display on load"
msgstr "mostrar no início"
#: models.py:383
#: models.py:399
msgid "Display this layer on load."
msgstr "Apresentar esta camada ao carregar."
@ -146,7 +147,7 @@ msgstr "Ir para a página principal"
#: templates/auth/user_detail.html:5
#, python-format
msgid "Browse %(current_user)s's maps"
msgstr "Consulte os mapas de %(current_user)s"
msgstr "Ver mapas de %(current_user)s"
#: templates/auth/user_detail.html:12
#, python-format
@ -155,45 +156,45 @@ msgstr "%(current_user)s não tem mapas."
#: templates/auth/user_form.html:6
msgid "My Maps"
msgstr ""
msgstr "Meus mapas"
#: templates/auth/user_form.html:7
msgid "My Profile"
msgstr ""
msgstr "Meu perfil"
#: templates/auth/user_form.html:20
msgid "Save"
msgstr ""
msgstr "Guardar"
#: templates/auth/user_form.html:25
msgid "Your current providers"
msgstr ""
msgstr "Os seus fornecedores atuais"
#: templates/auth/user_form.html:31
msgid "Connect to another provider"
msgstr ""
msgstr "Conectar a outro fornecedor"
#: templates/auth/user_form.html:33
msgid ""
"It's a good habit to connect your account to more than one provider, in case"
" one provider becomes unavailable, temporarily or even permanently."
msgstr ""
msgstr "É um bom hábito conectar a sua conta a mais do que um fornecedor, no caso de um fornecedor ficar indisponível, temporariamente ou mesmo permanentemente."
#: templates/auth/user_stars.html:5
#, python-format
msgid "Browse %(current_user)s's starred maps"
msgstr ""
msgstr "Ver mapas com estrela de %(current_user)s's"
#: templates/auth/user_stars.html:12
#, python-format
msgid "%(current_user)s has no starred maps yet."
msgstr ""
msgstr "%(current_user)s não tem mapas com estrela."
#: templates/base.html:12
msgid ""
"uMap lets you create maps with OpenStreetMap layers in a minute and embed "
"them in your site."
msgstr ""
msgstr "uMap permite-lhe criar mapas com camadas do OpenStreetMap num minuto e incorporá-los no seu site."
#: templates/registration/login.html:16
msgid "Please log in with your account"
@ -268,7 +269,7 @@ msgstr "Testar a demo"
msgid ""
"This instance of uMap is currently in read only mode, no creation/edit is "
"allowed."
msgstr ""
msgstr "Esta instância do uMap está atualmente em modo só de leitura, não sendo permitida a criação/edição."
#: templates/umap/content.html:30
#, python-format
@ -291,7 +292,7 @@ msgstr "Inspire-se, explore os mapas"
msgid "You are logged in. Continuing..."
msgstr "Sucesso na identificação. Continuando..."
#: templates/umap/map_list.html:9 views.py:341
#: templates/umap/map_list.html:9 views.py:349
msgid "by"
msgstr "por"
@ -301,94 +302,94 @@ msgstr "Mais"
#: templates/umap/map_table.html:6
msgid "Name"
msgstr ""
msgstr "Nome"
#: templates/umap/map_table.html:7
msgid "Preview"
msgstr ""
msgstr "Pré-visualizar"
#: templates/umap/map_table.html:8
msgid "Who can see"
msgstr ""
msgstr "Quem pode ver"
#: templates/umap/map_table.html:9
msgid "Who can edit"
msgstr ""
msgstr "Quem pode editar"
#: templates/umap/map_table.html:10
msgid "Last save"
msgstr ""
msgstr "Último guardar"
#: templates/umap/map_table.html:11
msgid "Owner"
msgstr ""
msgstr "Proprietário"
#: templates/umap/map_table.html:12
msgid "Actions"
msgstr ""
msgstr "Ações"
#: templates/umap/map_table.html:25 templates/umap/map_table.html:27
#: templates/umap/map_table.html:26 templates/umap/map_table.html:28
msgid "Open preview"
msgstr ""
msgstr "Abrir pré-visualização"
#: templates/umap/map_table.html:46 templates/umap/map_table.html:48
#: templates/umap/map_table.html:48 templates/umap/map_table.html:50
msgid "Share"
msgstr ""
msgstr "Partilhar"
#: templates/umap/map_table.html:51 templates/umap/map_table.html:53
#: templates/umap/map_table.html:54 templates/umap/map_table.html:56
msgid "Edit"
msgstr ""
msgstr "Editar"
#: templates/umap/map_table.html:56 templates/umap/map_table.html:58
#: templates/umap/map_table.html:60 templates/umap/map_table.html:62
msgid "Download"
msgstr ""
msgstr "Descarregar"
#: templates/umap/map_table.html:63 templates/umap/map_table.html:65
#: templates/umap/map_table.html:66 templates/umap/map_table.html:68
msgid "Clone"
msgstr ""
msgstr "Clonar"
#: templates/umap/map_table.html:73 templates/umap/map_table.html:75
#: templates/umap/map_table.html:77 templates/umap/map_table.html:79
msgid "Delete"
msgstr ""
msgstr "Eliminar"
#: templates/umap/map_table.html:88
#: templates/umap/map_table.html:93
msgid "first"
msgstr ""
msgstr "primeiro"
#: templates/umap/map_table.html:89
#: templates/umap/map_table.html:94
msgid "previous"
msgstr ""
msgstr "anterior"
#: templates/umap/map_table.html:98
#: templates/umap/map_table.html:102
#, python-format
msgid "Page %(maps_number)s of %(num_pages)s"
msgstr ""
msgstr "Página %(maps_number)s de %(num_pages)s"
#: templates/umap/map_table.html:104
#: templates/umap/map_table.html:107
msgid "next"
msgstr ""
msgstr "seguinte"
#: templates/umap/map_table.html:105
#: templates/umap/map_table.html:108
msgid "last"
msgstr ""
msgstr "+ultimo"
#: templates/umap/map_table.html:113
#: templates/umap/map_table.html:116
#, python-format
msgid "Lines per page: %(per_page)s"
msgstr ""
msgstr "Linhas por página: %(per_page)s"
#: templates/umap/map_table.html:118
#: templates/umap/map_table.html:121
#, python-format
msgid "%(count)s maps"
msgstr ""
msgstr "%(count)s mapas"
#: templates/umap/navigation.html:10 templates/umap/user_dashboard.html:4
msgid "My Dashboard"
msgstr ""
msgstr "O meu painel de controlo"
#: templates/umap/navigation.html:13
msgid "Starred maps"
msgstr ""
msgstr "Mapas com estrela"
#: templates/umap/navigation.html:17
msgid "Log in"
@ -404,7 +405,7 @@ msgstr "Sobre"
#: templates/umap/navigation.html:24
msgid "Help"
msgstr ""
msgstr "Ajuda"
#: templates/umap/navigation.html:29
msgid "Change password"
@ -452,17 +453,17 @@ msgstr "A sua palavra-passe foi alterada"
#, python-format
msgid "%(count)s map found:"
msgid_plural "%(count)s maps found:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[0] "%(count)s mapa encontrado:"
msgstr[1] "%(count)s mapas encontrados:"
msgstr[2] "%(count)s mapas encontrados:"
#: templates/umap/search.html:18
msgid "No map found."
msgstr ""
msgstr "Não foi encontrado nenhum mapa."
#: templates/umap/search.html:21
msgid "Latest created maps"
msgstr ""
msgstr "Últimos mapas criados"
#: templates/umap/search_bar.html:3
msgid "Search maps"
@ -472,78 +473,83 @@ msgstr "Procurar mapas"
msgid "Search"
msgstr "Procurar"
#: templates/umap/user_dashboard.html:7 templates/umap/user_dashboard.html:26
#: templates/umap/user_dashboard.html:7 templates/umap/user_dashboard.html:27
msgid "Search my maps"
msgstr ""
msgstr "Procurar os meus mapas"
#: templates/umap/user_dashboard.html:11
#: templates/umap/user_dashboard.html:10
#, python-format
msgid "My Maps (%(count)s)"
msgstr ""
msgstr "Meus mapas (%(count)s)"
#: templates/umap/user_dashboard.html:13
#: templates/umap/user_dashboard.html:12
msgid "My profile"
msgstr ""
msgstr "Meu perfil"
#: templates/umap/user_dashboard.html:21 templates/umap/user_dashboard.html:23
#: templates/umap/user_dashboard.html:20 templates/umap/user_dashboard.html:24
msgid "Maps title"
msgstr ""
msgstr "Título do mapa"
#: templates/umap/user_dashboard.html:32
#, python-format
msgid "Download %(count)s maps"
msgstr ""
msgstr "Descarregar %(count)s mapas"
#: templates/umap/user_dashboard.html:42
msgid "You have no map yet."
msgstr ""
msgstr "Ainda não tem nenhum mapa."
#: views.py:346
#: views.py:354
msgid "View the map"
msgstr "Ver o mapa"
#: views.py:704
#: views.py:716
msgid "See full screen"
msgstr ""
msgstr "Ver em ecrã inteiro"
#: views.py:803
#: views.py:817
msgid "Map editors updated with success!"
msgstr "Os editores do mapa foram atualizados com sucesso!"
#: views.py:841
#: views.py:854
#, python-format
msgid "The uMap edit link for your map: %(map_name)s"
msgstr ""
msgstr "A hiperligação de edição do uMap para o seu mapa: %(map_name)s"
#: views.py:844
#: views.py:857
#, python-format
msgid "Here is your secret edit link: %(link)s"
msgstr ""
msgstr "Aqui está a hiperligação de edição secreta: %(link)s"
#: views.py:850
#: views.py:864
#, python-format
msgid "Can't send email to %(email)s"
msgstr "Não é possível enviar o email para %(email)s"
#: views.py:867
#, python-format
msgid "Email sent to %(email)s"
msgstr ""
msgstr "Email enviado para %(email)s"
#: views.py:861
#: views.py:878
msgid "Only its owner can delete the map."
msgstr "Só o proprietário pode eliminar o mapa."
#: views.py:889
#: views.py:906
#, python-format
msgid ""
"Your map has been cloned! If you want to edit this map from another "
"computer, please use this link: %(anonymous_url)s"
msgstr "O seu mapa foi clonado! Se quiser editar este mapa noutro computador, por favor utilize este link: %(anonymous_url)s"
msgstr "O seu mapa foi clonado! Se quiser editar este mapa noutro computador, por favor utilize esta hiperligação: %(anonymous_url)s"
#: views.py:894
#: views.py:911
msgid "Congratulations, your map has been cloned!"
msgstr "Parabéns, o seu mapa foi clonado!"
#: views.py:1130
#: views.py:1146
msgid "Layer successfully deleted."
msgstr "Camada eliminada com sucesso."
#: views.py:1152
#: views.py:1168
msgid "Permissions updated with success!"
msgstr ""
msgstr "Permissões atualizadas com sucesso!"

View file

@ -466,6 +466,7 @@ input.switch:checked ~ label:after {
.button-bar {
grid-gap: 7px;
}
.umap-multiplechoice.by2,
.button-bar.half {
grid-template-columns: 1fr 1fr;
}

View file

@ -65,7 +65,9 @@ body.login header {
.login-grid .login-openstreetmap-oauth2 {
background-image: url("./openstreetmap.png");
}
.login-grid .login-oidc {
background-image: url("./authentik.png");
}
/* **************************** */
/* home */

View file

@ -9,18 +9,7 @@ export default class Browser {
filter: '',
inBbox: false,
}
this._mode = 'layers'
}
set mode(value) {
// Store the mode so we can respect it when we redraw
if (['data', 'filters'].includes(value)) this.map.panel.mode = 'expanded'
else if (value === 'layers') this.map.panel.mode = 'condensed'
this._mode = value
}
get mode() {
return this._mode
this.mode = 'layers'
}
addFeature(feature, parent) {
@ -73,7 +62,7 @@ export default class Browser {
addDataLayer(datalayer, parent) {
let className = `datalayer ${datalayer.getHidableClass()}`
if (this.map.panel.mode !== 'condensed') className += ' show-list'
if (this.mode !== 'layers') className += ' show-list'
const container = DomUtil.create('div', className, parent),
headline = DomUtil.create('h5', '', container)
container.id = this.datalayerId(datalayer)

View file

@ -6,7 +6,9 @@ export class Panel {
this.parent = map._controlContainer
this.map = map
this.container = DomUtil.create('div', '', this.parent)
this.mode = 'condensed'
// This will be set once according to the panel configurated at load
// or by using panels as popups
this.mode = null
this.classname = 'left'
DomEvent.disableClickPropagation(this.container)
DomEvent.on(this.container, 'contextmenu', DomEvent.stopPropagation) // Do not activate our custom context menu.
@ -14,8 +16,12 @@ export class Panel {
DomEvent.on(this.container, 'MozMousePixelScroll', DomEvent.stopPropagation)
}
setDefaultMode(mode) {
if (!this.mode) this.mode = mode
}
open({ content, className, actions = [] } = {}) {
this.container.className = `with-transition panel ${this.classname} ${this.mode}`
this.container.className = `with-transition panel ${this.classname} ${this.mode || ''}`
this.container.innerHTML = ''
const actionsContainer = DomUtil.create('ul', 'toolbox', this.container)
const body = DomUtil.create('div', 'body', this.container)
@ -40,14 +46,14 @@ export class Panel {
}
resize() {
if (this.mode === 'expanded') {
this.mode = 'condensed'
this.container.classList.remove('expanded')
this.container.classList.add('condensed')
} else {
if (this.mode === 'condensed') {
this.mode = 'expanded'
this.container.classList.remove('condensed')
this.container.classList.add('expanded')
} else {
this.mode = 'condensed'
this.container.classList.remove('expanded')
this.container.classList.add('condensed')
}
}

View file

@ -941,7 +941,11 @@ L.FormBuilder.MultiChoice = L.FormBuilder.Element.extend({
if (!this.container.querySelector(`input[type="radio"][value="${value}"]`)) {
value = this.options.default !== undefined ? this.options.default : this.default
}
this.container.querySelector(`input[type="radio"][value="${value}"]`).checked = true
const choices = this.getChoices().map(([value, label]) => value)
if (choices.includes(value)) {
this.container.querySelector(`input[type="radio"][value="${value}"]`).checked =
true
}
},
value: function () {

View file

@ -214,14 +214,16 @@ U.Map = L.Map.extend({
if (L.Util.queryString('share')) {
this.share.open()
} else if (this.options.onLoadPanel === 'databrowser') {
this.panel.setDefaultMode('expanded')
this.openBrowser('data')
} else if (this.options.onLoadPanel === 'datalayers') {
this.panel.setDefaultMode('condensed')
this.openBrowser('layers')
} else if (this.options.onLoadPanel === 'datafilters') {
this.panel.mode = 'expanded'
this.panel.setDefaultMode('expanded')
this.openBrowser('filters')
} else if (this.options.onLoadPanel === 'caption') {
this.panel.mode = 'condensed'
this.panel.setDefaultMode('condensed')
this.openCaption()
}
if (L.Util.queryString('edit')) {

View file

@ -55,6 +55,7 @@ U.Popup.Panel = U.Popup.extend({
},
onAdd: function (map) {
map.panel.setDefaultMode('expanded')
map.panel.open({
content: this._content,
actions: [U.Browser.backButton(map)],

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,3 +1,4 @@
import re
from copy import deepcopy
from time import sleep
@ -63,8 +64,9 @@ def bootstrap(map, live_server):
def test_data_browser_should_be_open(live_server, page, bootstrap, map):
page.goto(f"{live_server.url}{map.get_absolute_url()}")
el = page.locator(".umap-browser")
expect(el).to_be_visible()
panel = page.locator(".panel.left.on")
expect(panel).to_have_class(re.compile(".*expanded.*"))
expect(panel.locator(".umap-browser")).to_be_visible()
expect(page.get_by_text("one point in france")).to_be_visible()
expect(page.get_by_text("one line in new zeland")).to_be_visible()
expect(page.get_by_text("one polygon in greenland")).to_be_visible()

View file

@ -1,3 +1,5 @@
import re
import pytest
from playwright.sync_api import expect
@ -15,8 +17,9 @@ def test_caption(live_server, page, map):
)
hidden = DataLayerFactory(map=map, name="Hidden", settings={"inCaption": False})
page.goto(f"{live_server.url}{map.get_absolute_url()}")
panel = page.locator(".umap-caption")
expect(panel).to_be_visible()
panel = page.locator(".panel.left.on")
expect(panel).to_have_class(re.compile(".*condensed.*"))
expect(panel.locator(".umap-caption")).to_be_visible()
expect(panel.locator(".datalayer-legend").get_by_text(basic.name)).to_be_visible()
expect(
panel.locator(".datalayer-legend .off").get_by_text(non_loaded.name)

View file

@ -1,4 +1,5 @@
import copy
import re
import pytest
from playwright.sync_api import expect
@ -101,7 +102,9 @@ def test_simple_facet_search(live_server, page, map):
DataLayerFactory(map=map, data=DATALAYER_DATA2)
DataLayerFactory(map=map, data=DATALAYER_DATA3)
page.goto(f"{live_server.url}{map.get_absolute_url()}#6/48.948/1.670")
panel = page.locator(".umap-browser")
panel = page.locator(".panel.left.on")
expect(panel).to_have_class(re.compile(".*expanded.*"))
expect(panel.locator(".umap-browser")).to_be_visible()
# From a non browsable datalayer, should not be impacted
paths = page.locator(".leaflet-overlay-pane path")
expect(paths).to_be_visible()

View file

@ -1,3 +1,4 @@
import re
from copy import deepcopy
import pytest
@ -62,3 +63,19 @@ def test_should_display_tooltip_with_variable(live_server, map, page, bootstrap)
map.save()
page.goto(f"{live_server.url}{map.get_absolute_url()}")
expect(page.get_by_text("Foo test marker")).to_be_visible()
def test_should_open_popup_panel_on_click(live_server, map, page, bootstrap):
map.settings["properties"]["popupShape"] = "Panel"
map.save()
page.goto(f"{live_server.url}{map.get_absolute_url()}")
panel = page.locator(".panel.left.on")
expect(panel).to_be_hidden()
page.locator(".leaflet-marker-icon").click()
expect(panel).to_be_visible()
expect(panel).to_have_class(re.compile(".*expanded.*"))
expect(panel.get_by_role("heading", name="test marker")).to_be_visible()
expect(panel.get_by_text("Some description")).to_be_visible()
# Close popup
page.locator("#map").click()
expect(panel).to_be_hidden()