From a18b1be45be0eaa21608b3f73ff4e53a3983bf35 Mon Sep 17 00:00:00 2001 From: ingalls Date: Mon, 25 Nov 2024 16:33:33 -0700 Subject: [PATCH 01/14] Add Save Feature --- api/web/src/components/CloudTAK/CoTView.vue | 30 +++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/api/web/src/components/CloudTAK/CoTView.vue b/api/web/src/components/CloudTAK/CoTView.vue index bc6e74a0a..f5efdeeff 100644 --- a/api/web/src/components/CloudTAK/CoTView.vue +++ b/api/web/src/components/CloudTAK/CoTView.vue @@ -15,9 +15,11 @@ v-if='cot.properties.status && cot.properties.status.battery && !isNaN(parseInt(cot.properties.status.battery))' :battery='Number(cot.properties.status.battery)' /> -
+ +
+
+ +
- - Date: Tue, 26 Nov 2024 08:27:43 -0700 Subject: [PATCH 02/14] Update Web Deps --- api/package-lock.json | 26 +- api/web/package-lock.json | 58 +- api/web/src/components/CloudTAK/CoTView.vue | 38 +- .../components/CloudTAK/util/CopyButton.vue | 87 +- .../components/CloudTAK/util/CopyField.vue | 79 +- package-lock.json | 1516 +++++++++-------- 6 files changed, 983 insertions(+), 821 deletions(-) diff --git a/api/package-lock.json b/api/package-lock.json index f4090a691..493965839 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -3627,9 +3627,9 @@ "license": "Apache-2.0" }, "node_modules/@sinclair/typebox": { - "version": "0.34.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.8.tgz", - "integrity": "sha512-PuVkV/MmJOsjem7FIlmuPhd2Owvq4v+ZVvN6wxWuT1NduGDzz2jlc4xIvPQSUE0yS13BRaYOVNq9rnIOkucGVA==", + "version": "0.34.9", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.9.tgz", + "integrity": "sha512-KTuEZ4UHIp8rNgbLrsQwmGo4cCVj/AHPG3DsI1VvfzudG8dzpZNCV4qm4NWfYY02ReB5INVyuq6xGrl3Ks8vAQ==", "license": "MIT" }, "node_modules/@sinonjs/commons": { @@ -4982,12 +4982,12 @@ } }, "node_modules/@types/node": { - "version": "22.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.4.tgz", - "integrity": "sha512-d9RWfoR7JC/87vj7n+PVTzGg9hDyuFjir3RxUHbjFSKNd9mpxbxwMEyaCim/ddCmy4IuW7HjTzF3g9p3EtWEOg==", + "version": "22.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.0.tgz", + "integrity": "sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/pem": { @@ -11417,9 +11417,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.1.tgz", - "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz", + "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==", "dev": true, "license": "MIT", "engines": { @@ -12076,9 +12076,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/uniq": { diff --git a/api/web/package-lock.json b/api/web/package-lock.json index 73db62890..abfc062c2 100644 --- a/api/web/package-lock.json +++ b/api/web/package-lock.json @@ -3292,9 +3292,9 @@ ] }, "node_modules/@sinclair/typebox": { - "version": "0.34.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.8.tgz", - "integrity": "sha512-PuVkV/MmJOsjem7FIlmuPhd2Owvq4v+ZVvN6wxWuT1NduGDzz2jlc4xIvPQSUE0yS13BRaYOVNq9rnIOkucGVA==", + "version": "0.34.9", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.9.tgz", + "integrity": "sha512-KTuEZ4UHIp8rNgbLrsQwmGo4cCVj/AHPG3DsI1VvfzudG8dzpZNCV4qm4NWfYY02ReB5INVyuq6xGrl3Ks8vAQ==", "license": "MIT" }, "node_modules/@surma/rollup-plugin-off-main-thread": { @@ -3470,9 +3470,9 @@ } }, "node_modules/@tak-ps/vue-tabler": { - "version": "3.58.0", - "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.58.0.tgz", - "integrity": "sha512-99KfcxvguqfJx8Or5mwcOtwXYi6+PjUcVqe67bHv/GdhIWhiABgbyU9VMbnGwz5uis3/zB3SNzw7fQq0LtaeJw==", + "version": "3.59.0", + "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.59.0.tgz", + "integrity": "sha512-z+SAYb3XeWoJlY0zDoZG27a0Lh7WfA3MRkSsEb9K6ynmtlXiRtOl8wsCvMnHh/SburMK5ExBxAK/XpZbLLWO/w==", "license": "ISC", "dependencies": { "@tabler/icons-vue": "^3.0.0", @@ -4103,13 +4103,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", - "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", + "version": "22.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.0.tgz", + "integrity": "sha512-XC70cRZVElFHfIUB40FgZOBbgJYFKKMa5nb9lxcwYstFG/Mi+/Y0bGS+rs6Dmhmkpq4pnNiLiuZAbc02YCOnmA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/pbf": { @@ -4511,16 +4511,16 @@ } }, "node_modules/@vitejs/plugin-vue": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.0.tgz", - "integrity": "sha512-7n7KdUEtx/7Yl7I/WVAMZ1bEb0eVvXF3ummWTeLcs/9gvo9pJhuLdouSXGjdZ/MKD1acf1I272+X0RMua4/R3g==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", "dev": true, "license": "MIT", "engines": { "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^5.0.0", + "vite": "^5.0.0 || ^6.0.0", "vue": "^3.2.25" } }, @@ -7906,9 +7906,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.13", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.13.tgz", - "integrity": "sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==", + "version": "0.30.14", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz", + "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -8081,9 +8081,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -10114,9 +10114,9 @@ "license": "MIT" }, "node_modules/ts-api-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.1.tgz", - "integrity": "sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.2.tgz", + "integrity": "sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==", "dev": true, "license": "MIT", "engines": { @@ -10146,9 +10146,9 @@ } }, "node_modules/type-fest": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.28.0.tgz", - "integrity": "sha512-jXMwges/FVbFRe5lTMJZVEZCrO9kI9c8k0PA/z7nF3bo0JSCCLysvokFjNPIUK/itEMas10MQM+AiHoHt/T/XA==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.28.1.tgz", + "integrity": "sha512-LO/+yb3mf46YqfUC7QkkoAlpa7CTYh//V1Xy9+NQ+pKqDqXIq0NTfPfQRwFfCt+if4Qkwb9gzZfsl6E5TkXZGw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -10294,9 +10294,9 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, diff --git a/api/web/src/components/CloudTAK/CoTView.vue b/api/web/src/components/CloudTAK/CoTView.vue index f5efdeeff..7ad167df1 100644 --- a/api/web/src/components/CloudTAK/CoTView.vue +++ b/api/web/src/components/CloudTAK/CoTView.vue @@ -9,23 +9,28 @@ class='col-12 border-light border-bottom d-flex' style='border-radius: 0px;' > -
+
- +
+ +
-
- + -
-
+
diff --git a/api/web/src/components/CloudTAK/util/Phone.vue b/api/web/src/components/CloudTAK/util/Phone.vue index e02bea54b..239f84805 100644 --- a/api/web/src/components/CloudTAK/util/Phone.vue +++ b/api/web/src/components/CloudTAK/util/Phone.vue @@ -3,16 +3,16 @@
@@ -20,41 +20,40 @@
- diff --git a/api/web/src/components/CloudTAK/util/Speed.vue b/api/web/src/components/CloudTAK/util/Speed.vue index 267c656ef..a0c3953aa 100644 --- a/api/web/src/components/CloudTAK/util/Speed.vue +++ b/api/web/src/components/CloudTAK/util/Speed.vue @@ -3,7 +3,7 @@
- From 5519402752b505fe5a8014c5d8ffbae306231339 Mon Sep 17 00:00:00 2001 From: ingalls Date: Tue, 26 Nov 2024 10:08:34 -0700 Subject: [PATCH 05/14] Only allow editing if edit: true --- api/web/src/components/CloudTAK/util/CopyField.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/web/src/components/CloudTAK/util/CopyField.vue b/api/web/src/components/CloudTAK/util/CopyField.vue index c841ace59..77a23d39b 100644 --- a/api/web/src/components/CloudTAK/util/CopyField.vue +++ b/api/web/src/components/CloudTAK/util/CopyField.vue @@ -14,7 +14,7 @@ "bg-gray-500 rounded-top py-2 px-2 text-truncate": !pre, "hover-button hover-border cursor-pointer": hover, }' - @click='editing = true' + @click='edit ? editing = true : undefined' > From fdd437183c7a60bf927350ec1f175cf4896f6d6c Mon Sep 17 00:00:00 2001 From: ingalls Date: Tue, 26 Nov 2024 10:23:29 -0700 Subject: [PATCH 06/14] Turn off editing --- api/web/package-lock.json | 6 +++--- api/web/src/components/CloudTAK/util/CopyField.vue | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/api/web/package-lock.json b/api/web/package-lock.json index abfc062c2..619976cab 100644 --- a/api/web/package-lock.json +++ b/api/web/package-lock.json @@ -3470,9 +3470,9 @@ } }, "node_modules/@tak-ps/vue-tabler": { - "version": "3.59.0", - "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.59.0.tgz", - "integrity": "sha512-z+SAYb3XeWoJlY0zDoZG27a0Lh7WfA3MRkSsEb9K6ynmtlXiRtOl8wsCvMnHh/SburMK5ExBxAK/XpZbLLWO/w==", + "version": "3.60.0", + "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.60.0.tgz", + "integrity": "sha512-SM4nxaa0dyUj/iUK1SeeqNpeuAtPZpkwkTwPKuIl33Tk6MbVAzFIcJTcd3lMgiCufFzE3Q3E/3p879TTFJHKGA==", "license": "ISC", "dependencies": { "@tabler/icons-vue": "^3.0.0", diff --git a/api/web/src/components/CloudTAK/util/CopyField.vue b/api/web/src/components/CloudTAK/util/CopyField.vue index 77a23d39b..4e2e2d3ec 100644 --- a/api/web/src/components/CloudTAK/util/CopyField.vue +++ b/api/web/src/components/CloudTAK/util/CopyField.vue @@ -4,6 +4,8 @@ ref='editor-input' v-model='text' :autofocus='true' + @blur='editing = false' + @submit='editing = false' label='' /> From 405d9f0d2f51b5cfadbc57a3a6a9bb43e61f0bd3 Mon Sep 17 00:00:00 2001 From: ingalls Date: Tue, 26 Nov 2024 10:38:49 -0700 Subject: [PATCH 07/14] AutoEdit --- api/web/package-lock.json | 8 ++++---- api/web/package.json | 2 +- .../components/CloudTAK/util/CopyButton.vue | 2 +- .../components/CloudTAK/util/CopyField.vue | 19 +++++++++---------- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/api/web/package-lock.json b/api/web/package-lock.json index 619976cab..b4ca0c412 100644 --- a/api/web/package-lock.json +++ b/api/web/package-lock.json @@ -11,7 +11,7 @@ "@sinclair/typebox": "^0.34.0", "@tabler/core": "^1.0.0-beta16", "@tabler/icons-vue": "^3.0.0", - "@tak-ps/vue-tabler": "^3.58.0", + "@tak-ps/vue-tabler": "^3.60.1", "@turf/bbox": "^7.1.0", "@turf/boolean-point-in-polygon": "^7.1.0", "@turf/boolean-touches": "^7.1.0", @@ -3470,9 +3470,9 @@ } }, "node_modules/@tak-ps/vue-tabler": { - "version": "3.60.0", - "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.60.0.tgz", - "integrity": "sha512-SM4nxaa0dyUj/iUK1SeeqNpeuAtPZpkwkTwPKuIl33Tk6MbVAzFIcJTcd3lMgiCufFzE3Q3E/3p879TTFJHKGA==", + "version": "3.60.1", + "resolved": "https://registry.npmjs.org/@tak-ps/vue-tabler/-/vue-tabler-3.60.1.tgz", + "integrity": "sha512-WMkXDtbmhECqxuRSdETU+4Ki6Wknzh9p/EcxlgEv0kObdkZtyeHDnGvI/sQ8HXZN6RooATZ11+9HnyFRhoEuPw==", "license": "ISC", "dependencies": { "@tabler/icons-vue": "^3.0.0", diff --git a/api/web/package.json b/api/web/package.json index c49ef8584..953bc9834 100644 --- a/api/web/package.json +++ b/api/web/package.json @@ -14,7 +14,7 @@ "@sinclair/typebox": "^0.34.0", "@tabler/core": "^1.0.0-beta16", "@tabler/icons-vue": "^3.0.0", - "@tak-ps/vue-tabler": "^3.58.0", + "@tak-ps/vue-tabler": "^3.60.1", "@turf/bbox": "^7.1.0", "@turf/boolean-point-in-polygon": "^7.1.0", "@turf/boolean-touches": "^7.1.0", diff --git a/api/web/src/components/CloudTAK/util/CopyButton.vue b/api/web/src/components/CloudTAK/util/CopyButton.vue index 8f9006087..777d62d74 100644 --- a/api/web/src/components/CloudTAK/util/CopyButton.vue +++ b/api/web/src/components/CloudTAK/util/CopyButton.vue @@ -16,7 +16,7 @@ > diff --git a/api/web/src/components/CloudTAK/util/CopyField.vue b/api/web/src/components/CloudTAK/util/CopyField.vue index 4e2e2d3ec..5445c1714 100644 --- a/api/web/src/components/CloudTAK/util/CopyField.vue +++ b/api/web/src/components/CloudTAK/util/CopyField.vue @@ -1,14 +1,13 @@