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 freedombox (26.1~bpo13+1) trixie-backports; urgency=medium
* Rebuild for trixie-backports. * Rebuild for trixie-backports.

View File

@ -2,7 +2,7 @@
{{attachment:apu1d.jpg|PC Engines APU 1D|width=632,height=319}} {{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. '''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/apu2c4.htm|apu2c4]]
* [[http://www.pcengines.ch/apu3a2.htm|apu3a2]] * [[http://www.pcengines.ch/apu3a2.htm|apu3a2]]
* [[http://www.pcengines.ch/apu3a4.htm|apu3a4]] * [[http://www.pcengines.ch/apu3a4.htm|apu3a4]]
* [[http://www.pcengines.ch/apu3b2.htm|apu3b2]]
* [[http://www.pcengines.ch/apu3b4.htm|apu3b4]] * [[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. !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 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 === === 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. 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 === === 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) * Price: 110 - 170 USD (depending on the board and supplier)
* [[http://www.pcengines.ch/order.htm|PC Engines]] * [[http://www.pcengines.ch/order.htm|PC Engines]]
* [[http://www.pcengines.ch/order.htm|Full list of suppliers]] * [[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 === === Hardware ===
* Open Hardware: No * Open Hardware: No
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]] * 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 * RAM: 2 GB DDR3-1066 DRAM - 4 GB (depending on model)
* Storage: SD card, External USB * Storage: SD card, External USB, mSATA module
* Architecture: amd64 * Architecture: amd64
* Ethernet: 3 Gigabit Ethernet ports * Ethernet: 3 Gigabit Ethernet ports
* !WiFi: None, use a [[FreedomBox/Hardware/USBWiFi|USB WiFi device]] * WiFi: wle200nx / wle600vx / wle900vx miniPCI express wireless modules
* SATA: 1 m-SATA and 1 SATA * SATA: 1 mSATA-module and 1 SATA
=== Non-Free Status === === Non-Free Status ===
* Non-free blobs required: No * Non-free blobs required: No
* !WiFi: Not available
* Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]] * Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]]
## END_INCLUDE ## END_INCLUDE
@ -62,4 +66,4 @@ The first network port, the left most one in the above picture, is configured by
<<Include(FreedomBox/Portal)>> <<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. 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) == == FreedomBox 25.17 (2025-12-08) ==
=== Highlights === === Highlights ===

View File

@ -2,7 +2,7 @@
{{attachment:apu1d.jpg|PC Engines APU 1D|width=632,height=319}} {{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. '''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/apu2c4.htm|apu2c4]]
* [[http://www.pcengines.ch/apu3a2.htm|apu3a2]] * [[http://www.pcengines.ch/apu3a2.htm|apu3a2]]
* [[http://www.pcengines.ch/apu3a4.htm|apu3a4]] * [[http://www.pcengines.ch/apu3a4.htm|apu3a4]]
* [[http://www.pcengines.ch/apu3b2.htm|apu3b2]]
* [[http://www.pcengines.ch/apu3b4.htm|apu3b4]] * [[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. !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 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 === === 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. 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 === === 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) * Price: 110 - 170 USD (depending on the board and supplier)
* [[http://www.pcengines.ch/order.htm|PC Engines]] * [[http://www.pcengines.ch/order.htm|PC Engines]]
* [[http://www.pcengines.ch/order.htm|Full list of suppliers]] * [[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 === === Hardware ===
* Open Hardware: No * Open Hardware: No
* CPU: [[http://www.amd.com/en-gb/products/embedded/processors/g-series|AMD G series T40E]] * 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 * RAM: 2 GB DDR3-1066 DRAM - 4 GB (depending on model)
* Storage: SD card, External USB * Storage: SD card, External USB, mSATA module
* Architecture: amd64 * Architecture: amd64
* Ethernet: 3 Gigabit Ethernet ports * Ethernet: 3 Gigabit Ethernet ports
* !WiFi: None, use a [[FreedomBox/Hardware/USBWiFi|USB WiFi device]] * WiFi: wle200nx / wle600vx / wle900vx miniPCI express wireless modules
* SATA: 1 m-SATA and 1 SATA * SATA: 1 mSATA-module and 1 SATA
=== Non-Free Status === === Non-Free Status ===
* Non-free blobs required: No * Non-free blobs required: No
* !WiFi: Not available
* Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]] * Boot firmware: [[http://www.pcengines.ch/apu1d.htm|Coreboot]]
## END_INCLUDE ## END_INCLUDE
@ -62,4 +66,4 @@ The first network port, the left most one in the above picture, is configured by
<<Include(FreedomBox/Portal)>> <<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 === === 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. 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. 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) == == FreedomBox 25.17 (2025-12-08) ==
=== Highlights === === Highlights ===

View File

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

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-16 01:18+0000\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" "Last-Translator: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/et/>\n" "freedombox/et/>\n"
@ -1951,7 +1951,7 @@ msgstr ""
#: plinth/modules/letsencrypt/templates/letsencrypt.html:27 #: plinth/modules/letsencrypt/templates/letsencrypt.html:27
#: plinth/modules/storage/templates/storage.html:28 #: plinth/modules/storage/templates/storage.html:28
msgid "Actions" msgid "Actions"
msgstr "Teegvused" msgstr "Tegevused"
#: plinth/modules/dynamicdns/templates/dynamicdns.html:37 #: plinth/modules/dynamicdns/templates/dynamicdns.html:37
#: plinth/modules/dynamicdns/templates/dynamicdns.html:72 #: plinth/modules/dynamicdns/templates/dynamicdns.html:72
@ -2213,7 +2213,7 @@ msgstr ""
#: plinth/modules/email/__init__.py:62 #: plinth/modules/email/__init__.py:62
msgid "Postfix/Dovecot" msgid "Postfix/Dovecot"
msgstr "" msgstr "Postfix/Dovecot"
#: plinth/modules/email/__init__.py:80 #: plinth/modules/email/__init__.py:80
msgid "More emails" msgid "More emails"
@ -3124,11 +3124,11 @@ msgstr ""
#: plinth/modules/help/templates/help_about.html:129 #: plinth/modules/help/templates/help_about.html:129
msgid "Support" msgid "Support"
msgstr "" msgstr "Kasutajatugi"
#: plinth/modules/help/templates/help_about.html:133 #: plinth/modules/help/templates/help_about.html:133
msgid "Forum" msgid "Forum"
msgstr "" msgstr "Foorum"
#: plinth/modules/help/templates/help_about.html:138 #: plinth/modules/help/templates/help_about.html:138
msgid "IRC Chatroom" msgid "IRC Chatroom"
@ -4292,7 +4292,7 @@ msgstr ""
#: plinth/modules/miniflux/__init__.py:42 #: plinth/modules/miniflux/__init__.py:42
#: plinth/modules/miniflux/manifest.py:10 #: plinth/modules/miniflux/manifest.py:10
msgid "Miniflux" msgid "Miniflux"
msgstr "" msgstr "Miniflux"
#: plinth/modules/miniflux/forms.py:12 #: plinth/modules/miniflux/forms.py:12
msgid "Enter a username for the user." msgid "Enter a username for the user."
@ -4423,7 +4423,7 @@ msgstr ""
#: plinth/modules/mumble/__init__.py:46 plinth/modules/mumble/manifest.py:9 #: plinth/modules/mumble/__init__.py:46 plinth/modules/mumble/manifest.py:9
msgid "Mumble" msgid "Mumble"
msgstr "" msgstr "Mumble"
#: plinth/modules/mumble/__init__.py:158 #: plinth/modules/mumble/__init__.py:158
msgid "Mumble server is configured" msgid "Mumble server is configured"
@ -5674,7 +5674,7 @@ msgstr ""
#: plinth/modules/networks/views.py:105 plinth/modules/wireguard/__init__.py:47 #: plinth/modules/networks/views.py:105 plinth/modules/wireguard/__init__.py:47
#: plinth/modules/wireguard/manifest.py:14 #: plinth/modules/wireguard/manifest.py:14
msgid "WireGuard" msgid "WireGuard"
msgstr "" msgstr "WireGuard"
#: plinth/modules/networks/views.py:112 #: plinth/modules/networks/views.py:112
msgid "ad-hoc" msgid "ad-hoc"
@ -5786,7 +5786,7 @@ msgstr ""
#: plinth/modules/nextcloud/manifest.py:11 #: plinth/modules/nextcloud/manifest.py:11
#: plinth/modules/nextcloud/manifest.py:18 #: plinth/modules/nextcloud/manifest.py:18
msgid "Nextcloud" msgid "Nextcloud"
msgstr "" msgstr "Nextcloud"
#: plinth/modules/nextcloud/forms.py:19 #: plinth/modules/nextcloud/forms.py:19
msgid "Not set" msgid "Not set"
@ -5833,7 +5833,7 @@ msgstr ""
#: plinth/modules/nextcloud/manifest.py:56 #: plinth/modules/nextcloud/manifest.py:56
#: plinth/modules/sharing/__init__.py:34 #: plinth/modules/sharing/__init__.py:34
msgid "Sharing" msgid "Sharing"
msgstr "" msgstr "Jagamine"
#: plinth/modules/nextcloud/manifest.py:56 plinth/modules/sogo/manifest.py:72 #: plinth/modules/nextcloud/manifest.py:56 plinth/modules/sogo/manifest.py:72
msgid "Groupware" msgid "Groupware"
@ -5860,7 +5860,7 @@ msgstr ""
#: plinth/modules/openvpn/__init__.py:46 plinth/modules/openvpn/manifest.py:17 #: plinth/modules/openvpn/__init__.py:46 plinth/modules/openvpn/manifest.py:17
msgid "OpenVPN" msgid "OpenVPN"
msgstr "" msgstr "OpenVPN"
#: plinth/modules/openvpn/__init__.py:57 #: plinth/modules/openvpn/__init__.py:57
#, python-brace-format #, python-brace-format
@ -6253,7 +6253,7 @@ msgstr ""
#: plinth/modules/privoxy/__init__.py:53 #: plinth/modules/privoxy/__init__.py:53
msgid "Privoxy" msgid "Privoxy"
msgstr "" msgstr "Privoxy"
#: plinth/modules/privoxy/__init__.py:119 #: plinth/modules/privoxy/__init__.py:119
#, python-brace-format #, python-brace-format
@ -6291,7 +6291,7 @@ msgstr ""
#: plinth/modules/quassel/__init__.py:51 plinth/modules/quassel/manifest.py:9 #: plinth/modules/quassel/__init__.py:51 plinth/modules/quassel/manifest.py:9
msgid "Quassel" msgid "Quassel"
msgstr "" msgstr "Quassel"
#: plinth/modules/quassel/manifest.py:33 #: plinth/modules/quassel/manifest.py:33
msgid "Quasseldroid" msgid "Quasseldroid"
@ -6299,7 +6299,7 @@ msgstr ""
#: plinth/modules/quassel/manifest.py:54 #: plinth/modules/quassel/manifest.py:54
msgid "IRC" msgid "IRC"
msgstr "" msgstr "IRC"
#: plinth/modules/radicale/__init__.py:25 #: plinth/modules/radicale/__init__.py:25
#, python-brace-format #, python-brace-format
@ -6320,7 +6320,7 @@ msgstr ""
#: plinth/modules/radicale/__init__.py:53 #: plinth/modules/radicale/__init__.py:53
#: plinth/modules/radicale/manifest.py:74 #: plinth/modules/radicale/manifest.py:74
msgid "Radicale" msgid "Radicale"
msgstr "" msgstr "Radicale"
#: plinth/modules/radicale/forms.py:14 #: plinth/modules/radicale/forms.py:14
msgid "Only the owner of a calendar/addressbook can view or make changes." 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/__init__.py:52
#: plinth/modules/rssbridge/manifest.py:7 #: plinth/modules/rssbridge/manifest.py:7
msgid "RSS-Bridge" msgid "RSS-Bridge"
msgstr "" msgstr "RSS-Bridge"
#: plinth/modules/rssbridge/forms.py:12 plinth/modules/searx/forms.py:17 #: plinth/modules/rssbridge/forms.py:12 plinth/modules/searx/forms.py:17
msgid "Allow Public Access" msgid "Allow Public Access"
@ -6525,7 +6525,7 @@ msgstr ""
#: plinth/modules/samba/__init__.py:53 #: plinth/modules/samba/__init__.py:53
msgid "Samba" msgid "Samba"
msgstr "" msgstr "Samba"
#: plinth/modules/samba/manifest.py:12 #: plinth/modules/samba/manifest.py:12
msgid "SambaLite" msgid "SambaLite"
@ -6818,7 +6818,7 @@ msgstr ""
#: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25 #: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25
msgid "Shaarli" msgid "Shaarli"
msgstr "" msgstr "Shaarli"
#: plinth/modules/shaarli/manifest.py:12 #: plinth/modules/shaarli/manifest.py:12
msgid "Shaarlier" msgid "Shaarlier"
@ -6826,7 +6826,7 @@ msgstr ""
#: plinth/modules/shaarli/manifest.py:34 #: plinth/modules/shaarli/manifest.py:34
msgid "Bookmarks" msgid "Bookmarks"
msgstr "" msgstr "Järjehoidjad"
#: plinth/modules/shaarli/manifest.py:34 #: plinth/modules/shaarli/manifest.py:34
msgid "Link blog" msgid "Link blog"
@ -6869,7 +6869,7 @@ msgstr ""
#: plinth/modules/shadowsocks/__init__.py:50 #: plinth/modules/shadowsocks/__init__.py:50
msgid "Shadowsocks Client" msgid "Shadowsocks Client"
msgstr "" msgstr "Shadowsocksi klient"
#: plinth/modules/shadowsocks/forms.py:25 #: plinth/modules/shadowsocks/forms.py:25
msgid "Server hostname or IP address" msgid "Server hostname or IP address"
@ -6911,7 +6911,7 @@ msgstr ""
#: plinth/modules/shadowsocksserver/__init__.py:47 #: plinth/modules/shadowsocksserver/__init__.py:47
msgid "Shadowsocks Server" msgid "Shadowsocks Server"
msgstr "" msgstr "Shadowsocksi server"
#: plinth/modules/shadowsocksserver/forms.py:10 #: plinth/modules/shadowsocksserver/forms.py:10
#: plinth/modules/shadowsocksserver/forms.py:11 #: plinth/modules/shadowsocksserver/forms.py:11
@ -7660,7 +7660,7 @@ msgstr ""
#: plinth/modules/syncthing/__init__.py:59 #: plinth/modules/syncthing/__init__.py:59
#: plinth/modules/syncthing/manifest.py:12 #: plinth/modules/syncthing/manifest.py:12
msgid "Syncthing" msgid "Syncthing"
msgstr "" msgstr "Syncthing"
#: plinth/modules/tiddlywiki/__init__.py:25 #: plinth/modules/tiddlywiki/__init__.py:25
#, python-brace-format #, python-brace-format
@ -7695,7 +7695,7 @@ msgstr ""
#: plinth/modules/tiddlywiki/__init__.py:64 #: plinth/modules/tiddlywiki/__init__.py:64
#: plinth/modules/tiddlywiki/manifest.py:9 #: plinth/modules/tiddlywiki/manifest.py:9
msgid "TiddlyWiki" msgid "TiddlyWiki"
msgstr "" msgstr "TiddlyWiki"
#: plinth/modules/tiddlywiki/forms.py:39 #: plinth/modules/tiddlywiki/forms.py:39
msgid "A TiddlyWiki file with .html file extension" 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/tor/__init__.py:63 plinth/modules/tor/manifest.py:61
#: plinth/modules/torproxy/manifest.py:58 #: plinth/modules/torproxy/manifest.py:58
msgid "Tor" msgid "Tor"
msgstr "" msgstr "Tor"
#: plinth/modules/tor/__init__.py:77 #: plinth/modules/tor/__init__.py:77
msgid "Tor Onion Service" msgid "Tor Onion Service"
@ -7889,7 +7889,7 @@ msgstr ""
#: plinth/modules/torproxy/__init__.py:57 #: plinth/modules/torproxy/__init__.py:57
msgid "Tor Proxy" msgid "Tor Proxy"
msgstr "" msgstr "Tori proksi"
#: plinth/modules/torproxy/__init__.py:81 #: plinth/modules/torproxy/__init__.py:81
msgid "Tor Socks Proxy" msgid "Tor Socks Proxy"
@ -7970,7 +7970,7 @@ msgstr ""
#: plinth/modules/transmission/__init__.py:74 #: plinth/modules/transmission/__init__.py:74
#: plinth/modules/transmission/manifest.py:8 #: plinth/modules/transmission/manifest.py:8
msgid "Transmission" msgid "Transmission"
msgstr "" msgstr "Transmission"
#: plinth/modules/transmission/manifest.py:15 #: plinth/modules/transmission/manifest.py:15
msgid "Tremotesf" msgid "Tremotesf"
@ -8990,7 +8990,7 @@ msgstr ""
#: plinth/modules/wordpress/__init__.py:53 #: plinth/modules/wordpress/__init__.py:53
#: plinth/modules/wordpress/manifest.py:6 #: plinth/modules/wordpress/manifest.py:6
msgid "WordPress" msgid "WordPress"
msgstr "" msgstr "WordPress"
#: plinth/modules/wordpress/forms.py:14 #: plinth/modules/wordpress/forms.py:14
msgid "Public access" msgid "Public access"
@ -9029,7 +9029,7 @@ msgstr ""
#: plinth/modules/zoph/__init__.py:57 plinth/modules/zoph/manifest.py:6 #: plinth/modules/zoph/__init__.py:57 plinth/modules/zoph/manifest.py:6
msgid "Zoph" msgid "Zoph"
msgstr "" msgstr "Zoph"
#: plinth/modules/zoph/forms.py:14 #: plinth/modules/zoph/forms.py:14
msgid "Enable OpenStreetMap for maps" 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): def _enable_public_access(self):
"""Allow Gitweb app to be accessed by anyone with access.""" """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.auth_webserver.disable()
self.set_shortcut_login_required(False) self.set_shortcut_login_required(False)
def _disable_public_access(self): def _disable_public_access(self):
"""Allow Gitweb app to be accessed by logged-in users only.""" """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.auth_webserver.enable()
self.set_shortcut_login_required(True) self.set_shortcut_login_required(True)
@ -137,14 +137,7 @@ class GitwebApp(app_module.App):
class GitwebWebserverAuth(Webserver): class GitwebWebserverAuth(Webserver):
"""Component to handle Gitweb authentication webserver configuration.""" """Component to handle Gitweb authentication webserver configuration."""
def is_conf_enabled(self): is_leader = False
"""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()
def enable(self): def enable(self):
"""Enable apache configuration only if no public repository exists.""" """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. * Text areas showing log lines have special behavior.
*/ */
document.addEventListener('DOMContentLoaded', function(event) { document.addEventListener('DOMContentLoaded', function (event) {
const logElements = document.querySelectorAll('textarea.log'); const logElements = document.querySelectorAll('textarea.log');
// Scroll the textarea to the bottom so that last lines are visible. // 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; 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();
}
});