148 lines
4.1 KiB
JavaScript
148 lines
4.1 KiB
JavaScript
import Vue from "vue";
|
|
import objectAssignDeep from "object-assign-deep"
|
|
|
|
export default {
|
|
reset({ commit }) {
|
|
commit('reset')
|
|
},
|
|
|
|
getData({ commit, dispatch, rootState }, payload) {
|
|
commit('setData', payload.value)
|
|
|
|
if ('tempchart' in payload.value && 'datasetSettings' in payload.value.tempchart) {
|
|
commit('setTempchartDatasetSettings', payload.value.tempchart.datasetSettings)
|
|
}
|
|
|
|
if (!rootState.socket.remoteMode) {
|
|
dispatch('farm/readStoredPrinters', {}, { root: true })
|
|
}
|
|
|
|
dispatch('printer/init', null, { root: true })
|
|
},
|
|
|
|
setSettings({ commit }, payload) {
|
|
commit('setSettings', payload)
|
|
|
|
Object.keys(payload).forEach(key => {
|
|
Vue.prototype.$socket.sendObj('server.database.get_item', { namespace: 'mainsail' }, 'gui/updateSettings', { newVal: payload[key], keyName: key })
|
|
})
|
|
},
|
|
|
|
updateSettings({ commit }, payload) {
|
|
const keyName = payload.keyName
|
|
let newState = payload.newVal
|
|
if ('value' in payload && keyName in payload.value && typeof payload.value[keyName] !== "string") {
|
|
newState = objectAssignDeep(payload.value[keyName], newState)
|
|
}
|
|
|
|
Vue.prototype.$socket.sendObj('server.database.post_item', { namespace: 'mainsail', key: keyName, value: newState })
|
|
|
|
commit('void', {}, { root: true })
|
|
},
|
|
|
|
setGcodefilesMetadata({ commit, dispatch, state }, data) {
|
|
commit('setGcodefilesMetadata', data)
|
|
dispatch('updateSettings', {
|
|
keyName: 'gcodefiles',
|
|
newVal: state.gcodefiles
|
|
})
|
|
},
|
|
|
|
setGcodefilesShowHiddenFiles({ commit, dispatch, state }, data) {
|
|
commit('setGcodefilesShowHiddenFiles', data)
|
|
dispatch('updateSettings', {
|
|
keyName: 'gcodefiles',
|
|
newVal: state.gcodefiles
|
|
})
|
|
},
|
|
|
|
addPreset({ commit, dispatch, state }, payload) {
|
|
commit("addPreset", payload)
|
|
dispatch('updateSettings', {
|
|
keyName: 'presets',
|
|
newVal: state.presets
|
|
})
|
|
},
|
|
|
|
updatePreset({ commit, dispatch, state }, payload) {
|
|
commit("updatePreset", payload)
|
|
dispatch('updateSettings', {
|
|
keyName: 'presets',
|
|
newVal: state.presets
|
|
})
|
|
},
|
|
|
|
deletePreset({ commit, dispatch, state }, payload) {
|
|
commit("deletePreset", payload)
|
|
dispatch('updateSettings', {
|
|
keyName: 'presets',
|
|
newVal: state.presets
|
|
})
|
|
},
|
|
|
|
setTempchartDatasetSetting({ commit, dispatch, state }, payload) {
|
|
commit("setTempchartDatasetSetting", payload)
|
|
dispatch('updateSettings', {
|
|
keyName: 'tempchart',
|
|
newVal: state.tempchart
|
|
})
|
|
},
|
|
|
|
setTempchartDatasetAdditionalSensorSetting({ commit, dispatch, state }, payload) {
|
|
commit("setTempchartDatasetAdditionalSensorSetting", payload)
|
|
dispatch('updateSettings', {
|
|
keyName: 'tempchart',
|
|
newVal: state.tempchart
|
|
})
|
|
},
|
|
|
|
resetMoonrakerDB() {
|
|
Vue.prototype.$socket.sendObj('server.database.list', { }, 'gui/resetMoonrakerDB2')
|
|
},
|
|
|
|
resetMoonrakerDB2({ commit }, payload) {
|
|
if ('namespaces' in payload && payload.namespaces.includes('mainsail')) {
|
|
Vue.prototype.$socket.sendObj('server.database.get_item', { namespace: 'mainsail' }, 'gui/resetMoonrakerDB3')
|
|
}
|
|
|
|
commit('void', {}, { root: true })
|
|
},
|
|
|
|
resetMoonrakerDB3({ commit }, payload) {
|
|
if ('value' in payload && Object.keys(payload.value).length) {
|
|
Object.keys(payload.value).forEach(key => {
|
|
Vue.prototype.$socket.sendObj('server.database.delete_item', { namespace: 'mainsail', key: key })
|
|
})
|
|
|
|
window.location.reload()
|
|
}
|
|
|
|
commit('void', {}, { root: true })
|
|
},
|
|
|
|
//TODO: remove it after a short time of migration. maybe april release
|
|
migrateMainsailJson({ state, dispatch, rootState }, payload) {
|
|
const settings = {}
|
|
|
|
Object.keys(payload.state).forEach(key => {
|
|
if (key in state) {
|
|
if (Array.isArray(payload.state[key])) settings[key] = payload.state[key]
|
|
else settings[key] = {...payload.state[key]}
|
|
}
|
|
|
|
if (key === "cooldownGcode") settings["cooldown_gcode"] = payload.state[key]
|
|
if (key === "remotePrinters") settings["remote_printers"] = payload.state[key]
|
|
})
|
|
|
|
if (Object.keys(settings).length) {
|
|
dispatch('setSettings', settings)
|
|
}
|
|
|
|
Vue.prototype.$socket.sendObj('server.files.delete_file', { path: 'config/.mainsail.json' })
|
|
|
|
if (!rootState.socket.remoteMode) {
|
|
dispatch('farm/readStoredPrinters', {}, { root: true })
|
|
}
|
|
dispatch('printer/init', null, { root: true })
|
|
}
|
|
} |