87 lines
2.1 KiB
JavaScript
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)
|
|
}
|
|
} |