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...");
fetch("/available-files")
.then(response => response.json())
.then(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;
});
.then(handleAvailableFiles);
}
function selectFile(name) {
@ -29,7 +17,22 @@ function selectFile(name) {
const body = new FormData();
body.set("fileName", name);
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

@ -32,7 +32,7 @@ void onAvailableFiles(AsyncWebServerRequest *request)
{
Serial.println("Available files");
AsyncResponseStream *response = request->beginResponseStream("application/json");
DynamicJsonDocument root(256);
root["selectedFile"] = selectedFile;
JsonArray files = root.createNestedArray("files");
@ -40,15 +40,14 @@ void onAvailableFiles(AsyncWebServerRequest *request)
File file = music.openNextFile();
while (file)
{
Serial.print("File: ");
String fileName = file.name();
Serial.println(fileName);
files.add(fileName);
if (!fileName.startsWith("."))
files.add(fileName);
file.close();
file = music.openNextFile();
}
serializeJson(root, *response);
request->send(response);
}
@ -61,7 +60,7 @@ void onSelectFile(AsyncWebServerRequest *request)
Serial.print(selectedFile);
}
Serial.println();
request->send(200);
onAvailableFiles(request);
}
void setup()
@ -79,12 +78,13 @@ void setup()
}
// List existing files
File root = SPIFFS.open("/");
File root = SPIFFS.open("/music");
File file = root.openNextFile();
while (file)
{
Serial.print("File: ");
Serial.println(file.path());
String fileName = file.name();
if (selectedFile == "" && !fileName.startsWith("."))
selectedFile = fileName;
file.close();
file = root.openNextFile();
}