fix: notification history, Ctrl+D in web terminals, repository and VFIO rule fixes, translation corrections

- Notification settings show the last 20 notifications with the result of each send, the error when one failed and every daily digest run, also on days with nothing to send; the history is read without the flag the API never returned, and the page does not offer to erase it, as Audit & Report reads it.
- The Ctrl menu of the three web terminals sends Ctrl+D, which ends a text pasted in the terminal, also from a phone or a tablet.
- The repository check lists every Proxmox VE or Enterprise Ceph repository whose suite does not match the installed version, with its channel and file, and says where to disable it; repository addresses are never shown.
- Adding an NVIDIA GPU to a VM writes its VFIO udev rule again when it is missing or was edited, and the pre-check counts a missing rule as a pending host change.
- New texts in English and Spanish, modelled in the translation steady-state test, and the notifications docs page describes the history section.
- Corrected the automatic translations of the new LXC update and power control texts, and the start, shutdown, reboot and stop buttons of VMs and LXCs in German, French, Portuguese and Swedish.
- Tests for the history panel, the terminal Ctrl+D, the repository message and the VFIO rule.
This commit is contained in:
MacRimi
2026-10-15 18:30:53 +02:00
parent 983ed38e3b
commit 89fdfd0952
21 changed files with 389 additions and 136 deletions
+5
View File
@@ -339,6 +339,11 @@ evaluate_host_reboot_requirement() {
needs_change=true
fi
done
# The state alone is not enough: its udev rule may have been removed.
if declare -F _proxmenux_vfio_bind_udev_rule_current >/dev/null 2>&1 \
&& ! _proxmenux_vfio_bind_udev_rule_current; then
needs_change=true
fi
_file_has_exact_line "softdep nvidia pre: vfio-pci" "$vfio_conf" || needs_change=true
_file_has_exact_line "softdep nvidia_drm pre: vfio-pci" "$vfio_conf" || needs_change=true
_file_has_exact_line "softdep nvidia_modeset pre: vfio-pci" "$vfio_conf" || needs_change=true
@@ -67,6 +67,28 @@ grep -q 'ids=8086:7ad0' "$PROXMENUX_VFIO_CONF"
! grep -qi '10de:228b' "$PROXMENUX_VFIO_CONF"
_proxmenux_all_nvidia_in_vfio
[[ -f "$PROXMENUX_NVIDIA_VFIO_BLACKLIST" ]]
_proxmenux_vfio_bind_udev_rule_current
# A rule removed by hand while the state still lists the GPU is written again
# when the GPU is added once more, and the host is marked for a reboot.
rm -f "$PROXMENUX_VFIO_BIND_UDEV_RULE"
! _proxmenux_vfio_bind_udev_rule_current
HOST_CONFIG_CHANGED=false
_proxmenux_vfio_bind_add_bdfs 0000:01:00.0 0000:01:00.1
grep -qF 'KERNEL=="0000:01:00.0"' "$PROXMENUX_VFIO_BIND_UDEV_RULE"
grep -qF 'KERNEL=="0000:02:00.1"' "$PROXMENUX_VFIO_BIND_UDEV_RULE"
_proxmenux_vfio_bind_udev_rule_current
[[ "$HOST_CONFIG_CHANGED" == true ]]
# A rule that already matches the state is left alone.
HOST_CONFIG_CHANGED=false
_proxmenux_vfio_bind_add_bdfs 0000:01:00.0
[[ "$HOST_CONFIG_CHANGED" == false ]]
# A rule edited by hand is replaced by the one the state asks for.
echo '# edited' >> "$PROXMENUX_VFIO_BIND_UDEV_RULE"
_proxmenux_vfio_bind_add_bdfs 0000:01:00.0
! grep -qF '# edited' "$PROXMENUX_VFIO_BIND_UDEV_RULE"
# Returning only one GPU to the host must keep the other exact BDF in VFIO,
# remove the global NVIDIA blacklist, retain NVIDIA softdeps, and restore any