aboutsummaryrefslogtreecommitdiff
path: root/cockpit/js/database.js
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-05-28 15:20:46 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-05-28 15:20:46 +0200
commitf9a9fa15d6d61eb9730183193ce8af29bdfc17e7 (patch)
treec3b96a36623e52f22d281b518d7136795cf82b8a /cockpit/js/database.js
downloadbycs-sol-f9a9fa15d6d61eb9730183193ce8af29bdfc17e7.tar.gz
bycs-sol-f9a9fa15d6d61eb9730183193ce8af29bdfc17e7.zip
cockpit: initial commit
Diffstat (limited to 'cockpit/js/database.js')
-rw-r--r--cockpit/js/database.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/cockpit/js/database.js b/cockpit/js/database.js
new file mode 100644
index 0000000..9c71025
--- /dev/null
+++ b/cockpit/js/database.js
@@ -0,0 +1,41 @@
+async function loadFromDatabase(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])}`
+ }
+ }
+
+ const dbRes = await fetch(encodeURI(dbUrl));
+ const dbDoc = new DOMParser().parseFromString(await dbRes.text(), 'text/html');
+ let data = [];
+ dbDoc.querySelectorAll('.db-row').forEach(row => {
+ let entry = {};
+ row.querySelectorAll('.db-cell').forEach(field => {
+ const key = field.dataset.key;
+ const value = field.innerText.trim();
+ entry[key] = value;
+ });
+ data.push(entry);
+ });
+ 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])}`
+ }
+ }
+
+ // return fetch(encodeURI(dbUrl));
+}
+
+export { loadFromDatabase, writeToDatabase };