fixing upload folder, upload file, logging for delete func

This commit is contained in:
sanjayk03-dev
2024-03-28 22:38:44 +05:30
parent 4f51580872
commit 3e067d15c8
2 changed files with 65 additions and 59 deletions

View File

@@ -385,6 +385,12 @@ module.exports = {
utils.clickFileInput("gcode-folder-input"); utils.clickFileInput("gcode-folder-input");
}, },
edited_folder_name: function (event) {
if (event.target.value.trim() != "") {
this.$dispatch("folder_name_edited");
}
},
upload_file: async function (e) { upload_file: async function (e) {
const files = e.target.files || e.dataTransfer.files; const files = e.target.files || e.dataTransfer.files;
if (!files.length) { if (!files.length) {
@@ -415,12 +421,12 @@ module.exports = {
) { ) {
this.config.gcode_list.push({ name: file.name, type: "file", files: [] }); this.config.gcode_list.push({ name: file.name, type: "file", files: [] });
} else if (!this.state.folder || this.state.folder == "") { } else if (!this.state.folder || this.state.folder == "") {
this.config.gcode_list.push({ name: file.name, type: "file", files: [] });
} else {
const folder_to_add = this.config.gcode_list.find( const folder_to_add = this.config.gcode_list.find(
item => item.type == "folder" && item.name == this.state.folder, item => item.type == "folder" && item.name == this.state.folder,
); );
folder_to_add.files.push({ file_name: file.name }); folder_to_add.files.push({ file_name: file.name });
} else {
this.config.gcode_list.push({ name: file.name, type: "file", files: [] });
} }
try { try {
await api.put("config/save", this.config); await api.put("config/save", this.config);
@@ -439,12 +445,6 @@ module.exports = {
}); });
}, },
edited_folder_name: function (event) {
if (event.target.value.trim() != "") {
this.$dispatch("folder_name_edited");
}
},
modify_files: function (fileList) { modify_files: function (fileList) {
const fileArray = Array.from(fileList); const fileArray = Array.from(fileList);
fileArray.shift(); fileArray.shift();
@@ -465,6 +465,7 @@ module.exports = {
type: "folder", type: "folder",
files: [], files: [],
}); });
this.state.folder = this.folder_name;
this.edited = false; this.edited = false;
this.create_folder = false; this.create_folder = false;
this.folder_name = ""; this.folder_name = "";
@@ -486,58 +487,57 @@ module.exports = {
} }
const folderName = files[0].webkitRelativePath.split("/")[0]; const folderName = files[0].webkitRelativePath.split("/")[0];
console.log(files); console.log(files);
for (let file of files) { const file = files[0];
console.log(file.name); console.log(file.name);
const extension = file.name.split(".").pop(); const extension = file.name.split(".").pop();
switch (extension.toLowerCase()) { switch (extension.toLowerCase()) {
case "nc": case "nc":
case "ngc": case "ngc":
case "gcode": case "gcode":
case "gc": case "gc":
break; break;
default: default:
alert(`Unsupported file type: ${extension}`); alert(`Unsupported file type: ${extension}`);
return; return;
} }
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) {
this.config.non_macros_list.push({ file_name: file.name }); this.config.non_macros_list.push({ file_name: file.name });
} }
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 });
} else { } else {
this.config.gcode_list.push({ this.config.gcode_list.push({
name: folderName, name: folderName,
type: "folder", type: "folder",
files: [ files: [
{ {
file_name: file.name, file_name: file.name,
}, },
], ],
});
}
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);
},
}); });
} }
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);
},
});
try { try {
await api.put("config/save", this.config); await api.put("config/save", this.config);
@@ -591,9 +591,11 @@ module.exports = {
delete_folder: async function () { delete_folder: async function () {
if (!this.state.folder) { if (!this.state.folder) {
console.log("595");
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({
@@ -608,6 +610,7 @@ module.exports = {
} }
return true; return true;
}); });
console.log(this.config.gcode_list);
try { try {
await api.put("config/save", this.config); await api.put("config/save", this.config);
this.$dispatch("update"); this.$dispatch("update");
@@ -624,15 +627,18 @@ module.exports = {
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),
); );
console.log(selected_folder);
if (!selected_folder) { if (!selected_folder) {
const files_to_delete = selected_folder.files.map(item => item.file_name).toString(); const files_to_delete = selected_folder.files.map(item => item.file_name).toString();
api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${files_to_delete}`); console.log(files_to_delete);
await api.delete(`file/EgZjaHJvbWUqCggBEAAYsQMYgAQyBggAEEUYOTIKCAE${files_to_delete}`);
this.config.gcode_list = this.config.gcode_list.filter(item => { this.config.gcode_list = this.config.gcode_list.filter(item => {
if (item.type == "folder" && item.name == this.state.folder) { if (item.type == "folder" && item.name == this.state.folder) {
return false; return false;
} }
return true; return true;
}); });
console.log(this.config.gcode_list);
try { try {
await api.put("config/save", this.config); await api.put("config/save", this.config);
this.$dispatch("update"); this.$dispatch("update");

View File

@@ -319,7 +319,7 @@ script#control-view-template(type="text/x-template")
div(slot="footer") div(slot="footer")
button.pure-button(@click="create_folder=false") Cancel button.pure-button(@click="create_folder=false") Cancel
button.pure-button.button-error(@click="create_new_folder",:disabled="!edited") button.pure-button.button-success(@click="create_new_folder",:disabled="!edited")
| Create | Create
select(title="Select previously uploaded GCode folder.", select(title="Select previously uploaded GCode folder.",
@@ -339,8 +339,8 @@ script#control-view-template(type="text/x-template")
div(slot="footer") div(slot="footer")
button.pure-button(@click="confirmDelete=false") Cancel button.pure-button(@click="confirmDelete=false") Cancel
button.pure-button.pure-button-primary(@click="delete_folder") Folder only button.pure-button.button-error(@click="delete_folder") Folder only
button.pure-button.pure-button-primary(@click="delete_folder_and_files") Folder and files button.pure-button.button-success(@click="delete_folder_and_files") Folder and files
button.pure-button(title="Delete a folder.", @click="confirmDelete=true", button.pure-button(title="Delete a folder.", @click="confirmDelete=true",
:disabled="!is_ready") :disabled="!is_ready")