Only save status if we have a unique ids for activities

This commit is contained in:
Shefali 2024-01-10 10:13:40 -08:00
parent 92a30a3485
commit 4d4f83ee95
5 changed files with 28 additions and 14 deletions

View File

@ -23,26 +23,26 @@
<div>
<plan-activity-time-view
v-for="activity in activities"
:key="activity.uuid"
:key="activity.key"
class="c-inspector__properties c-inspect-properties"
:activity="activity"
:heading="heading"
/>
<plan-activity-properties-view
v-for="activity in activities"
:key="activity.uuid"
:key="activity.key"
:heading="'Properties'"
class="c-inspector__properties c-inspect-properties"
:activity="activity"
></plan-activity-properties-view>
<plan-activity-status-view
v-if="activities.length === 1"
:key="activities[0].uuid"
v-if="canPersistState"
:key="activities[0].key"
class="c-inspector__properties c-inspect-properties"
:activity="activities[0]"
:execution-state="persistedActivityStates[activities[0].uuid]"
:execution-state="persistedActivityStates[activities[0].id]"
:heading="'Activity Status'"
@updateActivityState="persistedActivityState"
@update-activity-state="persistedActivityState"
/>
</div>
</template>
@ -80,6 +80,11 @@ export default {
heading: ''
};
},
computed: {
canPersistState() {
return this.activities.length === 1 && this.activities[0].id;
}
},
mounted() {
this.setFormatters();
this.getPlanData(this.selection);
@ -142,7 +147,8 @@ export default {
this.activities.splice(0);
this.selectedActivities.forEach((selectedActivity, index) => {
const activity = {
uuid: selectedActivity.uuid ?? selectedActivity.name,
id: selectedActivity.id,
key: selectedActivity.id ?? selectedActivity.name,
timeProperties: {
start: {
label: propertyLabels.start,
@ -189,6 +195,8 @@ export default {
let latestEnd;
let gap;
let overlap;
let id;
let key;
//Sort by start time
let selectedActivities = this.selectedActivities.sort(this.sortFn);
@ -207,6 +215,8 @@ export default {
earliestStart = Math.min(earliestStart, selectedActivity.start);
latestEnd = Math.max(latestEnd, selectedActivity.end);
} else {
id = selectedActivity.id;
key = selectedActivity.id ?? selectedActivity.name;
earliestStart = selectedActivity.start;
latestEnd = selectedActivity.end;
}
@ -214,6 +224,8 @@ export default {
let totalTime = latestEnd - earliestStart;
const activity = {
id,
key,
timeProperties: {
earliestStart: {
label: propertyLabels.earliestStart,

View File

@ -32,8 +32,6 @@
</template>
<script>
import { v4 as uuid } from 'uuid';
import ActivityProperty from './ActivityProperty.vue';
export default {
@ -68,9 +66,10 @@ export default {
if (this.activity.metadata[key].label) {
const label = this.activity.metadata[key].label;
const value = String(this.activity.metadata[key].value);
const id = this.activity.id;
this.properties[this.properties.length] = {
id: uuid(),
id,
label,
value
};

View File

@ -105,7 +105,7 @@ export default {
}
this.activity.executionState = this.currentStatusKey;
this.$emit('updateActivityState', {
key: this.activity.uuid,
key: this.activity.id,
executionState: this.currentStatusKey
});
}

View File

@ -38,8 +38,6 @@
</template>
<script>
import { v4 as uuid } from 'uuid';
import ActivityProperty from './ActivityProperty.vue';
export default {
@ -70,9 +68,10 @@ export default {
if (this.activity.timeProperties[key].label) {
const label = this.activity.timeProperties[key].label;
const value = String(this.activity.timeProperties[key].value);
const id = this.activity.id;
this.timeProperties[this.timeProperties.length] = {
id: uuid(),
id,
label,
value
};

View File

@ -45,6 +45,10 @@ export function getValidatedData(domainObject) {
groupActivity.end = activity[sourceMap.end];
}
if (sourceMap.id) {
groupActivity.id = activity[sourceMap.id];
}
if (!mappedJson[groupIdKey]) {
mappedJson[groupIdKey] = [];
}