149 lines
3.8 KiB
JavaScript
149 lines
3.8 KiB
JavaScript
"use strict";
|
|
|
|
const api = require("./api");
|
|
const utils = require("./utils");
|
|
|
|
module.exports = {
|
|
template: "#macros-template",
|
|
props: ["config", "template", "state"],
|
|
|
|
data: function () {
|
|
return {
|
|
tab: "1",
|
|
confirmReset: false,
|
|
};
|
|
},
|
|
components: {
|
|
"axis-control": require("./axis-control"),
|
|
"path-viewer": require("./path-viewer"),
|
|
"gcode-viewer": require("./gcode-viewer"),
|
|
},
|
|
computed: {
|
|
mach_state: function () {
|
|
const cycle = this.state.cycle;
|
|
const state = this.state.xx;
|
|
|
|
if (state != "ESTOPPED" && (cycle == "jogging" || cycle == "homing")) {
|
|
return cycle.toUpperCase();
|
|
}
|
|
|
|
return state || "";
|
|
},
|
|
is_ready: function () {
|
|
return this.mach_state == "READY";
|
|
},
|
|
},
|
|
methods: {
|
|
open: function () {
|
|
utils.clickFileInput("gcode-file-input");
|
|
},
|
|
load: function () {
|
|
const file_time = this.state.selected_time;
|
|
const file = this.state.selected;
|
|
this.$broadcast("gcode-load", file);
|
|
this.$broadcast("gcode-line", this.state.line);
|
|
},
|
|
upload: function (e) {
|
|
const files = e.target.files || e.dataTransfer.files;
|
|
if (!files.length) {
|
|
return;
|
|
}
|
|
|
|
const file = files[0];
|
|
const extension = file.name.split(".").pop();
|
|
switch (extension.toLowerCase()) {
|
|
case "nc":
|
|
case "ngc":
|
|
case "gcode":
|
|
case "gc":
|
|
break;
|
|
|
|
default:
|
|
alert(`Unsupported file type: ${extension}`);
|
|
return;
|
|
}
|
|
|
|
SvelteComponents.showDialog("Upload", {
|
|
file,
|
|
onComplete: () => {
|
|
this.last_file_time = undefined; // Force reload
|
|
this.$broadcast("gcode-reload", file.name);
|
|
},
|
|
});
|
|
},
|
|
saveMacros: async function (id) {
|
|
var macrosName = document.getElementById(`macros-name-${id}`).value;
|
|
var macrosColor = document.getElementById(`macros-color-${id}`).value;
|
|
|
|
this.config.macros[id].name = macrosName;
|
|
this.config.macros[id].color = macrosColor;
|
|
this.config.macros[id].gcode_file_name = this.state.selected;
|
|
this.config.macros[id].gcode_file_time = this.state.selected_time;
|
|
console.log(this.config.macros);
|
|
this.cancelMacros(id);
|
|
try {
|
|
await api.put("config/save", this.config);
|
|
console.log("Successfully saved");
|
|
this.$dispatch("update");
|
|
} catch (error) {
|
|
console.error("Restore Failed: ", error);
|
|
alert("Restore failed");
|
|
}
|
|
},
|
|
cancelMacros: function (id) {
|
|
document.getElementById(`macros-name-${id}`).value = "";
|
|
document.getElementById(`macros-color-${id}`).value = "#ffffff";
|
|
this.$broadcast("gcode-clear");
|
|
},
|
|
resetConfig: async function () {
|
|
this.config.macros = [
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
{
|
|
name: " ",
|
|
color: "#efefef",
|
|
gcode_file_name: " ",
|
|
gcode_file_time: 0,
|
|
},
|
|
];
|
|
this.confirmReset = false;
|
|
try {
|
|
await api.put("config/save", this.config);
|
|
console.log("Successfully flushed");
|
|
this.$dispatch("update");
|
|
} catch (error) {
|
|
console.error("Restore Failed: ", error);
|
|
alert("Restore failed");
|
|
}
|
|
},
|
|
},
|
|
};
|