From 30cf0fd22e492fd2b0052ddfd5b808da51b36052 Mon Sep 17 00:00:00 2001
From: Paul-Christian Volkmer
Date: Thu, 18 Jan 2024 14:13:15 +0100
Subject: feat #29: add initial support for mtbfile api tokens
---
.../db/migration/mariadb/V0_2_0__Tokens.sql | 8 +++++
.../db/migration/postgresql/V0_2_0__Tokens.sql | 9 +++++
src/main/resources/static/scripts.js | 7 ++--
src/main/resources/static/style.css | 24 +++++++++++--
src/main/resources/templates/configs.html | 4 +++
src/main/resources/templates/configs/tokens.html | 39 ++++++++++++++++++++++
src/main/resources/templates/login.html | 2 +-
7 files changed, 88 insertions(+), 5 deletions(-)
create mode 100644 src/main/resources/db/migration/mariadb/V0_2_0__Tokens.sql
create mode 100644 src/main/resources/db/migration/postgresql/V0_2_0__Tokens.sql
create mode 100644 src/main/resources/templates/configs/tokens.html
(limited to 'src/main/resources')
diff --git a/src/main/resources/db/migration/mariadb/V0_2_0__Tokens.sql b/src/main/resources/db/migration/mariadb/V0_2_0__Tokens.sql
new file mode 100644
index 0000000..98e27d9
--- /dev/null
+++ b/src/main/resources/db/migration/mariadb/V0_2_0__Tokens.sql
@@ -0,0 +1,8 @@
+CREATE TABLE IF NOT EXISTS token
+(
+ id int auto_increment primary key,
+ name varchar(255) not null,
+ username varchar(255) not null unique,
+ password varchar(255) not null,
+ created_at datetime default utc_timestamp() not null
+);
\ No newline at end of file
diff --git a/src/main/resources/db/migration/postgresql/V0_2_0__Tokens.sql b/src/main/resources/db/migration/postgresql/V0_2_0__Tokens.sql
new file mode 100644
index 0000000..c89c52e
--- /dev/null
+++ b/src/main/resources/db/migration/postgresql/V0_2_0__Tokens.sql
@@ -0,0 +1,9 @@
+CREATE TABLE IF NOT EXISTS token
+(
+ id serial,
+ name varchar(255) not null,
+ username varchar(255) not null unique,
+ password varchar(255) not null,
+ created_at timestamp with time zone default now() not null,
+ PRIMARY KEY (id)
+);
\ No newline at end of file
diff --git a/src/main/resources/static/scripts.js b/src/main/resources/static/scripts.js
index 73ad71b..fdd3f52 100644
--- a/src/main/resources/static/scripts.js
+++ b/src/main/resources/static/scripts.js
@@ -4,14 +4,17 @@ const dateFormat = new Intl.DateTimeFormat('de-DE', dateFormatOptions);
const dateTimeFormatOptions = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: 'numeric', second: 'numeric' };
const dateTimeFormat = new Intl.DateTimeFormat('de-DE', dateTimeFormatOptions);
-window.addEventListener('load', () => {
+const formatTimeElements = () => {
Array.from(document.getElementsByTagName('time')).forEach((timeTag) => {
let date = Date.parse(timeTag.getAttribute('datetime'));
if (! isNaN(date)) {
timeTag.innerText = dateTimeFormat.format(date);
}
});
-});
+};
+
+window.addEventListener('load', formatTimeElements);
+window.addEventListener('htmx:afterRequest', formatTimeElements);
function drawPieChart(url, elemId, title, data) {
if (data) {
diff --git a/src/main/resources/static/style.css b/src/main/resources/static/style.css
index e2bf65a..3249aad 100644
--- a/src/main/resources/static/style.css
+++ b/src/main/resources/static/style.css
@@ -202,13 +202,15 @@ form.samplecode-input input:focus-visible {
background: none;
}
-.login-form form * {
+.login-form form *,
+.token-form form * {
padding: 0.5em;
border: 1px solid var(--table-border);
border-radius: 3px;
}
-.login-form button {
+.login-form button,
+.token-form button {
margin: 1em 0;
background: var(--bg-blue);
color: white;
@@ -535,4 +537,22 @@ a.reload {
font-size: .6em;
align-content: center;
justify-content: center;
+}
+
+.new-token {
+ padding: 1em;
+ background: var(--bg-green-op);
+}
+
+.new-token > pre {
+ margin: 0;
+ border: 1px solid var(--bg-green);
+ padding: .5em;
+ width: max-content;
+ display: inline-block;
+}
+
+.no-token {
+ padding: 1em;
+ background: var(--bg-red-op);
}
\ No newline at end of file
diff --git a/src/main/resources/templates/configs.html b/src/main/resources/templates/configs.html
index 3c3d744..ebef7ca 100644
--- a/src/main/resources/templates/configs.html
+++ b/src/main/resources/templates/configs.html
@@ -37,6 +37,9 @@
+
+
+