bugfix: update notify_filelist_changed
Signed-off-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
parent
6766a266e8
commit
8494a35adf
@ -55,7 +55,7 @@
|
||||
<v-btn color="primary ml-4 " :loading="loadingGcodeUpload" @click="clickUploadButton"><v-icon>mdi-upload</v-icon>Upload</v-btn>
|
||||
</v-card-title>
|
||||
<v-card-subtitle>
|
||||
Current path: {{ this.currentPath }}
|
||||
Current path: {{ this.currentPath !== 'gcodes' ? "/"+this.currentPath.substring(7) : "/" }}
|
||||
</v-card-subtitle>
|
||||
<v-card-text>
|
||||
<v-text-field
|
||||
@ -231,7 +231,7 @@
|
||||
import { mapState, mapGetters } from 'vuex';
|
||||
import axios from 'axios';
|
||||
import { findDirectory } from "../plugins/helpers";
|
||||
import Vue from "vue";
|
||||
/*import Vue from "vue";*/
|
||||
|
||||
export default {
|
||||
data () {
|
||||
@ -335,12 +335,6 @@
|
||||
).then((result) => {
|
||||
this.$store.commit('removeLoading', { name: 'loadingGcodeUpload' });
|
||||
toast.success("Upload of "+result.data.result+" successful!");
|
||||
this.$socket.sendObj('get_directory', { path: this.currentPath }, 'getDirectory');
|
||||
|
||||
let filename = (this.currentPath+"/"+file.name).substring(7);
|
||||
setTimeout(function() {
|
||||
Vue.prototype.$socket.sendObj("get_file_metadata", { filename: filename }, "getMetadata");
|
||||
}, 1000);
|
||||
})
|
||||
.catch(() => {
|
||||
this.$store.commit('removeLoading', { name: 'loadingGcodeUpload' });
|
||||
@ -435,7 +429,6 @@
|
||||
'http://'+ this.hostname + ':' + this.port +'/server/files/'+filename
|
||||
).then((result) => {
|
||||
this.$toast.success(result.data.result+" successfully deleted.");
|
||||
this.$socket.sendObj('get_directory', { path: this.currentPath }, 'getDirectory');
|
||||
}).catch(() => {
|
||||
this.$toast.error("Error! Cannot delete file.");
|
||||
});
|
||||
@ -538,9 +531,14 @@
|
||||
e.preventDefault();
|
||||
e.target.parentElement.style.backgroundColor = 'transparent';
|
||||
|
||||
let dest = "";
|
||||
if (row.filename === '..') {
|
||||
dest = this.currentPath.substring(0, this.currentPath.lastIndexOf("/") + 1)+this.draggingFile.item.filename;
|
||||
} else dest = this.currentPath+"/"+row.filename+"/"+this.draggingFile.item.filename;
|
||||
|
||||
this.$socket.sendObj('post_file_move', {
|
||||
source: this.currentPath+"/"+this.draggingFile.item.filename,
|
||||
dest: this.currentPath+"/"+row.filename+"/"+this.draggingFile.item.filename,
|
||||
dest: dest
|
||||
}, 'getPostFileMove');
|
||||
}
|
||||
},
|
||||
|
@ -36,7 +36,31 @@ export default {
|
||||
break;
|
||||
|
||||
case 'notify_filelist_changed':
|
||||
commit('setFileList', data.params[0].filelist);
|
||||
switch(data.params[0].action) {
|
||||
case 'added':
|
||||
commit('setFileChangeAdded', data.params[0]);
|
||||
break;
|
||||
|
||||
case 'removed':
|
||||
commit('setFileChangeRemoved', data.params[0]);
|
||||
break;
|
||||
|
||||
case 'file_move':
|
||||
commit('setFileChangeFileMove', data.params[0]);
|
||||
break;
|
||||
|
||||
case 'add_directory':
|
||||
commit('setFileChangeAddDirectory', data.params[0]);
|
||||
break;
|
||||
|
||||
case 'delete_directory':
|
||||
commit('setFileChangeDeleteDirectory', data.params[0]);
|
||||
break;
|
||||
|
||||
default:
|
||||
window.console.error("Unknown filelist_changed action: "+data.params[0].action);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -96,7 +120,6 @@ export default {
|
||||
idle_timeout: [],
|
||||
display_status: [],
|
||||
});
|
||||
Vue.prototype.$socket.sendObj('get_file_list', {}, 'getFileList');
|
||||
Vue.prototype.$socket.sendObj('get_directory', { path: 'gcodes' }, 'getDirectory');
|
||||
Vue.prototype.$socket.sendObj('get_printer_gcode_help', {}, 'getHelpList');
|
||||
} else if (data !== undefined && !data.is_ready) commit('setKlippyStatus', 'disconnect');
|
||||
@ -157,11 +180,6 @@ export default {
|
||||
commit('setPrinterConfig', data);
|
||||
},
|
||||
|
||||
getFileList({ commit }, data) {
|
||||
commit('setFileList', data);
|
||||
commit('removeLoading', 'loadingGcodeRefresh');
|
||||
},
|
||||
|
||||
getDirectory({ commit }, data) {
|
||||
commit('setDirectory', data);
|
||||
commit('removeLoading', { name: 'loadingGcodeRefresh' });
|
||||
@ -179,11 +197,9 @@ export default {
|
||||
if (data.error) {
|
||||
Vue.$toast.error(data.error.message);
|
||||
} else if (data.result === "ok") {
|
||||
let currentPath = data.requestParams.path.substr(0, data.requestParams.path.lastIndexOf("/"));
|
||||
let newPath = data.requestParams.path.substr(data.requestParams.path.lastIndexOf("/")+1);
|
||||
|
||||
Vue.$toast.success("Successfully created "+newPath);
|
||||
Vue.prototype.$socket.sendObj('get_directory', { path: currentPath }, 'getDirectory');
|
||||
commit('voidMutation');
|
||||
}
|
||||
},
|
||||
@ -192,15 +208,10 @@ export default {
|
||||
if (data.error) {
|
||||
Vue.$toast.error(data.error.message);
|
||||
} else if (data.result === "ok") {
|
||||
let currentPath = data.requestParams.path.substr(0, data.requestParams.path.lastIndexOf("/"));
|
||||
let delPath = data.requestParams.path.substr(data.requestParams.path.lastIndexOf("/")+1);
|
||||
|
||||
Vue.$toast.success("Successfully deleted "+delPath);
|
||||
//Vue.prototype.$socket.sendObj('get_directory', { path: currentPath }, 'getDirectory');
|
||||
commit('removeDirFromFiletree', {
|
||||
currentPath: currentPath,
|
||||
delPathName: delPath
|
||||
});
|
||||
commit('voidMutation');
|
||||
}
|
||||
},
|
||||
|
||||
@ -214,11 +225,7 @@ export default {
|
||||
|
||||
if (sourceDir === destDir) Vue.$toast.success("Successfully renamed "+filename);
|
||||
else Vue.$toast.success("Successfully moved "+filename);
|
||||
|
||||
commit('renameMetadataFilename', {
|
||||
source: data.requestParams.source,
|
||||
dest: data.requestParams.dest
|
||||
});
|
||||
commit('voidMutation');
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -215,29 +215,74 @@ export default {
|
||||
if (data.configfile) Vue.set(state, 'config', data.configfile.config);
|
||||
},
|
||||
|
||||
setFileList(state, data) {
|
||||
state.files = [];
|
||||
//window.console.log(data);
|
||||
let array = Object.entries(data);
|
||||
setFileChangeAdded(state, data) {
|
||||
let filename = data.filename.substr(data.filename.lastIndexOf("/")).replace("/", "");
|
||||
let path = data.filename.substr(0, data.filename.lastIndexOf("/"));
|
||||
let parent = findDirectory(state.filetree, (data.root+"/"+path).split("/"));
|
||||
|
||||
for (let [key, file] of array) {
|
||||
if (file.filename !== "gui.json") {
|
||||
state.files.push({
|
||||
number: key,
|
||||
filename: file.filename,
|
||||
modified: Date.parse(file.modified),
|
||||
size: file.size,
|
||||
slicer: file.slicer,
|
||||
filament_total: file.filament_total,
|
||||
estimated_time: file.estimated_time,
|
||||
layer_height: file.layer_height,
|
||||
first_layer_height: file.first_layer_height,
|
||||
object_height: file.object_height,
|
||||
thumbnails : file.thumbnails ? file.thumbnails : [],
|
||||
});
|
||||
}
|
||||
if (parent) {
|
||||
parent.push({
|
||||
isDirectory: false,
|
||||
filename: filename,
|
||||
modified: new Date(),
|
||||
size: 0,
|
||||
metadataPulled: false,
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
Vue.prototype.$socket.sendObj("get_file_metadata", { filename: data.filename }, "getMetadata");
|
||||
}, 500);
|
||||
}
|
||||
//state.files = data;
|
||||
},
|
||||
|
||||
setFileChangeRemoved(state, data) {
|
||||
let currentPath = data.filename.substr(0, data.filename.lastIndexOf("/"));
|
||||
let delPath = data.filename.substr(data.filename.lastIndexOf("/")+1);
|
||||
currentPath = findDirectory(state.filetree, (data.root+"/"+currentPath).split("/"));
|
||||
let index = currentPath.findIndex(element => element.filename === delPath);
|
||||
|
||||
if (index >= 0 && currentPath[index]) currentPath.splice(index, 1);
|
||||
},
|
||||
|
||||
setFileChangeFileMove(state, data) {
|
||||
let oldPath = data.prev_file.substr(0, data.prev_file.lastIndexOf("/") + 1);
|
||||
let newPath = data.filename.substr(0, data.filename.lastIndexOf("/") + 1);
|
||||
let filenameOld = data.prev_file.substr(data.prev_file.lastIndexOf("/")+1);
|
||||
let filenameNew = data.filename.substr(data.filename.lastIndexOf("/")+1);
|
||||
|
||||
oldPath = findDirectory(state.filetree, (data.root+"/"+oldPath).split("/"));
|
||||
let indexFile = oldPath.findIndex(element => element.filename === filenameOld);
|
||||
|
||||
if (indexFile >= 0 && oldPath[indexFile]) {
|
||||
let file = oldPath.splice(indexFile, 1)[0];
|
||||
file.filename = filenameNew;
|
||||
newPath = findDirectory(state.filetree, (data.root+"/"+newPath).split("/"));
|
||||
newPath.push(file);
|
||||
}
|
||||
},
|
||||
|
||||
setFileChangeAddDirectory(state, data) {
|
||||
let filename = data.filename.substr(data.filename.lastIndexOf("/") + 1);
|
||||
let path = data.filename.substr(0, data.filename.lastIndexOf("/"));
|
||||
let parent = findDirectory(state.filetree, (data.root+"/"+path).split("/"));
|
||||
|
||||
if (parent) {
|
||||
parent.push({
|
||||
isDirectory: true,
|
||||
filename: filename,
|
||||
modified: new Date(),
|
||||
childrens: [],
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
setFileChangeDeleteDirectory(state, data) {
|
||||
let currentPath = data.filename.substr(0, data.filename.lastIndexOf("/"));
|
||||
let delPath = data.filename.substr(data.filename.lastIndexOf("/")+1);
|
||||
currentPath = findDirectory(state.filetree, (data.root+"/"+currentPath).split("/"));
|
||||
let index = currentPath.findIndex(element => element.filename === delPath);
|
||||
|
||||
if (index >= 0 && currentPath[index]) currentPath.splice(index, 1);
|
||||
},
|
||||
|
||||
setDirectory(state, data) {
|
||||
@ -311,6 +356,8 @@ export default {
|
||||
slicer: data.slicer ? data.slicer : undefined,
|
||||
thumbnails: data.thumbnails ? data.thumbnails : undefined,
|
||||
metadataPulled: true,
|
||||
modified: Date.parse(data.modified),
|
||||
size: parseInt(data.size),
|
||||
};
|
||||
|
||||
let newObject = Object.assign(path[index], newData);
|
||||
@ -351,14 +398,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
removeDirFromFiletree(state, data) {
|
||||
let currentPathArray = data.currentPath.split("/");
|
||||
let currentPath = findDirectory(state.filetree, currentPathArray);
|
||||
let index = currentPath.findIndex(element => element.filename === data.delPathName);
|
||||
|
||||
if (index >= 0 && currentPath[index]) currentPath.splice(index, 1);
|
||||
},
|
||||
|
||||
setHelpList(state, data) {
|
||||
state.helplist = [];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user