summaryrefslogtreecommitdiff
path: root/includes/components
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-11-18 11:34:36 +0100
committerRaindropsSys <raindrops@equestria.dev>2023-11-18 11:34:36 +0100
commit9337aae8b1c87fad34884dacd5cd79d9591c60db (patch)
tree5340f9fa67cd6236e4c879f0057d51d0b1e21361 /includes/components
parent953ddd82e48dd206cef5ac94456549aed13b3ad5 (diff)
downloadpluralconnect-9337aae8b1c87fad34884dacd5cd79d9591c60db.tar.gz
pluralconnect-9337aae8b1c87fad34884dacd5cd79d9591c60db.tar.bz2
pluralconnect-9337aae8b1c87fad34884dacd5cd79d9591c60db.zip
Updated 39 files, added 86 files, deleted 40 files and renamed 2 files (automated)
Diffstat (limited to 'includes/components')
-rw-r--r--includes/components/2023ui.inc13
-rw-r--r--includes/components/explicit.php130
-rw-r--r--includes/components/footer.inc40
-rw-r--r--includes/components/fullbanner.inc6
-rw-r--r--includes/components/header.inc326
-rw-r--r--includes/components/mobilenav.inc89
-rw-r--r--includes/components/navigation.inc448
-rw-r--r--includes/components/pane.inc132
-rw-r--r--includes/components/timeline.inc2
9 files changed, 24 insertions, 1162 deletions
diff --git a/includes/components/2023ui.inc b/includes/components/2023ui.inc
index 8e9dc69..d0792ec 100644
--- a/includes/components/2023ui.inc
+++ b/includes/components/2023ui.inc
@@ -99,7 +99,7 @@
<div style="height: 52px; display: flex; align-items: center;">
<a href="/" style="color: inherit; text-decoration: inherit;">
<img class="antialias" src="/assets/logo/newlogo-ng.png" style="width: 32px;">
- <span style="margin-left: 5px; vertical-align: middle; position: relative; top: -1px; font-weight: bold;">Cold Haze</span>
+ <span style="margin-left: 5px; vertical-align: middle; position: relative; top: -1px; font-weight: bold;">Ponycule</span>
</a>
</div>
<div style="display: flex; align-items: center;">
@@ -188,10 +188,10 @@
<div id="side-bar" style="position: fixed; top: 62px; bottom: 20px; left: 0; width: 64px; display: flex; justify-content: center;">
<div>
<div id="side-bar-systems" style="background-color: var(--palette-4); height: max-content; border-radius: 999px;">
- <a data-bs-toggle="tooltip" data-bs-placement="right" title="Cloudburst System" class="ui2023-side-bar-system" href="/cloudburst" style="padding: 8px; height: 48px; width: 48px; display: block; border-bottom-left-radius: 999px; border-bottom-right-radius: 999px;">
+ <a data-bs-toggle="tooltip" data-bs-placement="right" title="Cloudburst System" class="ui2023-side-bar-system" href="/cloudburst" style="padding: 8px; height: 48px; width: 48px; display: block; border-top-left-radius: 999px; border-top-right-radius: 999px;">
<img class="antialias" src="<?= getAsset("ynmuc") ?>" style="max-width: 32px; max-height: 32px;">
</a>
- <a data-bs-toggle="tooltip" data-bs-placement="right" title="Raindrops System" class="ui2023-side-bar-system" href="/raindrops" style="padding: 8px; height: 48px; width: 48px; display: block; border-top-left-radius: 999px; border-top-right-radius: 999px;">
+ <a data-bs-toggle="tooltip" data-bs-placement="right" title="Raindrops System" class="ui2023-side-bar-system" href="/raindrops" style="padding: 8px; height: 48px; width: 48px; display: block;">
<img class="antialias" class="antialias" src="<?= getAsset("gdapd") ?>" style="max-width: 32px; max-height: 32px;">
</a>
<?php global $app; if ($isLoggedIn || $isLowerLoggedIn): ?>
@@ -199,7 +199,7 @@
<img class="antialias" class="antialias" src="<?= getAsset("other") ?>" style="max-width: 32px; max-height: 32px;">
</a>
<?php endif; ?>
- <a data-bs-toggle="tooltip" data-bs-placement="right" title="Moonglow" class="ui2023-side-bar-system" href="/moonglow" style="padding: 8px; height: 48px; width: 48px; display: block; border-top-left-radius: 999px; border-top-right-radius: 999px;">
+ <a data-bs-toggle="tooltip" data-bs-placement="right" title="Moonglow" class="ui2023-side-bar-system" href="/moonglow" style="padding: 8px; height: 48px; width: 48px; display: block; border-bottom-left-radius: 999px; border-bottom-right-radius: 999px;">
<img class="antialias" class="antialias" src="<?= getAsset("hrbom") ?>" style="max-width: 32px; max-height: 32px;">
</a>
</div>
@@ -209,13 +209,10 @@
<img src="<?= icon("relations") ?>" style="max-width: 28px; max-height: 28px;">
</a>
- <?php if ($isLowerLoggedIn || $isLoggedIn): ?>
+ <?php if ($isLoggedIn): ?>
<div class="mobile-hide" style="margin: 10px 0; width: 48px; height: 2px; background-color: var(--palette-2);"></div>
<div class="mobile-show" style="display: none; margin: 0 10px; height: 48px; width: 2px; background-color: var(--palette-2); vertical-align: middle;"></div>
- <a data-bs-toggle="tooltip" data-bs-placement="right" title="Schedules" class="ui2023-side-bar-item" href="/-/schedules" style="padding: 10px; height: 48px; width: 48px; display: block; border-radius: 999px;">
- <img src="<?= icon("schedule") ?>" style="max-width: 28px; max-height: 28px;">
- </a>
<a data-bs-toggle="tooltip" data-bs-placement="right" title="Money tracker" class="ui2023-side-bar-item" href="/-/money" style="padding: 10px; height: 48px; width: 48px; display: block; border-radius: 999px;">
<img src="<?= icon("money") ?>" style="max-width: 28px; max-height: 28px;">
</a>
diff --git a/includes/components/explicit.php b/includes/components/explicit.php
deleted file mode 100644
index 3e7675c..0000000
--- a/includes/components/explicit.php
+++ /dev/null
@@ -1,130 +0,0 @@
-<?php global $isLoggedIn; global $isLowerLoggedIn; global $_PROFILE; global $app; if ($isLoggedIn || $isLowerLoggedIn): ?>
-<div class="modal" id="explicit-modal" data-bs-backdrop="static" data-bs-keyboard="false">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-body" style="text-align: center;">
- <img alt="" style="width: 64px; height: 64px;" src="/assets/icons/explicit.svg">
- <h3>This content is sexually explicit</h3>
-
- <p>This page shows uncensored graphically explicit sexual content that you may not want to see in some cases. Please refrain from visiting this part of the website in a public place.</p>
- <p>By continuing, you agree to be presented with sexually explicit content that is not appropriate for everyone.</p>
-
- <span onclick="explicitConfirm();" id="explicit-modal-confirm" class="btn btn-primary">Continue</span>
- <span onclick="explicitCancel();" id="explicit-modal-cancel" class="btn btn-outline-secondary">Go back</span>
-
- <label style="margin-top:10px; display: block; text-align: left; opacity: .5;">
- <input checked type="checkbox" class="form-check-input" id="explicit-modal-hour">
- Don't show for the next hour
- </label>
- </div>
- </div>
- </div>
-</div>
-
-<?php global $use2023UI; if (!$use2023UI): ?>
- <style>
- #explicit-modal .modal-header {
- border-bottom: 1px solid #353738;
- }
-
- #explicit-modal .modal-content {
- border: 1px solid rgba(255, 255, 255, .2);
- background-color: #111;
- }
- </style>
-<?php endif; ?>
-
-<!--suppress JSVoidFunctionReturnValueUsed -->
-<script>
- window.explicitModal = new bootstrap.Modal(document.getElementById("explicit-modal"));
- window.ip = "<?= $_SERVER['REMOTE_ADDR'] ?>";
- window.front = "<?php
-
- $front = [];
- $id = null;
-
- if ($_PROFILE["login"] === "raindrops") {
- $id = "gdapd";
- } else if ($_PROFILE["login"] === "cloudburst") {
- $id = "ynmuc";
- } else {
- $id = $app["other"]["id"];
- }
-
- $fronters = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$id/fronters.json"), true)["members"];
- $front = array_map(function ($i) {
- return $i["id"];
- }, $fronters);
-
- echo(implode(",", $front));
-
- ?>";
- window.age = <?php
-
- if (isset($front[0]) && file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $front[0] . ".json")) {
- $metadata = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $front[0] . ".json"), true);
- $age = null;
-
- if (isset($metadata["birth"]["age"]) && $metadata["birth"]["age"] !== 0) {
- $age = $metadata["birth"]["age"];
- } else if (isset($metadata["birth"]["year"]) && $metadata["birth"]["year"] > 1990) {
- $age = (int)date('Y') - $metadata["birth"]["year"] + (strtotime(date('Y') . "-" . $metadata["birth"]["date"]) <= time() ? 0 : -1);
- }
-
- if (is_string($age) && isset(explode("-", $age)[1]) && is_numeric(explode("-", $age)[1])) {
- $age = (int)explode("-", $age)[1];
- }
-
- echo($age);
- }
-
- ?>;
- window.explicitCancelAction = "back";
-
- function requestExplicit(ifNotAgreed, allowUnderage) {
- window.explicitCancelAction = ifNotAgreed;
-
- if (!allowUnderage && window.age !== -1 && (window.age < 15 || !window.age)) {
- document.getElementById("explicit-modal-confirm").classList.add("disabled");
- document.getElementById("explicit-modal-hour").disabled = true;
-
- window.explicitModal.show();
- document.getElementById("explicit-modal").classList.add("fade");
- }
-
- if (!localStorage.getItem("explicit-consent")) {
- window.explicitModal.show();
- document.getElementById("explicit-modal").classList.add("fade");
- } else {
- let parts = localStorage.getItem("explicit-consent").split("|");
-
- if (parts[0] !== window.front || parts[1] !== window.ip || new Date().getTime() - parseInt(parts[2]) > 3600000) {
- window.explicitModal.show();
- document.getElementById("explicit-modal").classList.add("fade");
- }
- }
- }
-
- function explicitConfirm() {
- window.explicitModal.hide();
-
- if (document.getElementById("explicit-modal-hour").checked) {
- localStorage.setItem("explicit-consent", window.front + "|" + window.ip + "|" + new Date().getTime());
- }
- }
-
- function explicitCancel() {
- if (window.explicitCancelAction === "refresh") {
- location.reload();
- } else {
- if (history.length > 1) {
- if (history.back() === undefined) {
- location.href = "https://ponies.equestria.horse";
- }
- } else {
- location.href = "https://ponies.equestria.horse";
- }
- }
- }
-</script>
-<?php endif; ?>
diff --git a/includes/components/footer.inc b/includes/components/footer.inc
index a348ce4..c062436 100644
--- a/includes/components/footer.inc
+++ b/includes/components/footer.inc
@@ -2,37 +2,11 @@
global $start;
$GLOBALS["ColdHazePerformance"]["page"] = (microtime(true) - $start) * 1000;
$start = microtime(true);
-global $pageFile;
-global $use2023UI;
?>
<script src="/assets/editor/ua-parser.js"></script>
-<?php if (!$use2023UI): ?>
-<div id="footer-pre"></div>
-<div id="footer">
- <hr>
- <div class="container text-muted">
- <?php
-
- $refresh = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/refresh.json"), true);
- $version = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/version.json"), true);
-
- global $lang; global $pages;
-
- $time = microtime(true) - $GLOBALS["ColdHazeStart"];
-
- ?>
- © 2022-<?= date("Y") ?> <a href="https://equestria.dev" target="_blank" class="text-muted"><?= $lang["footer"]["copyright"] ?></a> · build <?= $version["build"] ?>.<?= $version["revision"] ?>, took <?= round($time * 1000, 2) ?> ms
- <?php global $use2023UI; global $isLoggedIn; global $isLowerLoggedIn; global $_PROFILE; if (($isLoggedIn || $isLowerLoggedIn) && !$use2023UI && ((isset($_COOKIE["enable2023UIcta"]) && $_COOKIE["enable2023UIcta"] === "yes") || ($_PROFILE["login"] === "raindrops"))) { ?>
- <br>
- <a class="text-muted" href="#" data-bs-toggle="modal" data-bs-target="#new-ui-cta" onclick="newShape();">Enable Cold Haze's experimental new shape</a>
- <?php } ?>
- <br><br><br><br><br>
- </div>
-</div>
-<?php else: ?><br><br><?php endif; ?>
-</main>
+<br><br></main>
<script>
let tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
@@ -40,15 +14,7 @@ global $use2023UI;
return new bootstrap.Tooltip(tooltipTriggerEl)
});
- <?php if (!$use2023UI): ?>
- Array.from(document.querySelectorAll('[data-bs-toggle="tooltip"]')).forEach((item) => {
- if (!item.classList.contains("tooltip-nohelp")) {
- item.style.cursor = "help";
- }
- });
- <?php endif; ?>
-
- //window.fetch("/api/rename?name=" + encodeURIComponent("Cold Haze Web (" + UAParser().browser.name + " on " + UAParser().os.name + ")"));
+ window.fetch("/api/rename?name=" + encodeURIComponent("Cold Haze Web (" + UAParser().browser.name + " on " + UAParser().os.name + ")"));
if (document.createElement("canvas").getContext("webgl") === null) {
let style = document.createElement("style");
@@ -62,7 +28,5 @@ global $use2023UI;
<pre><?php $GLOBALS["ColdHazePerformance"]["footer"] = (microtime(true) - $start) * 1000; var_dump($GLOBALS["ColdHazePerformance"]); ?></pre>
<?php endif; ?>
-<?php global $isLoggedIn; global $isLowerLoggedIn; if ($isLoggedIn || $isLowerLoggedIn) require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/explicit.php"; ?>
-
</body>
</html> \ No newline at end of file
diff --git a/includes/components/fullbanner.inc b/includes/components/fullbanner.inc
index 8d3f4a1..960ae0a 100644
--- a/includes/components/fullbanner.inc
+++ b/includes/components/fullbanner.inc
@@ -4,14 +4,14 @@
</script>
<div id="member-banner"></div>
-<script src="/assets/logo/banner.js"></script><script>refreshBanner(false, <?= $lang["_french"] ? "true" : "false" ?>)</script>
+<script src="/assets/logo/banner.js?_=<?= sha1_file($_SERVER['DOCUMENT_ROOT'] . "/assets/logo/banner.js") ?>"></script><script>refreshBanner(false, <?= $lang["_french"] ? "true" : "false" ?>)</script>
-<?php if ($travelling[$memberID]['travelling'] && !$travelling[$memberID]['equestria']): ?>
+<?php if (isset($travelling[$memberID]) && $travelling[$memberID]['travelling'] && !$travelling[$memberID]['equestria']): ?>
<br>
<div class="alert alert-primary" style="margin-bottom: 0 !important;">
<?= getMiniName($memberData["display_name"] ?? $memberData["name"]) ?> <?= $lang["fullbanner"]["visit"][0] ?> <?= $systemID === "ynmuc" ? "Raindrops System" : "Cloudburst System" ?><?= str_replace("%1", getMemberPronouns($memberData["pronouns"])["subjective"], str_replace("%2", getMemberPronouns($memberData["pronouns"])["third"] ? "is" : "are", $lang["fullbanner"]["visit"][1])) ?><?= $systemCommonName ?>.
</div>
-<?php elseif ($travelling[$memberID]['travelling'] && $travelling[$memberID]['equestria']): ?>
+<?php elseif (isset($travelling[$memberID]) && $travelling[$memberID]['travelling'] && $travelling[$memberID]['equestria']): ?>
<br>
<div class="alert alert-primary" style="margin-bottom: 0 !important;">
<?= getMiniName($memberData["display_name"] ?? $memberData["name"]) ?> is on a trip to <?= $metadata["fictive"] ? "Equestria" : "Celeste" ?>. <?= str_replace("%1", getMemberPronouns($memberData["pronouns"])["subjective"], str_replace("%2", getMemberPronouns($memberData["pronouns"])["third"] ? "is" : "are", "Therefore %1 %2 currently not in the ")) ?><?= $systemCommonName ?>.
diff --git a/includes/components/header.inc b/includes/components/header.inc
index 5ab13dc..9409917 100644
--- a/includes/components/header.inc
+++ b/includes/components/header.inc
@@ -1,13 +1,8 @@
<?php global $title; global $pages; global $readOnly;
$start = microtime(true);
-$useNewUI = !isset($_GET['old']);
-$use2023UI = !isset($_GET["no2023"]);
+$use2023UI = $useNewUI = true;
global $use2023UI;
-if (!isset($_COOKIE["new2023UIctaFirstVisit"])) {
- setcookie("new2023UIctaFirstVisit", time(), time() + 86400*365, "/", "", true, true);
-}
-
$isNormallyLoggedIn = false;
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/session.inc"; global $isLoggedIn; global $isUserLoggedIn; global $isLowerLoggedIn;
@@ -19,23 +14,6 @@ if ($readOnly && $isLoggedIn || $readOnly && $isUserLoggedIn) {
$pages = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/pages.json"), true);
-if (!function_exists("error")) {
- function error($errno, $errstr, $file, $line) {
- echo('
- <!-- -->">
- <div class="alert alert-danger" style="text-align: left;">
- <b>Error ' . $errno . ':</b> ' . $errstr . ' [' . $file . ':' . $line . ']
- </div>');
- }
-}
-
-if (isset($_GET['errors'])) {
- ini_set('display_errors', '1');
- ini_set('display_startup_errors', '1');
- error_reporting(E_ALL);
- set_error_handler("error", E_ALL);
-}
-
global $_MemberName;
global $_MemberPage;
global $_SystemName;
@@ -49,11 +27,9 @@ $page = $pages[$toplevel] ?? [
require_once $_SERVER["DOCUMENT_ROOT"] . "/includes/util/travelling.inc"; global $travelling;
require_once $_SERVER["DOCUMENT_ROOT"] . "/includes/util/score.inc";
-require_once $_SERVER["DOCUMENT_ROOT"] . "/includes/util/pronouns.inc";
-require_once $_SERVER["DOCUMENT_ROOT"] . "/includes/util/bitset.inc";
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/banner.inc";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/rainbow.inc";
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
?>
<!doctype html>
@@ -62,184 +38,19 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
<script>
document.cookie = "new2023UIDarkMode=" + (window.matchMedia("(prefers-color-scheme: dark)").matches ? "yes" : "no") + "; max-age=" + (60*60*24*365) + "; path=/; samesite; secure";
</script>
- <link href="/assets/logo/custom<?= $use2023UI ? "-2023" : "" ?>.css" rel="preload" as="style">
- <link href="/assets/logo/light<?= $use2023UI ? "-2023" : "" ?>.css" rel="preload" as="style">
- <link href="/assets/logo/custom<?= $use2023UI ? "-2023" : "" ?>.css" rel="stylesheet">
+ <link href="/assets/logo/custom-2023.css" rel="preload" as="style">
+ <link href="/assets/logo/light-2023.css" rel="preload" as="style">
+ <link href="/assets/logo/custom-2023.css" rel="stylesheet">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
- <title><?= $title && $title !== "-" ? $title . " · " : "" ?>Cold Haze</title>
- <link rel="shortcut icon" href="/assets/logo/<?php if ($use2023UI): ?>newlogo-ng<?php else: ?>newlogo<?= $isLoggedIn || $isLowerLoggedIn ? "3" : "" ?><?php endif; ?>.png" type="image/png">
- <link href="/assets/logo/light<?= $use2023UI ? "-2023" : "" ?>.css" rel="stylesheet">
+ <title><?= $title && $title !== "-" ? $title . " · " : "" ?>Ponycule</title>
+ <link rel="shortcut icon" href="/assets/logo/newlogo-ng.png" type="image/png">
+ <link href="/assets/logo/light-2023.css" rel="stylesheet">
</head>
-<body<?php if (!$use2023UI): ?> style="background-color: #000;"<?php else: ?> style="background-color: var(--palette-1);"<?php endif; ?>>
- <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/navigation.inc"; global $navigation; ?>
-
- <?php if (!$useNewUI): ?>
- <div style="margin-top: 60px;" id="top-of-page"></div>
- <?php endif; ?>
-
- <?php if ($useNewUI && !$use2023UI): ?>
- <aside id="navigation-pane">
- <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/pane.inc"; ?>
- </aside>
-
- <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/mobilenav.inc"; ?>
-
- <style>
- body {
- margin-left: 300px;
- }
-
- .modal.show {
- left: 300px;
- width: calc(100% - 300px);
- }
-
- .modal {
- left: 150px;
- }
-
- nav {
- display: none !important;
- }
-
- #navigation-pane {
- z-index: 9999;
- background: black;
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- width: 300px;
- border-right: 1px solid rgba(255, 255, 255, .25);
- overflow: auto;
- }
-
- #title-bar {
- position: fixed;
- top: 0;
- left: 300px;
- right: 0;
- height: 34px;
- background: rgba(0, 0, 0, .75);
- z-index: 9999;
- padding: 5px;
- text-align: center;
- backdrop-filter: blur(10px);
- -webkit-backdrop-filter: blur(10px);
- border-bottom: 1px solid rgba(255, 255, 255, .25);
- }
-
- #mobile-navigation {
- display: none;
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
- height: 48px;
- background: rgba(0, 0, 0, .75);
- backdrop-filter: blur(30px);
- -webkit-backdrop-filter: blur(30px);
- border-top: 1px solid rgba(255, 255, 255, .25);
- z-index: 999999;
- }
-
- @media (max-width: 1360px) {
- .modal.show {
- left: 250px !important;
- width: calc(100% - 250px) !important;
- }
-
- .modal {
- left: 125px !important;
- }
-
- #title-bar {
- left: 250px !important;
- }
-
- #navigation-pane {
- width: 250px !important;
- }
-
- body {
- margin-left: 250px !important;
- }
-
- #system-banner-container, #member-banner-container {
- width: 100% !important;
- }
- }
-
- @media (max-width: 1300px) {
- .modal.show {
- left: 200px !important;
- width: calc(100% - 200px) !important;
- }
-
- .modal {
- left: 100px !important;
- }
-
- #title-bar {
- left: 200px !important;
- }
-
- #navigation-pane {
- width: 200px !important;
- }
-
- body {
- margin-left: 200px !important;
- }
- }
-
- @media (max-width: 1195px) {
- .modal.show {
- left: 0 !important;
- width: 100% !important;
- }
-
- .modal {
- left: 0 !important;
- }
-
- #title-bar {
- left: 0 !important;
- }
-
- #navigation-pane {
- display: none !important;
- }
-
- body {
- margin-left: 0 !important;
- }
-
- #mobile-navigation {
- display: block !important;
- }
- }
-
- @media (max-width: 700px) {
- #title-bar-parts-mobile {
- display: inline !important;
- }
-
- #title-bar-parts-desktop {
- display: none;
- }
-
- #title-bar {
- text-align: left;
- }
- }
- </style>
- <?php endif; ?>
-
- <?php if ($use2023UI) {
+<body style="background-color: var(--palette-1);">
+ <?php
$palettes = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/themes.json"), true);
$selectedPalette = $palettes["default"];
@@ -658,119 +469,8 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
}
}
</style>
- <?php }
- } ?>
-
- <?php if ($use2023UI): ?>
- <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/2023ui.inc"; ?>
- <?php endif; ?>
-
-<?php if (isset($_GET["mini"]) || str_contains($_SERVER["HTTP_USER_AGENT"], "+ColdHazeDesktop")) {
- ?>
- <style>
- #navigation-pane, #title-bar, #footer, #titlebar-separator, #mobile-navigation, #global-search-container {
- display: none !important;
- }
-
- body {
- margin-left: 0 !important;
- }
- </style>
-<?php } if (str_contains($_SERVER["HTTP_USER_AGENT"], "+ColdHazeDesktop")) { ?>
-<style>
- body {
- background: #222 !important;
- }
-
- .container {
- margin-left: 10px;
- margin-right: 10px;
- max-width: calc(100vw - 20px);
- }
-
- h2 {
- display: none;
- }
-</style>
-<?php }
-
-if (
- (($isLoggedIn || $isLowerLoggedIn) && !$use2023UI && isset($_COOKIE["enable2023UIcta"]) && $_COOKIE["enable2023UIcta"] === "yes") ||
- (isset($_COOKIE["force2023UIcta"]) && $_COOKIE["force2023UIcta"] === "yes" && !$use2023UI) ||
- (($isLoggedIn || $isLowerLoggedIn) && isset($_PROFILE) && !$use2023UI)
-) { ?>
- <div class="modal fade" id="new-ui-cta">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-body">
- <img src="/assets/logo/light.svg" style="width: 100%; margin-bottom: 20px;" class="cta-light">
- <img src="/assets/logo/dark.svg" style="width: 100%; margin-bottom: 20px;" class="cta-dark">
- <style>
- @media (prefers-color-scheme: light) {
- .cta-dark {
- display: none;
- }
- }
-
- @media (prefers-color-scheme: dark) {
- .cta-light {
- display: none;
- }
-
- #new-ui-cta .modal-header {
- border-bottom: 1px solid #353738;
- }
-
- #new-ui-cta .modal-content {
- border: 1px solid rgba(255, 255, 255, .2);
- background-color: #111;
- }
- }
- </style>
- <h3 style="text-align: center;">There is more to it</h3>
- <p style="text-align: center;">Cold Haze is getting a new shape. Help us improve it by testing it early before it is made publicly available.</p>
- <p style="text-align: center;">The new design is colorful, clean, modern, simple, fast, and gives you access to what you need the most.</p>
- <div style="text-align: center;"><a class="btn btn-primary" href="/api/2023ui">Try it now</a> <a data-bs-dismiss="modal" onclick="localStorage.setItem('dismissed2023cta', '')" class="btn btn-outline-secondary">Maybe later</a></div>
- <hr>
- <div class="small text-muted">Some features are not available in the new design. <a href="https://bugs.equestria.dev/articles/CH-A-1/New-design-FAQ" target="_blank">Learn more.</a></div>
- <!-- Equestria.dev makes no guarantee whatsoever that, after turning on this experimental feature, Cold Haze will continue working as intended. Access to emergency features might be unavailable while this option is turned on. Temporarily turning it off is possible using the "no2023" URL parameter. -->
- </div>
- </div>
- </div>
- </div>
-
- <script>
- if (localStorage.getItem("dismissed2023cta") === null) {
- let modal = new bootstrap.Modal(document.getElementById("new-ui-cta"));
- modal.show();
- }
- </script>
-<?php }
-
-if ($use2023UI && isset($_GET["ui2023intro"])) { ?>
- <div class="modal fade" id="new-ui-success">
- <div class="modal-dialog">
- <div class="modal-content">
- <div class="modal-body" style="text-align: center;">
- <img src="<?= icon("wave", false) ?>" class="light-only" style="height: 56px; margin: 10px 0;">
- <img src="<?= icon("wave", true) ?>" class="dark-only" style="height: 56px; margin: 10px 0;">
- <h3 style="text-align: center;">Welcome to a new experience</h3>
- <p style="text-align: center;">The new design is now activated and you can use it now.</p>
- <p style="text-align: center;">Please remember that it is currently experimental and you should report any issue you encounter.</p>
- <div style="text-align: center;"><a data-bs-dismiss="modal" onclick="localStorage.setItem('dismissed2023cta', '')" class="btn btn-outline-primary">Done</a></div>
- <hr>
- <div class="small text-muted">Some features are not available in the new design. <a href="">Learn more.</a></div>
- </div>
- </div>
- </div>
- </div>
-
- <script>
- let modal = new bootstrap.Modal(document.getElementById("new-ui-success"));
- modal.show();
- </script>
-<?php }
+ <?php } ?>
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/explicit.php";
-$GLOBALS["ColdHazePerformance"]["header"] = (microtime(true) - $start) * 1000; $start = microtime(true); ?>
+ <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/components/2023ui.inc"; ?>
+<?php $GLOBALS["ColdHazePerformance"]["header"] = (microtime(true) - $start) * 1000; $start = microtime(true); ?>
<main id="app" style="background-color: var(--palette-0);"> \ No newline at end of file
diff --git a/includes/components/mobilenav.inc b/includes/components/mobilenav.inc
deleted file mode 100644
index e42e9ab..0000000
--- a/includes/components/mobilenav.inc
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php global $use2023UI; global $navigation; global $isLoggedIn; global $isLowerLoggedIn; if (!$use2023UI): ?>
-<div id="mobile-navigation">
- <div id="mobile-navigation-container" class="container" style="display: grid; grid-template-columns: repeat(<?= count(array_values(array_filter($navigation, function ($item) use ($isLoggedIn) {
- return !$item["admin"] || $isLoggedIn;
- }))) + 1 ?>, 1fr); height: 100%;">
- <a title="Cold Haze" data-bs-toggle="tooltip" href="/" id="mobile-navigation-item--logo" class="tooltip-nohelp mobile-navigation-item">
- <img src="/assets/logo/newlogo.png" alt="" style="width:24px;vertical-align: middle;">
- </a>
- <?php foreach ($navigation as $id => $item): if (!$item["admin"] || $isLoggedIn): ?>
- <a onclick="toggleMobileNavigation('<?= $id ?>');" title="<?= $item["name"] ?>" data-bs-toggle="tooltip" id="mobile-navigation-item-<?= $id ?>" class="tooltip-nohelp mobile-navigation-item">
- <img src="<?= $item["icon"] ?>" <?php if ($item["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style="width:24px;vertical-align: middle;border-radius:3px;">
- </a>
- <?php endif; endforeach; ?>
- </div>
-</div>
-
-<div id="mobile-navigation-box-container" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 48px; background-color: rgba(0, 0, 0, .75); backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px); z-index: 99999; overflow: auto;">
- <?php foreach ($navigation as $id => $item): if (!$item["admin"] || $isLoggedIn): ?>
- <div id="mobile-navigation-box-<?= $id ?>" style="display: none; margin-top: 10px; margin-bottom: 10px;" class="mobile-navigation-box container">
- <div class="pane-group-title">
- <img src="<?= $item["icon"] ?>" <?php if ($item["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style="width:24px;vertical-align: middle;">
- <span style="vertical-align: middle;"><?= $item["name"] ?></span>
- </div>
-
- <?php foreach ($item["items"] as $category): ?>
- <div class="pane-group-category <?= $category["minimal"] ? "pane-group-category-minimal" : "" ?>" <?= $category["minimal"] ? 'style="display: grid; grid-template-columns: repeat(' . ($isLowerLoggedIn ? 2 : 3) . ', 1fr); grid-gap: 10px;"' : "" ?>>
- <?php if (isset($category["name"])): ?>
- <div class="pane-group-category-title"><?= $category["name"] ?></div>
- <?php endif; ?>
- <?php foreach ($category["items"] as $link): if (isset($link)): if (!($isLowerLoggedIn && $link["private"])): ?>
- <a class="pane-group-item" href="<?= $link["link"] ?>">
- <img src="<?= $link["icon"] ?>" <?php if ($link["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style="width:24px; border-radius: 5px; vertical-align: middle;">
- <?php if (!$category["minimal"]): ?><span style="vertical-align: middle;<?= isset($link["stepped"]) ? "color: $link[stepped];" : "" ?>"><?= isset($link["stepped"]) ? "<b>$link[name]</b>" : $link["name"] ?></span><?php endif; ?>
- </a>
- <?php endif; endif; endforeach; ?>
- </div>
- <?php endforeach; ?>
- </div>
- <?php endif; endforeach; ?>
-</div>
-
-<style>
- .mobile-navigation-item {
- display: flex;
- cursor: pointer;
- align-items: center;
- justify-content: center;
- }
-
- .mobile-navigation-item:hover {
- background: rgba(255, 255, 255, .1);
- }
-
- .mobile-navigation-item:active, .mobile-navigation-item:focus, .mobile-navigation-item.open {
- background: rgba(255, 255, 255, .25);
- }
-</style>
-
-<script>
- function closeMobileNavigation() {
- document.getElementById("mobile-navigation-box-container").style.display = "none";
- document.body.style.overflow = "";
-
- Array.from(document.getElementsByClassName("mobile-navigation-item")).forEach((i) => {
- i.classList.remove("open");
- });
-
- Array.from(document.getElementsByClassName("mobile-navigation-box")).forEach((i) => {
- i.style.display = "none";
- });
- }
-
- function openMobileNavigation(id) {
- document.getElementById("mobile-navigation-item-" + id).classList.add("open");
- document.body.style.overflow = "hidden";
- document.getElementById("mobile-navigation-box-container").style.display = "block";
- document.getElementById("mobile-navigation-box-" + id).style.display = "block";
- }
-
- function toggleMobileNavigation(id) {
- if (document.getElementById("mobile-navigation-box-" + id).style.display !== "block") {
- closeMobileNavigation();
- openMobileNavigation(id);
- } else {
- closeMobileNavigation();
- }
- }
-</script>
-<?php endif; ?> \ No newline at end of file
diff --git a/includes/components/navigation.inc b/includes/components/navigation.inc
deleted file mode 100644
index 1d24dea..0000000
--- a/includes/components/navigation.inc
+++ /dev/null
@@ -1,448 +0,0 @@
-<?php
-
-global $use2023UI;
-$pages = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/pages.json"), true);
-
-global $navigation;
-global $toplevel;
-global $lang; global $pages; global $app; global $isLowerLoggedIn; global $isLoggedIn;
-
-if (!$use2023UI) {
-
- $cache = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/navigation.json"), true);
-
- if (!isset($cache["raindrops"])) $cache["raindrops"] = [];
- if (!isset($cache["cloudburst"])) $cache["cloudburst"] = [];
- if (!isset($cache["other"])) $cache["other"] = [];
-
- foreach ([
- [
- "name" => "raindrops",
- "id" => "gdapd"
- ],
- [
- "name" => "cloudburst",
- "id" => "ynmuc"
- ],
- [
- "name" => "other",
- "id" => $app["other"]["id"]
- ]
- ] as $cacheSystem) {
- if (!isset($cache[$cacheSystem["name"]]["public"])) {
- $isLoggedInOldState = $isLoggedIn;
- $isLowerLoggedInOldState = $isLowerLoggedIn;
-
- $isLoggedIn = false;
- $isLowerLoggedIn = false;
-
- $cache[$cacheSystem["name"]]["public"] = array_map(function ($member) {
- return [
- "name" => $member['display_name'] ?? $member['name'],
- "icon" => getAsset($member["system"], $member["id"], "heads"),
- "invert" => false,
- "link" => "/$member[name]",
- "stepped" => null,
- "private" => false
- ];
- }, array_filter(scoreOrder(withTravelers(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$cacheSystem[id]/members.json"), true), "$cacheSystem[id]"), "$cacheSystem[id]"), function ($member) {
- return $member['name'] !== "unknown" && $member['name'] !== "fusion" && $member['name'] !== "new";
- }));
-
- $isLoggedIn = $isLoggedInOldState;
- $isLowerLoggedIn = $isLowerLoggedInOldState;
- }
-
- if (!isset($cache[$cacheSystem["name"]]["private"])) {
- $isLoggedInOldState = $isLoggedIn;
- $isLowerLoggedInOldState = $isLowerLoggedIn;
-
- $isLoggedIn = true;
- $isLowerLoggedIn = false;
-
- $cache[$cacheSystem["name"]]["private"] = array_map(function ($member) {
- return [
- "name" => $member['display_name'] ?? $member['name'],
- "icon" => getAsset($member["system"], $member["id"], "heads"),
- "invert" => false,
- "link" => "/$member[name]",
- "stepped" => null,
- "private" => false
- ];
- }, array_filter(scoreOrder(withTravelers(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$cacheSystem[id]/members.json"), true), "$cacheSystem[id]"), "$cacheSystem[id]"), function ($member) {
- return $member['name'] !== "unknown" && $member['name'] !== "fusion" && $member['name'] !== "new";
- }));
-
- $isLoggedIn = $isLoggedInOldState;
- $isLowerLoggedIn = $isLowerLoggedInOldState;
- }
- }
-
- file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/navigation.json", json_encode($cache));
-
- $navigation_admin = [
- "admin" => !$isLowerLoggedIn,
- "name" => "Private utilities",
- "icon" => "/assets/icons/admin.svg",
- "invert" => true,
- "items" => [
- "alerts" => [
- "name" => null,
- "minimal" => true,
- "items" => [
- [
- "name" => $pages["emergency"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/emergency.svg",
- "invert" => false,
- "link" => "/-/emergency",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["wakeup"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/wakeup.svg",
- "invert" => false,
- "link" => "/-/wakeup",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["pleasure"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/pleasure.svg",
- "invert" => false,
- "link" => "/-/pleasure",
- "stepped" => null,
- "private" => false
- ]
- ]
- ],
- "apps" => [
- "name" => $lang["navigation"]["apps"],
- "minimal" => false,
- "items" => [
- time() >= 1686787200 ? null : [
- "name" => "Front planner<span class='badge bg-warning text-black rounded-pill' style='position:relative;top:-1px; margin-left: 5px;'>EOL</span>",
- "icon" => "/assets/icons/fronting.svg",
- "invert" => true,
- "link" => "/-/fronting",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["evening"]["name"][$lang["_name"]] . (time() >= 1686787200 ? "" : "<span class='badge bg-info text-black rounded-pill' style='position:relative;top:-1px; margin-left: 5px;'>Beta</span>"),
- "icon" => "/assets/icons/evening.svg",
- "invert" => true,
- "link" => "/-/evening",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["profiles"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/profiles.svg",
- "invert" => true,
- "link" => "/-/profiles",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["money"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/money.svg",
- "invert" => true,
- "link" => "/-/money",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["contacts"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/contacts.svg",
- "invert" => true,
- "link" => "/-/contacts",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["schedules"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/schedules.svg",
- "invert" => true,
- "link" => "/-/schedules",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["docs"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/docs.svg",
- "invert" => true,
- "link" => "/-/docs",
- "stepped" => null,
- "private" => true
- ],
- time() >= 1688169600 ? null : [
- "name" => "Devices<span class='badge bg-warning text-black rounded-pill' style='position:relative;top:-1px; margin-left: 5px;'>EOL</span>",
- "icon" => "/assets/icons/computers.svg",
- "invert" => true,
- "link" => "/-/computers",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["travelling"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/travelling.svg",
- "invert" => true,
- "link" => "/-/travelling",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["stats"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/stats.svg",
- "invert" => true,
- "link" => "/-/stats",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["pair"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/pair.svg",
- "invert" => true,
- "link" => "/-/pair",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["sessions"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/sessions.svg",
- "invert" => true,
- "link" => "/-/sessions",
- "stepped" => null,
- "private" => true
- ],
- [
- "name" => $pages["logout"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/logout.svg",
- "invert" => true,
- "link" => "/-/logout",
- "stepped" => null,
- "private" => false
- ]
- ]
- ],
- "sort" => [
- "name" => "Sorted members lists",
- "minimal" => false,
- "items" => [
- [
- "name" => $pages["splitting"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/splitting.svg",
- "invert" => true,
- "link" => "/-/splitting",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["byfront"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/byfront.svg",
- "invert" => true,
- "link" => "/-/byfront",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["alphabet"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/alphabet.svg",
- "invert" => true,
- "link" => "/-/alphabet",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["s:species"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/species.svg",
- "invert" => true,
- "link" => "/-/byspecies",
- "stepped" => null,
- "private" => false
- ],
- ]
- ]
- ]
- ];
- $navigation_global = [
- "admin" => false,
- "name" => $lang["navigation"]["general"],
- "icon" => "/assets/icons/global.svg",
- "invert" => true,
- "items" => [
- "main" => [
- "name" => null,
- "minimal" => false,
- "items" => [
- [
- "name" => $pages["home"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/home.svg",
- "invert" => true,
- "link" => "/",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["relations"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/relations.svg",
- "invert" => true,
- "link" => "/-/relations",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["terminology"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/terminology.svg",
- "invert" => true,
- "link" => "/-/terminology",
- "stepped" => null,
- "private" => false
- ]
- ]
- ]
- ]
- ];
- $navigation_cloudburst = [
- "admin" => false,
- "name" => "Cloudburst System",
- "icon" => getAsset("ynmuc"),
- "invert" => false,
- "items" => [
- "header" => [
- "name" => null,
- "minimal" => false,
- "items" => [
- [
- "name" => $lang["navigation"]["about"],
- "icon" => "/assets/icons/about.svg",
- "invert" => true,
- "link" => "/cloudburst",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["s:history"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/history.svg",
- "invert" => true,
- "link" => "/cloudburst/-/history",
- "stepped" => null,
- "private" => false
- ]
- ]
- ],
- "members" => [
- "name" => $lang["navigation"]["members"],
- "minimal" => false,
- "items" => $cache["cloudburst"][$isLoggedIn || $isLowerLoggedIn ? "private" : "public"]
- ]
- ]
- ];
- $navigation_other = [
- "admin" => !$isLowerLoggedIn,
- "name" => $app["other"]["name"],
- "icon" => getAsset($app["other"]["id"]),
- "invert" => false,
- "items" => [
- "header" => [
- "name" => null,
- "minimal" => false,
- "items" => [
- [
- "name" => $lang["navigation"]["about"],
- "icon" => "/assets/icons/about.svg",
- "invert" => true,
- "link" => "/" . $app["other"]["slug"],
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["s:history"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/history.svg",
- "invert" => true,
- "link" => "/" . $app["other"]["slug"] . "/-/history",
- "stepped" => null,
- "private" => false
- ]
- ]
- ],
- "members" => [
- "name" => $lang["navigation"]["members"],
- "minimal" => false,
- "items" => $cache["other"][$isLoggedIn || $isLowerLoggedIn ? "private" : "public"]
- ]
- ]
- ];
- $navigation_raindrops = [
- "admin" => false,
- "name" => "Raindrops System",
- "icon" => getAsset("gdapd"),
- "invert" => false,
- "items" => [
- "header" => [
- "name" => null,
- "minimal" => false,
- "items" => [
- [
- "name" => $lang["navigation"]["about"],
- "icon" => "/assets/icons/about.svg",
- "invert" => true,
- "link" => "/raindrops",
- "stepped" => null,
- "private" => false
- ],
- [
- "name" => $pages["s:history"]["name"][$lang["_name"]],
- "icon" => "/assets/icons/history.svg",
- "invert" => true,
- "link" => "/raindrops/-/history",
- "stepped" => null,
- "private" => false
- ]
- ]
- ],
- "members" => [
- "name" => $lang["navigation"]["members"],
- "minimal" => false,
- "items" => $cache["raindrops"][$isLoggedIn || $isLowerLoggedIn ? "private" : "public"]
- ]
- ]
- ];
-
- global $parts;
-
- if (isset($parts) && isset($parts[0]) && $parts[0] === $app["other"]["slug"]) {
- $navigation = [
- "other" => $navigation_other,
- "cloudburst" => $navigation_cloudburst,
- "raindrops" => $navigation_raindrops,
- "admin" => $navigation_admin,
- "global" => $navigation_global
- ];
- } elseif (isset($parts) && isset($parts[0]) && $parts[0] === "cloudburst") {
- $navigation = [
- "cloudburst" => $navigation_cloudburst,
- "raindrops" => $navigation_raindrops,
- "other" => $navigation_other,
- "admin" => $navigation_admin,
- "global" => $navigation_global
- ];
- } elseif (isset($parts) && isset($parts[0]) && $parts[0] === "raindrops") {
- $navigation = [
- "raindrops" => $navigation_raindrops,
- "cloudburst" => $navigation_cloudburst,
- "other" => $navigation_other,
- "admin" => $navigation_admin,
- "global" => $navigation_global
- ];
- } else {
- $navigation = [
- "admin" => $navigation_admin,
- "global" => $navigation_global,
- "cloudburst" => $navigation_cloudburst,
- "raindrops" => $navigation_raindrops,
- "other" => $navigation_other,
- ];
- }
-} \ No newline at end of file
diff --git a/includes/components/pane.inc b/includes/components/pane.inc
deleted file mode 100644
index a4b2d43..0000000
--- a/includes/components/pane.inc
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php global $use2023UI; global $isLoggedIn; global $isLowerLoggedIn; global $pages; global $navigation; $byColor = getMembersByColor(); global $lang; global $pages; if (!$use2023UI): ?>
-
-<div id="pane-header-background" style="background-image: linear-gradient(90deg, <?php
-
-$index = 0;
-$list = array_map(function ($i) { return $i["color"]; }, $byColor);
-$length = count($list);
-
-foreach ($list as $color) {
- $perc = ($index / $length) * 100;
- echo("#${color}33 $perc%");
-
- $index++;
- if ($index < $length) echo(", ");
-}
-
-?>)">
- <a href="/" id="pane-header" class="login-link-clickable" style="color: white; text-decoration: none; padding: 20px; display: block; text-align: center; border-bottom: 1px solid rgba(255, 255, 255, .25); backdrop-filter: blur(20px);">
- <img src="/assets/logo/newlogo<?= $isLoggedIn || $isLowerLoggedIn ? "3" : "" ?>.png" alt="" style="width:32px;vertical-align: middle;margin-right:5px;">
- <span style="vertical-align: middle; font-weight: bold;">Cold Haze</span>
- </a>
-</div>
-
-<?php if ($isLoggedIn || $isLowerLoggedIn): ?>
- <a href="/-/logout" id="login-link" class="login-link-clickable">
- <img alt="" src="/assets/icons/logout.svg" style="filter:invert(1);width:24px;vertical-align: middle;">
- <span style="vertical-align: middle;"><?= $pages["logout"]["name"]["en"] ?></span>
- </a>
-<?php else: ?>
- <a href="/-/login" id="login-link" class="login-link-clickable">
- <?php global $_PROFILE; ?>
- <img alt="" src="/assets/icons/login.svg" style="filter:invert(1);width:24px;vertical-align: middle;">
- <span style="vertical-align: middle;"><?= $lang["navigation"]["login"] ?></span>
- </a>
-<?php endif; ?>
-
-<?php foreach ($navigation as $id => $item): if (!$item["admin"] || $isLoggedIn || $isLowerLoggedIn): ?>
-
-<div class="pane-group" id="pane-group-<?= $id ?>">
- <div class="pane-group-title">
- <img src="<?= $item["icon"] ?>" <?php if ($item["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style=" border-radius: 2px;width:24px;vertical-align: middle;">
- <span style="vertical-align: middle;"><?= $item["name"] ?></span>
- </div>
-
- <?php foreach ($item["items"] as $category): ?>
- <div class="pane-group-category <?= $category["minimal"] ? "pane-group-category-minimal" : "" ?>" <?= $category["minimal"] ? 'style="display: grid; grid-template-columns: repeat(' . ($isLowerLoggedIn ? 2 : 3) . ', 1fr); grid-gap: 10px;"' : "" ?>>
- <?php if (isset($category["name"])): ?>
- <div class="pane-group-category-title"><?= $category["name"] ?></div>
- <?php endif; ?>
- <?php foreach ($category["items"] as $link): if (isset($link)): if (!($isLowerLoggedIn && $link["private"])): ?>
- <a class="pane-group-item" href="<?= $link["link"] ?>">
- <img src="<?= $link["icon"] ?>" <?php if ($link["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style="width:24px; border-radius: 5px; vertical-align: middle;">
- <?php if (!$category["minimal"]): ?><span style="vertical-align: middle;<?= isset($link["stepped"]) ? "color: $link[stepped];" : "" ?>"><?= isset($link["stepped"]) ? "<b>$link[name]</b>" : $link["name"] ?></span><?php endif; ?>
- </a>
- <?php endif; endif; endforeach; ?>
- </div>
- <?php endforeach; ?>
-</div>
-
-<?php endif; endforeach; ?>
-
-<style>
-
- .pane-group-category-title {
- margin-bottom: 5px;
- font-size: .8em;
- opacity: .75;
- padding: 0 5px;
- }
-
- .pane-group-category-minimal .pane-group-item {
- text-align: center;
- }
-
- .pane-group-item {
- display: block;
- color: white !important;
- text-decoration: none;
- }
-
- .pane-group-category {
- background: rgba(255, 255, 255, .075);
- border: 1px solid rgba(255, 255, 255, .1);
- border-radius: 10px;
- padding: 10px;
- margin-top: 10px;
- margin-bottom: 10px;
- }
-
- .pane-group-item {
- padding: 5px;
- border-radius: 10px;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- }
-
- .pane-group-item:hover {
- background-color: rgba(255, 255, 255, .1);
- }
-
- .pane-group-title {
- opacity: .75;
- padding: 0 15px;
- margin-top: 10px;
- }
-
- .pane-group {
- padding: 10px;
- border-bottom: 1px solid rgba(255, 255, 255, .25);
- }
-
- #login-link {
- text-align: center;
- padding: 10px;
- display: block;
- border-bottom: 1px solid rgba(255, 255, 255, .25);
- height: 47px;
- }
-
- .login-link-clickable {
- color: white !important;
- cursor: pointer !important;
- text-decoration: none !important;
- }
-
- .login-link-clickable:hover {
- background-color: rgba(255, 255, 255, .1);
- }
-
-</style>
-<?php endif; ?> \ No newline at end of file
diff --git a/includes/components/timeline.inc b/includes/components/timeline.inc
index bbda780..95b413b 100644
--- a/includes/components/timeline.inc
+++ b/includes/components/timeline.inc
@@ -29,7 +29,7 @@ function displayTimeline($systems) { global $app; $showIcons = count($systems) >
<?php foreach ($systems as $system): ?>
<tr style="height: <?= count($systems) === 1 ? 50 : 30 ?>px;">
<?php if ($showIcons): ?><td colspan="20">
- <a href="/<?= $system === "gdapd" ? "raindrops" : ($system === "ynmuc" ? "cloudburst" : ($system === "hrbom" ? "Moonglow" : $app["other"]["slug"])) ?>" style="width: 100%; height: 30px; display: flex; align-items: center; justify-content: center;">
+ <a href="/<?= $system === "gdapd" ? "raindrops" : ($system === "ynmuc" ? "cloudburst" : ($system === "hrbom" ? "moonglow" : $app["other"]["slug"])) ?>" style="width: 100%; height: 30px; display: flex; align-items: center; justify-content: center;">
<img alt="" style="border-radius: 5px; height: 24px; text-align: center;" src="<?= getAsset($system) ?>">
</a>
</td><?php endif; ?>