diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 6fddc5a7..a107caa8 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -154,6 +154,9 @@ cronUtils = "com.cronutils:cron-utils:9.2.1"
# Webview
kcef = "dev.datlag:kcef:2024.04.20.4"
+# User
+jwt = "com.auth0:java-jwt:4.4.0"
+
# lint - used for renovate to update ktlint version
ktlint = { module = "com.pinterest.ktlint:ktlint-cli", version.ref = "ktlint" }
diff --git a/server/build.gradle.kts b/server/build.gradle.kts
index fc2f47c5..8bb12695 100644
--- a/server/build.gradle.kts
+++ b/server/build.gradle.kts
@@ -102,6 +102,8 @@ dependencies {
implementation(libs.cronUtils)
+ implementation(libs.jwt)
+
compileOnly(libs.kte)
}
diff --git a/server/i18n/src/commonMain/moko-resources/values/base/strings.xml b/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
index cad690ec..c92603d4 100644
--- a/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
+++ b/server/i18n/src/commonMain/moko-resources/values/base/strings.xml
@@ -142,6 +142,7 @@
Loading page...
Copy to Clipboard
Automatic clipboard copy failed, please use the input below to manually copy the value.
+ Your configuration requires you to login. Please enter username and password.
Enter URL...
Suwayomi Login
diff --git a/server/src/main/jte/Webview.kte b/server/src/main/jte/Webview.kte
index f4b541c8..f199d7ff 100644
--- a/server/src/main/jte/Webview.kte
+++ b/server/src/main/jte/Webview.kte
@@ -159,25 +159,26 @@
main .contextmenu button:hover {
background: #eee;
}
- .copydialog {
+ .copydialog, .logindialog {
display: none;
position: absolute;
inset: 0;
width: 100%;
height: 100%;
padding: 6px;
+ z-index: 1;
}
- .copydialog.show {
+ .copydialog.show, .logindialog.show {
display: block;
}
- .copydialog::before {
+ .copydialog::before, .logindialog::before {
content: '';
position: absolute;
inset: 0;
background: black;
opacity: 0.3;
}
- .copydialog__inner {
+ .copydialog__inner, .logindialog__inner {
position: relative;
max-width: 960px;
border-radius: 8px;
@@ -204,10 +205,10 @@
line-height: 1;
}
@media (min-width: 500px) {
- .copydialog {
+ .copydialog, .logindialog {
padding: 24px;
}
- .copydialog__inner {
+ .copydialog__inner, .logindialog__inner {
padding: 12px 18px;
height: auto;
}
@@ -222,6 +223,86 @@
border-bottom: 9px solid transparent;
border-left: 9px solid currentcolor;
}
+
+ .logindialog .error {
+ margin: 8px;
+ padding: 8px 16px;
+ border-radius: 8px;
+ border: 1px solid #b71c1c;
+ background-color: #c62828;
+ color: white;
+ }
+ .logindialog .error:empty {
+ display: none;
+ }
+ .logindialog form label {
+ cursor: pointer;
+ }
+ .logindialog form button {
+ all: unset;
+ padding: 8px;
+ line-height: 1.75;
+ text-align: center;
+ min-width: 64px;
+ border-radius: 4px;
+ padding: 6px 8px;
+ color: rgb(91, 116, 239);
+ text-transform: uppercase;
+ letter-spacing: 0.02857em;
+ }
+ .logindialog form button:not([disabled]) {
+ cursor: pointer;
+ }
+ .logindialog form button:not([disabled]):hover {
+ background-color: rgba(91, 116, 239, 0.08);
+ }
+ .logindialog form input {
+ all: unset;
+ border-radius: 4px;
+ border: 1px solid rgba(255, 255, 255, 0.23);
+ padding: 6px 12px;
+ width: auto;
+ min-width: 0;
+ }
+ .logindialog form input:hover {
+ border-color: white;
+ }
+ .logindialog form input:focus {
+ border-color: rgb(91, 116, 239);
+ }
+ .logindialog form .controls {
+ display: grid;
+ align-items: center;
+ grid-template-columns: 1fr;
+ }
+ .logindialog form .controls > :nth-child(even):not(:last-child) {
+ margin-bottom: 6px;
+ }
+ .logindialog form .submit {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 24px;
+ }
+ .logindialog input:disabled, .logindialog button:disabled {
+ opacity: 0.7;
+ }
+
+ @media (min-width: 500px) {
+ .logindialog form {
+ width: 100%;
+ max-width: 450px;
+ margin: 8px auto;
+ }
+ .logindialog form .controls {
+ grid-template-columns: auto 1fr;
+ column-gap: 16px;
+ row-gap: 6px;
+ }
+ .logindialog form .controls > :nth-child(even):not(:last-child) {
+ margin-bottom: 0px;
+ }
+ }
@@ -256,6 +337,24 @@
+