From 0cc5cdb9458ea990dde750454db21f6b9e6c1e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Henke?= Date: Fri, 29 Sep 2023 17:29:08 +0200 Subject: [PATCH] switch theme on every page --- build.gradle | 2 +- .../timetrack/modules/CommonController.java | 19 +++++++++++++++++++ .../timetrack/modules/IndexController.java | 2 +- .../modules/calendar/CalendarController.java | 3 ++- .../modules/contact/ContactController.java | 3 ++- .../modules/done/DoneController.java | 3 ++- .../modules/done/job/JobController.java | 3 ++- .../modules/done/module/ModuleController.java | 3 ++- .../done/project/ProjectController.java | 3 ++- .../modules/note/NoteController.java | 3 ++- .../modules/profile/ProfileController.java | 3 ++- src/main/resources/static/css/style.css | 6 +++++- src/main/resources/static/js/helper.js | 4 ++-- src/main/resources/templates/layout/main.html | 2 +- 14 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 src/main/java/de/jottyfan/timetrack/modules/CommonController.java diff --git a/build.gradle b/build.gradle index d461334..6c6a5c2 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ plugins { apply plugin: 'io.spring.dependency-management' group = 'de.jottyfan' -version = '1.3.3' +version = '1.3.4' description = """timetrack""" diff --git a/src/main/java/de/jottyfan/timetrack/modules/CommonController.java b/src/main/java/de/jottyfan/timetrack/modules/CommonController.java new file mode 100644 index 0000000..a410f82 --- /dev/null +++ b/src/main/java/de/jottyfan/timetrack/modules/CommonController.java @@ -0,0 +1,19 @@ +package de.jottyfan.timetrack.modules; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.ModelAttribute; +/** + * + * @author jotty + * + */ +public abstract class CommonController { + + @Value("${server.servlet.context-path}") + private String contextPath; + + @ModelAttribute("baseUrl") + public String getBaseUrl() { + return contextPath; + } +} diff --git a/src/main/java/de/jottyfan/timetrack/modules/IndexController.java b/src/main/java/de/jottyfan/timetrack/modules/IndexController.java index 9df1b39..0979591 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/IndexController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/IndexController.java @@ -30,7 +30,7 @@ import jakarta.servlet.http.HttpServletRequest; * */ @Controller -public class IndexController { +public class IndexController extends CommonController { private static final Logger LOGGER = LogManager.getLogger(IndexController.class); @Autowired diff --git a/src/main/java/de/jottyfan/timetrack/modules/calendar/CalendarController.java b/src/main/java/de/jottyfan/timetrack/modules/calendar/CalendarController.java index 73370f0..a59f7c1 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/calendar/CalendarController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/calendar/CalendarController.java @@ -6,6 +6,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import de.jottyfan.timetrack.component.OAuth2Provider; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.profile.ProfileService; /** @@ -14,7 +15,7 @@ import de.jottyfan.timetrack.modules.profile.ProfileService; * */ @Controller -public class CalendarController { +public class CalendarController extends CommonController { @Autowired private OAuth2Provider provider; diff --git a/src/main/java/de/jottyfan/timetrack/modules/contact/ContactController.java b/src/main/java/de/jottyfan/timetrack/modules/contact/ContactController.java index b5c6c63..3fd698a 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/contact/ContactController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/contact/ContactController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import de.jottyfan.timetrack.component.OAuth2Provider; import de.jottyfan.timetrack.db.contact.enums.EnumContacttype; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.profile.ProfileService; import jakarta.annotation.security.RolesAllowed; @@ -25,7 +26,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class ContactController { +public class ContactController extends CommonController { @Autowired private OAuth2Provider provider; diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java b/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java index 2624b37..8cbcff0 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/DoneController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.profile.ProfileService; import jakarta.annotation.security.RolesAllowed; @@ -24,7 +25,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class DoneController { +public class DoneController extends CommonController { @Autowired private OAuth2Provider provider; diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/job/JobController.java b/src/main/java/de/jottyfan/timetrack/modules/done/job/JobController.java index 7b08c78..3e35523 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/job/JobController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/job/JobController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.done.DoneController; import de.jottyfan.timetrack.modules.done.DoneModel; import de.jottyfan.timetrack.modules.profile.ProfileService; @@ -22,7 +23,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class JobController { +public class JobController extends CommonController { @Autowired private JobService jobService; diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/module/ModuleController.java b/src/main/java/de/jottyfan/timetrack/modules/done/module/ModuleController.java index 937da12..fad9fcf 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/module/ModuleController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/module/ModuleController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.done.DoneController; import de.jottyfan.timetrack.modules.done.DoneModel; import de.jottyfan.timetrack.modules.profile.ProfileService; @@ -22,7 +23,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class ModuleController { +public class ModuleController extends CommonController { @Autowired private ModuleService moduleService; diff --git a/src/main/java/de/jottyfan/timetrack/modules/done/project/ProjectController.java b/src/main/java/de/jottyfan/timetrack/modules/done/project/ProjectController.java index 0c434b3..942abf3 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/done/project/ProjectController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/done/project/ProjectController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.done.DoneController; import de.jottyfan.timetrack.modules.done.DoneModel; import de.jottyfan.timetrack.modules.profile.ProfileService; @@ -22,7 +23,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class ProjectController { +public class ProjectController extends CommonController { @Autowired private ProjectService projectService; diff --git a/src/main/java/de/jottyfan/timetrack/modules/note/NoteController.java b/src/main/java/de/jottyfan/timetrack/modules/note/NoteController.java index ef1b158..f8c6dd6 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/note/NoteController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/note/NoteController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; import de.jottyfan.timetrack.db.note.enums.EnumCategory; import de.jottyfan.timetrack.db.note.enums.EnumNotetype; +import de.jottyfan.timetrack.modules.CommonController; import de.jottyfan.timetrack.modules.profile.ProfileService; import jakarta.annotation.security.RolesAllowed; @@ -25,7 +26,7 @@ import jakarta.annotation.security.RolesAllowed; * */ @Controller -public class NoteController { +public class NoteController extends CommonController { @Autowired private OAuth2Provider provider; diff --git a/src/main/java/de/jottyfan/timetrack/modules/profile/ProfileController.java b/src/main/java/de/jottyfan/timetrack/modules/profile/ProfileController.java index 8ab3c18..e35fdf7 100644 --- a/src/main/java/de/jottyfan/timetrack/modules/profile/ProfileController.java +++ b/src/main/java/de/jottyfan/timetrack/modules/profile/ProfileController.java @@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import de.jottyfan.timetrack.component.OAuth2Provider; +import de.jottyfan.timetrack.modules.CommonController; /** * @@ -14,7 +15,7 @@ import de.jottyfan.timetrack.component.OAuth2Provider; * */ @Controller -public class ProfileController { +public class ProfileController extends CommonController { @Autowired private OAuth2Provider provider; diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css index a6abf0b..e3d1fe3 100644 --- a/src/main/resources/static/css/style.css +++ b/src/main/resources/static/css/style.css @@ -226,13 +226,17 @@ body { .version { font-size: small; - color: silver; + color: black; position: absolute; padding-top: 36px; padding-left: 22px; z-index: 0; } +[data-bs-theme="dark"] .version { + color: white; +} + .fc-content { cursor: pointer; } diff --git a/src/main/resources/static/js/helper.js b/src/main/resources/static/js/helper.js index ee7ba27..7f4475a 100644 --- a/src/main/resources/static/js/helper.js +++ b/src/main/resources/static/js/helper.js @@ -1,8 +1,8 @@ -toggleTheme = function() { +toggleTheme = function(urlprefix) { var oldValue = $("html").attr("data-bs-theme"); var newValue = oldValue == "dark" ? "light" : "dark"; $("html").attr("data-bs-theme", newValue); - var url = "profile/" + newValue; + var url = urlprefix + "/profile/" + newValue; $.ajax({ url: url, dataType: 'json', diff --git a/src/main/resources/templates/layout/main.html b/src/main/resources/templates/layout/main.html index a21613c..082aa91 100644 --- a/src/main/resources/templates/layout/main.html +++ b/src/main/resources/templates/layout/main.html @@ -47,7 +47,7 @@
  • - +