File manager

This commit is contained in:
2025-07-27 12:37:21 +02:00
parent 54e3100867
commit 177530d030
3 changed files with 100 additions and 6 deletions

View File

@@ -84,6 +84,16 @@ function displayState(state) {
document.getElementById("voltage").innerHTML = state['voltage']+' mV';
document.getElementById("heap").innerHTML = state['heap']+' bytes free heap';
document.getElementById("uid").innerHTML = 'Last NFC ID: '+state['uid'];
/* ==== Autofill convenience fields ==== */
if (state['filepath']) {
document.getElementById('moveFrom').value = state['filepath'];
document.getElementById('deleteFile').value = state['filepath'];
document.getElementById('song').value = state['filepath'];
}
if (state['uid']) {
document.getElementById('rfid').value = state['uid'];
}
var elements = document.getElementsByClassName('play-button');
var btn = elements[0];
@@ -260,3 +270,60 @@ function resetUploadForm() {
// Clear file input
document.getElementById('uploadFile').value = '';
}
/* ================= File Manager Functions ================= */
function toggleFileManager() {
var fm = document.getElementById('fileManager');
if (fm.style.display === 'none' || fm.style.display === '') {
fm.style.display = 'block';
} else {
fm.style.display = 'none';
}
}
function moveFile() {
var from = document.getElementById('moveFrom').value.trim();
var to = document.getElementById('moveTo').value.trim();
if (!from || !to) {
alert('Please provide both source and destination paths.');
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', '/move_file?from=' + encodeURIComponent(from) + '&to=' + encodeURIComponent(to), true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
alert('File moved successfully.');
location.reload();
} else {
alert('Move failed: ' + (xhr.responseText || 'Unknown error'));
}
}
};
xhr.send();
}
function deleteFile() {
var filename = document.getElementById('deleteFile').value.trim();
if (!filename) {
alert('Please provide filename to delete.');
return;
}
if (!confirm('Are you sure you want to delete ' + filename + '?')) {
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', '/delete_file?filename=' + encodeURIComponent(filename), true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
alert('File deleted successfully.');
location.reload();
} else {
alert('Delete failed: ' + (xhr.responseText || 'Unknown error'));
}
}
};
xhr.send();
}