fixing delete_files_and_folder, upload_folder,

This commit is contained in:
sanjayk03-dev
2024-03-29 01:16:59 +05:30
parent 751e16bee7
commit d129c0290c

View File

@@ -214,13 +214,10 @@ module.exports = {
} }
if (this.state.folder == "Unorganized files") { if (this.state.folder == "Unorganized files") {
files = this.config.gcode_list.filter(item => item.type == "file"); files = this.config.gcode_list.filter(item => item.type == "file");
console.log(files);
files = files.map(item => item.name); files = files.map(item => item.name);
console.log("217", files);
return files; return files;
} }
files = this.config.gcode_list.find(item => item.name == this.state.folder).files.map(item => item.file_name); files = this.config.gcode_list.find(item => item.name == this.state.folder).files.map(item => item.file_name);
console.log("221", files);
return files; return files;
}, },
gcode_folders: function () { gcode_folders: function () {
@@ -448,14 +445,30 @@ module.exports = {
}); });
}, },
modify_files: function (fileList) { upload_gcode: async function (filename, file) {
const fileArray = Array.from(fileList); const xhr = new XMLHttpRequest();
fileArray.shift();
const newFileList = new DataTransfer(); xhr.onload = function () {
fileArray.forEach(file => newFileList.items.add(file)); if (xhr.status >= 200 && xhr.status < 300) {
console.log("File uploaded successfully");
} else {
console.error("File upload failed:", xhr.statusText);
}
};
return newFileList.files; xhr.onerror = function () {
console.error("Network error during file upload");
};
xhr.upload.onprogress = function (event) {
if (event.lengthComputable) {
const progress = (event.loaded / event.total) * 100;
console.log("Upload progress:", progress);
}
};
xhr.open("PUT", `/api/file/${encodeURIComponent(filename)}`, true);
xhr.send(file);
}, },
create_new_folder: async function () { create_new_folder: async function () {
@@ -483,8 +496,10 @@ module.exports = {
} }
const folderName = files[0].webkitRelativePath.split("/")[0]; const folderName = files[0].webkitRelativePath.split("/")[0];
console.log(files); console.log(files);
const file = files[0];
for (let file in files) {
console.log(file.name); console.log(file.name);
const gcode = file.text();
const extension = file.name.split(".").pop(); const extension = file.name.split(".").pop();
switch (extension.toLowerCase()) { switch (extension.toLowerCase()) {
case "nc": case "nc":
@@ -498,11 +513,7 @@ module.exports = {
return; return;
} }
SvelteComponents.showDialog("Upload", { await this.upload_gcode(file.name, gcode);
file,
onComplete: () => {
this.last_file_time = undefined; // Force reload
// this.$broadcast("gcode-reload", file.name);
const isAlreadyPresent = this.config.non_macros_list.find(element => element.file_name == file.name); const isAlreadyPresent = this.config.non_macros_list.find(element => element.file_name == file.name);
if (!isAlreadyPresent) { if (!isAlreadyPresent) {
@@ -510,12 +521,9 @@ module.exports = {
} }
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);
console.log(folder);
if (folder) { if (folder) {
console.log("513", file.name);
folder.files.push({ file_name: file.name }); folder.files.push({ file_name: file.name });
} else { } else {
console.log("516", file.name);
this.config.gcode_list.push({ this.config.gcode_list.push({
name: folderName, name: folderName,
type: "folder", type: "folder",
@@ -526,19 +534,26 @@ module.exports = {
], ],
}); });
} }
console.log("523", this.config.gcode_list); console.log("537", this.config.gcode_list);
const remaining_files = this.modify_files(files);
const updated_event = { ...e };
if (updated_event.target) {
updated_event.target.files = remaining_files;
} else if (updated_event.dataTransfer) {
updated_event.dataTransfer.files = remaining_files;
} else {
updated_event["target"] = { files: remaining_files };
} }
this.upload_folder(updated_event); // SvelteComponents.showDialog("Upload", {
}, // file,
}); // onComplete: () => {
// this.last_file_time = undefined; // Force reload
// // this.$broadcast("gcode-reload", file.name);
// const remaining_files = this.modify_files(files);
// const updated_event = { ...e };
// if (updated_event.target) {
// updated_event.target.files = remaining_files;
// } else if (updated_event.dataTransfer) {
// updated_event.dataTransfer.files = remaining_files;
// } else {
// updated_event["target"] = { files: remaining_files };
// }
// this.upload_folder(updated_event);
// },
// });
this.save_config(this.config); this.save_config(this.config);
}, },
@@ -548,7 +563,10 @@ module.exports = {
if (this.state.selected && (this.state.folder == "Unorganized files" || !this.state.folder)) { if (this.state.selected && (this.state.folder == "Unorganized files" || !this.state.folder)) {
this.config.gcode_list.filter(item => item.type == "file" && item.name == this.state.selected); this.config.gcode_list.filter(item => item.type == "file" && item.name == this.state.selected);
} else { } else {
this.config.gcode_list[this.state.folder].files.filter(item => item.file_name == this.state.selected); const file_to_delete = this.config.gcode_list.find(
item => item.name == this.state.folder && item.type == "folder",
);
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.config.macros_list.find(item => item.file_name == this.state.selected)) {
api.delete(`file/${this.state.selected}`); api.delete(`file/${this.state.selected}`);
@@ -601,7 +619,8 @@ module.exports = {
this.confirmDelete = false; this.confirmDelete = false;
}, },
delete_folder_and_files: async function () { delete_folder_and_files: async function () {
if (this.state.folder && this.state.folder != "Unorganized files") { if (this.state.folder) {
if (this.state.folder != "Unorganized files") {
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),
); );
@@ -617,9 +636,18 @@ module.exports = {
return true; return true;
}); });
console.log(this.config.gcode_list); console.log(this.config.gcode_list);
}
} else {
const selected_folder = this.config.gcode_list.find(item => item.type == "file");
if (selected_folder) {
const files_to_delete = selected_folder.map(item => item.name).toString();
console.log(files_to_delete);
await api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${files_to_delete}`);
this.config.gcode_list = this.config.gcode_list.filter(item => item.type != "file");
}
}
}
this.save_config(this.config); this.save_config(this.config);
}
}
this.state.folder = "Unorganized files"; this.state.folder = "Unorganized files";
this.confirmDelete = false; this.confirmDelete = false;
}, },