diff --git a/package-lock.json b/package-lock.json index aa072a4..1d82798 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ff-admin", - "version": "1.7.4", + "version": "1.8.0-beta1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ff-admin", - "version": "1.7.4", + "version": "1.8.0-beta1", "license": "AGPL-3.0-only", "dependencies": { "@fullcalendar/core": "^6.1.18", @@ -43,6 +43,7 @@ "unplugin-vue-markdown": "^29.1.0", "uuid": "^11.1.0", "vue": "^3.5.18", + "vue-qrcode-reader": "^5.7.1", "vue-router": "^4.5.1" }, "devDependencies": { @@ -3792,6 +3793,18 @@ "@types/underscore": "*" } }, + "node_modules/@types/dom-webcodecs": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@types/dom-webcodecs/-/dom-webcodecs-0.1.14.tgz", + "integrity": "sha512-ba9aF0qARLLQpLihONIRbj8VvAdUxO+5jIxlscVcDAQTcJmq5qVr781+ino5qbQUJUmO21cLP2eLeXYWzao5Vg==", + "license": "MIT" + }, + "node_modules/@types/emscripten": { + "version": "1.40.1", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.40.1.tgz", + "integrity": "sha512-sr53lnYkQNhjHNN0oJDdUm5564biioI5DuOpycufDVK7D3y+GR3oUswe2rlwY1nPNyusHbrJ9WoTyIHl4/Bpwg==", + "license": "MIT" + }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", @@ -4912,6 +4925,16 @@ "dev": true, "license": "MIT" }, + "node_modules/barcode-detector": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/barcode-detector/-/barcode-detector-2.2.2.tgz", + "integrity": "sha512-JcSekql+EV93evfzF9zBr+Y6aRfkR+QFvgyzbwQ0dbymZXoAI9+WgT7H1E429f+3RKNncHz2CW98VQtaaKpmfQ==", + "license": "MIT", + "dependencies": { + "@types/dom-webcodecs": "^0.1.11", + "zxing-wasm": "1.1.3" + } + }, "node_modules/birpc": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.3.0.tgz", @@ -9443,6 +9466,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sdp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", + "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==", + "license": "MIT" + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -11009,6 +11038,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/vue-qrcode-reader": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/vue-qrcode-reader/-/vue-qrcode-reader-5.7.2.tgz", + "integrity": "sha512-MRwo8IWM+1UzvfRhOQQBqEap06nl0E8QFIb+/HxS1KiH8BqL2qhlzMVvJgMUti4m5x+XH2YlGS0v1Qshpg+Hbw==", + "license": "MIT", + "dependencies": { + "barcode-detector": "2.2.2", + "webrtc-adapter": "8.2.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/vue-router": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", @@ -11060,6 +11102,19 @@ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "license": "MIT" }, + "node_modules/webrtc-adapter": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.3.tgz", + "integrity": "sha512-gnmRz++suzmvxtp3ehQts6s2JtAGPuDPjA1F3a9ckNpG1kYdYuHWYpazoAnL9FS5/B21tKlhkorbdCXat0+4xQ==", + "license": "BSD-3-Clause", + "dependencies": { + "sdp": "^3.2.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, "node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", @@ -11752,6 +11807,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zxing-wasm": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/zxing-wasm/-/zxing-wasm-1.1.3.tgz", + "integrity": "sha512-MYm9k/5YVs4ZOTIFwlRjfFKD0crhefgbnt1+6TEpmKUDFp3E2uwqGSKwQOd2hOIsta/7Usq4hnpNRYTLoljnfA==", + "license": "MIT", + "dependencies": { + "@types/emscripten": "^1.39.10" + } } } } diff --git a/package.json b/package.json index 60cae48..0bd5c3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ff-admin", - "version": "1.7.4", + "version": "1.8.0-beta1", "description": "Feuerwehr/Verein Mitgliederverwaltung UI", "type": "module", "scripts": { @@ -58,6 +58,7 @@ "unplugin-vue-markdown": "^29.1.0", "uuid": "^11.1.0", "vue": "^3.5.18", + "vue-qrcode-reader": "^5.7.1", "vue-router": "^4.5.1" }, "devDependencies": { diff --git a/src/components/CopyPasteContextMenu.vue b/src/components/CopyPasteContextMenu.vue index 80dd642..599c0af 100644 --- a/src/components/CopyPasteContextMenu.vue +++ b/src/components/CopyPasteContextMenu.vue @@ -36,12 +36,9 @@ export default defineComponent({ document.getSelection()?.toString() || this.clickedOnEl.value || this.clickedOnEl.innerText || ""; let selection = document.getSelection()?.toString(); - console.log(selection); if (selection == "") { - console.log("jo"); const range = document.createRange(); range.selectNode(this.clickedOnEl); - console.log(range); window.getSelection()?.removeAllRanges(); window.getSelection()?.addRange(range); } diff --git a/src/components/Modal.vue b/src/components/Modal.vue index 1a9039e..3fc79d6 100644 --- a/src/components/Modal.vue +++ b/src/components/Modal.vue @@ -4,24 +4,27 @@ class="absolute inset-0 w-full h-full flex justify-center items-center bg-black/50 select-none z-50 p-2" v-show="show" > - + diff --git a/src/components/Notification.vue b/src/components/Notification.vue index e320e19..d302eef 100644 --- a/src/components/Notification.vue +++ b/src/components/Notification.vue @@ -20,6 +20,7 @@ notification.type == 'error' ? 'border border-red-400' : '', notification.type == 'warning' ? 'border border-red-400' : '', notification.type == 'info' ? 'border border-gray-400' : '', + notification.type == 'success' ? 'border border-green-400' : '', ]" > diff --git a/src/components/TextCopy.vue b/src/components/TextCopy.vue index 6c13613..7a23ec3 100644 --- a/src/components/TextCopy.vue +++ b/src/components/TextCopy.vue @@ -1,5 +1,5 @@ @@ -60,6 +76,10 @@ export default defineComponent({ key: "app.show_link_to_calendar", value: formData.show_link_to_calendar.checked, }, + { + key: "app.show_link_to_damagereport", + value: formData.show_link_to_damagereport.checked, + }, ]); }, }, diff --git a/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue b/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue new file mode 100644 index 0000000..9f27541 --- /dev/null +++ b/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/components/admin/unit/InspectionTimeFormatExplainModal.vue b/src/components/admin/unit/InspectionTimeFormatExplainModal.vue new file mode 100644 index 0000000..d0719c2 --- /dev/null +++ b/src/components/admin/unit/InspectionTimeFormatExplainModal.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/admin/unit/damageReport/DamageReportListItem.vue b/src/components/admin/unit/damageReport/DamageReportListItem.vue new file mode 100644 index 0000000..574c584 --- /dev/null +++ b/src/components/admin/unit/damageReport/DamageReportListItem.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/admin/unit/equipment/EquipmentListItem.vue b/src/components/admin/unit/equipment/EquipmentListItem.vue new file mode 100644 index 0000000..dc9d7f3 --- /dev/null +++ b/src/components/admin/unit/equipment/EquipmentListItem.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/components/admin/unit/equipmentType/CreateEquipmentTypeModal.vue b/src/components/admin/unit/equipmentType/CreateEquipmentTypeModal.vue new file mode 100644 index 0000000..e0f50b5 --- /dev/null +++ b/src/components/admin/unit/equipmentType/CreateEquipmentTypeModal.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/components/admin/unit/equipmentType/DeleteEquipmentTypeModal.vue b/src/components/admin/unit/equipmentType/DeleteEquipmentTypeModal.vue new file mode 100644 index 0000000..355117d --- /dev/null +++ b/src/components/admin/unit/equipmentType/DeleteEquipmentTypeModal.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue new file mode 100644 index 0000000..91e8e9b --- /dev/null +++ b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/admin/unit/inspection/DeleteInspectionModal.vue b/src/components/admin/unit/inspection/DeleteInspectionModal.vue new file mode 100644 index 0000000..334080c --- /dev/null +++ b/src/components/admin/unit/inspection/DeleteInspectionModal.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/admin/unit/inspection/FileInput.vue b/src/components/admin/unit/inspection/FileInput.vue new file mode 100644 index 0000000..de9d27f --- /dev/null +++ b/src/components/admin/unit/inspection/FileInput.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/components/admin/unit/inspection/InspectionFinishModal.vue b/src/components/admin/unit/inspection/InspectionFinishModal.vue new file mode 100644 index 0000000..b2628e1 --- /dev/null +++ b/src/components/admin/unit/inspection/InspectionFinishModal.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/components/admin/unit/inspection/InspectionPrintModal.vue b/src/components/admin/unit/inspection/InspectionPrintModal.vue new file mode 100644 index 0000000..734ed64 --- /dev/null +++ b/src/components/admin/unit/inspection/InspectionPrintModal.vue @@ -0,0 +1,62 @@ +