From 0d74e04fae3fd118c207de0634b6463bd68f3890 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 29 May 2026 14:55:08 +0200 Subject: cockpit: adapt GraduationChange and implement adding entries to DB --- cockpit/js/database.js | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'cockpit/js/database.js') diff --git a/cockpit/js/database.js b/cockpit/js/database.js index 9c71025..3297a11 100644 --- a/cockpit/js/database.js +++ b/cockpit/js/database.js @@ -1,5 +1,5 @@ -async function loadFromDatabase(url, params) { - let dbUrl = url; +async function loadFromDatabase(id, params) { + let dbUrl = `/mod/data/view.php?d=${id}`; dbUrl += "&perpage=1000"; // TODO(muhq): Why does this not include entries? if (params) { @@ -24,18 +24,25 @@ async function loadFromDatabase(url, params) { return data; } -async function writeToDatabase(url, params) { - let dbUrl = url; - dbUrl += "&perpage=1000"; - // TODO(muhq): Why does this not include entries? - if (params) { - dbUrl += "&filter=1&advanced=1"; - for (const param in params) { - dbUrl += `&${param}=${encodeURIComponent(params[param])}` - } +async function addEntryToDatabaseActivity(id, params) { + const url = `/mod/data/edit.php?id=${id}`; + const editRes = await fetch(url); + const editDoc = new DOMParser().parseFromString(await editRes.text(), 'text/html'); + const form = editDoc.querySelector('div[role="main"] > form'); + + const formData = new FormData(form); + + for (const key in params) { + const formKey = key.replace("f_", "field_"); + formData.set(formKey, params[key]); } + formData.set("saveandview", "Speichern"); - // return fetch(encodeURI(dbUrl)); + return await fetch("/mod/data/edit.php", { + method: "POST", + // Set the FormData instance as the request body + body: formData, + }); } -export { loadFromDatabase, writeToDatabase }; +export { loadFromDatabase, addEntryToDatabaseActivity }; -- cgit v1.2.3