diff --git a/vue/src/apps/ModelListView/ModelListView.vue b/vue/src/apps/ModelListView/ModelListView.vue
index d59f3b94..3c774e2f 100644
--- a/vue/src/apps/ModelListView/ModelListView.vue
+++ b/vue/src/apps/ModelListView/ModelListView.vue
@@ -97,6 +97,7 @@ import GenericInfiniteCards from "@/components/GenericInfiniteCards";
import GenericHorizontalCard from "@/components/GenericHorizontalCard";
import GenericModalForm from "@/components/Modals/GenericModalForm";
import ModelMenu from "@/components/ModelMenu";
+import {ApiApiFactory} from "@/utils/openapi/api";
Vue.use(BootstrapVue)
@@ -179,9 +180,18 @@ export default {
this.this_action = this.Actions.MERGE
this.show_modal = true
} else {
- this.mergeThis(e.source.id, e.target.id)
+ this.mergeThis(e.source, e.target, false)
}
break;
+ case 'merge-automate':
+ if (target == null) {
+ this.this_item = e.source
+ this.this_action = this.Actions.MERGE
+ this.show_modal = true
+ } else {
+ this.mergeThis(e.source, e.target, true)
+ }
+ break
case 'get-children':
if (source.show_children) {
Vue.set(source, 'show_children', false)
@@ -219,7 +229,7 @@ export default {
this.saveThis(update)
break;
case this.Actions.MERGE:
- this.mergeThis(this.this_item.id, e.form_data.target.id)
+ this.mergeThis(this.this_item, e.form_data.target, false)
break;
case this.Actions.MOVE:
this.moveThis(this.this_item.id, e.form_data.target.id)
@@ -305,7 +315,9 @@ export default {
this.makeToast(this.$t('Error'), err.bodyText, 'danger')
})
},
- mergeThis: function (source_id, target_id) {
+ mergeThis: function (source, target, automate) {
+ let source_id = source.id
+ let target_id = target.id
if (source_id === target_id) {
this.makeToast(this.$t('Error'), this.$t('Cannot merge item with itself'), 'danger')
this.clearState()
@@ -331,6 +343,28 @@ export default {
this.makeToast(this.$t('Error'), err.bodyText, 'danger')
})
+ if (automate){
+ let apiClient = new ApiApiFactory()
+
+ let automation = {
+ name: `Merge ${source.name} with ${target.name}`,
+ param_1: source.name,
+ param_2: target.id
+ }
+
+ if (this.this_model === this.Models.FOOD){
+ automation.type = 'FOOD_ALIAS'
+ }
+ if (this.this_model === this.Models.UNIT){
+ automation.type = 'UNIT_ALIAS'
+ }
+ if (this.this_model === this.Models.KEYWORD){
+ automation.type = 'KEYWORD_ALIAS'
+ }
+
+ apiClient.createAutomation(automation)
+ }
+
},
getChildren: function (col, item) {
let parent = {}
diff --git a/vue/src/components/GenericContextMenu.vue b/vue/src/components/GenericContextMenu.vue
index 036ac8f1..227e77de 100644
--- a/vue/src/components/GenericContextMenu.vue
+++ b/vue/src/components/GenericContextMenu.vue
@@ -1,6 +1,6 @@
-
+
@@ -20,6 +20,10 @@
{{ $t('Merge') }}
+
+ {{$t('Merge')}} & {{$t('Automate')}}
+
+
diff --git a/vue/src/components/GenericHorizontalCard.vue b/vue/src/components/GenericHorizontalCard.vue
index 20bb6938..4b493b40 100644
--- a/vue/src/components/GenericHorizontalCard.vue
+++ b/vue/src/components/GenericHorizontalCard.vue
@@ -80,13 +80,16 @@
- {{$t('Move')}}: {{$t('move_confirmation', {'child': source.name,'parent':item.name})}}
+ {{$t('Move')}}:
- {{$t('Merge')}}: {{ $t('merge_confirmation', {'source': source.name,'target':item.name}) }}
+ {{$t('Merge')}}:
+
+
+ {{$t('Merge')}} & {{$t('Automate')}}: {{$t('create_rule')}}
- {{$t('Cancel')}}
+ {{$t('Cancel')}}
diff --git a/vue/src/components/ModelMenu.vue b/vue/src/components/ModelMenu.vue
index 1925ff60..5768adf7 100644
--- a/vue/src/components/ModelMenu.vue
+++ b/vue/src/components/ModelMenu.vue
@@ -27,7 +27,7 @@
- {{ Models['AUTOMATION'].name }}
+ {{ Models['AUTOMATION'].name }}