diff --git a/package-lock.json b/package-lock.json index 296066f..fbaff9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@tailwindcss/vite": "^4.1.11", + "@vueuse/core": "^13.5.0", "axios": "^1.10.0", "event-source-polyfill": "^1.0.31", "grapesjs": "^0.22.11", @@ -3967,6 +3968,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.36.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz", @@ -4613,6 +4620,44 @@ } } }, + "node_modules/@vueuse/core": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.5.0.tgz", + "integrity": "sha512-wV7z0eUpifKmvmN78UBZX8T7lMW53Nrk6JP5+6hbzrB9+cJ3jr//hUlhl9TZO/03bUkMK6gGkQpqOPWoabr72g==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.5.0", + "@vueuse/shared": "13.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.5.0.tgz", + "integrity": "sha512-euhItU3b0SqXxSy8u1XHxUCdQ8M++bsRs+TYhOLDU/OykS7KvJnyIFfep0XM5WjIFry9uAPlVSjmVHiqeshmkw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.5.0.tgz", + "integrity": "sha512-K7GrQIxJ/ANtucxIXbQlUHdB0TPA8c+q5i+zbrjxuhJCnJ9GtBg75sBSnvmLSxHKPg2Yo8w62PWksl9kwH0Q8g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -6409,14 +6454,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { diff --git a/package.json b/package.json index 528cb41..e4c83fb 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Feuerwehr/Verein Mitgliederverwaltung UI", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "run-p type-check \"build-only {@}\" --", "preview": "vite preview", "build-only": "vite build", @@ -33,6 +33,7 @@ "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@tailwindcss/vite": "^4.1.11", + "@vueuse/core": "^13.5.0", "axios": "^1.10.0", "event-source-polyfill": "^1.0.31", "grapesjs": "^0.22.11", diff --git a/src/App.vue b/src/App.vue index 8ee85e5..07f15ca 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,11 +2,11 @@ -
-
+ +
-
+ @@ -18,10 +18,11 @@ diff --git a/src/components/ContextMenu.vue b/src/components/ContextMenu.vue index aa44235..c4d0dc3 100644 --- a/src/components/ContextMenu.vue +++ b/src/components/ContextMenu.vue @@ -1,10 +1,9 @@ diff --git a/src/components/TextCopy.vue b/src/components/TextCopy.vue index 7fd8ce7..6c13613 100644 --- a/src/components/TextCopy.vue +++ b/src/components/TextCopy.vue @@ -1,6 +1,6 @@ + + + + + + diff --git a/src/stores/context-menu.ts b/src/stores/context-menu.ts index 43d529b..e012fa7 100644 --- a/src/stores/context-menu.ts +++ b/src/stores/context-menu.ts @@ -8,6 +8,7 @@ export const useContextMenuStore = defineStore("context-menu", { show: false, component_ref: null as any, data: null as any, + clickedOnEl: null as any, }; }, getters: { @@ -16,16 +17,18 @@ export const useContextMenuStore = defineStore("context-menu", { }, }, actions: { - openContextMenu(e: MouseEvent, content: { component_ref: any; data: any }) { + openContextMenu(e: MouseEvent, content: { component_ref: any; data?: any }) { this.component_ref = content.component_ref; this.data = content.data; this.contextX = e.pageX; this.contextY = e.pageY; + this.clickedOnEl = e.target; this.show = true; }, closeContextMenu() { this.component_ref = null; this.data = null; + this.clickedOnEl = null; this.show = false; }, }, diff --git a/src/views/admin/management/version/VersionDisplay.vue b/src/views/admin/management/version/VersionDisplay.vue index 34a02dc..55736fe 100644 --- a/src/views/admin/management/version/VersionDisplay.vue +++ b/src/views/admin/management/version/VersionDisplay.vue @@ -11,7 +11,7 @@

- V{{ clientVersion }} ({{ + {{ clientVersion }} ({{ new Date(clientVersionRelease).toLocaleDateString("de", { month: "2-digit", day: "2-digit", @@ -23,19 +23,7 @@

-
-

- V{{ version.title }} vom - {{ - new Date(version.isoDate).toLocaleDateString("de", { - month: "2-digit", - day: "2-digit", - year: "numeric", - }) - }} -

-
-
+

Der Client ist auf der neuesten Version.

@@ -50,7 +38,7 @@

- V{{ serverVersion }} ({{ + {{ serverVersion }} ({{ new Date(serverVersionRelease).toLocaleDateString("de", { month: "2-digit", day: "2-digit", @@ -61,20 +49,8 @@ }})

-
-
-

- V{{ version.title }} vom - {{ - new Date(version.isoDate).toLocaleDateString("de", { - month: "2-digit", - day: "2-digit", - year: "numeric", - }) - }} -

-
-
+
+

Der Server ist auf der neuesten Version.

@@ -90,6 +66,7 @@ import { defineComponent } from "vue"; import MainTemplate from "@/templates/Main.vue"; import clientPackage from "../../../../../package.json"; import type { Releases } from "@/viewmodels/version.models"; +import VersionItem from "@/components/admin/management/version/VersionItem.vue";