Forked from
chnet / XRF-App
57 commits behind the upstream repository.
-
Laura Cappelli authoredLaura Cappelli authored
loaddir.ts 7.11 KiB
//funzione che definisce tutti gli elementi responsabili dell'apertura di un file.
//Sono definiti quindi l'albero e il bottone per l'importazione da locale
function setImportFile(){
//genero e leggo il contenuto della directory "filesystem"
var jsonResponse: any;
var xmlListingFile: any = new XMLHttpRequest();
xmlListingFile.open("GET", "https://baltig.infn.it/api/v4/projects/819/repository/tree?recursive=1&path=XRF-File-System", false);
xmlListingFile.onreadystatechange = function(){
if(xmlListingFile.readyState === 4){
if(xmlListingFile.status === 200){
jsonResponse = JSON.parse(xmlListingFile.responseText);
}
}
}
xmlListingFile.send(null);
//ora genero l'albero e definisco l'evento in caso di selezione di un nodo
$('#FileTreeview').treeview({data: generateTree(jsonResponse)});
$('#FileTreeview').on('nodeSelected', function(e, node){
if(node['url'] != undefined){
openFileFromServer(node['url']);
}
});
//bottone per l'importazione locale
var fileInputButton: any = document.getElementById('myImport');
fileInputButton.onchange = function(){
var fileName: string = fileInputButton.files[0];
var readerObject: any = new FileReader();
readerObject.readAsBinaryString(fileName);
readerObject.onload = function() {
var fileString: string = readerObject.result;
readData(fileString);
}
}
}
//funzione che genera automaticamente l'albero
function generateTree(jsonDoc){
var tree: any = [ {
text:"XRF-File-System",
nodes: [ ]
}];
//scorro ogni elemento dell'albero
for (var i: number = 0; i < jsonDoc.length; i++) {
if(jsonDoc[i].type == "tree"){ //è una cartella
var Folder = { //definisco l'oggetto Folder
text: jsonDoc[i].name,
relativePath: jsonDoc[i].path,
nodes: []
}
insertOBJinFS(Folder, tree);
} else { //è un file
var File = { //definisco l'oggetto File
text: jsonDoc[i].name,
relativePath: jsonDoc[i].path,
icon: "glyphicon glyphicon-file",
selectedIcon: "glyphicon glyphicon-file",
url: jsonDoc[i].path
}
//inserisco il file nella giusta posizione
insertOBJinFS(File, tree);
}
}
return tree;