From a404a37a60af234b9817e3bfc113392426cf7030 Mon Sep 17 00:00:00 2001 From: tdv Date: Mon, 6 Oct 2025 12:00:39 +0300 Subject: [PATCH] created views for trackers in UI, added leaflet --- management-ui/package-lock.json | 25 ++++++ management-ui/package.json | 2 + .../src/customcompometns/Admincomponent.vue | 3 + .../src/customcompometns/TrackerComponent.vue | 58 ++++++++++++++ .../src/customcompometns/TrackerDashboard.vue | 77 +++++++++++++++++++ .../src/customcompometns/TrackerGrid.vue | 5 +- management-ui/src/pages/TrackerViev.vue | 16 ++++ management-ui/src/router.ts | 8 ++ server/internal/db/db.go | 2 + 9 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 management-ui/src/customcompometns/TrackerComponent.vue create mode 100644 management-ui/src/customcompometns/TrackerDashboard.vue create mode 100644 management-ui/src/pages/TrackerViev.vue diff --git a/management-ui/package-lock.json b/management-ui/package-lock.json index cfc4d90..ecee315 100644 --- a/management-ui/package-lock.json +++ b/management-ui/package-lock.json @@ -14,6 +14,7 @@ "axios": "^1.11.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "leaflet": "^1.9.4", "lucide-vue-next": "^0.525.0", "reka-ui": "^2.5.0", "tailwind-merge": "^3.3.1", @@ -28,6 +29,7 @@ "devDependencies": { "@iconify-json/radix-icons": "^1.2.2", "@iconify/vue": "^5.0.0", + "@types/leaflet": "^1.9.20", "@types/node": "^24.1.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/tsconfig": "^0.7.0", @@ -1273,6 +1275,23 @@ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/leaflet": { + "version": "1.9.20", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.20.tgz", + "integrity": "sha512-rooalPMlk61LCaLOvBF2VIf9M47HgMQqi5xQ9QRi7c8PkdIe0WrIi5IxXUXQjAdL0c+vcQ01mYWbthzmp9GHWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/node": { "version": "24.1.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", @@ -1996,6 +2015,12 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, "node_modules/lightningcss": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", diff --git a/management-ui/package.json b/management-ui/package.json index c8e4d3c..aacf039 100644 --- a/management-ui/package.json +++ b/management-ui/package.json @@ -15,6 +15,7 @@ "axios": "^1.11.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "leaflet": "^1.9.4", "lucide-vue-next": "^0.525.0", "reka-ui": "^2.5.0", "tailwind-merge": "^3.3.1", @@ -29,6 +30,7 @@ "devDependencies": { "@iconify-json/radix-icons": "^1.2.2", "@iconify/vue": "^5.0.0", + "@types/leaflet": "^1.9.20", "@types/node": "^24.1.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/tsconfig": "^0.7.0", diff --git a/management-ui/src/customcompometns/Admincomponent.vue b/management-ui/src/customcompometns/Admincomponent.vue index 056734b..f9f3e99 100644 --- a/management-ui/src/customcompometns/Admincomponent.vue +++ b/management-ui/src/customcompometns/Admincomponent.vue @@ -200,6 +200,9 @@ onBeforeUnmount(() => { Devices + + Trackers + diff --git a/management-ui/src/customcompometns/TrackerComponent.vue b/management-ui/src/customcompometns/TrackerComponent.vue new file mode 100644 index 0000000..0ecf327 --- /dev/null +++ b/management-ui/src/customcompometns/TrackerComponent.vue @@ -0,0 +1,58 @@ + + \ No newline at end of file diff --git a/management-ui/src/customcompometns/TrackerDashboard.vue b/management-ui/src/customcompometns/TrackerDashboard.vue new file mode 100644 index 0000000..06b5e50 --- /dev/null +++ b/management-ui/src/customcompometns/TrackerDashboard.vue @@ -0,0 +1,77 @@ + + + \ No newline at end of file diff --git a/management-ui/src/customcompometns/TrackerGrid.vue b/management-ui/src/customcompometns/TrackerGrid.vue index d79879f..e628516 100644 --- a/management-ui/src/customcompometns/TrackerGrid.vue +++ b/management-ui/src/customcompometns/TrackerGrid.vue @@ -39,6 +39,7 @@ const tracker_columns = [ ] let treckerCtrl: AbortController | null = null + async function loadTrackers() { error.value = null loading.value = true @@ -68,11 +69,11 @@ onBeforeUnmount(() => treckerCtrl?.abort())