From b9a392f5f1db5c7de60e929fdcc0ca42885f81ca Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 13 May 2019 18:18:57 +0200 Subject: Added user based dark theme support Co-authored-by: LarsVomMars --- src/main/kotlin/DatabaseController.kt | 36 ++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'src/main/kotlin/DatabaseController.kt') diff --git a/src/main/kotlin/DatabaseController.kt b/src/main/kotlin/DatabaseController.kt index 24a8278..bdbdc18 100644 --- a/src/main/kotlin/DatabaseController.kt +++ b/src/main/kotlin/DatabaseController.kt @@ -35,6 +35,7 @@ class DatabaseController { val username = varchar("username", 24).uniqueIndex() val password = varchar("password", 64) val verification = varchar("verification", 64).uniqueIndex() + val darkTheme = bool("darkTheme").default(false) } /** @@ -161,13 +162,14 @@ class DatabaseController { } } - if (error) ctx.render("admin.rocker.html", model("message", "User already exists!")) + if (error) ctx.render("admin.rocker.html", model("message", "User already exists!", "ctx", ctx)) else ctx.render( "admin.rocker.html", model( - "message", "http://${ctx.host()}/user/register?username=$usernameString&token=$tokenString" + "message", "http://${ctx.host()}/user/register?username=$usernameString&token=$tokenString", + "ctx", ctx ) ) - } else ctx.render("admin.rocker.html", model("message", "Please only use alphabetical characters!")) + } else ctx.render("admin.rocker.html", model("message", "Please only use alphabetical characters!", "ctx", ctx)) } /** @@ -220,6 +222,34 @@ class DatabaseController { } } + /** + * Returns true when user uses dark theme + */ + fun isDarkTheme(userId: Int): Boolean { + return transaction { + try { + UserData.select { UserData.id eq userId }.map { it[UserData.darkTheme] }[0] + } catch (_: Exception) { + false + } + } + } + + /** + * Toggles the dark theme + */ + fun toggleDarkTheme(userId: Int) { + return transaction { + try { + UserData.update({ (UserData.id eq userId) }) { + it[darkTheme] = !isDarkTheme(userId) + } + } catch (_: Exception) { + // + } + } + } + /** * Returns the corresponding verification id using [usernameString] */ -- cgit v1.2.3