diff --git a/src/components/common/VnDmsList.vue b/src/components/common/VnDmsList.vue index 23e00f5d9b..9bf90230d3 100644 --- a/src/components/common/VnDmsList.vue +++ b/src/components/common/VnDmsList.vue @@ -9,6 +9,7 @@ import FetchData from 'components/FetchData.vue'; import VnDms from 'src/components/common/VnDms.vue'; import VnConfirm from 'components/ui/VnConfirm.vue'; import { downloadFile } from 'src/composables/downloadFile'; +import { getUrlFindOne } from 'composables/getUrl'; const route = useRoute(); const quasar = useQuasar(); @@ -142,15 +143,17 @@ const columns = computed(() => [ components: [ { component: QBtn, + name: 'download', props: () => ({ icon: 'cloud_download', flat: true, color: 'primary', }), - click: (prop) => downloadFile(prop.row.id), + click: (prop) => downloadFile(prop.row.id, prop.row.isDocuware), }, { component: QBtn, + name: 'edit', props: () => ({ icon: 'edit', flat: true, @@ -160,6 +163,7 @@ const columns = computed(() => [ }, { component: QBtn, + name: 'delete', props: () => ({ icon: 'delete', flat: true, @@ -167,6 +171,16 @@ const columns = computed(() => [ }), click: (prop) => deleteDms(prop.row.id), }, + { + component: QBtn, + name: 'openDocuware', + props: () => ({ + icon: 'open_in_new', + flat: true, + color: 'primary', + }), + click: () => openDocuware(), + }, ], }, ]); @@ -206,6 +220,16 @@ function parseDms(data) { } return data; } + +async function openDocuware() { + const url = await getUrlFindOne('WebClient', 'docuware'); + if (url) window.open(url).focus(); +} + +function shouldRenderButton(buttonName, isDocuware = false) { + // Renderizar el botón si no se llama 'openDocuware' o (se llama 'openDocuware' y props.row.isDocuware = true) + return buttonName !== 'openDocuware' || (buttonName === 'openDocuware' && isDocuware); +}