diff --git a/api/web/src/components/CloudTAK/CoTView.vue b/api/web/src/components/CloudTAK/CoTView.vue
index ffa0688b5..f82bd5b6e 100644
--- a/api/web/src/components/CloudTAK/CoTView.vue
+++ b/api/web/src/components/CloudTAK/CoTView.vue
@@ -174,12 +174,10 @@
@@ -234,8 +232,14 @@
@@ -356,10 +360,10 @@ import Share from './util/Share.vue';
import CoTStyle from './util/CoTStyle.vue';
import Coordinate from './util/Coordinate.vue';
import Course from './util/Course.vue';
+import Phone from './util/Phone.vue';
import Speed from './util/Speed.vue';
import Elevation from './util/Elevation.vue';
import Attachments from './util/Attachments.vue';
-import phone from 'phone';
import {
IconX,
IconAmbulance,
@@ -479,17 +483,6 @@ export default {
this.feat.properties.attachments.push(hash)
},
- phone: function(number) {
- const p = phone(number);
-
- if (!p.isValid) return number;
-
- if (p.countryCode === '+1') {
- return `${p.phoneNumber.slice(0, 2)} (${p.phoneNumber.slice(2, 5)}) ${p.phoneNumber.slice(5, 8)}-${p.phoneNumber.slice(8, 12)}`;
- } else {
- return p;
- }
- },
updateStyle: async function() {
if (this.feat.properties.archived) {
await cotStore.add(this.feat);
@@ -532,6 +525,7 @@ export default {
Elevation,
Attachments,
Speed,
+ Phone,
Course,
Share,
Coordinate,
diff --git a/api/web/src/components/CloudTAK/util/CopyField.vue b/api/web/src/components/CloudTAK/util/CopyField.vue
index e234cabf7..c9750b1a1 100644
--- a/api/web/src/components/CloudTAK/util/CopyField.vue
+++ b/api/web/src/components/CloudTAK/util/CopyField.vue
@@ -2,6 +2,7 @@
+
+
+
+
+
diff --git a/api/web/src/stores/cots.ts b/api/web/src/stores/cots.ts
index 682e74f60..19165fedc 100644
--- a/api/web/src/stores/cots.ts
+++ b/api/web/src/stores/cots.ts
@@ -385,8 +385,6 @@ export const useCOTStore = defineStore('cots', {
* Add a CoT GeoJSON to the store and modify props to meet MapLibre style requirements
*/
add: async function(feat: Feature, mission_guid?: string) {
- feat = COT.style(feat);
-
mission_guid = mission_guid || this.subscriptionPending.get(feat.id);
if (mission_guid) {
diff --git a/api/web/src/stores/cots/cot.ts b/api/web/src/stores/cots/cot.ts
index 89af24698..bf842e50c 100644
--- a/api/web/src/stores/cots/cot.ts
+++ b/api/web/src/stores/cots/cot.ts
@@ -35,17 +35,25 @@ export default class COT implements Feature {
geometry: Feature["geometry"];
constructor(feat: Feature) {
+ feat = COT.style(feat);
+
this.id = feat.id || crypto.randomUUID();
this.type = feat.type || 'Feature';
this.path = feat.path || '/';
this.properties = feat["properties"] || {};
this.geometry = feat["geometry"];
+
+ if (!this.properties.archived) {
+ this.properties.archived = false
+ }
}
/**
* Update the COT and return a boolean as to whether the COT needs to be re-rendered
*/
update(feat: Feature): boolean {
+ feat = COT.style(feat);
+
let changed = false;
for (const prop of RENDERED_PROPERTIES) {
if (this.properties[prop] !== feat.properties[prop]) {
diff --git a/tasks/data/Dockerfile b/tasks/data/Dockerfile
index 850a1ae1c..a190eefed 100644
--- a/tasks/data/Dockerfile
+++ b/tasks/data/Dockerfile
@@ -49,3 +49,4 @@ RUN npm install
#ENTRYPOINT ["/usr/local/bin/npx", "aws-lambda-ric"]
#CMD ["app.handler"]
+CMD ["npm", "start"]