Skip to content
Snippets Groups Projects
Commit 2210d085 authored by Michael Long's avatar Michael Long
Browse files

darkmode can be disabled in modopts.ini, and darkmode will use macos...

darkmode can be disabled in modopts.ini, and darkmode will use macos preferences if not set previously
parent 13ae760a
No related branches found
No related tags found
2 merge requests!463MRC mods by Codefenix (2024-10-20),!68dark mode for webv4
......@@ -174,3 +174,5 @@
forum_extended_ascii=false
max_messages=0
nodelist_ibbs = true
darkmode_off=false
......@@ -49,6 +49,7 @@
</ul>
<ul class="nav navbar-nav navbar-right">
<?xjs if (!settings.darkmode_off) { ?>
<li class="nav-item dark-switch">
<div class="form-group">
<div class="checkbox checbox-switch darkswitchbox">
......@@ -59,6 +60,7 @@
</div>
</div>
</li>
<?xjs } ?>
<?xjs if (user.alias === settings.guest || user.number < 1) { ?>
<?xjs if (settings.user_registration) { ?>
<li>
......
......@@ -56,7 +56,9 @@
<link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="./css/offcanvas.css" rel="stylesheet">
<link href="./css/style.css" rel="stylesheet">
<?xjs if (!settings.darkmode_off) { ?>
<link href="./css/checkbox.css" rel="stylesheet">
<?xjs } ?>
<? if (file_exists(settings.web_root + 'css/custom.css')) { ?>
<link href="./css/custom.css" rel="stylesheet">
<? } ?>
......
......@@ -91,18 +91,22 @@ function registerEventListener(scope, callback, params) {
};
}
document.addEventListener("DOMContentLoaded", function(){
document.addEventListener("DOMContentLoaded", function () {
// originally based on dark-mode-switch by Christian Oliff
var darkSwitch = document.getElementById("darkSwitch");
if (darkSwitch) {
initTheme();
darkSwitch.addEventListener("change", function(event) {
darkSwitch.addEventListener("change", function (event) {
resetTheme();
});
function initTheme() {
var darkThemeSelected =
localStorage.getItem("darkSwitch") !== null &&
localStorage.getItem("darkSwitch") === "dark";
var darkThemeSelected;
if (localStorage.getItem("darkSwitch") !== null) {
darkThemeSelected = localStorage.getItem("darkSwitch") === "dark";
} else {
darkThemeSelected = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
}
darkSwitch.checked = darkThemeSelected;
if (darkThemeSelected) {
jQuery("body").addClass("dark")
......@@ -110,13 +114,14 @@ document.addEventListener("DOMContentLoaded", function(){
jQuery("body").removeClass("dark");
}
}
function resetTheme() {
if (darkSwitch.checked) {
jQuery("body").addClass("dark");
localStorage.setItem("darkSwitch", "dark");
} else {
jQuery("body").removeClass("dark");
localStorage.removeItem("darkSwitch");
localStorage.setItem("darkSwitch", "light");
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment