117 lines
2.8 KiB
JavaScript
117 lines
2.8 KiB
JavaScript
var data = [[],[]] // Stores file directory data.
|
|
var navi = { // Stores data for sidebar navigation.
|
|
'owned': [],
|
|
'shared': []
|
|
};
|
|
var drives = {}; // Stores drive names.
|
|
var navSelect; // Stores current selected sidebar option.
|
|
var clickable = true; // Prevents actions being run more than once.
|
|
var selectDiv; // Stores selected file or folder div.
|
|
var currDir = ''; // Stores the current directory.
|
|
var version = 'desktop';
|
|
|
|
function sortFiles(type, direction) {
|
|
if(type === 'name') data[0] = sortSection(type, direction, data[0]);
|
|
data[1] = sortSection(type, direction, data[1]);
|
|
|
|
ico = get('#directoryHeader i');
|
|
ico.forEach(function(ele) {
|
|
ele.style.opacity = '0';
|
|
});
|
|
|
|
setTimeout(function() {
|
|
ico.forEach(function(ele) {
|
|
ele.style.display = 'none';
|
|
});
|
|
var arrow = (direction < 0) ? 'up' : 'down';
|
|
arrow = get(`#directoryHeader .${type} i.fa-chevron-${arrow}`);
|
|
animFade('open', arrow);
|
|
}, 300);
|
|
|
|
try {
|
|
clearTbl();
|
|
setTimeout(function() {
|
|
get('#directory').removeChild(get('#directoryCont'));
|
|
dispDir();
|
|
}, 300);
|
|
} catch(err) {
|
|
dispDir();
|
|
}
|
|
};
|
|
|
|
function updateLocation() {
|
|
var loc = get('#directoryLocation');
|
|
while(loc.firstChild) loc.removeChild(loc.firstChild);
|
|
loc.style.opacity = '1';
|
|
var subdir = currDir.split('/');
|
|
|
|
for(var i = 0; i < subdir.length; i++) {
|
|
var p = element('p', {
|
|
text: (i === 0) ? drives[navSelect] : subdir[i],
|
|
class: 'subdir transition',
|
|
style: 'cursor:pointer',
|
|
onclick: function() {
|
|
clickable = false;
|
|
clearTbl();
|
|
subdirNum = subdir.indexOf(this.innerText);
|
|
if(subdirNum === -1) {
|
|
currDir = '';
|
|
} else {
|
|
currDir = subdir.slice(0, subdirNum+1)
|
|
.reduce(function(a,b) { return a + '/' + b; });
|
|
}
|
|
listDir(currDir, 0);
|
|
}
|
|
});
|
|
|
|
if(i > 0) {
|
|
loc.appendChild(element('i', {
|
|
class: 'fas fa-chevron-right'
|
|
}));
|
|
}
|
|
loc.appendChild(p);
|
|
}
|
|
};
|
|
|
|
function sortButtons() {
|
|
get('#directoryHeader .name').onclick = function() {
|
|
sort.name = sort.name * -1;
|
|
sortFiles('name', sort.name);
|
|
};
|
|
get('#directoryHeader .date').onclick = function() {
|
|
sort.date = sort.date * -1;
|
|
sortFiles('date', sort.date);
|
|
};
|
|
get('#directoryHeader .size').onclick = function() {
|
|
sort.size = sort.size * -1;
|
|
sortFiles('size', sort.size);
|
|
};
|
|
};
|
|
|
|
document.addEventListener('keydown', function(event) {
|
|
try {
|
|
switch((event || window.event).keyCode) {
|
|
case 13:
|
|
selectDiv.click();
|
|
break;
|
|
case 38:
|
|
selectDiv.previousElementSibling.click();
|
|
break;
|
|
case 40:
|
|
if(selectDiv == undefined) {
|
|
document.getElementById('directoryCont').childNodes[0].click();
|
|
} else {
|
|
selectDiv.nextElementSibling.click();
|
|
}
|
|
break;
|
|
case 8:
|
|
var subdirs = document.getElementsByClassName('subdir');
|
|
subdirs[subdirs.length-1].click();
|
|
break;
|
|
}
|
|
} catch(err) {}
|
|
});
|
|
|
|
getDrives();
|
|
sortButtons();
|