xref: /template/kiwiki/script.js (revision 288dc3d794522cbcd22916487078728845da205e)
1(function ($) {
2  "use strict";
3  function _kiwikiChangeAdminLabels(label, level, title) {
4    $(label)
5      .parent()
6      .parent()
7      .html(
8        '<td colspan="2" class="kiwiki-styles"><' +
9          level +
10          ">" +
11          title +
12          "</" +
13          level +
14          "></td>"
15      );
16  }
17
18  var colorscheme = "lightmode";
19  if (
20    window.matchMedia &&
21    window.matchMedia("(prefers-color-scheme: dark)").matches
22  ) {
23    colorscheme = "darkmode";
24    console.log(colorscheme);
25  }
26  $(document).on("click", function (event) {
27    var trigger = $("nav.tools>div");
28    var search = $("div#open-search");
29    var thememode = $("div#theme-mode");
30
31    var menu = $(
32      "#kiwiki #dokuwiki__site #dokuwiki__content__wrapper #dokuwiki__aside .kiwiki-main-menu h3"
33    );
34
35    if ($(event.target).is(trigger)) {
36      if (!$(event.target).hasClass("active")) {
37        $(trigger).removeClass("active");
38        $(event.target).addClass("active");
39      }
40    } else {
41      $(trigger).removeClass("active");
42    }
43
44    if ($(event.target).is(search)) {
45      $(
46        "#dokuwiki__header > .dokuwiki__header__wrapper #dw__search"
47      ).toggleClass("open");
48    }
49
50    if ($(event.target).is(menu)) {
51      $(menu).parent().toggleClass("open");
52    }
53    if ($(event.target).is(thememode)) {
54      console.log(colorscheme);
55      if (!!$.cookie("theme")) {
56        if (!$("body").hasClass("darkmode")) {
57          $("body").removeClass("lightmode");
58          $("body").addClass("darkmode");
59          document.cookie = "theme=darkmode";
60        } else {
61          $("body").removeClass("darkmode");
62          $("body").addClass("lightmode");
63          document.cookie = "theme=lightmode";
64        }
65      } else {
66        if (colorscheme == "darkmode") {
67          $("body").addClass("lightmode");
68          document.cookie = "theme=lightmode";
69        } else {
70          $("body").addClass("darkmode");
71          document.cookie = "theme=darkmode";
72        }
73      }
74
75      /**/
76    }
77  });
78  _kiwikiChangeAdminLabels(
79    'label[for="tpl____kiwiki_color__"]',
80    "h3",
81    "Kiwiki"
82  );
83  _kiwikiChangeAdminLabels(
84    'label[for="tpl____kiwiki_light_colors__"]',
85    "h4",
86    "Light mode colors"
87  );
88  _kiwikiChangeAdminLabels(
89    'label[for="tpl____kiwiki_dark_colors__"]',
90    "h4",
91    "Dark mode colors"
92  );
93})(jQuery);
94