chore: remove obsolete Android app configuration files
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s

- Deleted build.gradle.kts, gradle.properties, and gradlew files as part of the cleanup process.
- Removed local.properties and various generated files from the .gradle directory to streamline the project structure.
- Cleared out unnecessary build artifacts and intermediate files to improve project maintainability.
This commit is contained in:
Torsten Schulz (local)
2026-04-21 15:15:21 +02:00
parent c8dedb10cc
commit 41bbf81958
4144 changed files with 4975 additions and 61401 deletions

View File

@@ -125,6 +125,10 @@
<span class="nav-icon">🧩</span>
{{ $t('navigation.teamManagement') }}
</router-link>
<router-link v-if="hasPermission('members', 'read')" to="/billing" class="nav-link" :title="$t('navigation.billing')">
<span class="nav-icon">🧾</span>
{{ $t('navigation.billing') }}
</router-link>
</div>
</nav>
</div>

View File

@@ -66,6 +66,7 @@
"navigation": {
"home": "Startseite",
"members": "Mitglieder",
"billing": "Abrechnung",
"orders": "Bestellungen",
"diary": "Tagebuch",
"approvals": "Freigaben",
@@ -467,6 +468,75 @@
"club": "Verein",
"member": "Mitglied"
},
"billing": {
"title": "Abrechnung",
"subtitle": "Erstelle deine eigene monatliche Übungsstunden-Abrechnung.",
"step1": "Schritt 1: Vorlage hinterlegen",
"step2": "Schritt 2: Abrechnungslauf anlegen",
"step3": "Schritt 3: PDF erzeugen und herunterladen",
"templateSection": "Vorlage hochladen",
"templateName": "Vorlagenname",
"templateDescription": "Beschreibung",
"templatePdf": "PDF-Vorlage",
"uploadTemplate": "Vorlage speichern",
"deleteTemplate": "Vorlage löschen",
"deleteTemplateConfirm": "Diese Vorlage wirklich löschen?",
"deleteTemplateSuccess": "Vorlage wurde gelöscht.",
"deleteTemplateError": "Vorlage konnte nicht gelöscht werden.",
"noTemplates": "Noch keine Vorlagen vorhanden.",
"mappingTitle": "Positions-Mapping",
"mappingHint": "Koordinaten je Feld einmalig anpassen und speichern. Diese Positionen werden bei „PDF erzeugen“ verwendet.",
"openMappingEditor": "Mapping per Klick",
"mappingEditorTitle": "Felder im PDF per Klick zuweisen",
"mappingEditorHint": "Feld auswählen, dann in die PDF klicken. Die Position wird direkt übernommen.",
"mappingField": "Feld",
"autoSuggestMapping": "Auto-Vorschläge",
"resetIbanBoxes": "IBAN-Boxen reset",
"ibanBoxesReset": "IBAN-Boxen wurden zurückgesetzt.",
"ibanLearnStart": "IBAN einlernen",
"ibanLearnCancel": "IBAN-Lernen abbrechen",
"ibanLearnStep1": "IBAN-Lernen: bitte auf die erste zu nutzende IBAN-Box klicken.",
"ibanLearnStep2": "IBAN-Lernen: bitte auf die letzte zu nutzende IBAN-Box klicken.",
"ibanLearnDone": "IBAN-Boxen wurden aus dem gewählten Bereich zugewiesen.",
"mappingSuggested": "Auto-Vorschläge wurden eingetragen. Bitte prüfen und feinjustieren.",
"mappingSuggestError": "Auto-Vorschläge konnten nicht ermittelt werden.",
"mappingPreviewError": "PDF-Vorschau für Mapping konnte nicht geladen werden.",
"saveMapping": "Mapping speichern",
"mappingSaved": "Mapping wurde gespeichert.",
"mappingSaveError": "Mapping konnte nicht gespeichert werden.",
"runSection": "Abrechnungslauf",
"template": "Vorlage",
"monthFrom": "Monat von",
"monthTo": "Monat bis",
"selfRecipientName": "Eigener Name",
"iban": "IBAN",
"ibanWithoutCountry": "ohne Länderkennung",
"hourlyRate": "Stunden-Gehalt",
"hoursTotal": "Anzahl Stunden",
"hoursAutoHint": "Anzahl Stunden wird automatisch aus den Trainingstagen berechnet: {hours} h ({count} Einheiten).",
"sessionTime": "Zeit",
"sessionLabel": "Bezeichner",
"sessionHours": "Stunden",
"sameAccountCheckbox": "Gleiches Konto wie letzte Abrechnung",
"omitField": "nicht angeben",
"noSessionsInRange": "Keine Trainingseinheiten im gewählten Zeitraum gefunden.",
"locationText": "Ort",
"documentDate": "Datum",
"generateOwnBilling": "Eigene Abrechnung erzeugen",
"generatePdf": "PDF erzeugen",
"generateAndDownloadPdf": "PDF erzeugen + herunterladen",
"generatingPdf": "Erzeuge PDF...",
"generateSuccess": "PDF wurde erzeugt.",
"generateError": "PDF konnte nicht erzeugt werden.",
"downloadPdf": "PDF herunterladen",
"downloadError": "PDF konnte nicht heruntergeladen werden.",
"deleteBilling": "Löschen",
"deleteConfirm": "Diese erzeugte Abrechnung wirklich löschen?",
"deleteSuccess": "Abrechnung wurde gelöscht.",
"deleteError": "Abrechnung konnte nicht gelöscht werden.",
"runsTitle": "Bisherige Abrechnungen",
"noRuns": "Noch keine Abrechnungen vorhanden."
},
"diary": {
"title": "Trainingstagebuch",
"date": "Datum",

View File

@@ -32,6 +32,7 @@ const ClickTtView = () => import('./views/ClickTtView.vue');
const MemberTransferSettingsView = () => import('./views/MemberTransferSettingsView.vue');
const PersonalSettings = () => import('./views/PersonalSettings.vue');
const OrdersView = () => import('./views/OrdersView.vue');
const BillingView = () => import('./views/BillingView.vue');
const Impressum = () => import('./views/Impressum.vue');
const Datenschutz = () => import('./views/Datenschutz.vue');
@@ -66,6 +67,7 @@ const routes = [
{ path: '/member-transfer-settings', name: 'member-transfer-settings', component: MemberTransferSettingsView },
{ path: '/personal-settings', name: 'personal-settings', component: PersonalSettings },
{ path: '/orders', name: 'orders', component: OrdersView },
{ path: '/billing', name: 'billing', component: BillingView },
{ path: '/impressum', name: 'impressum', component: Impressum, meta: { public: true } },
{ path: '/datenschutz', name: 'datenschutz', component: Datenschutz, meta: { public: true } },
];

File diff suppressed because it is too large Load Diff