Refactor code to reduce requests

This commit is contained in:
Gabriel Augendre 2023-01-01 02:55:32 +01:00
parent 4c25b59fcd
commit b67b057d48
2 changed files with 26 additions and 23 deletions

View file

@ -9,19 +9,7 @@ function loadAvailableFiles() {
console.log("Available files..."); console.log("Available files...");
fetch("/available-files") fetch("/available-files")
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(handleAvailableFiles);
console.log("data", data);
let dom = "";
data.files.forEach(element => {
if (element === data.selectedFile) {
dom += `<button class="w3-button w3-green" onclick="selectFile('${element}')">${element}</button>`;
}
else {
dom += `<button class="w3-button w3-blue" onclick="selectFile('${element}')">${element}</button>`;
}
});
document.getElementById("available-files").innerHTML = dom;
});
} }
function selectFile(name) { function selectFile(name) {
@ -29,7 +17,22 @@ function selectFile(name) {
const body = new FormData(); const body = new FormData();
body.set("fileName", name); body.set("fileName", name);
fetch("/select-file", {method: "POST", body: body}) fetch("/select-file", {method: "POST", body: body})
.then(res => loadAvailableFiles()); .then(response => response.json())
.then(handleAvailableFiles);
}
function handleAvailableFiles(data) {
console.log("data", data);
let dom = "";
data.files.forEach(element => {
if (element === data.selectedFile) {
dom += `<button class="w3-button w3-green" onclick="selectFile('${element}')">${element}</button>`;
}
else {
dom += `<button class="w3-button w3-blue" onclick="selectFile('${element}')">${element}</button>`;
}
});
document.getElementById("available-files").innerHTML = dom;
} }
(() => { (() => {

View file

@ -40,10 +40,9 @@ void onAvailableFiles(AsyncWebServerRequest *request)
File file = music.openNextFile(); File file = music.openNextFile();
while (file) while (file)
{ {
Serial.print("File: ");
String fileName = file.name(); String fileName = file.name();
Serial.println(fileName); if (!fileName.startsWith("."))
files.add(fileName); files.add(fileName);
file.close(); file.close();
file = music.openNextFile(); file = music.openNextFile();
} }
@ -61,7 +60,7 @@ void onSelectFile(AsyncWebServerRequest *request)
Serial.print(selectedFile); Serial.print(selectedFile);
} }
Serial.println(); Serial.println();
request->send(200); onAvailableFiles(request);
} }
void setup() void setup()
@ -79,12 +78,13 @@ void setup()
} }
// List existing files // List existing files
File root = SPIFFS.open("/"); File root = SPIFFS.open("/music");
File file = root.openNextFile(); File file = root.openNextFile();
while (file) while (file)
{ {
Serial.print("File: "); String fileName = file.name();
Serial.println(file.path()); if (selectedFile == "" && !fileName.startsWith("."))
selectedFile = fileName;
file.close(); file.close();
file = root.openNextFile(); file = root.openNextFile();
} }