import { createStore } from "vuex"; const store = createStore({ state() { return { editable: false, filtered: false, searchable: false, deleteBool: false, new: false, clientChanged: false, changedClientId: -1, filteredByClient: '', onAssetlist: true, onCustomerAssetlist: false, onAsset: false, onSolutionlistAsset: false, chosenAssetId: -1, newAssetName: '', newCustomerID: '', newCustomer: '', newLocation: '', newRemoteLocation: '', newType: '', newDescription: '', newNotes: '', newState: '', newLastView: '', newUser: '', hardwareBool: false, newModel: '', newSerialnumber: '', newCPU: '', newRAM: '', newStorageConfiguration: '', newMiscellaneous: '', softwareBool: false, newSoftware: '', newVersion: '', newLicense: '', onTemplatelist: true, onCustomerTemplatelist: false, onTemplate: false, onInstancelist: false, onInstance: false, newNamePOT: '', newCustomerIDPOT: '', newCustomerPOT: '', newLastViewPOT: '', newUserPOT: '', newDescriptionPOT: '', newNotesPOT: '', chosenPOTId: -1, }; }, mutations: { // functions to toggle with the actionbar toggleEditable(state) { state.editable = !state.editable }, toggleFiltered(state) { if (state.filtered == false) { state.filtered = true state.searchable = false } else { state.filtered = false } }, toggleSearchable(state) { if (state.searchable == false) { state.searchable = true state.filtered = false } else { state.searchable = false } state.filteredByClient = '' }, toggleClientChanged(state) { state.clientChanged = !state.clientChanged }, toggleClientId(state, id) { state.changedClientId = id }, // functions to change the asset pages changeToAssetlist(state) { state.onAssetlist = true state.onCustomerAssetlist = false state.onAsset = false state.onSolutionlistAsset = false }, changeToCustomerAssetlist(state) { state.onAssetlist = false state.onCustomerAssetlist = true state.onAsset = false state.onSolutionlistAsset = false }, changeToAsset(state) { state.onAssetlist = false state.onCustomerAssetlist = false state.onAsset = true state.onSolutionlistAsset = false }, changeToSolutionlistAsset(state) { state.onAssetlist = false state.onCustomerAssetlist = false state.onAsset = false state.onSolutionlistAsset = true }, // functions to change the production order pages changeToTemplatelist(state) { state.onTemplatelist = true state.onCustomerTemplatelist = false state.onTemplate = false state.onInstancelist = false state.onInstance = false }, changeToCustomerTemplatelist(state) { state.onTemplatelist = false state.onCustomerTemplatelist = true state.onTemplate = false state.onInstancelist = false state.onInstance = false }, changeToTemplate(state) { state.onTemplatelist = false state.onCustomerTemplatelist = false state.onTemplate = true state.onInstancelist = false state.onInstance = false }, changeToInstancelist(state) { state.onTemplatelist = false state.onCustomerTemplatelist = false state.onTemplate = false state.onInstancelist = true state.onInstance = false }, changeToInstance(state) { state.onTemplatelist = false state.onCustomerTemplatelist = false state.onTemplate = false state.onInstancelist = false state.onInstance = true }, // functions to update the asset updateAssetComponent(state, asset) { state.newAssetName = asset.assetName state.newCustomerID = asset.customerId state.newCustomer = asset.customer state.newLocation = asset.location state.newRemoteLocation = asset.remoteLocation state.newType = asset.type state.newDescription = asset.description state.newNotes = asset.notes state.newState = asset.state }, updateHardwareComponent(state, asset) { state.hardwareBool = asset.hardwareBool state.newModel = asset.model state.newSerialnumber = asset.serialnumber state.newCPU = asset.CPU state.newRAM = asset.RAM state.newStorageConfiguration = asset.storageConfig state.newMiscellaneous = asset.miscellaneous }, updateSoftwareComponent(state, asset) { state.softwareBool = asset.softwareBool state.newSoftware = asset.software state.newVersion = asset.version state.newLicense = asset.license }, // functions to update the production order template updateProductionOrderTemplateComponent(state, pot) { state.newNamePOT = pot.name state.newCustomerIDPOT = pot.customerId state.newCustomerPOT = pot.customer state.newUserPOT = pot.user state.newDescriptionPOT = pot.description state.newNotesPOT = pot.notes }, // function to set the chosen asset setChosenAsset(state, id) { state.chosenAssetId = id }, // function to set the chosen production order template setChosenPOT(state, id) { state.chosenPOTId = id }, // function to reset the pages resetStore(state) { state.editable = false state.filtered = false state.searchable = false state.deleteBool = false state.chosenAssetId = -1 state.filteredByClient = '' state.new = false state.clientChanged = false state.changedClientId = -1 // reset the asset page variables state.newAssetName = '' state.newCustomerID = '' state.newCustomer = '' state.newLocation = '' state.newRemoteLocation = '' state.newType = '' state.newDescription = '' state.newNotes = '' state.newState = '' state.newLastView = '' state.newUser = '' state.hardwareBool = false state.newModel = '' state.newSerialnumber = '' state.newCPU = '' state.newRAM = '' state.newStorageConfiguration = '' state.newMiscellaneous = '' state.softwareBool = false state.newSoftware = '' state.newVersion = '' state.newLicense = '' // reset the production order template page variables state.newNamePOT = '' state.newCustomerIDPOT = '' state.newCustomerPOT = '' state.newUserPOT = false state.newDescriptionPOT = '' state.newNotesPOT = '' state.newLastViewPOT = '' }, // functions to (undo) delete an asset doDelete(state) { state.deleteBool = true }, undoDelete(state) { state.deleteBool = false }, // function to update the asset filter updateFilterbyClient(state, client) { state.filteredByClient = client }, // function to get to the add page add(state) { state.new = true state.editable = false state.filtered = false state.searchable = false // set the asset variables state.onAssetlist = false state.onCustomerAssetlist = false state.onAsset = true state.onSolutionlistAsset = false // set the production order variables state.onTemplatelist = false state.onCustomerTemplatelist = false state.onTemplate = true state.onInstancelist = false state.onInstance = false }, }, }); export default defineNuxtPlugin((nuxtApp) => { nuxtApp.vueApp.use(store); // Install the store instance as a plugin });