"use strict"; const api = require("./api"); const utils = require("./utils"); const merge = require("lodash.merge"); const config_defaults = require("../resources/onefinity_defaults.json"); const variant_defaults = { machinist_x35: require("../resources/onefinity_machinist_x35_defaults.json"), woodworker_x35: require("../resources/onefinity_woodworker_x35_defaults.json"), woodworker_x50: require("../resources/onefinity_woodworker_x50_defaults.json"), journeyman_x50: require("../resources/onefinity_journeyman_x50_defaults.json"), foreman_pro: require('../resources/onefinity_foreman_pro_defaults.json') }; const z_slider_defaults = { "Z-16 Original": { "travel-per-rev": 4, "min-soft-limit": -133, "max-velocity": 3, }, "Z-20 Heavy Duty": { "travel-per-rev": 10, "min-soft-limit": -160, "max-velocity": 7, }, }; module.exports = { template: "#admin-general-view-template", props: [ "config", "state" ], data: function() { return { confirmReset: false, autoCheckUpgrade: true, reset_variant: "", z_slider: false, z_slider_variant:" ", config:"" }; }, ready: function() { this.autoCheckUpgrade = this.config.admin["auto-check-upgrade"]; }, methods: { backup: function() { document.getElementById("download-target").src = "/api/config/download"; }, restore_config: function() { utils.clickFileInput("restore-config"); }, restore: function(e) { const files = e.target.files || e.dataTransfer.files; if (!files.length) { return; } const fileReader = new FileReader(); fileReader.onload = async ({ target }) => { let config; try { config = JSON.parse(target.result); } catch (error) { console.error("Invalid config file:", error); alert("Invalid config file"); return; } try { await api.put("config/save", config); this.$dispatch("update"); SvelteComponents.showDialog("Message", { title: "Success", message: "Configuration restored" }); this.confirmReset= false } catch (error) { console.error("Restore failed:", error); alert("Restore failed"); } }; fileReader.readAsText(files[0]); }, next: async function() { const config = merge( {}, config_defaults, variant_defaults[this.reset_variant] ); try { await api.put("config/save", config); this.confirmReset = false; this.$dispatch("update"); this.config= config this.z_slider = true; } catch (error) { console.error("Restore failed:", error); alert("Restore failed"); } }, set_z_slider: async function(){ const z_variant = merge( {}, this.config.motors[3], z_slider_defaults[this.z_slider_variant], ); this.config.motors[3] = z_variant; try { await api.put("config/save", this.config); this.$dispatch("update"); SvelteComponents.showDialog("Message", { title: "Success", message: "Configuration restored", }); this.z_slider = false; } catch (error) { console.error("Z slider failed:", error); alert("failed to set Z slider "); } }, check: function() { this.$dispatch("check"); }, upgrade: function() { this.$dispatch("upgrade"); }, upload_firmware: function() { utils.clickFileInput("upload-firmware"); }, upload: function(e) { const files = e.target.files || e.dataTransfer.files; if (!files.length) { return; } this.$dispatch("upload", files[0]); }, change_auto_check_upgrade: function() { this.config.admin["auto-check-upgrade"] = this.autoCheckUpgrade; this.$dispatch("config-changed"); } } };