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

@@ -15,6 +15,7 @@
"jspdf": "^4.0.0",
"jspdf-autotable": "^5.0.2",
"node-cron": "^4.2.1",
"pdfjs-dist": "^5.6.205",
"socket.io-client": "^4.8.1",
"sortablejs": "^1.15.3",
"vue": "^3.2.13",
@@ -762,6 +763,256 @@
"integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
"license": "MIT"
},
"node_modules/@napi-rs/canvas": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.99.tgz",
"integrity": "sha512-zN4eQlK3eBf7aJBcTHZilpBH3tDekBzPMIWC8r0s94Ecl73XfOyFi4w7yKFMRVUT0lvNQjtOL8YSrwqQj6mZFg==",
"license": "MIT",
"optional": true,
"workspaces": [
"e2e/*"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"optionalDependencies": {
"@napi-rs/canvas-android-arm64": "0.1.99",
"@napi-rs/canvas-darwin-arm64": "0.1.99",
"@napi-rs/canvas-darwin-x64": "0.1.99",
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.99",
"@napi-rs/canvas-linux-arm64-gnu": "0.1.99",
"@napi-rs/canvas-linux-arm64-musl": "0.1.99",
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.99",
"@napi-rs/canvas-linux-x64-gnu": "0.1.99",
"@napi-rs/canvas-linux-x64-musl": "0.1.99",
"@napi-rs/canvas-win32-arm64-msvc": "0.1.99",
"@napi-rs/canvas-win32-x64-msvc": "0.1.99"
}
},
"node_modules/@napi-rs/canvas-android-arm64": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.99.tgz",
"integrity": "sha512-9OCRt8VVxA17m32NWZKyNC2qamdaS/SC5CEOIQwFngRq0DIeVm4PDal+6Ljnhqm2whZiC63DNuKZ4xSp2nbj9w==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-darwin-arm64": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.99.tgz",
"integrity": "sha512-lupMDMy1+H38dhyCcLirOKKVUyzzlxi7j7rGPLI3vViMHOoPjcXO1b10ivy+ad+q6MiwHfoLjKTCoLke5ySOBg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-darwin-x64": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.99.tgz",
"integrity": "sha512-fdz02t4w8n6Ii/rYhWig6STb/zcTmCC/6YZTGmjoDeidDwn9Wf0ukQVynhCPEs29vqUc66wHZKsuIgMs9tycCg==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.99.tgz",
"integrity": "sha512-w4FwVwlNo00ezeRhfY62IVIyt6G3u8wodkPtiqWc52BUHx+VDBUM2vkS3ogfANaLI7hnf3s6WK4LyZVUjBg1lA==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-arm64-gnu": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.99.tgz",
"integrity": "sha512-8JvHeexKQ8c7g0q7YJ29NVQwnf1ePghP9ys9ZN0R0qzyqJQ9Uw6N9qnDINArlm3IYHexB7LjzArIfhQiqSDGvQ==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-arm64-musl": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.99.tgz",
"integrity": "sha512-Z+6nyLdJXWzLPVxi4H6g9TJop4DwN3KSgHWto5JCbZV5/uKoVqcSynPs0tGlUHOoWI8S8tEvJspz51GQkvr07w==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.99.tgz",
"integrity": "sha512-jAnfOUv4IO1l8Levk5t85oVtEBOXLa07KnIUgWo1CDlPxiqpxS3uBfiE38Lvj/CQgHaNF6Nxk/SaemwLgsVJgw==",
"cpu": [
"riscv64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-x64-gnu": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.99.tgz",
"integrity": "sha512-mIkXw3fGmbYyFjSmfWEvty4jN+rwEOmv0+Dy9bRvvTzLYWCgm3RMgUEQVfAKFw96nIRFnyNZiK83KNQaVVFjng==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-linux-x64-musl": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.99.tgz",
"integrity": "sha512-f3Uz2P0RgrtBHISxZqr6yiYXJlTDyCVBumDacxo+4AmSg7z0HiqYZKGWC/gszq3fbPhyQUya1W2AEteKxT9Y6A==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-win32-arm64-msvc": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-0.1.99.tgz",
"integrity": "sha512-XE6KUkfqRsCNejcoRMiMr3RaUeObxNf6y7dut3hrq2rn7PzfRTZgrjF1F/B2C7FcdgqY/vSHWpQeMuNz1vTNHg==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@napi-rs/canvas-win32-x64-msvc": {
"version": "0.1.99",
"resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.99.tgz",
"integrity": "sha512-plMYGVbc/vmmPF9MtmHbwNk1rL1Aj53vQZt+Gnv1oZn6gmd9jEHHJ0n9Nd2nxa5sKH7TS5IjkCDM6289O0d6PQ==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
}
},
"node_modules/@parcel/watcher": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
@@ -2972,6 +3223,13 @@
"node": ">=6.0.0"
}
},
"node_modules/node-readable-to-web-readable-stream": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/node-readable-to-web-readable-stream/-/node-readable-to-web-readable-stream-0.4.2.tgz",
"integrity": "sha512-/cMZNI34v//jUTrI+UIo4ieHAB5EZRY/+7OmXZgBxaWBMcW2tGdceIw06RFxWxrKZ5Jp3sI2i5TsRo+CBhtVLQ==",
"license": "MIT",
"optional": true
},
"node_modules/nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
@@ -3074,6 +3332,19 @@
"node": ">=8"
}
},
"node_modules/pdfjs-dist": {
"version": "5.6.205",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.6.205.tgz",
"integrity": "sha512-tlUj+2IDa7G1SbvBNN74UHRLJybZDWYom+k6p5KIZl7huBvsA4APi6mKL+zCxd3tLjN5hOOEE9Tv7VdzO88pfg==",
"license": "Apache-2.0",
"engines": {
"node": ">=20.19.0 || >=22.13.0 || >=24"
},
"optionalDependencies": {
"@napi-rs/canvas": "^0.1.96",
"node-readable-to-web-readable-stream": "^0.4.2"
}
},
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",

View File

@@ -17,6 +17,7 @@
"jspdf": "^4.0.0",
"jspdf-autotable": "^5.0.2",
"node-cron": "^4.2.1",
"pdfjs-dist": "^5.6.205",
"socket.io-client": "^4.8.1",
"sortablejs": "^1.15.3",
"vue": "^3.2.13",

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