aboutsummaryrefslogtreecommitdiff
path: root/cockpit/js/database.js
diff options
context:
space:
mode:
Diffstat (limited to 'cockpit/js/database.js')
-rw-r--r--cockpit/js/database.js33
1 files changed, 20 insertions, 13 deletions
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 };