mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
merge & automate
This commit is contained in:
@@ -26,11 +26,12 @@
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-checkbox :label="$t('Automate')" v-model="automate" :hint="$t('MergeAutomateHelp')" persistent-hint v-if="genericModel.model.mergeAutomation"></v-checkbox>
|
||||
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn :disabled="loading">{{ $t('Cancel') }}</v-btn>
|
||||
<v-btn color="warning" @click="mergeModel()" :loading="loading">{{ $t('Merge') }}</v-btn>
|
||||
<v-btn color="warning" @click="mergeModel()" :loading="loading" :disabled="!target">{{ $t('Merge') }}</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
@@ -41,10 +42,10 @@
|
||||
import ModelSelect from "@/components/inputs/ModelSelect.vue";
|
||||
import {PropType, ref} from "vue";
|
||||
import {EditorSupportedModels, EditorSupportedTypes, getGenericModelFromString} from "@/types/Models";
|
||||
import {ApiApi, Food} from "@/openapi";
|
||||
import {ErrorMessageType, PreparedMessage, useMessageStore} from "@/stores/MessageStore";
|
||||
import {useI18n} from "vue-i18n";
|
||||
import VClosableCardTitle from "@/components/dialogs/VClosableCardTitle.vue";
|
||||
import {ApiApi, Automation} from "@/openapi";
|
||||
|
||||
const props = defineProps({
|
||||
model: {type: String as PropType<EditorSupportedModels>, required: true},
|
||||
@@ -56,6 +57,7 @@ const {t} = useI18n()
|
||||
|
||||
const dialog = defineModel<boolean>({default: false})
|
||||
const loading = ref(false)
|
||||
const automate = ref(false)
|
||||
|
||||
const genericModel = getGenericModelFromString(props.model, t)
|
||||
const target = ref<null | EditorSupportedTypes>(null)
|
||||
@@ -64,16 +66,35 @@ const target = ref<null | EditorSupportedTypes>(null)
|
||||
* merge source into selected target
|
||||
*/
|
||||
function mergeModel() {
|
||||
let api = new ApiApi()
|
||||
|
||||
if (target.value != null) {
|
||||
loading.value = true
|
||||
|
||||
genericModel.merge(props.source, target.value).then(r => {
|
||||
useMessageStore().addPreparedMessage(PreparedMessage.UPDATE_SUCCESS)
|
||||
|
||||
if (automate.value && target.value != null && Object.hasOwn(props.source, 'name') && Object.hasOwn(target.value, 'name')) {
|
||||
let automation = {
|
||||
name: `${t('Merge') } ${props.source.name} -> ${target.value.name}`.substring(0,128),
|
||||
param1: props.source.name,
|
||||
param2: target.value.name,
|
||||
type: genericModel.model.mergeAutomation
|
||||
} as Automation
|
||||
api.apiAutomationCreate({automation: automation}).catch(err => {
|
||||
useMessageStore().addError(ErrorMessageType.UPDATE_ERROR, err)
|
||||
}).finally(() => {
|
||||
loading.value = false
|
||||
dialog.value = false
|
||||
})
|
||||
}
|
||||
}).catch(err => {
|
||||
useMessageStore().addError(ErrorMessageType.UPDATE_ERROR, err)
|
||||
}).finally(() => {
|
||||
loading.value = false
|
||||
dialog.value = false
|
||||
if (!automate.value) {
|
||||
loading.value = false
|
||||
dialog.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
"Meal_Type_Required": "",
|
||||
"Meal_Types": "",
|
||||
"Merge": "",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "",
|
||||
"Message": "",
|
||||
"Messages": "",
|
||||
|
||||
@@ -169,6 +169,7 @@
|
||||
"Meal_Type_Required": "Изисква се вид хранене",
|
||||
"Meal_Types": "Видове хранене",
|
||||
"Merge": "Обединяване",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Обединяване на ключова дума",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -224,6 +224,7 @@
|
||||
"Meal_Type_Required": "",
|
||||
"Meal_Types": "",
|
||||
"Merge": "",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Fusioneu paraula clau",
|
||||
"Message": "",
|
||||
"Messages": "",
|
||||
|
||||
@@ -223,6 +223,7 @@
|
||||
"Meal_Type_Required": "Druh jídla je povinný",
|
||||
"Meal_Types": "Druhy jídel",
|
||||
"Merge": "Spojit",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Sloučit štítek",
|
||||
"Message": "Zpráva",
|
||||
"Messages": "",
|
||||
|
||||
@@ -210,6 +210,7 @@
|
||||
"Meal_Type_Required": "Måltidstype påkrævet",
|
||||
"Meal_Types": "Måltidstyper",
|
||||
"Merge": "Sammenflet",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Sammenflet nøgleord",
|
||||
"Message": "Besked",
|
||||
"Messages": "",
|
||||
|
||||
@@ -226,6 +226,7 @@
|
||||
"Meal_Type_Required": "Mahlzeitentyp ist erforderlich",
|
||||
"Meal_Types": "Mahlzeiten",
|
||||
"Merge": "Zusammenführen",
|
||||
"MergeAutomateHelp": "Erstelle eine Automatisierung die auch zukünftig erstellte Objekte mit diesem Namen durch das gewählte Objekt ersetzt. ",
|
||||
"Merge_Keyword": "Schlagworte zusammenführen",
|
||||
"Message": "Nachricht",
|
||||
"Messages": "Nachrichten",
|
||||
|
||||
@@ -205,6 +205,7 @@
|
||||
"Meal_Type_Required": "Το είδος του γεύματος είναι απαραίτητο",
|
||||
"Meal_Types": "Είδη γευμάτων",
|
||||
"Merge": "Συγχώνευση",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Συγχώνευση λέξης-κλειδί",
|
||||
"Message": "Μήνυμα",
|
||||
"Messages": "",
|
||||
|
||||
@@ -225,6 +225,7 @@
|
||||
"Meal_Type_Required": "Meal type is required",
|
||||
"Meal_Types": "Meal types",
|
||||
"Merge": "Merge",
|
||||
"MergeAutomateHelp": "Create an automation that replaces future objects of this type with the selected object.",
|
||||
"Merge_Keyword": "Merge Keyword",
|
||||
"Message": "Message",
|
||||
"Messages": "Messages",
|
||||
|
||||
@@ -225,6 +225,7 @@
|
||||
"Meal_Type_Required": "El Tipo es obligatorio",
|
||||
"Meal_Types": "Tipos de comida",
|
||||
"Merge": "Unificar",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Fusionar palabra clave",
|
||||
"Message": "Mensaje",
|
||||
"Messages": "",
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
"Meal_Type_Required": "Ateriatyyppi pakollinen",
|
||||
"Meal_Types": "Ateriatyypit",
|
||||
"Merge": "Yhdistä",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Yhdistä Avainsana",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -224,6 +224,7 @@
|
||||
"Meal_Type_Required": "Type de repas obligatoire",
|
||||
"Meal_Types": "Types de repas",
|
||||
"Merge": "Fusionner",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Fusionner le mot-clé",
|
||||
"Message": "Message",
|
||||
"Messages": "",
|
||||
|
||||
@@ -225,6 +225,7 @@
|
||||
"Meal_Type_Required": "סוג אוכל נדרש",
|
||||
"Meal_Types": "סוגי אוכל",
|
||||
"Merge": "איחוד",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "איחוד מילת מפתח",
|
||||
"Message": "הודעה",
|
||||
"Messages": "",
|
||||
|
||||
@@ -206,6 +206,7 @@
|
||||
"Meal_Type_Required": "Étkezés megadása kötelező",
|
||||
"Meal_Types": "Étkezések",
|
||||
"Merge": "Összefűzés",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Kulcsszó összevonása",
|
||||
"Message": "Üzenet",
|
||||
"Messages": "",
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
"MealPlanShoppingHelp": "",
|
||||
"Meal_Plan": "Ճաշացուցակ",
|
||||
"Merge": "Միացնել",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Միացնել բանալի բառը",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -191,6 +191,7 @@
|
||||
"Meal_Type_Required": "",
|
||||
"Meal_Types": "",
|
||||
"Merge": "Menggabungkan",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Gabungkan Kata Kunci",
|
||||
"Message": "",
|
||||
"Messages": "",
|
||||
|
||||
@@ -224,6 +224,7 @@
|
||||
"Meal_Type_Required": "",
|
||||
"Meal_Types": "",
|
||||
"Merge": "",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "",
|
||||
"Message": "",
|
||||
"Messages": "",
|
||||
|
||||
@@ -196,6 +196,7 @@
|
||||
"Meal_Type_Required": "Il tipo di pasto è richiesto",
|
||||
"Meal_Types": "Tipi di pasto",
|
||||
"Merge": "Unisci",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Unisci parola chiave",
|
||||
"Message": "Messaggio",
|
||||
"Messages": "",
|
||||
|
||||
@@ -208,6 +208,7 @@
|
||||
"Meal_Type_Required": "",
|
||||
"Meal_Types": "",
|
||||
"Merge": "",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Sujungti raktažodį",
|
||||
"Message": "",
|
||||
"Messages": "",
|
||||
|
||||
@@ -203,6 +203,7 @@
|
||||
"Meal_Type_Required": "Måltidstype er nødvendig",
|
||||
"Meal_Types": "Måltidstyper",
|
||||
"Merge": "Slå sammen",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Slå sammen nøkkelord",
|
||||
"Message": "Melding",
|
||||
"Messages": "",
|
||||
|
||||
@@ -207,6 +207,7 @@
|
||||
"Meal_Type_Required": "Maaltype is verplicht",
|
||||
"Meal_Types": "Maaltypes",
|
||||
"Merge": "Samenvoegen",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Voeg Etiket samen",
|
||||
"Message": "Bericht",
|
||||
"Messages": "",
|
||||
|
||||
@@ -226,6 +226,7 @@
|
||||
"Meal_Type_Required": "Rodzaj posiłku jest wymagany",
|
||||
"Meal_Types": "Rodzaje posiłków",
|
||||
"Merge": "Scal",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Scal słowa kluczowe",
|
||||
"Message": "Wiadomość",
|
||||
"Messages": "",
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
"Meal_Type_Required": "Tipo de refeição é necessário",
|
||||
"Meal_Types": "Tipos de refeições",
|
||||
"Merge": "Juntar",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Unir palavra-chave",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -218,6 +218,7 @@
|
||||
"Meal_Type_Required": "Tipo de comida é obrigatório",
|
||||
"Meal_Types": "Tipos de Comida",
|
||||
"Merge": "Mesclar",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Mesclar palavra-chave",
|
||||
"Message": "Mensagem",
|
||||
"Messages": "",
|
||||
|
||||
@@ -200,6 +200,7 @@
|
||||
"Meal_Type_Required": "Tipul mesei este necesar",
|
||||
"Meal_Types": "Tipuri de mese",
|
||||
"Merge": "Unire",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Unește cuvânt cheie",
|
||||
"Message": "Mesaj",
|
||||
"Messages": "",
|
||||
|
||||
@@ -155,6 +155,7 @@
|
||||
"Meal_Type_Required": "Тип питания обязателен",
|
||||
"Meal_Types": "Типы питания",
|
||||
"Merge": "Объединить",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Объеденить ключевые слова",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -151,6 +151,7 @@
|
||||
"Meal_Type_Required": "Tip obroka je obvezen",
|
||||
"Meal_Types": "Tipi obroka",
|
||||
"Merge": "Združi",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Združi ključno besedo",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -226,6 +226,7 @@
|
||||
"Meal_Type_Required": "Måltidstyp är obligatorisk",
|
||||
"Meal_Types": "Måltidstyper",
|
||||
"Merge": "Slå samman",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Slå samman nyckelord",
|
||||
"Message": "Meddelande",
|
||||
"Messages": "",
|
||||
|
||||
@@ -225,6 +225,7 @@
|
||||
"Meal_Type_Required": "Yemek türü gereklidir",
|
||||
"Meal_Types": "Yemek türleri",
|
||||
"Merge": "Birleştir",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Anahtar Kelimeyi Birleştir",
|
||||
"Message": "Mesaj",
|
||||
"Messages": "",
|
||||
|
||||
@@ -180,6 +180,7 @@
|
||||
"Meal_Type_Required": "Тип страви є обов'язковим",
|
||||
"Meal_Types": "Типи страви",
|
||||
"Merge": "Об'єднати",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "Об'єднати Ключове слово",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
|
||||
@@ -221,6 +221,7 @@
|
||||
"Meal_Type_Required": "用餐类型是必需的",
|
||||
"Meal_Types": "用餐类型",
|
||||
"Merge": "合并",
|
||||
"MergeAutomateHelp": "",
|
||||
"Merge_Keyword": "合并关键词",
|
||||
"Message": "信息",
|
||||
"Messages": "",
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
"Manage_Books": "管理書籍",
|
||||
"MealPlanShoppingHelp": "",
|
||||
"Meal_Plan": "膳食計劃",
|
||||
"MergeAutomateHelp": "",
|
||||
"Messages": "",
|
||||
"Miscellaneous": "",
|
||||
"Monday": "",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {
|
||||
AccessToken,
|
||||
ApiApi, Automation,
|
||||
ApiApi, Automation, type AutomationTypeEnum,
|
||||
Food,
|
||||
Ingredient,
|
||||
InviteLink, Keyword,
|
||||
@@ -102,6 +102,7 @@ export type Model = {
|
||||
|
||||
isPaginated: boolean | undefined,
|
||||
isMerge?: boolean | undefined,
|
||||
mergeAutomation?: string | AutomationTypeEnum,
|
||||
isTree?: boolean | undefined,
|
||||
|
||||
tableHeaders: ModelTableHeaders[],
|
||||
@@ -161,6 +162,7 @@ export const TFood = {
|
||||
|
||||
isPaginated: true,
|
||||
isMerge: true,
|
||||
mergeAutomation: 'FOOD_ALIAS',
|
||||
toStringKeys: ['name'],
|
||||
|
||||
tableHeaders: [
|
||||
@@ -179,6 +181,7 @@ export const TUnit = {
|
||||
|
||||
isPaginated: true,
|
||||
isMerge: true,
|
||||
mergeAutomation: 'UNIT_ALIAS',
|
||||
toStringKeys: ['name'],
|
||||
|
||||
tableHeaders: [
|
||||
@@ -196,6 +199,7 @@ export const TKeyword = {
|
||||
|
||||
isPaginated: true,
|
||||
isMerge: true,
|
||||
mergeAutomation: 'KEYWORD_ALIAS',
|
||||
toStringKeys: ['name'],
|
||||
|
||||
tableHeaders: [
|
||||
|
||||
Reference in New Issue
Block a user