diff options
Diffstat (limited to 'pages/dashboard.php')
-rw-r--r-- | pages/dashboard.php | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/pages/dashboard.php b/pages/dashboard.php deleted file mode 100644 index a861636..0000000 --- a/pages/dashboard.php +++ /dev/null @@ -1,321 +0,0 @@ -<?php - -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.php"; global $title; global $isLoggedIn; global $pages; -require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; global $_PROFILE; -use om\IcalParser; - -$poniesHavingSex = []; - -$actions = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/actions.json"), true); - -foreach ($actions as $action) { - if ($action["type"] !== "sexual") continue; - - foreach ($action["ponies"] as $ponies) { - $id = implode("", $ponies["members"]); - - $member = getMemberWithoutSystem($ponies["members"][0]); - $otherMember = getMemberWithoutSystem($ponies["members"][1]); - - $parts = [ - $member["id"], - $otherMember["id"] - ]; - - asort($parts); - $poniesHavingSex[] = $parts[0]; - $poniesHavingSex[] = $parts[1]; - } -} - -$fronter = array_map(function ($i) { - return $i["id"]; -}, ($_PROFILE["login"] === "raindrops" ? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-fronters.json"), true) : json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-fronters.json"), true))["members"])[0] ?? null; - -$viewingPonyHasSex = in_array($fronter, $poniesHavingSex) || isset($_GET['toys']); - -?> - -<br> -<div class="container"> - <div id="page-content"> - <h3 id="date" style="text-align: center;margin-bottom:20px;">Date</h3> - <script> - function _Date() { - let d = new Date(); - let m = d.getMonth(); - let w = d.getDay(); - - switch (m) { - case 0: m = "Jan"; break; - case 1: m = "Feb"; break; - case 2: m = "Mar"; break; - case 3: m = "Apr"; break; - case 4: m = "May"; break; - case 5: m = "Jun"; break; - case 6: m = "Jul"; break; - case 7: m = "Aug"; break; - case 8: m = "Sep"; break; - case 9: m = "Oct"; break; - case 10: m = "Nov"; break; - case 11: m = "Dec"; break; - } - - switch (w) { - case 0: w = "Sun"; break; - case 1: w = "Mon"; break; - case 2: w = "Tue"; break; - case 3: w = "Wed"; break; - case 4: w = "Thu"; break; - case 5: w = "Fri"; break; - case 6: w = "Sat"; break; - } - - function fixed(number) { - if (number < 10) { - return "0" + number; - } else { - return number.toString(); - } - } - - document.getElementById("date").innerText = `${w} ${d.getDate()} ${m} ${d.getHours()}:${fixed(d.getMinutes())}`; - } - - setInterval(_Date); - </script> - - <div class="peh-row" style="<?php if (!$viewingPonyHasSex): ?>grid-template-columns: repeat(8, 1fr) !important;<?php endif; ?>"> - <div class="column"> - <div class="card" title="<?= $pages["actions"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/actions" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/actions.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["actions"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["rules"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/rules" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/rules.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["rules"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["docs"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/docs" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/docs.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["docs"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["nicknames"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/nicknames" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/nicknames.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["nicknames"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["together"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/together" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/together.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["together"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["splitting"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/splitting" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/form.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["splitting"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["byfront"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/byfront" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/byfront.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["byfront"]["short"] ?></h6> - </a> - </div> - </div> - <div class="column"> - <div class="card" title="<?= $pages["bitset"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/bitset" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/bitset.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["bitset"]["short"] ?></h6> - </a> - </div> - </div> - <?php if ($viewingPonyHasSex): ?> - <div class="column"> - <div class="card" title="<?= $pages["toys"]["name"] ?>" data-bs-toggle="tooltip"> - <a href="/-/toys" class="card-body" style="text-align:center;color: white !important; text-decoration: none !important;"> - <img src="/assets/icons/toys.svg" style="width:32px;height:32px;filter:invert(1);"><br> - <h6 class="app-name"><?= $pages["toys"]["short"] ?></h6> - </a> - </div> - </div> - <?php endif; ?> - </div> - - <hr> - <h4>Next fronters <span class="small"><a href="/-/fronting">(edit)</a></span></h4> - <?php - - $scheduleCloudburstToday = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-planner.json"), true)[date('Y-m-d')] ?? []; - $scheduleRaindropsToday = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-planner.json"), true)[date('Y-m-d')] ?? []; - - $scheduleCloudburstTomorrow = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc-planner.json"), true)[date('Y-m-d', time() + 86400)] ?? []; - $scheduleRaindropsTomorrow = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd-planner.json"), true)[date('Y-m-d', time() + 86400)] ?? []; - - $today1 = $_PROFILE["login"] === "raindrops" ? $scheduleRaindropsToday : $scheduleCloudburstToday; - $today2 = $_PROFILE["login"] === "raindrops" ? $scheduleCloudburstToday : $scheduleRaindropsToday; - $tomorrow1 = $_PROFILE["login"] === "raindrops" ? $scheduleRaindropsTomorrow : $scheduleCloudburstTomorrow; - $tomorrow2 = $_PROFILE["login"] === "raindrops" ? $scheduleCloudburstTomorrow : $scheduleRaindropsTomorrow; - - ?> - - <h5>Fronters today</h5> - <ul> - <?php foreach ($today1 as $index => $id): $member = getMemberWithoutSystem($id); ?> - <li> - <?php if ($member["name"] === "fusion"): ?> - <img alt="" src="/assets/logo/logo.png" style="width:24px; height: 24px; vertical-align: middle;"> <span style="vertical-align: middle;">Merged members</span> - <?php else: ?> - <img alt="" src="/assets/uploads/pt-<?= $member["name"] ?>.png" style="width:24px; height: 24px; vertical-align: middle;"> <b style="vertical-align: middle;"><?= getMiniName($member["display_name"] ?? $member["name"]) ?></b> - <?php endif; ?> - <?php if (isset($today2[$index])): $member2 = getSystemMember($_PROFILE["login"] === "raindrops" ? "ynmuc" : "gdapd", $today2[$index]); ?><span style="vertical-align: middle;">with</span> <img alt="" src="/assets/uploads/pt-<?= $member2["name"] ?>.png" style="width:24px; height: 24px; vertical-align: middle;"> <span style="vertical-align: middle;"><?= getMiniName($member2["display_name"] ?? $member2["name"]) ?></span><?php endif; ?> - </li> - <?php endforeach; ?> - </ul> - - <h5>Fronters tomorrow</h5> - <ul> - <?php foreach ($tomorrow1 as $index => $id): $member = getSystemMember($_PROFILE["login"] === "raindrops" ? "gdapd" : "ynmuc", $id); ?> - <li> - <?php if ($member["name"] === "fusion"): ?> - <img alt="" src="/assets/logo/logo.png" style="width:24px; height: 24px; vertical-align: middle;"> <span style="vertical-align: middle;">Merged members</span> - <?php else: ?> - <img alt="" src="/assets/uploads/pt-<?= $member["name"] ?>.png" style="width:24px; height: 24px; vertical-align: middle;"> <b style="vertical-align: middle;"><?= getMiniName($member["display_name"] ?? $member["name"]) ?></b> - <?php endif; ?> - <?php if (isset($tomorrow2[$index])): $member2 = getSystemMember($_PROFILE["login"] === "raindrops" ? "ynmuc" : "gdapd", $tomorrow2[$index]); ?><span style="vertical-align: middle;">with</span> <img alt="" src="/assets/uploads/pt-<?= $member2["name"] ?>.png" style="width:24px; height: 24px; vertical-align: middle;"> <span style="vertical-align: middle;"><?= getMiniName($member2["display_name"] ?? $member2["name"]) ?></span><?php endif; ?> - </li> - <?php endforeach; ?> - </ul> - - <hr> - <h4>Next events</h4> - <?php - - $cal = new IcalParser(); - $results = $cal->parseFile($_SERVER['DOCUMENT_ROOT'] . "/includes/data/calendar.ics"); - $events = []; - - foreach ($cal->getEvents()->sorted() as $event) { - $events[] = [ - "id" => $event['UID'], - "date" => [ - "created" => $event['CREATED']->format('c'), - "modified" => $event['LAST-MODIFIED']->format('c'), - "start" => $event['DTSTART']->format('c'), - "end" => $event['DTEND']->format('c'), - "duration" => strtotime($event['DTEND']->format('c')) - strtotime($event['DTSTART']->format('c')), - "full_day" => strtotime($event['DTEND']->format('c')) - strtotime($event['DTSTART']->format('c')) >= 86400, - "days" => ( - strtotime($event['DTEND']->format('c')) - strtotime($event['DTSTART']->format('c')) >= 86400 ? - round((strtotime($event['DTEND']->format('c')) - strtotime($event['DTSTART']->format('c'))) / 86400) : - null - ) - ], - "name" => $event['SUMMARY'], - "description" => $event['DESCRIPTION'], - ]; - } - - $events = array_values(array_filter($events, function ($i) { - return ( - strtotime($i["date"]["end"]) > time() && - strtotime($i["date"]["start"]) < time() + 2629800 - ); - })); - - ?> - <ul> - <?php foreach ($events as $event): ?> - <li> - <?php if ($event["date"]["full_day"]): ?> - <b> - <?php if (strtotime($event["date"]["start"]) < time()): ?> - Started <?= timeAgo($event["date"]["start"]) ?>, ends <?= timeIn($event["date"]["end"]) ?> - <?php else: ?> - <?= ucfirst(relativeDate($event["date"]["start"], false)) ?> - <?php endif; ?> - · - </b> - <?php else: ?> - <b> - <?= ucfirst(relativeDate($event["date"]["start"])) ?> - · - </b> - <?php endif; ?> - for <?= duration($event["date"]["duration"]) ?> - · - <?= $event["name"] ?> - </li> - <?php endforeach; ?> - </ul> - </div> -</div> - -<style> - .peh-row { - display: grid; - grid-template-columns: repeat(9, 1fr); - } - - .column .card { - border-right: none !important; - border-radius: 0 !important; - } - - .column:nth-child(1) .card { - border-bottom-left-radius: 0.25rem !important; - border-top-left-radius: 0.25rem !important; - } - - .column:nth-last-child(1) .card { - border-right: 1px solid rgba(255, 255, 255, .125) !important; - border-bottom-right-radius: 0.25rem !important; - border-top-right-radius: 0.25rem !important; - } - - @media (max-width: 1199px) { - .app-name { - display: none; - } - } - - @media (max-width: 991px) { - .column { - padding-right: calc(var(--bs-gutter-x) * .25); - padding-left: calc(var(--bs-gutter-x) * .25); - } - } - - @media (max-width: 576px) { - .card-body { - padding: 0.5rem 0.5rem !important; - } - - .column { - padding-right: calc(var(--bs-gutter-x) * .175) !important; - padding-left: calc(var(--bs-gutter-x) * .175) !important; - } - } -</style> - -<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php'; ?> |