diff options
| -rw-r--r-- | backend/main.py | 16 | ||||
| -rw-r--r-- | frontend/main.js | 13 |
2 files changed, 27 insertions, 2 deletions
diff --git a/backend/main.py b/backend/main.py index c42e83f..db2519d 100644 --- a/backend/main.py +++ b/backend/main.py @@ -123,6 +123,11 @@ class FinishRequestData(BaseModel): id: int +class OverrideMachineData(BaseModel): + block: int + machine_id: int + + class Status(Enum): EMPTY = 0, FINISHED = 1, @@ -462,3 +467,14 @@ def notif_subscribe(data: notif.PushSubscriptionData, response: fastapi.Response except Exception as err: response.status_code = fastapi.status.HTTP_500_INTERNAL_SERVER_ERROR return f"error, failed to save subscription {err}" + + +# #### ADMIN PANEL API END POINTS #### + + +# --- override each machine status +@app.post("/override_status", response_class=PlainTextResponse) +def override_status(data: OverrideMachineData, response: fastapi.Response, admin_auth: Annotated[str | None, fastapi.Cookie()] = None): + if not admin_auth: + response.status_code = fastapi.status.HTTP_401_UNAUTHORIZED + return "Unauthorised." diff --git a/frontend/main.js b/frontend/main.js index 962763d..ee61db1 100644 --- a/frontend/main.js +++ b/frontend/main.js @@ -214,8 +214,6 @@ async function updateMachines() { machineTxts[i].innerHTML = minsLeft + " min(s) left"; if (machineDetailImgs[0]) machineDetailTitles[i].innerHTML = minsLeft + " minutes left" } else if (status[0][i] == "OUTOFSERVICE") { - - } else if (status[0][i] == "FINISHED") { if ((i + 1) % 2 == 0) { machineImgs[i].src = "/assets/img/washer_down.png"; if (machineDetailImgs[0]) machineDetailImgs[i].src = "/assets/img/washer_down.png"; @@ -226,6 +224,17 @@ async function updateMachines() { machineTxts[i].innerHTML = "Down" if (machineDetailImgs[0]) machineDetailTitles[i].innerHTML = "Out of Service" if (machineDetailImgs[0]) machineDetailDescs[i].innerHTML = "This machine is currently out of service, and is unavailable to use." + } else if (status[0][i] == "FINISHED") { + if ((i + 1) % 2 == 0) { + machineImgs[i].src = "/assets/img/washer_clothes.png"; + if (machineDetailImgs[0]) machineDetailImgs[i].src = "/assets/img/washer_clothes.png"; + } else { + machineImgs[i].src = "/assets/img/dryer_clothes.png"; + if (machineDetailImgs[0]) machineDetailImgs[i].src = "/assets/img/dryer_clothes.png"; + } + machineTxts[i].innerHTML = "Idle" + if (machineDetailImgs[0]) machineDetailTitles[i].innerHTML = "Idle" + if (machineDetailImgs[0]) machineDetailDescs[i].innerHTML = "Clothes may not be collected yet." } else { if ((i + 1) % 2 == 0) { machineImgs[i].src = "/assets/img/washer_off.png"; |
