Introduces WebSocket-based real-time updates for the shopping list.
Changes to items (add, mark, delete) are now instantly reflected
across all connected user sessions without requiring a page refresh.
This commit:
- Extends the WebSocket ConnectionManager to broadcast item updates.
- Modifies item manipulation endpoints (add, mark, delete) to trigger broadcasts.
- Updates the frontend to listen for update broadcasts and refresh the list.
- Updates README.md to reflect the new real-time update feature.
The password prompt for deleting items was not appearing for non-admin
users because the backend endpoint to check for the password's
existence was incorrectly restricted to admins, and the frontend logic
did not properly handle the check.
This commit fixes the issue by:
- Allowing all authenticated users to check if a deletion password is set.
- Updating the frontend to correctly show the prompt based on this check.
Implementiert die serverseitige Spracherkennung basierend auf dem
Accept-Language-Header des Browsers. Das Backend liefert nun die
index.html-Datei dynamisch mit dem korrekten lang-Attribut aus.
Das Frontend-JavaScript wurde aktualisiert, um das lang-Attribut des
HTML-Dokuments zu berücksichtigen und eine konsistente
Sprachbehandlung zu gewährleisten.
Zusätzlich behebt dieser Commit einen Fehler, bei dem die
Beispiel-Vorschläge nach dem Hinzufügen eines Artikels nicht
ausgeblendet wurden. Außerdem wird die Funktionalität des
"Hinzufügen"-Buttons und der Enter-Taste wiederhergestellt.
Replaced the text-based 'Select All' button with a more intuitive and space-efficient Bootstrap icon (check2-square).
This change enhances the user interface by providing a symbolic representation for the 'Select All' action.
- Replaced the button in `static/index.html` with an SVG icon.
- Removed the corresponding JavaScript code that sets the button's text content.
- Removed the now-unused `select_all_button` translations from `translations.py`.