<!-- SPDX-FileCopyrightText: 2023 Andreas Palm SPDX-License-Identifier: LicenseRef-EGPL-3.1 --> <script setup> import axios from "axios"; import {ref} from 'vue'; import {reloadDataTables} from "@res/js/jqueryBridge"; import AddGlobalToArticle from "./AddGlobalToArticle.vue"; import GroupEdit from "./GroupEdit.vue"; import OptionEdit from "./OptionEdit.vue"; import Variant from "./Variant.vue"; import Translation from "./Translation.vue"; import CreateMissing from "./CreateMissing.vue"; const model = ref(null); document.getElementById('main').addEventListener('click', async (ev) => { const target = ev.target; if (!target || !target.classList.contains('vueAction')) return; const ds = target.dataset; if (ds.action.endsWith('Delete')) { const cnf = confirm('Wirklich löschen?'); if (!cnf) return; let url; switch (ds.action) { case 'groupDelete': url = ds.articleId > 0 ? 'index.php?module=matrixprodukt&action=artikel&cmd=groupdelete' : 'index.php?module=matrixprodukt&action=list&cmd=delete'; await axios.post(url, {groupId: ds.groupId}); break; case 'optionDelete': url = ds.articleId > 0 ? 'index.php?module=matrixprodukt&action=artikel&cmd=optiondelete' : 'index.php?module=matrixprodukt&action=optionenlist&cmd=delete'; await axios.post(url, {optionId: ds.optionId}); break; case 'variantDelete': url = 'index.php?module=matrixprodukt&action=artikel&cmd=variantdelete'; await axios.post(url, {variantId: ds.variantId}); break; case 'translationDelete': url = 'index.php?module=matrixprodukt&action=translation&cmd=delete'; await axios.post(url, {id: ds.id, type: ds.type}); break; } onSave(); return; } model.value = ds; }); function onSave() { reloadDataTables(); onClose(); } function onGroupSave() { location.reload(); } function onClose() { model.value = null; } </script> <template> <template v-if="model"> <AddGlobalToArticle v-if="model.action === 'addGlobalToArticle'" v-bind="model" @close="onClose" @save="onGroupSave" /> <GroupEdit v-else-if="model.action === 'groupEdit'" v-bind="model" @close="onClose" @save="onGroupSave" /> <OptionEdit v-else-if="model.action === 'optionEdit'" v-bind="model" @close="onClose" @save="onSave" /> <Variant v-else-if="model.action === 'variantEdit'" v-bind="model" @close="onClose" @save="onSave" /> <CreateMissing v-else-if="model.action === 'createMissing'" v-bind="model" @close="onClose" @save="onSave" /> <Translation v-else-if="model.action === 'translationEdit'" v-bind="model" @close="onClose" @save="onSave" /> </template> </template>