From 9dfaea8cda31567eea791bbf4f87f79b09da96ee Mon Sep 17 00:00:00 2001 From: fds2610-bot Date: Mon, 27 Jul 2026 06:57:05 +0200 Subject: [PATCH] Fix #139: Auto-Reload-Button durch iOS-artigen Toggle-Switch ersetzt --- Changes.md | 6 +++++ src/Views/ereignisse/nextcloud_import.php | 31 +++++++++++++++++------ tests/58_EreignisAutoReloadTest.php | 9 +++++-- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/Changes.md b/Changes.md index 2923240..d065017 100644 --- a/Changes.md +++ b/Changes.md @@ -2,6 +2,12 @@ --- +## 2026-07-27 – Fix: Auto-Reload-Button der Ereignisanzeige durch iOS-artigen Toggle-Switch ersetzt (Issue #139) + +- Rückmeldung zu #139: Der Text-Button „Auto-Reload: An/Aus" war nicht intuitiv genug. +- **`src/Views/ereignisse/nextcloud_import.php`:** Button durch einen runden Schiebeschalter (Checkbox + CSS, keine externe Bibliothek) ersetzt – links/grau = aus, rechts/grün = ein. Verhalten (Polling, `localStorage`-Persistenz) unverändert. +- **`tests/58_EreignisAutoReloadTest.php`:** Test an die neue Toggle-Switch-Struktur (Checkbox statt Button, `change`- statt `click`-Event) angepasst. + ## 2026-07-26 – Feature: Dritte Eingabezeile ohne USt. in der Essensbeleg-Buchungsvorlage (Issue #140) - Die Buchungsvorlage „Essensbeleg n. abzugsfähig (nur USt.)" hatte nur Eingabezeilen für 7 % und 19 % USt. – Beträge ohne USt. (z. B. Trinkgeld) ließen sich damit nicht erfassen. diff --git a/src/Views/ereignisse/nextcloud_import.php b/src/Views/ereignisse/nextcloud_import.php index 4ad281f..e5a6048 100644 --- a/src/Views/ereignisse/nextcloud_import.php +++ b/src/Views/ereignisse/nextcloud_import.php @@ -1,9 +1,28 @@ + +
Nextcloud-Import
Einträge (neueste zuerst) - +
@@ -26,10 +45,7 @@ } function renderToggle() { - var on = isEnabled(); - toggle.textContent = on ? 'Auto-Reload: An' : 'Auto-Reload: Aus'; - toggle.classList.toggle('btn-success', on); - toggle.classList.toggle('btn-secondary', !on); + toggle.checked = isEnabled(); } function poll() { @@ -57,9 +73,8 @@ } } - toggle.addEventListener('click', function () { - localStorage.setItem(STORAGE_KEY, isEnabled() ? 'off' : 'on'); - renderToggle(); + toggle.addEventListener('change', function () { + localStorage.setItem(STORAGE_KEY, toggle.checked ? 'on' : 'off'); if (isEnabled()) { poll(); start(); diff --git a/tests/58_EreignisAutoReloadTest.php b/tests/58_EreignisAutoReloadTest.php index d789707..6fe3bbf 100644 --- a/tests/58_EreignisAutoReloadTest.php +++ b/tests/58_EreignisAutoReloadTest.php @@ -35,8 +35,13 @@ class EreignisAutoReloadTest extends TestCase ); $this->assert( - str_contains($view, "toggle.addEventListener('click'"), - 'Button schaltet Auto-Reload per Klick ein/aus' + str_contains($view, "toggle.addEventListener('change'"), + 'Toggle-Switch schaltet Auto-Reload per Umlegen ein/aus' + ); + + $this->assert( + str_contains($view, 'class="switch"') && str_contains($view, 'type="checkbox"'), + 'Auto-Reload wird als iOS-artiger Toggle-Switch (Checkbox) dargestellt' ); // Partial für Tabellen-Body existiert und wird sowohl beim initialen