From 44fd356d63ee78589a3902ba1891ec41dd5d39ad Mon Sep 17 00:00:00 2001 From: jorgep Date: Thu, 12 Sep 2024 13:19:31 +0200 Subject: [PATCH] feat: refs #7828 useAcl & cherry pick mail data worker --- src/pages/Worker/Card/WorkerTimeControl.vue | 63 +++++++-------------- 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/src/pages/Worker/Card/WorkerTimeControl.vue b/src/pages/Worker/Card/WorkerTimeControl.vue index 2f66fbcc1c..3893305a54 100644 --- a/src/pages/Worker/Card/WorkerTimeControl.vue +++ b/src/pages/Worker/Card/WorkerTimeControl.vue @@ -12,7 +12,6 @@ import WorkerTimeControlCalendar from 'pages/Worker/Card/WorkerTimeControlCalend import useNotify from 'src/composables/useNotify.js'; import axios from 'axios'; -import { useRole } from 'src/composables/useRole'; import { useAcl } from 'src/composables/useAcl'; import { useWeekdayStore } from 'src/stores/useWeekdayStore'; import { useStateStore } from 'stores/useStateStore'; @@ -63,13 +62,16 @@ const selectedCalendarDates = ref([]); const selectedDateFormatted = ref(toDateString(defaultDate.value)); const arrayData = useArrayData('workerData'); - +const acl = useAcl(); const worker = computed(() => arrayData.store?.data); - -const isHr = computed(() => useRole().hasAny(['hr'])); - -const canSend = computed(() => useAcl().hasAny('WorkerTimeControl', 'sendMail', 'WRITE')); - +const canSend = computed(() => + acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]) +); +const canUpdate = computed(() => + acl.hasAny([ + { model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' }, + ]) +); const isHimself = computed(() => user.value.id === Number(route.params.id)); const columns = computed(() => { @@ -257,46 +259,25 @@ const fetchHours = async () => { } }; -const fetchWorkerTimeControlMails = async (filter) => { - try { - const { data } = await axios.get('WorkerTimeControlMails', { - params: { filter: JSON.stringify(filter) }, - }); - - return data; - } catch (err) { - console.error('Error fetching worker time control mails'); - } -}; - const fetchWeekData = async () => { + const where = { + year: selectedDate.value.getFullYear(), + week: selectedWeekNumber.value, + }; try { - const data = ( - await axios.get(`WorkerTimeControlMails/${route.params.id}/getWeeklyMail`, { - params: { - workerFk: route.params.id, - year: selectedDate.value.getFullYear(), - week: selectedWeekNumber.value, - }, + const mail = ( + await axios.get(`Workers/${route.params.id}/mail`, { + params: { filter: { where } }, }) - ).data; - if (!data.length) state.value = null; + ).data[0]; + if (!mail) state.value = null; else { - const [mail] = data; state.value = mail.state; reason.value = mail.reason; } canResend.value = !!( - await axios.get('WorkerTimeControlMails/count', { - filter: { - where: { - year: selectedDate.value.getFullYear(), - week: selectedWeekNumber.value, - limit: 1, - }, - }, - }) + await axios.get('WorkerTimeControlMails/count', { params: { where } }) ).data.count; } catch (err) { console.error('Error fetching week data'); @@ -443,7 +424,7 @@ onMounted(async () => {
{ @click="isSatisfied()" /> {