diff --git a/frontend/src/store.js b/frontend/src/store.js index 43c77729..2846207c 100644 --- a/frontend/src/store.js +++ b/frontend/src/store.js @@ -1,210 +1,205 @@ -import Vuex from 'vuex'; -import Vue from 'vue'; -import Api from './API'; +import Vuex from 'vuex' +import Vue from 'vue' +import Api from "./API" -Vue.use(Vuex); +Vue.use(Vuex) -export const HAS_ALL_DATA = 'HAS_ALL_DATA'; -export const HAS_PUBLIC_DATA = 'HAS_PUBLIC_DATA'; +export const HAS_ALL_DATA = 'HAS_ALL_DATA' +export const HAS_PUBLIC_DATA = 'HAS_PUBLIC_DATA' -export const GET_CORE = 'GET_CORE'; -export const GET_SERVICES = 'GET_SERVICES'; -export const GET_TOKEN = 'GET_TOKEN'; -export const GET_GROUPS = 'GET_GROUPS'; -export const GET_MESSAGES = 'GET_MESSAGES'; -export const GET_NOTIFIERS = 'GET_NOTIFIERS'; -export const GET_USERS = 'GET_USERS'; +export const GET_CORE = 'GET_CORE' +export const GET_SERVICES = 'GET_SERVICES' +export const GET_TOKEN = 'GET_TOKEN' +export const GET_GROUPS = 'GET_GROUPS' +export const GET_MESSAGES = 'GET_MESSAGES' +export const GET_NOTIFIERS = 'GET_NOTIFIERS' +export const GET_USERS = 'GET_USERS' export default new Vuex.Store({ - state: { - hasAllData: false, - hasPublicData: false, - core: {}, - oauth: {}, - token: null, - services: [], - service: null, - groups: [], - messages: [], - users: [], - notifiers: [], - checkins: [], - admin: false, - user: false, - loggedIn: false, - downtimes: [], - modal: { - visible: false, - title: 'Modal Header', - body: 'This is the content for the modal body', - btnText: 'Save Changes', - btnColor: 'btn-primary', - func: null, - } - }, - getters: { - hasAllData: state => state.hasAllData, - hasPublicData: state => state.hasPublicData, - admin: state => state.admin, - core: state => state.core, - oauth: state => state.oauth, - token: state => state.token, - services: state => state.services, - service: state => state.service, - groups: state => state.groups, - messages: state => state.messages, - incidents: state => state.incidents, - users: state => state.users, - notifiers: state => state.notifiers, - checkins: state => state.checkins, - loggedIn: state => state.loggedIn, - modal: state => state.modal, - - isAdmin: state => state.admin, - isUser: state => state.user, - - globalMessages: state => state.messages.filter(s => !s.service || s.service === 0), - servicesInOrder: state => state.services.sort((a, b) => a.order_id - b.order_id), - servicesNoGroup: state => state.services.filter(g => g.group_id === 0).sort((a, b) => a.order_id - b.order_id), - groupsInOrder: state => state.groups.sort((a, b) => a.order_id - b.order_id), - groupsClean: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id), - groupsCleanInOrder: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id).sort((a, b) => a.order_id - b.order_id), - serviceCheckins: (state) => (id) => { - return state.checkins.filter(c => c.service_id === id); - }, - serviceByAll: (state) => (element) => { - if (!isNaN(parseFloat(element)) && isFinite(element)) { - return state.services.find(s => s.id === parseInt(element)); - } else { - return state.services.find(s => s.permalink === element); - } - }, - serviceById: (state) => (id) => { - return state.services.find(s => s.permalink === id || s.id === id); - }, - servicesInGroup: (state) => (id) => { - return state.services.filter(s => s.group_id === id).sort((a, b) => a.order_id - b.order_id); - }, - serviceMessages: (state) => (id) => { - return state.messages.filter(s => s.service === id); - }, - onlineServices: (state) => (online) => { - return state.services.filter(s => s.online === online); - }, - groupById: (state) => (id) => { - return state.groups.find(g => g.id === id); - }, - cleanGroups: (state) => () => { - return state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id); - }, - userById: (state) => (id) => { - return state.users.find(u => u.id === id); - }, - messageById: (state) => (id) => { - return state.messages.find(m => m.id === id); - }, - }, - mutations: { - setHasAllData (state, bool) { - state.hasAllData = bool; - }, - setHasPublicData (state, bool) { - state.hasPublicData = bool; - }, - setCore (state, core) { - state.core = core; - }, - setToken (state, token) { - state.token = token; - }, - setService (state, service) { - state.service = service; - }, - setServices (state, services) { - state.services = services; - }, - setCheckins (state, checkins) { - state.checkins = checkins; - }, - setGroups (state, groups) { - state.groups = groups; - }, - setMessages (state, messages) { - state.messages = messages; - }, - setUsers (state, users) { - state.users = users; - }, - setNotifiers (state, notifiers) { - state.notifiers = notifiers; - }, - setAdmin (state, admin) { - state.admin = admin; - }, - setLoggedIn (state, loggedIn) { - state.loggedIn = loggedIn; - }, - setUser (state, user) { - state.user = user; - }, - setOAuth (state, oauth) { - state.oauth = oauth; - }, - setModal (state, modal) { - state.modal = modal; - }, - setDowntimes (state, downtimes) { - state.downtimes = downtimes; - } - }, - actions: { - async getAllServices (context) { - const services = await Api.services(); - context.commit('setServices', services); - }, - async getDowntimes (context, { payload }) { - const { output } = await Api.downtimes(payload); - context.commit('setDowntimes', output ?? []); - }, - async loadCore (context) { - const [ core, token ] = await Promise.all([ Api.core(), Api.token() ]); - context.commit('setCore', core); - context.commit('setAdmin', token); - context.commit('setCore', core); - context.commit('setUser', token !== undefined); - }, - async loadRequired (context) { - const [ groups, services, messages, oauth ] = await Promise.all([ - Api.groups(), - Api.services(), - Api.messages(), - Api.oauth() - ]); - context.commit('setGroups', groups); - context.commit('setServices', services); - context.commit('setMessages', messages); - context.commit('setOAuth', oauth); - context.commit('setHasPublicData', true); - }, - async loadAdmin (context) { - const [ groups, services, messages, checkins, notifiers, users, oauth ] = await Promise.all([ - Api.groups(), - Api.services(), - Api.messages(), - Api.checkins(), - Api.notifiers(), - Api.users(), - Api.oauth(), - ]); - - context.commit('setGroups', groups); - context.commit('setServices', services); - context.commit('setMessages', messages); - context.commit('setHasPublicData', true); - context.commit('setCheckins', checkins); - context.commit('setNotifiers', notifiers); - context.commit('setUsers', users); - context.commit('setOAuth', oauth); - } + state: { + hasAllData: false, + hasPublicData: false, + core: {}, + oauth: {}, + token: null, + services: [], + service: null, + groups: [], + messages: [], + users: [], + notifiers: [], + checkins: [], + admin: false, + user: false, + loggedIn: false, + modal: { + visible: false, + title: "Modal Header", + body: "This is the content for the modal body", + btnText: "Save Changes", + btnColor: "btn-primary", + func: null, } -}); + }, + getters: { + hasAllData: state => state.hasAllData, + hasPublicData: state => state.hasPublicData, + admin: state => state.admin, + core: state => state.core, + oauth: state => state.oauth, + token: state => state.token, + services: state => state.services, + service: state => state.service, + groups: state => state.groups, + messages: state => state.messages, + incidents: state => state.incidents, + users: state => state.users, + notifiers: state => state.notifiers, + checkins: state => state.checkins, + loggedIn: state => state.loggedIn, + modal: state => state.modal, + + isAdmin: state => state.admin, + isUser: state => state.user, + + globalMessages: state => state.messages.filter(s => !s.service || s.service === 0), + servicesInOrder: state => state.services.sort((a, b) => a.order_id - b.order_id), + servicesNoGroup: state => state.services.filter(g => g.group_id === 0).sort((a, b) => a.order_id - b.order_id), + groupsInOrder: state => state.groups.sort((a, b) => a.order_id - b.order_id), + groupsClean: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id), + groupsCleanInOrder: state => state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id).sort((a, b) => a.order_id - b.order_id), + serviceCheckins: (state) => (id) => { + return state.checkins.filter(c => c.service_id === id) + }, + serviceByAll: (state) => (element) => { + if (!isNaN(parseFloat(element)) && isFinite(element)) { + return state.services.find(s => s.id === parseInt(element)) + } else { + return state.services.find(s => s.permalink === element) + } + }, + serviceById: (state) => (id) => { + return state.services.find(s => s.permalink === id || s.id === id) + }, + servicesInGroup: (state) => (id) => { + return state.services.filter(s => s.group_id === id).sort((a, b) => a.order_id - b.order_id) + }, + serviceMessages: (state) => (id) => { + return state.messages.filter(s => s.service === id) + }, + onlineServices: (state) => (online) => { + return state.services.filter(s => s.online === online) + }, + groupById: (state) => (id) => { + return state.groups.find(g => g.id === id) + }, + cleanGroups: (state) => () => { + return state.groups.filter(g => g.name !== '').sort((a, b) => a.order_id - b.order_id) + }, + userById: (state) => (id) => { + return state.users.find(u => u.id === id) + }, + messageById: (state) => (id) => { + return state.messages.find(m => m.id === id) + }, + }, + mutations: { + setHasAllData(state, bool) { + state.hasAllData = bool + }, + setHasPublicData(state, bool) { + state.hasPublicData = bool + }, + setCore(state, core) { + state.core = core + }, + setToken(state, token) { + state.token = token + }, + setService(state, service) { + state.service = service + }, + setServices(state, services) { + state.services = services + }, + setCheckins(state, checkins) { + state.checkins = checkins + }, + setGroups(state, groups) { + state.groups = groups + }, + setMessages(state, messages) { + state.messages = messages + }, + setUsers(state, users) { + state.users = users + }, + setNotifiers(state, notifiers) { + state.notifiers = notifiers + }, + setAdmin(state, admin) { + state.admin = admin + }, + setLoggedIn(state, loggedIn) { + state.loggedIn = loggedIn + }, + setUser(state, user) { + state.user = user + }, + setOAuth(state, oauth) { + state.oauth = oauth + }, + setModal(state, modal) { + state.modal = modal + }, + setDowntimes (state, downtimes) { + state.downtimes = downtimes; + } + }, + actions: { + async getAllServices(context) { + const services = await Api.services() + context.commit("setServices", services); + }, + async getDowntimes (context, { payload }) { + const { output } = await Api.downtimes(payload); + context.commit('setDowntimes', output ?? []); + }, + async loadCore(context) { + const core = await Api.core() + const token = await Api.token() + context.commit("setCore", core); + context.commit('setAdmin', token) + context.commit('setCore', core) + context.commit('setUser', token !== undefined) + }, + async loadRequired(context) { + const groups = await Api.groups() + context.commit("setGroups", groups); + const services = await Api.services() + context.commit("setServices", services); + const messages = await Api.messages() + context.commit("setMessages", messages) + const oauth = await Api.oauth() + context.commit("setOAuth", oauth); + context.commit("setHasPublicData", true) + }, + async loadAdmin(context) { + const groups = await Api.groups() + context.commit("setGroups", groups); + const services = await Api.services() + context.commit("setServices", services); + const messages = await Api.messages() + context.commit("setMessages", messages) + context.commit("setHasPublicData", true) + const checkins = await Api.checkins() + context.commit("setCheckins", checkins); + const notifiers = await Api.notifiers() + context.commit("setNotifiers", notifiers); + const users = await Api.users() + context.commit("setUsers", users); + const oauth = await Api.oauth() + context.commit("setOAuth", oauth); + } + } +}); \ No newline at end of file