Init WebCG
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
// file is used in controller to handle importing of CSV-file data
|
||||
|
||||
function RenderFolder(data) { //controllerImportCSV
|
||||
// will draw folder and files to the popup GUI
|
||||
|
||||
if (!data.folder){
|
||||
console.log('Controller Import Functions / Folder unknown');
|
||||
return
|
||||
}
|
||||
|
||||
document.getElementById('curfolder').innerText = data.folder.split("\\").join("/");
|
||||
document.getElementById("folderList").innerHTML="";
|
||||
document.getElementById("fileList").innerHTML="";
|
||||
|
||||
if (data.message=='root') {
|
||||
showMessage(document.getElementById('templaterootmassage').value);
|
||||
document.getElementById('homefolder').classList.add('disabled');
|
||||
document.getElementById('prefolder').classList.add('disabled');
|
||||
} else {
|
||||
showMessage('');
|
||||
document.getElementById('homefolder').classList.remove('disabled');
|
||||
document.getElementById('prefolder').classList.remove('disabled');
|
||||
}
|
||||
|
||||
// generate folder icons
|
||||
data.foldArr.forEach((folder,i) => {
|
||||
var node = document.createElement("LI");
|
||||
node.classList.add("filebrowser_folder");
|
||||
var span = document.createElement("SPAN");
|
||||
span.classList.add("icon");
|
||||
span.classList.add("folder");
|
||||
var textnode = document.createTextNode(folder); // + "/"); // changed in 1.0.15
|
||||
span.appendChild(textnode);
|
||||
node.appendChild(span);
|
||||
document.getElementById("folderList").appendChild(node);
|
||||
});
|
||||
|
||||
// generate files icons
|
||||
data.fileArr.forEach((file,i) => {
|
||||
var node = document.createElement("LI");
|
||||
node.classList.add("filebrowser_file");
|
||||
// node.onclick = function() { alert('CHOOSE FILE ' + file); };
|
||||
var span = document.createElement("SPAN");
|
||||
span.classList.add("icon");
|
||||
span.classList.add("file");
|
||||
var textnode = document.createTextNode(file);
|
||||
span.appendChild(textnode);
|
||||
node.appendChild(span);
|
||||
document.getElementById("fileList").appendChild(node);
|
||||
});
|
||||
applyFileBrowserHandlers();
|
||||
}
|
||||
|
||||
|
||||
function FileBrowserOn() {
|
||||
document.getElementById("overlay").style.display = "block";
|
||||
}
|
||||
|
||||
function FileBrowserOff() {
|
||||
document.getElementById("overlay").style.display = "none";
|
||||
}
|
||||
|
||||
|
||||
function navigateDeeper(targetFolderName) {
|
||||
let curFolder = document.getElementById('curfolder').innerText;
|
||||
// console.log('Deeper',curFolder,targetFolderName);
|
||||
openFolder(curFolder, targetFolderName)
|
||||
}
|
||||
|
||||
|
||||
function openFolder(fromFolder, toFolder, rootFolder='') {
|
||||
// deselect files first
|
||||
var fils = document.getElementsByClassName("filebrowser_file");
|
||||
document.getElementById('btnChooseTemplate').style.opacity=0.2;
|
||||
var fi;
|
||||
for (fi = 0; fi < fils.length; fi++) {
|
||||
fils[fi].classList.remove('selectedFile');
|
||||
}
|
||||
// console.log('Opening folder ' + folderName);
|
||||
axios.post('/api/browseFiles', {
|
||||
curFolder: fromFolder,
|
||||
tgtFolder: toFolder,
|
||||
rootFolder: rootFolder,
|
||||
extension: 'CSV'
|
||||
})
|
||||
.then(function (response) {
|
||||
// console.log(response);
|
||||
RenderFolder(response.data); // controllerImportCSV
|
||||
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function highlightFile(e) {
|
||||
// Clicked
|
||||
var fils = document.getElementsByClassName("filebrowser_file");
|
||||
var fi;
|
||||
for (fi = 0; fi < fils.length; fi++) {
|
||||
fils[fi].classList.remove('selectedFile');
|
||||
}
|
||||
// console.log(e.target.parentElement);
|
||||
setTimeout(function () { e.target.parentElement.classList.add('selectedFile'); }, 10);
|
||||
document.getElementById('btnChooseTemplate').style.opacity=1;
|
||||
showMessage(e.target.innerText);
|
||||
}
|
||||
|
||||
function applyFileSelection(e) {
|
||||
// DblClicked to apply the selection
|
||||
var fils = document.getElementsByClassName("filebrowser_file");
|
||||
var fi;
|
||||
for (fi = 0; fi < fils.length; fi++) {
|
||||
fils[fi].classList.remove('selectedFile');
|
||||
}
|
||||
setTimeout(function () { e.target.parentElement.classList.add('selectedFile'); }, 10);
|
||||
setTimeout(function () { openSelectedFiles(); }, 50);
|
||||
}
|
||||
|
||||
function openSelectedCSVFile() {
|
||||
console.log('Going to select CSV');
|
||||
var fils = document.getElementsByClassName("filebrowser_file");
|
||||
var fi;
|
||||
for (fi = 0; fi < fils.length; fi++) {
|
||||
if (fils[fi].classList.contains('selectedFile')) {
|
||||
let data={};
|
||||
data.command = 'importCSVdata';
|
||||
data.foldername = document.getElementById('foldername').value;
|
||||
data.filebasename = document.getElementById('filebasename').value;
|
||||
data.curFolder = document.getElementById('curfolder').innerText;
|
||||
data.RundownFile = document.getElementById('datafile').value;
|
||||
data.importFile = fils[fi].innerText;
|
||||
post('', data, 'post');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function goUp() {
|
||||
// 1.1.0 - refactored navigation to use '..' for parent folder.
|
||||
// See also another goUp() function... Must merge these...
|
||||
let currentFolder = document.getElementById('curfolder').innerText
|
||||
let rootFolder = document.getElementById('assetsroot').value;
|
||||
openFolder(currentFolder, '..', rootFolder);
|
||||
return;
|
||||
}
|
||||
|
||||
function goHome() {
|
||||
// added in 1.1.0.
|
||||
let AssetsFolder = document.getElementById('assetsroot').value //.split("\\").join("/");
|
||||
openFolder(AssetsFolder, '..', AssetsFolder);
|
||||
}
|
||||
|
||||
function showMessage(msg) {
|
||||
document.getElementById('browserMessage').innerText=msg;
|
||||
setTimeout('document.getElementById(\'browserMessage\').innerText="";', 2000);
|
||||
}
|
||||
|
||||
|
||||
function applyFileBrowserHandlers() {
|
||||
// FILEBROWSER HANDLERS
|
||||
var timer = 0;
|
||||
var delay = 150;
|
||||
var prevent = false;
|
||||
var fols = document.getElementsByClassName("folder");
|
||||
var fils = document.getElementsByClassName("file");
|
||||
var fo;
|
||||
for (fo = 0; fo < fols.length; fo++) {
|
||||
fols[fo].addEventListener("dblclick", function() {
|
||||
navigateDeeper(this.innerText);
|
||||
});
|
||||
}
|
||||
|
||||
var fi;
|
||||
for (fi = 0; fi < fils.length; fi++) {
|
||||
// Assign click handler with delay timer
|
||||
fils[fi].addEventListener("click", function(e) {
|
||||
timer = setTimeout(function() {
|
||||
if (!prevent) {
|
||||
highlightFile(e);
|
||||
}
|
||||
prevent = false;
|
||||
}, delay);
|
||||
});
|
||||
|
||||
// Assign dblClick handler with delay timer
|
||||
fils[fi].addEventListener("dblclick", function(e) {
|
||||
clearTimeout(timer);
|
||||
prevent = true;
|
||||
applyFileSelection(e);
|
||||
});
|
||||
} // end for
|
||||
}
|
||||
Reference in New Issue
Block a user