feat(sprint8): Phase 4 — Dokumentenarchiv + Vorstandsverwaltung
Backend: - V20 migration: documents table with category, access_level, file storage - V21 migration: board_positions + board_members with term tracking - Document entity + DocumentCategory/DocumentAccessLevel enums - BoardPosition + BoardMember entities - Extended AuditEventType (DOCUMENT_UPLOADED/DELETED, BOARD_MEMBER_ELECTED/REMOVED) - Extended StaffPermission (MANAGE_DOCUMENTS) - Extended NotificationType (BOARD_TERM_EXPIRING) - DocumentService: upload, list, download, delete, storage usage - BoardService: positions CRUD, elect/remove members, current/history - DocumentController: multipart upload, filtered list, download, delete, portal - BoardController: positions, elect, remove, current board, history, portal Frontend: - documents.ts + board.ts service layers - Admin /documents page: grouped by category, upload dialog, filter, download/delete - Admin /board page: current board cards, position management, elect member dialog - Navigation: added Dokumente + Vorstand to sidebar - i18n: documents.* + board.* keys in de.json + en.json
This commit is contained in:
@@ -949,5 +949,60 @@
|
||||
"paymentHistory": "Zahlungshistorie",
|
||||
"noPayments": "Noch keine Zahlungen vorhanden"
|
||||
}
|
||||
},
|
||||
"documents": {
|
||||
"title": "Dokumentenarchiv",
|
||||
"description": "Vereinsdokumente verwalten und archivieren",
|
||||
"upload": "Hochladen",
|
||||
"uploadDocument": "Dokument hochladen",
|
||||
"documentTitle": "Titel",
|
||||
"titlePlaceholder": "z.B. Vereinssatzung 2024",
|
||||
"category": "Kategorie",
|
||||
"selectCategory": "Kategorie wählen",
|
||||
"accessLevel": "Zugriff",
|
||||
"allMembers": "Alle Mitglieder",
|
||||
"boardOnly": "Nur Vorstand",
|
||||
"descriptionLabel": "Beschreibung",
|
||||
"descriptionPlaceholder": "Optionale Beschreibung...",
|
||||
"file": "Datei",
|
||||
"fileHint": "PDF, DOCX, XLSX, PNG, JPG — max. 10 MB",
|
||||
"uploadButton": "Dokument hochladen",
|
||||
"allCategories": "Alle Kategorien",
|
||||
"documentsCount": "Dokumente",
|
||||
"name": "Name",
|
||||
"access": "Zugriff",
|
||||
"size": "Größe",
|
||||
"date": "Datum",
|
||||
"actions": "Aktionen"
|
||||
},
|
||||
"board": {
|
||||
"title": "Vorstand",
|
||||
"description": "Vorstandspositionen und -mitglieder verwalten",
|
||||
"addPosition": "Position anlegen",
|
||||
"electMember": "Mitglied wählen",
|
||||
"createPosition": "Position erstellen",
|
||||
"positionTitle": "Titel",
|
||||
"positionTitlePlaceholder": "z.B. 1. Vorsitzender",
|
||||
"positionDescription": "Beschreibung",
|
||||
"positionDescPlaceholder": "z.B. Gesetzlicher Vertreter gem. §26 BGB",
|
||||
"sortOrder": "Reihenfolge",
|
||||
"save": "Speichern",
|
||||
"electBoardMember": "Vorstandsmitglied wählen",
|
||||
"position": "Position",
|
||||
"selectPosition": "Position wählen",
|
||||
"member": "Mitglied",
|
||||
"selectMember": "Mitglied wählen",
|
||||
"electedAt": "Gewählt am",
|
||||
"termStart": "Amtszeit Beginn",
|
||||
"termEnd": "Amtszeit Ende",
|
||||
"confirmElection": "Wahl bestätigen",
|
||||
"elected": "Gewählt",
|
||||
"term": "Amtszeit",
|
||||
"unlimited": "unbefristet",
|
||||
"termExpiringSoon": "Läuft bald ab",
|
||||
"termActive": "Aktiv",
|
||||
"positions": "Positionen",
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -949,5 +949,60 @@
|
||||
"paymentHistory": "Payment History",
|
||||
"noPayments": "No payments yet"
|
||||
}
|
||||
},
|
||||
"documents": {
|
||||
"title": "Document Archive",
|
||||
"description": "Manage and archive club documents",
|
||||
"upload": "Upload",
|
||||
"uploadDocument": "Upload Document",
|
||||
"documentTitle": "Title",
|
||||
"titlePlaceholder": "e.g. Club Bylaws 2024",
|
||||
"category": "Category",
|
||||
"selectCategory": "Select category",
|
||||
"accessLevel": "Access",
|
||||
"allMembers": "All Members",
|
||||
"boardOnly": "Board Only",
|
||||
"descriptionLabel": "Description",
|
||||
"descriptionPlaceholder": "Optional description...",
|
||||
"file": "File",
|
||||
"fileHint": "PDF, DOCX, XLSX, PNG, JPG — max. 10 MB",
|
||||
"uploadButton": "Upload Document",
|
||||
"allCategories": "All Categories",
|
||||
"documentsCount": "documents",
|
||||
"name": "Name",
|
||||
"access": "Access",
|
||||
"size": "Size",
|
||||
"date": "Date",
|
||||
"actions": "Actions"
|
||||
},
|
||||
"board": {
|
||||
"title": "Board",
|
||||
"description": "Manage board positions and members",
|
||||
"addPosition": "Add Position",
|
||||
"electMember": "Elect Member",
|
||||
"createPosition": "Create Position",
|
||||
"positionTitle": "Title",
|
||||
"positionTitlePlaceholder": "e.g. President",
|
||||
"positionDescription": "Description",
|
||||
"positionDescPlaceholder": "e.g. Legal representative",
|
||||
"sortOrder": "Sort Order",
|
||||
"save": "Save",
|
||||
"electBoardMember": "Elect Board Member",
|
||||
"position": "Position",
|
||||
"selectPosition": "Select position",
|
||||
"member": "Member",
|
||||
"selectMember": "Select member",
|
||||
"electedAt": "Elected on",
|
||||
"termStart": "Term Start",
|
||||
"termEnd": "Term End",
|
||||
"confirmElection": "Confirm Election",
|
||||
"elected": "Elected",
|
||||
"term": "Term",
|
||||
"unlimited": "unlimited",
|
||||
"termExpiringSoon": "Expiring soon",
|
||||
"termActive": "Active",
|
||||
"positions": "Positions",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user