diff --git a/src/plugins/condition/Condition.js b/src/plugins/condition/Condition.js
index 1078a38011..9cf2a3b877 100644
--- a/src/plugins/condition/Condition.js
+++ b/src/plugins/condition/Condition.js
@@ -95,7 +95,7 @@ export default class ConditionClass extends EventEmitter {
generateCriterion(criterionConfiguration) {
return {
- id: uuid(),
+ id: criterionConfiguration.id || uuid(),
telemetry: criterionConfiguration.telemetry || '',
telemetryObject: this.conditionManager.telemetryObjects[this.openmct.objects.makeKeyString(criterionConfiguration.telemetry)],
operation: criterionConfiguration.operation || '',
diff --git a/src/plugins/condition/ConditionManager.js b/src/plugins/condition/ConditionManager.js
index d0844d0426..2adf6f439b 100644
--- a/src/plugins/condition/ConditionManager.js
+++ b/src/plugins/condition/ConditionManager.js
@@ -122,6 +122,7 @@ export default class ConditionManager extends EventEmitter {
output: 'false',
trigger: 'all',
criteria: [{
+ id: uuid(),
telemetry: '',
operation: '',
input: [],
@@ -140,7 +141,9 @@ export default class ConditionManager extends EventEmitter {
}
cloneCondition(conditionConfiguration, index) {
- this.createAndSaveCondition(index, JSON.parse(JSON.stringify(conditionConfiguration)));
+ let clonedConfig = JSON.parse(JSON.stringify(conditionConfiguration));
+ clonedConfig.configuration.criteria.forEach((criterion) => criterion.id = uuid());
+ this.createAndSaveCondition(index, clonedConfig);
}
createAndSaveCondition(index, conditionConfiguration) {
diff --git a/src/plugins/condition/components/Condition.vue b/src/plugins/condition/components/Condition.vue
index b628763019..59e93794ea 100644
--- a/src/plugins/condition/components/Condition.vue
+++ b/src/plugins/condition/components/Condition.vue
@@ -41,7 +41,6 @@
>
{{ condition.configuration.name }}
-
Define criteria
@@ -122,7 +121,7 @@