Repository navigation
Releases: listiges-kaenguru/auslagenflow
Release list
v3.4.0 – Versionsprüfung gegen GitHub
Hinzugefügt
- Versionsprüfung gegen GitHub: Das Profil zeigt unter „App-Version“, ob auf GitHub eine neuere Version von AuslagenFlow erschienen ist („Neue Version auf GitHub“, für Admins mit Link zum Release). Bisher meldete „Die App ist auf dem neuesten Stand“ nur, dass der Browser die auf dem Server installierte Version nutzt.
- Die Abfrage stellt der Server, nicht der Browser (neue Route
GET profil/version, über cURL oderallow_url_fopen). Er merkt sich das Ergebnis 12 Stunden inva_metaund fragt nach einem Fehlschlag frühestens nach einer Stunde erneut. Daten des Vereins oder der Mitglieder werden dabei nicht übertragen.
Geändert
- README: neuer Abschnitt „Aktualisieren“ und Link zur Projektseite https://auslagenflow.schmaralde.de/.
Kein neues Datenbankschema.
Hinweise zum Update
Dateien per FTP über die alten laden, api/config/config.php dabei nicht löschen. Die Browser der Mitglieder zeigen danach „Aktualisierung verfügbar“.
v3.3.1 – Code aufgeräumt
Reines Refactoring ohne sichtbare Änderung (gleiche Oberfläche, gleiches Verhalten, gleiche API):
- Entfernt: ungenutzte Funktion
neueId(), KonstanteSTATUS_WERTE, CSS für die frühere
Status-Knopfleiste (.status-leiste,.status-btn*,--offen-aktiv) und.beleg-knoepfe--einzeln - Frontend: gemeinsamer Helfer
mitFehlerToast()(Ladezustand + Fehler-Toast) statt eigener
Varianten in Profil, Anmeldung, Übersicht und Kasse;MIN_PASSWORTnur noch insitzung.js;
Beleg-Anzeige im Detail-Fenster in einer Funktion; Kommentare nutzenformatiereBetrag()/plural();
Kasse gruppiert pro Darstellung nur noch einmal; Export ohne doppelte ZIP-Optionen/Beleg-Namen - Backend: Helfer
inTransaktion(),platzhalter(),istDoppelterEintrag(),fuehreBlobAus()
(lib/db.php),anfrageTyp()(lib/http.php),hatKassenrolle()/ladeBenutzerFuerClient()
(lib/sitzung.php);dbEingabe()nachlib/db.phpund auch für die Ersteinrichtung genutzt;
die Kassen-Abfrage verwendetAUSLAGEN_SPALTEN/AUSLAGEN_JOINSstatt einer Kopie vonAUSLAGEN_SELECT
AuslagenFlow v3.3.0
Neuer Name: AuslagenFlow
Von der Auslage bis zur Erstattung. Die App hieß bisher „VereinsAuslagen“, das Repository AuslagenVerwaltung. Alte Links auf GitHub leiten automatisch weiter.
- Neuer Name überall, wo er sichtbar ist: Titel, App-Name auf dem Startbildschirm, Lizenzhinweis, PDF-Fußzeile, Dateinamen von Exporten, Einreichungen und Wiederherstellungscodes.
- Neue Einträge in der Authenticator-App und neue Passkeys tragen den Namen „AuslagenFlow“. Bestehende Einträge und Passkeys funktionieren unverändert weiter und behalten ihren alten Namen.
- Datenbank, Backups und gespeicherte Daten bleiben unverändert gültig.
Keine Schemaänderung. Zum Aktualisieren die geänderten Dateien hochladen; die App bietet das Update im Profil an. Bei installierten Apps ändert sich der Name auf dem Startbildschirm je nach System erst nach dem Update oder einer Neuinstallation.
VereinsAuslagen v3.2.1
Lizenz AGPL-3.0
- Lizenzwechsel: VereinsAuslagen steht jetzt unter der GNU AGPL v3 statt der GPL v3. Wer die App übers Netz nutzt, kann den Quelltext beziehen.
- Quelltext-Link in der App: Die Anmeldeseite und das Profil (unter „App-Version“) zeigen einen Lizenzhinweis mit Link zur AGPL und zum Repository.
- Für Betreiber: Für den unveränderten Betrieb ist nichts zu tun. Wer die App verändert betreibt, stellt
QUELLTEXT_URLinjs/hilfen.jsauf den eigenen geänderten Quelltext um (siehe README → Lizenz).
Keine Schemaänderung. Zum Aktualisieren die geänderten Dateien hochladen; die App bietet das Update im Profil an.
VereinsAuslagen v3.2.0
Rückfragen direkt in der App: Zu jeder Einreichung gibt es jetzt einen Verlauf, in dem Mitglied, Kassenwart und Vorstand schreiben – und in dem jede Statusänderung festgehalten wird.
Neu für Mitglieder
- 💬 Verlauf bei jeder Einreichung: Fragen der Kasse beantworten oder selbst etwas mitteilen („Beleg folgt per Post“), auf Wunsch mit Bezug auf eine bestimmte Auslage. Jede Statusänderung steht mit Person und Uhrzeit darin.
- Neues auf einen Blick: roter Punkt an „Übersicht“, „💬 neu“ an der Einreichung.
- Aufgeräumte Übersicht: Einreichungen lassen sich auf- und zuklappen. Erstattete wandern nach 5 Minuten in den Bereich Abgeschlossen, zurückgezogene und abgelehnte stehen unter Abgebrochen – mit PDF und Verlauf.
- Kommentare lassen sich nicht bearbeiten; den eigenen kannst du 5 Minuten lang löschen, solange niemand geantwortet hat.
Neu für Kassenwart und Vorstand
- Rückfragen im Verlauf jeder Einreichung, Filter 💬 Ungelesen in der Kasse (auch für neu eingegangene Einreichungen).
- ✖ Nicht genehmigen verlangt jetzt eine Begründung; sie erscheint beim Mitglied im Verlauf.
Für alle
- Aktualisieren oben in der Kopfzeile, in jeder Ansicht.
- Breitere Darstellung am Laptop, Filter brechen um statt seitlich zu scrollen.
Für Betreiber
- Vorher die Datenbank sichern. Beim ersten Aufruf wird sie automatisch auf Schema 6 umgestellt. Bereits erstattete Einreichungen gelten danach sofort als abgeschlossen.
- Die Datensicherung in der App (Backup speichern/einspielen) ist jetzt standardmäßig ausgeschaltet und ausgeblendet, weil alle Daten in der Datenbank liegen. Für Tests oder den Umstieg von der Einzelplatz-Version:
'datensicherung' => trueinapi/config/config.phpergänzen.
Details im CHANGELOG und im Benutzerhandbuch.
Full Changelog: v3.1.1...v3.2.0
VereinsAuslagen v3.1.1
Neue Rollen Kassenwart und Vorstand, ein neuer Status „Erstattung veranlasst“ und Einreichungen, die als Ganzes bearbeitet werden – samt gespeichertem Einreichungs-PDF.
Neu für Mitglieder
- Einreichungen bleiben zusammen. In der Übersicht stehen offene Auslagen einzeln, darunter jede Einreichung als eigener Kasten. Der Status gilt immer für die ganze Einreichung: ↩ Einreichung zurückziehen, ● Als erstattet markieren, ↩ Doch noch nicht erstattet.
- Eingereichte Auslagen lassen sich einzeln nicht mehr ändern oder löschen. Zum Ändern die Einreichung zurückziehen – das geht, solange der Kassenwart die Erstattung noch nicht veranlasst hat.
- 📄 Einreichungs-PDF: Das PDF wird beim Einreichen gespeichert und lässt sich jederzeit wieder öffnen.
Neu für Kassenwart und Vorstand
- Neuer Bereich Kasse (Alt+5) mit den Einreichungen aller Mitglieder, ihren Belegen und dem Einreichungs-PDF. Offene Auslagen bleiben privat.
- Kassenwart: 💸 Erstattung veranlasst (und Rücknahme), IBAN des Mitglieds sichtbar. Den Eingang bestätigt das Mitglied selbst mit „Erstattet“.
- Kassenwart und Vorstand: ✖ Nicht genehmigen gibt eine Einreichung zurück; die Auslagen sind beim Mitglied dann wieder offen.
- Nach „Erstattung veranlasst“ ist eine Einreichung zur Nachvollziehbarkeit festgeschrieben.
Für Administratoren
- Die Kassenrolle (Keine / Kassenwart / Vorstand) wird in der Benutzerverwaltung vergeben. Administratoren sehen weiterhin keine fremden Auslagen, außer sie haben selbst eine Kassenrolle.
- Konten mit veranlassten Erstattungen lassen sich nur noch sperren, nicht löschen.
Update-Hinweise
- Vorher die Datenbank sichern. Beim ersten Aufruf nach dem Update wird sie automatisch auf Schema 4 umgestellt. Bereits eingereichte und erstattete Auslagen werden dabei je Mitglied und Status zu „Übernommen aus früherem Stand“ zusammengefasst.
- Einreichungs-PDFs enthalten alle Belege; ihre Größe ist durch
post_max_sizebegrenzt. Bei großen Einreichungen ggf. den Wert erhöhen. - Ab dieser Version tragen Versionsnummern ein „v“.
Details im CHANGELOG und im Benutzerhandbuch.
Full Changelog: 3.0.6...v3.1.1
VereinsAuslagen 3.0.6
Neuer Bereich „App-Version“ ganz unten im Profil zeigt, welche Version gerade läuft. Gibt es eine neuere Version, erscheint dort „Aktualisierung verfügbar“ mit der neuen Versionsnummer und dem Knopf „🔄 Jetzt aktualisieren“.
Full Changelog: 3.0.5...3.0.6
VereinsAuslagen 3.0.5
What's Changed
- Routing: Hash nur gegen eigene Ansichten prüfen (3.0.5) by @listiges-kaenguru in #1
New Contributors
- @listiges-kaenguru made their first contribution in #1
Full Changelog: 3.0.4...3.0.5
VereinsAuslagen 3.0.4
Changelog – VereinsAuslagen
Aktueller Stand
App-Version (sw.js → VERSION) |
3.0.4 |
Schema-Version (api/lib/db.php → SCHEMA_VERSION) |
1 |
| Tests | keine automatisierten Tests |
Der Funktionsumfang ist vollständig umgesetzt (siehe unten). Es gibt keine bekannten offenen Fehler.
Funktionen
Auslagen
- Erfassen mit Datum, Händler, Betrag, Notiz, Beleg (Foto wird verkleinert, oder PDF, max. 15 MB)
- Übersicht mit Status offen / eingereicht / erstattet, Detail-Bottom-Sheet zum Bearbeiten
- Einreichen: offene Auslagen einzeln auswählen → PDF (Übersicht + Stammdaten + Belege)
- Export (CSV/PDF/ZIP), Datensicherung als ZIP, Import von Backups der früheren Einzelplatz-Version
- PWA: installierbar, App-Shell offline, Update-Hinweis; Hell/Dunkel/System-Farbschema
Mehrbenutzer / Server
- Ersteinrichtung im Browser (DB-Zugang + erster Admin →
api/config/config.php) - Login/Logout, Pflicht-Passwortwechsel beim ersten Login, Passwort ändern
- TOTP-2FA mit 10 Wiederherstellungscodes; Passkeys (WebAuthn) als Alternative
- Stammdaten (Name, IBAN, Ort) im Profil, gehen ins Einreichungs-PDF
- Admin: Benutzer anlegen/sperren/löschen, Rolle ändern, Passwort und MFA zurücksetzen,
Datenbank-Verbindung wechseln (mit optionaler Datenübernahme) - Sicherheit: CSRF (Header + Origin), Brute-Force-Sperre, Sitzungs-Generationen, strikte CSP
API-Routen (api/?r=…)
| Datei | Routen |
|---|---|
einrichtung.php |
GET status, POST einrichtung |
anmeldung.php |
POST anmeldung/passwort, anmeldung/mfa, anmeldung/passkey-optionen, anmeldung/passkey, abmeldung |
profil.php |
GET profil, PUT profil/stammdaten, POST profil/passwort, profil/totp/{start,bestaetigen,deaktivieren,neue-codes}, POST/DELETE profil/passkey, POST profil/passkey-optionen |
auslagen.php |
GET/POST/PUT/DELETE auslagen, POST auslagen/status, GET/PUT/DELETE beleg |
admin.php |
GET/POST/PUT admin/benutzer, POST admin/benutzer/{passwort,mfa-zuruecksetzen,loeschen}, GET/POST admin/db, POST admin/db/test |
Datenbank (Schema 1)
va_meta, va_benutzer, va_wiederherstellung, va_passkeys, va_auslagen, va_belege
(LONGBLOB), va_anmeldeversuche.
Versionen
Neueste zuerst.
3.0.4 – erste öffentliche Version
- Mehrbenutzer-Version mit PHP-Backend und MySQL/MariaDB (Funktionsumfang siehe oben)
- Benutzerhandbuch für Mitglieder und Admins (
BENUTZERHANDBUCH.md)
Offene Punkte / Ideen
- Automatisierte Tests zumindest für die API-Routen
- Ende-zu-Ende-Test auf echtem Webhosting (Apache mit
.htaccess, nginx-Regeln aus der README)
Full Changelog: https://github.com/listiges-kaenguru/AuslagenVerwaltung/commits/3.0.4