From e9f1e38e4f014aed7947d06cccc9bc453a15f75a Mon Sep 17 00:00:00 2001 From: "zeinab.ashrafi" Date: Tue, 11 Mar 2025 12:33:03 +0330 Subject: [PATCH] fix : display Dashboard admin and items fields --- src/components/core/View.vue | 2 +- src/main.js | 10 ++++++ src/services/acl/role.js | 12 +++++-- src/services/global/api.service.js | 20 ++++++++++++ src/store/modules/auth/actions.js | 6 +++- src/store/state.js | 1 + src/views/Dashboard.vue | 2 +- src/views/Item/List.vue | 52 +++++++++++++++++------------- 8 files changed, 76 insertions(+), 29 deletions(-) diff --git a/src/components/core/View.vue b/src/components/core/View.vue index 2a44688..e2f6fc1 100644 --- a/src/components/core/View.vue +++ b/src/components/core/View.vue @@ -13,7 +13,7 @@ export default { metaInfo () { return { - title: 'CSSD dashboard' + title: 'CSSD Dashboard' } } } diff --git a/src/main.js b/src/main.js index 4864a24..897226f 100644 --- a/src/main.js +++ b/src/main.js @@ -32,6 +32,16 @@ import { ApiService, TokenService } from '@/services' // Sync store with router sync(store, router) +//vue filter for string +Vue.filter('text_8_letter', function(value) { + if (!value) return ''; + return value.slice(0, 8); +}); +Vue.filter('text_20_letter', function(value) { + if (!value) return ''; + return value.slice(0, 20); +}); + Vue.config.productionTip = false ApiService.setHeader(); // Set the base URL of the API diff --git a/src/services/acl/role.js b/src/services/acl/role.js index 0de507a..4579179 100644 --- a/src/services/acl/role.js +++ b/src/services/acl/role.js @@ -1,12 +1,18 @@ import { TokenService } from '@/services' +import store from '@/store'; const $hasRole = function (roles) { if (TokenService.getToken()) { roles = roles.split('|'); - for (const role of roles) { - if (TokenService.getInfo().roles && Array.isArray(TokenService.getInfo().roles) && TokenService.getInfo().roles.includes(role)) { - return true; + if(TokenService.getInfo().roles){ + for (const role of roles) { + if (Array.isArray(TokenService.getInfo().roles) && TokenService.getInfo().roles.includes(role)) { + return true; + } } + } else{ + const userRoles = store.state.roles || []; + return userRoles.some(role => roles.includes(role)); } } }; diff --git a/src/services/global/api.service.js b/src/services/global/api.service.js index 8f77614..4e3ee67 100644 --- a/src/services/global/api.service.js +++ b/src/services/global/api.service.js @@ -98,3 +98,23 @@ const ApiService = { export default ApiService export { ApiService } + +axios.interceptors.request.use(request => { + console.log("🔵 API Request:", request.method.toUpperCase(), request.url); + console.log("🔹 Headers:", request.headers); + console.log("🔹 Data:", request.data); + return request; +}, error => { + console.error("🔴 Request Error:", error); + return Promise.reject(error); +}); + +axios.interceptors.response.use(response => { + console.log("🟢 API Response:", response.config.url); + console.log("🟢 Status:", response.status); + console.log("🟢 Data:", response.data); + return response; +}, error => { + console.error("🔴 API Error:", error.response ? error.response.data : error); + return Promise.reject(error); +}); \ No newline at end of file diff --git a/src/store/modules/auth/actions.js b/src/store/modules/auth/actions.js index b89ce7e..7635aa8 100644 --- a/src/store/modules/auth/actions.js +++ b/src/store/modules/auth/actions.js @@ -9,7 +9,11 @@ export default { const response = await UserService.login(cell_number, password); commit('loginSuccess', response.data.access_token); // Redirect the user to the page he first tried to visit or to the home view - router.push(router.history.current.query.redirect || '/'); + + const redirectPath = router.history.current.query.redirect || '/'; + if (router.currentRoute.path !== redirectPath) { + router.push(redirectPath); + } dispatch('info', {}, {root : true}); diff --git a/src/store/state.js b/src/store/state.js index 1827445..6cae4d0 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -1,3 +1,4 @@ export default { user : {}, + roles : [], } diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index 7f17596..ac96dde 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -16,7 +16,7 @@ - +