2021-05-31 00:30:57 +02:00

87 lines
2.1 KiB
JavaScript

import Vue from 'vue'
import { getDefaultState } from './index'
export default {
reset(state) {
Object.assign(state, getDefaultState())
},
setKlippyReady() {
this.dispatch('printer/reset', null, { root: true })
this.dispatch('printer/init', null, { root: true })
},
setKlippyDisconnected(state) {
Vue.set(state, 'klippy_state', 'disconnected')
Vue.set(state, 'klippy_message', 'Disconnected...')
Vue.prototype.$socket.sendObj('server.info', {}, 'server/getInfo');
},
setKlippyShutdown(state) {
Vue.set(state, 'klippy_state', 'shutdown')
Vue.set(state, 'klippy_message', 'Shutdown...')
Vue.prototype.$socket.sendObj('server.info', {}, 'server/getInfo');
},
setData(state, payload) {
if ("requestParams" in payload) delete payload.requestParams
Object.entries(payload).forEach(([key, value]) => {
Vue.set(state, key, value)
});
},
setConfig(state, payload) {
Object.entries(payload.config).forEach(([key, value]) => {
Vue.set(state.config, key, value)
})
},
clearGcodeStore(state) {
Vue.set(state, 'events', [])
},
setGcodeStore(state, payload) {
if ("gcode_store" in payload && Array.isArray(payload.gcode_store)) {
payload.gcode_store.forEach(message => {
state.events.push({
date: new Date(message.time * 1000),
message: message.message,
type: message.type
})
})
}
},
addEvent(state, payload) {
let message = payload
let type = 'response'
if (typeof payload === 'object' && 'type' in payload) type = payload.type
if ('message' in payload) message = payload.message
else if ('result' in payload) message = payload.result
else if ('error' in payload) message = message.error.message
const eventLimit = ('gcode_store_size' in state.config) ? state.config.gcode_store_size : 1000
while (state.events.length >= eventLimit) {
state.events.shift()
}
state.events.push({
date: new Date(),
message: message,
type: type,
})
},
setSystemInfo(state, payload) {
Vue.set(state, 'system_info', payload)
},
addRootDirectory(state, payload) {
state.registered_directories.push(payload.name)
}
}