mirror of
https://github.com/Crocmagnon/buzzer.git
synced 2024-12-26 16:01:49 +01:00
Refactor code to reduce requests
This commit is contained in:
parent
4c25b59fcd
commit
b67b057d48
2 changed files with 26 additions and 23 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
(() => {
|
||||
|
|
18
src/main.cpp
18
src/main.cpp
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue