![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/frontend/store/ |
import Vue from 'vue'; const getDefaultState = () => { return { periodicItems: { time: new Date().getTime(), settings: [], }, permissions: [], alerts: [] } }; export const state = getDefaultState; export const mutations = { SET_SETTINGS(state, settings) { Vue.set(state.periodicItems, 'settings', settings); Vue.set(state.periodicItems, 'time', new Date().getTime()); }, SET_USER_PERMISSIONS(state, permissions) { state.permissions = permissions; }, SET_ALERTS(state, alerts) { Vue.set(state, 'alerts', alerts); }, CLEAR_ALERTS(state) { Vue.set(state, 'alerts', []); } } export const getters = { isExpired: state => { let time = state.periodicItems.time; let now = new Date().getTime(); let minuets = 60; return (now - time) > minuets * 60 * 1000; }, settings: (state) => (key, getObject = false) => { let settings = state.periodicItems.settings; if (key) { let object = settings.find(setting => setting.code === key); if (getObject) { return object } else { return object ? object.value : ''; } } return settings; }, alerts: (state) => { return state.alerts || []; }, getUserDefaultRedirectTo: state => { let userRoles = state.auth.user.roles_names, redirectTo, role; for (let index in userRoles) { role = userRoles[index]; redirectTo = role.dashboard_url; if (!redirectTo) { continue; } if (redirectTo.indexOf('{') >= 0) { let parameter = redirectTo.substring(redirectTo.indexOf("{") + 1, redirectTo.lastIndexOf("}")), parameterValue = state.auth.user[parameter]; redirectTo = redirectTo.replace(`{${parameter}}`, parameterValue); } break; } if (!redirectTo) { redirectTo = '/dashboard'; } return redirectTo; }, permissions: state => state.permissions } export const actions = { GET_AND_SET_SETTINGS(store, {$axios, force = false}) { if (store.getters.settings().length && !store.getters.isExpired && !force) { return; } $axios.get('settings').then(({data: response}) => { store.commit('SET_SETTINGS', response.data); }); }, GET_AND_SET_ALERTS(store, {$axios}) { $axios.get('alerts').then(({data: response}) => { store.commit('SET_ALERTS', response.data); }); }, CLEAR_ALERTS(store) { store.commit('CLEAR_ALERTS'); } }