freedombox Debian release 26.2

-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmlwM6cWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICNqyD/0TqVVG5tzzAPc8H8R2CrwpCKFE
 dTfkGpROVxkY7ZB7cvdJlSFKUQuL2hIlPyOPJ4o1ARRuMx9JrtAC+PpLEkp2Xbrl
 m9Ikmz9YNe9bmlb0uW4NQrUsOHpuXfMnM4AYbQAA+xbheyoyIlNvRE8OPmhHDQNu
 wXgQ+bLjE6e0NKsTttutTIgGrGK0uZxT5ovbapvS+yY6oW1LNZjiya+JEo6ws/Ud
 CygVoGP+pg37WX8FOyUpYm915pFx1ZWtvNiWoN4ZTPJcgC9bM8htgsFZ+LDaIOQn
 6cyvrO3Xuo7IApa9S5aFWVOlPWz86RG8q0igMqxiJX5UOg9xZe17sukH8a1MocxX
 pG3eYKR12CEBiLzx9YAITvibNabSLT89d2RmYeQqx9AxtNFisKSaX6wfjAi4penj
 LNvqzitgKrUqeaIfyFeIQejq4QySCp7SNCj/cZuZ0/jhtOb8X+Pg7O4MgmGCRCp2
 D3zKTET254eA4UutMWcKxMT0hf66t3MEK9zTukujD4tkPcmYdyoNlmrGqooZrIbG
 jAoS+D+9LZNxe5Uy+0hONVRme0j2fBANti5kuE0izk6R+93Lu/PZX5NLx2+kBEeL
 9FOy9ZwYrh7MWiJfYTkV8qi2XAR+oMgj4palxZuLbCwcGZV7B4+lFBbMX+gC3ZIu
 /rSqCPF4x9zUhT3GhA==
 =vn15
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAml0ypAWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICM99D/9O2Pfghaf1ukyjtENRLxy1r6LH
 My1QuOc/fGhCYtSMmTVoWgo0hphn3z9Bc0V2ojoWJUIoYdxZd9TVIus3yhvIvuDy
 /C/XB5UWmAT6vGFOtK212S+WiHtx4xWMUaN+cpDveazTtuntfcAOZ09pccfj9q2T
 dlJNWtz/3b2PGJm7CtVHXVc0Dey1avmK4uWrqtoEHeKrlJeJLdhvPpjEal6FRsbd
 tHzwCYGyHBJCWajnrn53UYzhjg6mA/Q51RLshib8TSpX/p+jRp2qMVesIrDYSDzc
 QW9TBQq87JhdIKANk7E7QIC8St1yzpdzVEIOWREmWMD+fMfifiR1Jv/64lZQpbNY
 PVsibEunHqYI7DH9lGVY8CRdec7DFirtz9WsI6+FOcoO6LXB8NzoZX3wbDwcre5x
 VfRdMZSTq+xzUPln9/NxqbCwJeEL0+H6ZPplrI5PCMTPG2+AoRO2yCuRgqsa/9UR
 au2HSNLZeQtjyrXJnmYpnaLpdQxQjPJXcKGpoAX6iHn0J53AgTfP5uXwD4dB84YS
 VdtvWsnfoHtbJqwg4S4gAAXKJnK4feqVzIFeKW7dzGdV92FmtDUs85d27ia2EzTY
 gOSL6Y9R0mbaK9yAox3g8+nchmjJMy2Ee5b80/XiQ110DPkAyY6xEqcGj9idPYzq
 zlwJDfaNgx2ztqTPAw==
 =+fBZ
 -----END PGP SIGNATURE-----

Merge tag 'v26.2' into debian/trixie-backports

freedombox Debian release 26.2
This commit is contained in:
James Valleroy 2026-01-24 08:35:10 -05:00
commit a5e9b4e8f8
11 changed files with 1481 additions and 849 deletions

17
debian/changelog vendored
View File

@ -1,3 +1,20 @@
freedombox (26.2) unstable; urgency=medium
[ Pierfrancesco Passerini ]
* Translated using Weblate (Italian)
[ Priit Jõerüüt ]
* Translated using Weblate (Estonian)
[ Joseph Nuthalapati ]
* notifications: Close dropdown when clicking outside
* gitweb: Fix deleting last repo disables app
[ James Valleroy ]
* doc: Fetch latest manual
-- James Valleroy <jvalleroy@mailbox.org> Tue, 20 Jan 2026 20:26:42 -0500
freedombox (26.1~bpo13+1) trixie-backports; urgency=medium
* Rebuild for trixie-backports.

View File

@ -2,7 +2,7 @@
{{attachment:apu1d.jpg|PC Engines APU 1D|width=632,height=319}}
[[http://www.pcengines.ch/apu1d.htm|PC Engines APU 1D]] is a single board computer with 3 Gigabit ethernet ports, a powerful AMD APU and Coreboot firmware. !FreedomBox images built for AMD64 machines are tested to work well for it.
[[https://www.pcengines.ch/apu.htm|PC Engines APU]] boards are single board computers with 3 Gigabit ethernet ports, a powerful AMD64 APU and Coreboot firmware. !FreedomBox images built for AMD64 machines are tested to work well for [[http://www.pcengines.ch/apu1d.htm|APU1D]] and [[http://www.pcengines.ch/apu3b2.htm|APU3B ]] models and are expected to work also well on the other, very similar versions.
'''Important:''' Read [[FreedomBox/Hardware|general advice]] about hardware before building a !FreedomBox with this single board computer.
@ -21,21 +21,26 @@ Although untested, the following similar hardware is also likely to work well wi
* [[http://www.pcengines.ch/apu2c4.htm|apu2c4]]
* [[http://www.pcengines.ch/apu3a2.htm|apu3a2]]
* [[http://www.pcengines.ch/apu3a4.htm|apu3a4]]
* [[http://www.pcengines.ch/apu3b2.htm|apu3b2]]
* [[http://www.pcengines.ch/apu3b4.htm|apu3b4]]
=== Download ===
=== Installation ===
!FreedomBox disk [[FreedomBox/Download|images]] for this hardware are available. Follow the instructions on the [[FreedomBox/Download|download]] page to create a !FreedomBox SD card, USB disk, SSD or hard drive and boot into !FreedomBox. Pick the image meant for all amd64 machines.
An alternative to downloading these images is to [[InstallingDebianOn/Alix3d2|install Debian]] on the APU and then [[FreedomBox/Hardware/Debian|install FreedomBox]] on it.
An [[https://github.com/huubsch/APU-Installation-HomeAssistant-Freedombox|installation manual]] tested on the APU3B is available on GitHub, including flashing with UEFI-BIOS
=== Networking ===
The first network port, the left most one in the above picture, is configured by !FreedomBox to be an upstream Internet link and the remaining 2 ports are configured for local computers to connect to.
=== Availability ===
PCEngines announced the [[https://www.pcengines.ch/eol.htm|phase-out]] of these boards in June 2023.
In 2024 [[https://pcengines.github.io/|Dasharo announced the support of APU-boards]] : coreboot + SeaBIOS and coreboot+UEFI.
* Price: 110 - 170 USD (depending on the board and supplier)
* [[http://www.pcengines.ch/order.htm|PC Engines]]
* [[http://www.pcengines.ch/order.htm|Full list of suppliers]]
@ -43,18 +48,17 @@ The first network port, the left most one in the above picture, is configured by
=== Hardware ===
* Open Hardware: No
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]]
* RAM: 2 GB DDR3-1066 DRAM
* Storage: SD card, External USB
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]]; [[https://teklager.se/en/amd-gx-412tc-cpu-specification/|GX-412TC]], 1 GHz quad core (depending on model)
* RAM: 2 GB DDR3-1066 DRAM - 4 GB (depending on model)
* Storage: SD card, External USB, mSATA module
* Architecture: amd64
* Ethernet: 3 Gigabit Ethernet ports
* !WiFi: None, use a [[FreedomBox/Hardware/USBWiFi|USB WiFi device]]
* SATA: 1 m-SATA and 1 SATA
* WiFi: wle200nx / wle600vx / wle900vx miniPCI express wireless modules
* SATA: 1 mSATA-module and 1 SATA
=== Non-Free Status ===
* Non-free blobs required: No
* !WiFi: Not available
* Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]]
## END_INCLUDE
@ -62,4 +66,4 @@ The first network port, the left most one in the above picture, is configured by
<<Include(FreedomBox/Portal)>>
----
CategoryFreedomBox
CategoryFreedomBox CategoryFreedomBox

View File

@ -8,6 +8,32 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 26.2 (2026-01-20) ==
* gitweb: Fix deleting last repo disables app
* locale: Update translations for Estonian, Italian
* notifications: Close dropdown when clicking outside
== FreedomBox 26.1 (2026-01-05) ==
* container: Add aliases for start/stop commands
* locale: Update translations for Albanian, Bulgarian, Chinese (Simplified Han script), Czech, Estonian, French, German, Italian, Russian, Turkish, Ukrainian
== FreedomBox 25.17.1 (2025-12-15) ==
=== Highlights ===
* backups: Set proper permissions for backups-data directory
* minetest: Rename Minetest to Luanti
=== Other Changes ===
* locale: Update translations for Albanian, Bulgarian, Czech, Estonian, Hindi, Italian, Russian, Turkish, Ukrainian
* minetest: Remove legacy code, use new name, conf, etc.
* transmission: Deal with changes in latest forky package
* transmission: Remove obsolete apache redirects
* vagrant: Enable EFI firmware
== FreedomBox 25.17 (2025-12-08) ==
=== Highlights ===

View File

@ -2,7 +2,7 @@
{{attachment:apu1d.jpg|PC Engines APU 1D|width=632,height=319}}
[[http://www.pcengines.ch/apu1d.htm|PC Engines APU 1D]] is a single board computer with 3 Gigabit ethernet ports, a powerful AMD APU and Coreboot firmware. !FreedomBox images built for AMD64 machines are tested to work well for it.
[[https://www.pcengines.ch/apu.htm|PC Engines APU]] boards are single board computers with 3 Gigabit ethernet ports, a powerful AMD64 APU and Coreboot firmware. !FreedomBox images built for AMD64 machines are tested to work well for [[http://www.pcengines.ch/apu1d.htm|APU1D]] and [[http://www.pcengines.ch/apu3b2.htm|APU3B ]] models and are expected to work also well on the other, very similar versions.
'''Important:''' Read [[FreedomBox/Hardware|general advice]] about hardware before building a !FreedomBox with this single board computer.
@ -21,21 +21,26 @@ Although untested, the following similar hardware is also likely to work well wi
* [[http://www.pcengines.ch/apu2c4.htm|apu2c4]]
* [[http://www.pcengines.ch/apu3a2.htm|apu3a2]]
* [[http://www.pcengines.ch/apu3a4.htm|apu3a4]]
* [[http://www.pcengines.ch/apu3b2.htm|apu3b2]]
* [[http://www.pcengines.ch/apu3b4.htm|apu3b4]]
=== Download ===
=== Installation ===
!FreedomBox disk [[FreedomBox/Download|images]] for this hardware are available. Follow the instructions on the [[FreedomBox/Download|download]] page to create a !FreedomBox SD card, USB disk, SSD or hard drive and boot into !FreedomBox. Pick the image meant for all amd64 machines.
An alternative to downloading these images is to [[InstallingDebianOn/Alix3d2|install Debian]] on the APU and then [[FreedomBox/Hardware/Debian|install FreedomBox]] on it.
An [[https://github.com/huubsch/APU-Installation-HomeAssistant-Freedombox|installation manual]] tested on the APU3B is available on GitHub, including flashing with UEFI-BIOS
=== Networking ===
The first network port, the left most one in the above picture, is configured by !FreedomBox to be an upstream Internet link and the remaining 2 ports are configured for local computers to connect to.
=== Availability ===
PCEngines announced the [[https://www.pcengines.ch/eol.htm|phase-out]] of these boards in June 2023.
In 2024 [[https://pcengines.github.io/|Dasharo announced the support of APU-boards]] : coreboot + SeaBIOS and coreboot+UEFI.
* Price: 110 - 170 USD (depending on the board and supplier)
* [[http://www.pcengines.ch/order.htm|PC Engines]]
* [[http://www.pcengines.ch/order.htm|Full list of suppliers]]
@ -43,18 +48,17 @@ The first network port, the left most one in the above picture, is configured by
=== Hardware ===
* Open Hardware: No
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]]
* RAM: 2 GB DDR3-1066 DRAM
* Storage: SD card, External USB
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]]; [[https://teklager.se/en/amd-gx-412tc-cpu-specification/|GX-412TC]], 1 GHz quad core (depending on model)
* RAM: 2 GB DDR3-1066 DRAM - 4 GB (depending on model)
* Storage: SD card, External USB, mSATA module
* Architecture: amd64
* Ethernet: 3 Gigabit Ethernet ports
* !WiFi: None, use a [[FreedomBox/Hardware/USBWiFi|USB WiFi device]]
* SATA: 1 m-SATA and 1 SATA
* WiFi: wle200nx / wle600vx / wle900vx miniPCI express wireless modules
* SATA: 1 mSATA-module and 1 SATA
=== Non-Free Status ===
* Non-free blobs required: No
* !WiFi: Not available
* Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]]
## END_INCLUDE
@ -62,4 +66,4 @@ The first network port, the left most one in the above picture, is configured by
<<Include(FreedomBox/Portal)>>
----
CategoryFreedomBox
CategoryFreedomBox CategoryFreedomBox

View File

@ -20,7 +20,7 @@ La app Home Assistant se considera experimental en !FreedomBox, ya que es nueva
=== Hardware ===
Home Assistant puede detectar, configurar, y usar varios dispositivos de la red local. Por ejemplo, si un dispositivo se conecta mediante Wi-Fi o LAN a la misma red que !FreedomBox, Home Assistant puede detectarlo, configurarlo, y usarlo. También se soportan otros protocolos de automatización como Thread, !ZigBee, y Z-Wave, pero requieren hardware adicional para conectarlos a tu !FreedomBox. Por ejemplo, si tienes un sensor de puerta que habla !ZigBee, necesitas conectar un adaptador !ZigBee USB a tu !FreedomBox. Home Assistant podrá entonces detectar y usar el sensor de puerta en la red de !ZigBee.
Home Assistant puede detectar, configurar, y usar varios dispositivos de la red local. Por ejemplo, si un dispositivo se conecta mediante Wi-Fi o LAN a la misma red que !FreedomBox, Home Assistant puede detectarlo, configurarlo, y usarlo. También se soportan otros protocolos de automatización como Thread, !ZigBee, y Z-Wave, pero requieren hardware adicional para conectarlos a tu !FreedomBox. Por ejemplo, si tienes un sensor de puerta que habla !ZigBee, necesitas conectar un adaptador !ZigBee USB a tu !FreedomBox. Home Assistant podrá entonces detectar y usar el sensor de puerta en la red de !ZigBee. '''Nota:''' Si conectas hardware como este a tu FreedomBox después de instalar la aplicación Home Assistant tendrás que deshabilitarla y volverla a habilitar para que lo detecte y lo use.
Home Assistant es una solución completa si tu automatización del hogar necesita soportar miles de dispositivos. Puedes consultar si Home Assistant soporta un dispositivo visitando su página de [[https://www.home-assistant.io/integrations/|integraciones]]. Otros dispositivos similares a los soportados podrían estarlo aunque no figuren en la lista. Se recomienda comprar hardware etiquetado como compatible con Home Assistant.

View File

@ -8,6 +8,32 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 26.2 (2026-01-20) ==
* gitweb: Fix deleting last repo disables app
* locale: Update translations for Estonian, Italian
* notifications: Close dropdown when clicking outside
== FreedomBox 26.1 (2026-01-05) ==
* container: Add aliases for start/stop commands
* locale: Update translations for Albanian, Bulgarian, Chinese (Simplified Han script), Czech, Estonian, French, German, Italian, Russian, Turkish, Ukrainian
== FreedomBox 25.17.1 (2025-12-15) ==
=== Highlights ===
* backups: Set proper permissions for backups-data directory
* minetest: Rename Minetest to Luanti
=== Other Changes ===
* locale: Update translations for Albanian, Bulgarian, Czech, Estonian, Hindi, Italian, Russian, Turkish, Ukrainian
* minetest: Remove legacy code, use new name, conf, etc.
* transmission: Deal with changes in latest forky package
* transmission: Remove obsolete apache redirects
* vagrant: Enable EFI firmware
== FreedomBox 25.17 (2025-12-08) ==
=== Highlights ===

View File

@ -3,4 +3,4 @@
Package init file.
"""
__version__ = '26.1'
__version__ = '26.2'

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-16 01:18+0000\n"
"PO-Revision-Date: 2025-12-22 16:03+0000\n"
"PO-Revision-Date: 2026-01-09 20:01+0000\n"
"Last-Translator: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/et/>\n"
@ -1951,7 +1951,7 @@ msgstr ""
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:28
msgid "Actions"
msgstr "Teegvused"
msgstr "Tegevused"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:37
#: plinth/modules/dynamicdns/templates/dynamicdns.html:72
@ -2213,7 +2213,7 @@ msgstr ""
#: plinth/modules/email/__init__.py:62
msgid "Postfix/Dovecot"
msgstr ""
msgstr "Postfix/Dovecot"
#: plinth/modules/email/__init__.py:80
msgid "More emails"
@ -3124,11 +3124,11 @@ msgstr ""
#: plinth/modules/help/templates/help_about.html:129
msgid "Support"
msgstr ""
msgstr "Kasutajatugi"
#: plinth/modules/help/templates/help_about.html:133
msgid "Forum"
msgstr ""
msgstr "Foorum"
#: plinth/modules/help/templates/help_about.html:138
msgid "IRC Chatroom"
@ -4292,7 +4292,7 @@ msgstr ""
#: plinth/modules/miniflux/__init__.py:42
#: plinth/modules/miniflux/manifest.py:10
msgid "Miniflux"
msgstr ""
msgstr "Miniflux"
#: plinth/modules/miniflux/forms.py:12
msgid "Enter a username for the user."
@ -4423,7 +4423,7 @@ msgstr ""
#: plinth/modules/mumble/__init__.py:46 plinth/modules/mumble/manifest.py:9
msgid "Mumble"
msgstr ""
msgstr "Mumble"
#: plinth/modules/mumble/__init__.py:158
msgid "Mumble server is configured"
@ -5674,7 +5674,7 @@ msgstr ""
#: plinth/modules/networks/views.py:105 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard"
msgstr ""
msgstr "WireGuard"
#: plinth/modules/networks/views.py:112
msgid "ad-hoc"
@ -5786,7 +5786,7 @@ msgstr ""
#: plinth/modules/nextcloud/manifest.py:11
#: plinth/modules/nextcloud/manifest.py:18
msgid "Nextcloud"
msgstr ""
msgstr "Nextcloud"
#: plinth/modules/nextcloud/forms.py:19
msgid "Not set"
@ -5833,7 +5833,7 @@ msgstr ""
#: plinth/modules/nextcloud/manifest.py:56
#: plinth/modules/sharing/__init__.py:34
msgid "Sharing"
msgstr ""
msgstr "Jagamine"
#: plinth/modules/nextcloud/manifest.py:56 plinth/modules/sogo/manifest.py:72
msgid "Groupware"
@ -5860,7 +5860,7 @@ msgstr ""
#: plinth/modules/openvpn/__init__.py:46 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN"
msgstr ""
msgstr "OpenVPN"
#: plinth/modules/openvpn/__init__.py:57
#, python-brace-format
@ -6253,7 +6253,7 @@ msgstr ""
#: plinth/modules/privoxy/__init__.py:53
msgid "Privoxy"
msgstr ""
msgstr "Privoxy"
#: plinth/modules/privoxy/__init__.py:119
#, python-brace-format
@ -6291,7 +6291,7 @@ msgstr ""
#: plinth/modules/quassel/__init__.py:51 plinth/modules/quassel/manifest.py:9
msgid "Quassel"
msgstr ""
msgstr "Quassel"
#: plinth/modules/quassel/manifest.py:33
msgid "Quasseldroid"
@ -6299,7 +6299,7 @@ msgstr ""
#: plinth/modules/quassel/manifest.py:54
msgid "IRC"
msgstr ""
msgstr "IRC"
#: plinth/modules/radicale/__init__.py:25
#, python-brace-format
@ -6320,7 +6320,7 @@ msgstr ""
#: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74
msgid "Radicale"
msgstr ""
msgstr "Radicale"
#: plinth/modules/radicale/forms.py:14
msgid "Only the owner of a calendar/addressbook can view or make changes."
@ -6470,7 +6470,7 @@ msgstr ""
#: plinth/modules/rssbridge/__init__.py:52
#: plinth/modules/rssbridge/manifest.py:7
msgid "RSS-Bridge"
msgstr ""
msgstr "RSS-Bridge"
#: plinth/modules/rssbridge/forms.py:12 plinth/modules/searx/forms.py:17
msgid "Allow Public Access"
@ -6525,7 +6525,7 @@ msgstr ""
#: plinth/modules/samba/__init__.py:53
msgid "Samba"
msgstr ""
msgstr "Samba"
#: plinth/modules/samba/manifest.py:12
msgid "SambaLite"
@ -6818,7 +6818,7 @@ msgstr ""
#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli"
msgstr ""
msgstr "Shaarli"
#: plinth/modules/shaarli/manifest.py:12
msgid "Shaarlier"
@ -6826,7 +6826,7 @@ msgstr ""
#: plinth/modules/shaarli/manifest.py:34
msgid "Bookmarks"
msgstr ""
msgstr "Järjehoidjad"
#: plinth/modules/shaarli/manifest.py:34
msgid "Link blog"
@ -6869,7 +6869,7 @@ msgstr ""
#: plinth/modules/shadowsocks/__init__.py:50
msgid "Shadowsocks Client"
msgstr ""
msgstr "Shadowsocksi klient"
#: plinth/modules/shadowsocks/forms.py:25
msgid "Server hostname or IP address"
@ -6911,7 +6911,7 @@ msgstr ""
#: plinth/modules/shadowsocksserver/__init__.py:47
msgid "Shadowsocks Server"
msgstr ""
msgstr "Shadowsocksi server"
#: plinth/modules/shadowsocksserver/forms.py:10
#: plinth/modules/shadowsocksserver/forms.py:11
@ -7660,7 +7660,7 @@ msgstr ""
#: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing"
msgstr ""
msgstr "Syncthing"
#: plinth/modules/tiddlywiki/__init__.py:25
#, python-brace-format
@ -7695,7 +7695,7 @@ msgstr ""
#: plinth/modules/tiddlywiki/__init__.py:64
#: plinth/modules/tiddlywiki/manifest.py:9
msgid "TiddlyWiki"
msgstr ""
msgstr "TiddlyWiki"
#: plinth/modules/tiddlywiki/forms.py:39
msgid "A TiddlyWiki file with .html file extension"
@ -7753,7 +7753,7 @@ msgstr ""
#: plinth/modules/tor/__init__.py:63 plinth/modules/tor/manifest.py:61
#: plinth/modules/torproxy/manifest.py:58
msgid "Tor"
msgstr ""
msgstr "Tor"
#: plinth/modules/tor/__init__.py:77
msgid "Tor Onion Service"
@ -7889,7 +7889,7 @@ msgstr ""
#: plinth/modules/torproxy/__init__.py:57
msgid "Tor Proxy"
msgstr ""
msgstr "Tori proksi"
#: plinth/modules/torproxy/__init__.py:81
msgid "Tor Socks Proxy"
@ -7970,7 +7970,7 @@ msgstr ""
#: plinth/modules/transmission/__init__.py:74
#: plinth/modules/transmission/manifest.py:8
msgid "Transmission"
msgstr ""
msgstr "Transmission"
#: plinth/modules/transmission/manifest.py:15
msgid "Tremotesf"
@ -8990,7 +8990,7 @@ msgstr ""
#: plinth/modules/wordpress/__init__.py:53
#: plinth/modules/wordpress/manifest.py:6
msgid "WordPress"
msgstr ""
msgstr "WordPress"
#: plinth/modules/wordpress/forms.py:14
msgid "Public access"
@ -9029,7 +9029,7 @@ msgstr ""
#: plinth/modules/zoph/__init__.py:57 plinth/modules/zoph/manifest.py:6
msgid "Zoph"
msgstr ""
msgstr "Zoph"
#: plinth/modules/zoph/forms.py:14
msgid "Enable OpenStreetMap for maps"

File diff suppressed because it is too large Load Diff

View File

@ -109,14 +109,14 @@ class GitwebApp(app_module.App):
def _enable_public_access(self):
"""Allow Gitweb app to be accessed by anyone with access."""
if self.auth_webserver.is_conf_enabled():
if self.is_enabled():
self.auth_webserver.disable()
self.set_shortcut_login_required(False)
def _disable_public_access(self):
"""Allow Gitweb app to be accessed by logged-in users only."""
if self.is_enabled() and not self.auth_webserver.is_conf_enabled():
if self.is_enabled():
self.auth_webserver.enable()
self.set_shortcut_login_required(True)
@ -137,14 +137,7 @@ class GitwebApp(app_module.App):
class GitwebWebserverAuth(Webserver):
"""Component to handle Gitweb authentication webserver configuration."""
def is_conf_enabled(self):
"""Check whether Gitweb authentication configuration is enabled."""
return super().is_enabled()
def is_enabled(self):
"""Return if configuration is enabled or public access is enabled."""
repos = get_repo_list()
return have_public_repos(repos) or super().is_enabled()
is_leader = False
def enable(self):
"""Enable apache configuration only if no public repository exists."""

View File

@ -272,7 +272,7 @@ document.addEventListener('DOMContentLoaded', async () => {
/*
* Text areas showing log lines have special behavior.
*/
document.addEventListener('DOMContentLoaded', function(event) {
document.addEventListener('DOMContentLoaded', function (event) {
const logElements = document.querySelectorAll('textarea.log');
// Scroll the textarea to the bottom so that last lines are visible.
@ -280,3 +280,26 @@ document.addEventListener('DOMContentLoaded', function(event) {
element.scrollTop = element.scrollHeight;
}
});
/*
* Close notifications dropdown when clicking outside, like the other dropdowns.
*/
document.addEventListener('click', function (event) {
// Ignore if notifications dropdown is not open
const notifications = document.querySelector('.notifications');
if (!notifications?.classList.contains('show')) {
return;
}
// Ignore if the click happened inside the notifications area or on the toggle button
const toggles = document.querySelectorAll('[data-bs-target=".notifications"]');
const clickedInsideToggle = Array.from(toggles).some(toggle => toggle.contains(event.target));
if (notifications.contains(event.target) || clickedInsideToggle) {
return;
}
if (typeof bootstrap !== 'undefined' && bootstrap.Collapse) {
let bsCollapse = bootstrap.Collapse.getInstance(notifications);
bsCollapse.hide();
}
});