config to state in control view

This commit is contained in:
sanjayk03-dev
2024-04-08 18:42:28 +05:30
parent 4e92201bea
commit 991b183562

View File

@@ -48,7 +48,6 @@ module.exports = {
showGcodeMessage: false, showGcodeMessage: false,
showNoGcodeMessage: false, showNoGcodeMessage: false,
macrosLoading: false, macrosLoading: false,
showFileDuplicate: false,
show_gcodes: false, show_gcodes: false,
}; };
}, },
@@ -209,24 +208,26 @@ module.exports = {
return Math.min(1, p); return Math.min(1, p);
}, },
gcode_files: function () { gcode_files: function () {
if (!this.state.folder || this.state.folder == "") {
return [];
}
let files = []; let files = [];
if (this.state.folder == "default") { if (!this.state.folder || this.state.folder == "") {
files = this.config.gcode_list.filter(item => item.type == "file" && this.state.files.includes(item.name)); return files;
files = files.map(item => item.name);
return files.sort();
} }
files = this.config.gcode_list if (this.state.folder == "default") {
files = this.state.gcode_list
.filter(item => item.type == "file")
.map(item => item.name)
.sort();
return files;
}
files = this.state.gcode_list
.find(item => item.name == this.state.folder) .find(item => item.name == this.state.folder)
.files.filter(item => this.state.files.includes(item.file_name)) .files.map(item => item.file_name)
.map(item => item.file_name); .sort();
return files.sort(); return files;
}, },
gcode_folders: function () { gcode_folders: function () {
let folders = []; let folders = [];
for (let item of this.config.gcode_list) { for (let item of this.state.gcode_list) {
if (item.type == "folder") { if (item.type == "folder") {
folders.push(item.name); folders.push(item.name);
} }
@@ -408,10 +409,7 @@ module.exports = {
} }
const file = files[0]; const file = files[0];
if (this.state.files.includes(file.name) && !this.config.macros_list.find(item => item.file_name == file.name)) {
this.showFileDuplicate = true;
return;
}
const extension = file.name.split(".").pop(); const extension = file.name.split(".").pop();
switch (extension.toLowerCase()) { switch (extension.toLowerCase()) {
case "nc": case "nc":
@@ -425,13 +423,15 @@ module.exports = {
return; return;
} }
const isAlreadyPresent = this.config.non_macros_list.find(element => element.file_name == file.name); const isAlreadyPresent = this.state.non_macros_list.find(element => element.file_name == file.name);
if (!isAlreadyPresent) { if (!isAlreadyPresent) {
this.config.non_macros_list = [...this.state.non_macros_list];
this.config.non_macros_list.push({ file_name: file.name }); this.config.non_macros_list.push({ file_name: file.name });
} }
this.config.gcode_list = [...this.state.gcode_list];
if ( if (
this.state.folder == "default" && this.state.folder == "default" &&
!this.config.gcode_list.find(item => item.name == file.name && item.type == "file") !this.state.gcode_list.find(item => item.name == file.name && item.type == "file")
) { ) {
this.config.gcode_list.push({ name: file.name, type: "file", files: [] }); this.config.gcode_list.push({ name: file.name, type: "file", files: [] });
} else { } else {
@@ -474,9 +474,10 @@ module.exports = {
create_new_folder: async function () { create_new_folder: async function () {
const folder_name = this.folder_name.trim(); const folder_name = this.folder_name.trim();
if (folder_name != "") { if (folder_name != "") {
if (this.config.gcode_list.find(item => item.type == "folder" && item.name == folder_name)) { if (this.state.gcode_list.find(item => item.type == "folder" && item.name == folder_name)) {
alert("Folder with the same name already exists!"); alert("Folder with the same name already exists!");
} else { } else {
this.config.gcode_list = [...this.state.gcode_list];
this.config.gcode_list.push({ this.config.gcode_list.push({
name: folder_name, name: folder_name,
type: "folder", type: "folder",
@@ -504,14 +505,6 @@ module.exports = {
const folderName = files[0].webkitRelativePath.split("/")[0]; const folderName = files[0].webkitRelativePath.split("/")[0];
for (let file of files) { for (let file of files) {
if (
this.state.files.includes(file.name) &&
!this.config.macros_list.find(item => item.file_name == file.name)
) {
this.showFileDuplicate = true;
return;
}
const reader = new FileReader(); const reader = new FileReader();
reader.onload = async () => { reader.onload = async () => {
const gcode = reader.result; const gcode = reader.result;
@@ -531,11 +524,13 @@ module.exports = {
await this.upload_gcode(file.name, gcode); await this.upload_gcode(file.name, gcode);
const isAlreadyPresent = this.config.non_macros_list.find(element => element.file_name == file.name); const isAlreadyPresent = this.state.non_macros_list.find(element => element.file_name == file.name);
if (!isAlreadyPresent) { if (!isAlreadyPresent) {
this.config.non_macros_list = [...this.state.non_macros_list];
this.config.non_macros_list.push({ file_name: file.name }); this.config.non_macros_list.push({ file_name: file.name });
} }
this.config.gcode_list = [...this.state.gcode_list];
const folder = this.config.gcode_list.find(item => item.type == "folder" && item.name == folderName); const folder = this.config.gcode_list.find(item => item.type == "folder" && item.name == folderName);
if (folder) { if (folder) {
folder.files.push({ file_name: file.name }); folder.files.push({ file_name: file.name });
@@ -565,8 +560,10 @@ module.exports = {
return; return;
} }
this.config.non_macros_list = [...this.state.non_macros_list];
this.config.non_macros_list = this.config.non_macros_list.filter(item => item.file_name != this.state.selected); this.config.non_macros_list = this.config.non_macros_list.filter(item => item.file_name != this.state.selected);
this.config.gcode_list = [...this.state.gcode_list];
if (this.state.folder == "default") { if (this.state.folder == "default") {
this.config.gcode_list = this.config.gcode_list.filter( this.config.gcode_list = this.config.gcode_list.filter(
item => (item.type == "file" || item.type == "folder") && item.name != this.state.selected, item => (item.type == "file" || item.type == "folder") && item.name != this.state.selected,
@@ -577,7 +574,7 @@ module.exports = {
); );
file_to_delete.files = file_to_delete.files.filter(item => item.file_name != this.state.selected); file_to_delete.files = file_to_delete.files.filter(item => item.file_name != this.state.selected);
} }
if (!this.config.macros_list.find(item => item.file_name == this.state.selected)) { if (!this.state.macros_list.find(item => item.file_name == this.state.selected)) {
api.delete(`file/${this.state.selected}`); api.delete(`file/${this.state.selected}`);
} }
this.save_config(this.config); this.save_config(this.config);
@@ -590,7 +587,7 @@ module.exports = {
}, },
delete_all_except_macros: async function () { delete_all_except_macros: async function () {
const macrosList = this.config.macros_list.map(item => item.file_name).toString(); const macrosList = this.state.macros_list.map(item => item.file_name).toString();
api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${macrosList}`); api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${macrosList}`);
this.config.non_macros_list = []; this.config.non_macros_list = [];
this.state.folder = "default"; this.state.folder = "default";
@@ -601,11 +598,10 @@ module.exports = {
delete_folder: async function () { delete_folder: async function () {
if (this.state.folder && this.state.folder != "default") { if (this.state.folder && this.state.folder != "default") {
console.log("595"); this.config.gcode_list = [...this.state.gcode_list];
const files_to_move = this.config.gcode_list.find( const files_to_move = this.config.gcode_list.find(
item => item.type == "folder" && item.name == this.state.folder, item => item.type == "folder" && item.name == this.state.folder,
); );
console.log(files_to_move);
if (files_to_move) { if (files_to_move) {
files_to_move.files.forEach(item => { files_to_move.files.forEach(item => {
this.config.gcode_list.push({ this.config.gcode_list.push({
@@ -634,6 +630,7 @@ module.exports = {
} }
if (this.state.folder != "default") { if (this.state.folder != "default") {
this.config.gcode_list = [...this.state.gcode_list];
const selected_folder = this.config.gcode_list.find( const selected_folder = this.config.gcode_list.find(
item => item.type == "folder" && item.name == this.state.folder, item => item.type == "folder" && item.name == this.state.folder,
).files; ).files;
@@ -765,16 +762,16 @@ module.exports = {
SvelteComponents.showDialog("Probe", { probeType }); SvelteComponents.showDialog("Probe", { probeType });
}, },
run_macro: function (id) { run_macro: function (id) {
if (this.config.macros[id].file_name == "default") { if (this.state.macros[id].file_name == "default") {
this.showNoGcodeMessage = true; this.showNoGcodeMessage = true;
} else { } else {
if (this.config.macros[id].file_name != this.state.selected) { if (this.state.macros[id].file_name != this.state.selected) {
this.state.selected = this.config.macros[id].file_name; //TODO :get file this.state.selected = this.state.macros[id].file_name;
} }
try { try {
this.load(); this.load();
console.log("selected", this.state); console.log("selected", this.state);
if (this.config.macros[id].alert == true) { if (this.state.macros[id].alert == true) {
this.macrosLoading = true; this.macrosLoading = true;
} else { } else {
setImmediate(() => this.start_pause()); setImmediate(() => this.start_pause());