diff --git a/CHANGELOG.md b/CHANGELOG.md index f1f911d62..778d04638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - (Item) => Se añade la opción de añadir un comentario del motivo de hacer una foto - (Worker) => Se añade la opción de crear un trabajador ajeno a la empresa +- (Route) => Ahora se muestran todos los cmrs ## [2418.01] diff --git a/src/composables/useAcl.js b/src/composables/useAcl.js new file mode 100644 index 000000000..46aaa3c25 --- /dev/null +++ b/src/composables/useAcl.js @@ -0,0 +1,33 @@ +import axios from 'axios'; +import { useState } from './useState'; + +export function useAcl() { + const state = useState(); + + async function fetch() { + const { data } = await axios.get('VnUsers/acls'); + const acls = {}; + data.forEach((acl) => { + acls[acl.model] = acls[acl.model] || {}; + acls[acl.model][acl.property] = acls[acl.model][acl.property] || {}; + acls[acl.model][acl.property][acl.accessType] = true; + }); + + state.setAcls(acls); + } + + function hasAny(model, prop, accessType) { + const acls = state.getAcls().value[model]; + if (acls) + return ['*', prop].some((key) => { + const acl = acls[key]; + return acl && (acl['*'] || acl[accessType]); + }); + } + + return { + fetch, + hasAny, + state, + }; +} diff --git a/src/composables/useSession.js b/src/composables/useSession.js index 56bce0279..ca2abef00 100644 --- a/src/composables/useSession.js +++ b/src/composables/useSession.js @@ -1,5 +1,6 @@ import { useState } from './useState'; import { useRole } from './useRole'; +import { useAcl } from './useAcl'; import { useUserConfig } from './useUserConfig'; import axios from 'axios'; import useNotify from './useNotify'; @@ -88,6 +89,7 @@ export function useSession() { setSession(data); await useRole().fetch(); + await useAcl().fetch(); await useUserConfig().fetch(); await useTokenConfig().fetch(); diff --git a/src/composables/useState.js b/src/composables/useState.js index f20209494..c2ac1740c 100644 --- a/src/composables/useState.js +++ b/src/composables/useState.js @@ -15,6 +15,7 @@ if (sessionStorage.getItem('user')) user.value = JSON.parse(sessionStorage.getItem('user')); const roles = ref([]); +const acls = ref([]); const tokenConfig = ref({}); const drawer = ref(true); const headerMounted = ref(false); @@ -42,6 +43,14 @@ export function useState() { function setRoles(data) { roles.value = data; } + + function getAcls() { + return computed(() => acls.value); + } + + function setAcls(data) { + acls.value = data; + } function getTokenConfig() { return computed(() => { return tokenConfig.value; @@ -69,6 +78,8 @@ export function useState() { setUser, getRoles, setRoles, + getAcls, + setAcls, getTokenConfig, setTokenConfig, set, diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 8ccdf640f..a0a72ed54 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -962,7 +962,7 @@ roadmap: route: pageTitles: routes: Routes - cmrsList: External CMRs list + cmrsList: CMRs list RouteList: List routeCreate: New route basicData: Basic Data diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 452421343..7815f3c45 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -950,7 +950,7 @@ roadmap: route: pageTitles: routes: Rutas - cmrsList: Listado de CMRs externos + cmrsList: Listado de CMRs RouteList: Listado routeCreate: Nueva ruta basicData: Datos básicos diff --git a/src/pages/Customer/Card/CustomerBalance.vue b/src/pages/Customer/Card/CustomerBalance.vue index 0886383de..02f230c03 100644 --- a/src/pages/Customer/Card/CustomerBalance.vue +++ b/src/pages/Customer/Card/CustomerBalance.vue @@ -234,7 +234,7 @@ const showBalancePdf = (balance) => { diff --git a/src/pages/Route/Cmr/CmrFilter.vue b/src/pages/Route/Cmr/CmrFilter.vue index 553f19431..32040ddd6 100644 --- a/src/pages/Route/Cmr/CmrFilter.vue +++ b/src/pages/Route/Cmr/CmrFilter.vue @@ -1,11 +1,11 @@ - - en: params: diff --git a/src/pages/Route/Cmr/CmrList.vue b/src/pages/Route/Cmr/CmrList.vue index 154e49977..cbfc3751a 100644 --- a/src/pages/Route/Cmr/CmrList.vue +++ b/src/pages/Route/Cmr/CmrList.vue @@ -14,6 +14,7 @@ const { t } = useI18n(); const { getTokenMultimedia } = useSession(); const token = getTokenMultimedia(); const selected = ref([]); +const warehouses = ref([]); const columns = computed(() => [ { @@ -63,6 +64,13 @@ const columns = computed(() => [ sortable: true, headerStyle: 'padding-left: 33px', }, + { + name: 'warehouseFk', + label: t('globals.warehouse'), + field: ({ warehouseFk }) => warehouseFk, + align: 'center', + sortable: true, + }, { name: 'icons', align: 'center', @@ -99,7 +107,7 @@ function downloadPdfs() {
+