diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/database.js | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/js/database.js b/js/database.js index 3297a11..e6f85da 100644 --- a/js/database.js +++ b/js/database.js @@ -1,6 +1,19 @@ -async function loadFromDatabase(id, params) { - let dbUrl = `/mod/data/view.php?d=${id}`; - dbUrl += "&perpage=1000"; +class DB { + constructor(id) { + this.id = id; + } + + async fetchEntries(params) { + return loadFromDatabaseActivity(this.id, params) + } + + async saveEntry(json) { + return addEntryToDatabaseActivity(this.id, json); + } +} + +async function loadFromDatabaseActivity(id, params) { + let dbUrl = `${window.location.origin}/mod/data/view.php?id=${id}&mode=list&perpage=1000`; // TODO(muhq): Why does this not include entries? if (params) { dbUrl += "&filter=1&advanced=1"; @@ -24,7 +37,7 @@ async function loadFromDatabase(id, params) { return data; } -async function addEntryToDatabaseActivity(id, params) { +async function addEntryToDatabaseActivity(id, json) { const url = `/mod/data/edit.php?id=${id}`; const editRes = await fetch(url); const editDoc = new DOMParser().parseFromString(await editRes.text(), 'text/html'); @@ -32,9 +45,12 @@ async function addEntryToDatabaseActivity(id, params) { const formData = new FormData(form); - for (const key in params) { - const formKey = key.replace("f_", "field_"); - formData.set(formKey, params[key]); + for (const key in formData.keys()) { + if (k.startsWith("field_")) { + formData.set(key, json); + // We found our json key + break; + } } formData.set("saveandview", "Speichern"); @@ -45,4 +61,4 @@ async function addEntryToDatabaseActivity(id, params) { }); } -export { loadFromDatabase, addEntryToDatabaseActivity }; +export { DB, loadFromDatabaseActivity, addEntryToDatabaseActivity }; |
