diff options
Diffstat (limited to 'includes/titlebar.inc')
-rw-r--r-- | includes/titlebar.inc | 606 |
1 files changed, 0 insertions, 606 deletions
diff --git a/includes/titlebar.inc b/includes/titlebar.inc deleted file mode 100644 index e941179..0000000 --- a/includes/titlebar.inc +++ /dev/null @@ -1,606 +0,0 @@ -<?php global $toplevel; global $system; global $isLoggedIn; global $lang; global $isLowerLoggedIn; global $pages; $pages = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/pages.json"), true); global $lang; global $pages; global $app; ?> -<span> - <?php - -$membersNames = array_map(function ($i) { - return $i["name"]; -}, scoreOrderGlobal()); -$parts = explode("/", $_GET['_']); -$name = $toplevel === "" ? "home" : $toplevel; - -$actionsProfile = "default"; -$part1 = "<page>"; -$part2 = null; -$part3 = null; - -if (isset($pages[$name])) { - if (($name === "docs" || $name === "toys" || $name === "actions" || $name === "computers") && isset($parts[2])) { - $part3 = "<a class='title-bar-backlink' href='/-/dashboard'>Dashboard</a>"; - $part2 = "<a class='title-bar-backlink' href='/-/$name'>" . $pages[$name]['name'][$lang["_name"]] . "</a>"; - - if ($name === "docs") { - $actionsProfile = "docs-item"; - $part1 = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/docs/" . $parts[2] . ".json"), true)["name"]; - } elseif ($name === "computers") { - $part1 = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/computers/metadata/" . $parts[2] . ".json"), true)["host"]; - } else { - $actionsProfile = "$name-item"; - $list = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($name === "toys" ? "toys/toys" : "actions/actions") . ".json"), true); - $part1 = array_values(array_filter($list, function ($i) use ($parts) { - return $i["id"] === $parts[2]; - }))[0]["name"]; - } - } else { - if ($pages[$name]["admin"]) { - $part1 = $pages[$name]['name'][$lang["_name"]]; - $part2 = "<a class='title-bar-backlink' href='/-/dashboard'>Dashboard</a>"; - } else { - $part1 = $pages[$name]['name'][$lang["_name"]]; - } - } -} elseif ($name === "cloudburst") { - if (isset($parts[2])) { - $part2 = "<a class='title-bar-backlink' href='/cloudburst'>Cloudburst System</a>"; - - $part1 = $pages["s:" . $parts[2]]['name'][$lang["_name"]] ?? $parts[2]; - } else { - $actionsProfile = "system"; - $part1 = "Cloudburst System"; - } -} elseif ($name === "raindrops") { - if (isset($parts[2])) { - $part2 = "<a class='title-bar-backlink' href='/raindrops'>Raindrops System</a>"; - - $part1 = $pages["s:" . $parts[2]]['name'][$lang["_name"]] ?? $parts[2]; - } else { - $actionsProfile = "system"; - $part1 = "Raindrops System"; - } -} elseif ($name === $app["other"]["slug"]) { - if (isset($parts[2])) { - $part2 = "<a class='title-bar-backlink' href='/" . $app["other"]["slug"] . "'>" . $app["other"]["name"] . "</a>"; - - $part1 = $pages["s:" . $parts[2]]['name'][$lang["_name"]] ?? $parts[2]; - } else { - $actionsProfile = "system"; - $part1 = $app["other"]["name"]; - } -} else { - $member = getMemberFromName($name); - $actionsProfile = "member"; - - if ($member["_system"] === $app["other"]["id"]) { - $actionsProfile = "member-other"; - } - - if (isset($member)) { - $memberName = $member["display_name"] ?? $member["name"]; - $part1 = "$memberName"; - - if ($member["_system"] === "gdapd") { - $part2 = "<a class='title-bar-backlink' href='/raindrops'>Raindrops System</a>"; - } elseif ($member["_system"] === "ynmuc") { - $part2 = "<a class='title-bar-backlink' href='/cloudburst'>Cloudburst System</a>"; - } else { - $part2 = "<a class='title-bar-backlink' href='/" . $app["other"]["slug"] . "'>" . $app["other"]["name"] . "</a>"; - } - } else { - $part1 = "$name"; - } -} - -if ($actionsProfile === "default") { - switch ($name) { - case "home": - $actionsProfile = "home"; - break; - - case "emergency": - case "wakeup": - case "pleasure": - $actionsProfile = "alert"; - break; - - case "fronting": - $actionsProfile = "planner"; - break; - - case "actions": - case "toys": - $actionsProfile = "actions-or-toys"; - break; - - case "docs": - $actionsProfile = "docs"; - break; - - case "edit": - case "edit-private": - if (count($parts) === 3) $actionsProfile = "editor-system"; - if (count($parts) > 3 && in_array($parts[3], $membersNames)) $actionsProfile = "editor-member"; - break; - - case "debug": - $actionsProfile = "debug"; - break; - - case "bitset": - $actionsProfile = "bitset"; - break; - - case "computers": - if (count($parts) === 3) $actionsProfile = "computers"; - if (count($parts) === 4) $actionsProfile = "computers-remote"; - break; - } -} - -echo("<span id='title-bar-parts-desktop''>"); -if (isset($part3)) { - echo "$part3 > $part2 > <b>$part1</b>"; -} elseif (isset($part2)) { - echo "$part2 > <b>$part1</b>"; -} else { - echo "<b>$part1</b>"; -} -echo("</span>"); -echo("<span id='title-bar-parts-mobile' style='display:none;'>"); -echo "<b>$part1</b>"; -echo("</span>"); - -$links = [ - "default" => [ - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "computers" => [ - [ - "name" => "Remote control", - "link" => [ - "type" => "url", - "text" => "/-/computers/" . ($parts[2] ?? null) . "/control" - ], - "icon" => "/assets/icons/computers-remote.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "computers-remote" => [ - [ - "name" => "Enable controlling", - "link" => [ - "type" => "js", - "text" => "enableControl();" - ], - "icon" => "/assets/icons/computers-on.svg", - "invert" => true - ], - [ - "name" => "Disable controlling", - "link" => [ - "type" => "js", - "text" => "disableControl();" - ], - "icon" => "/assets/icons/computers-off.svg", - "invert" => true - ], - [ - "name" => "Back to computer info", - "link" => [ - "type" => "url", - "text" => "/-/computers/" . ($parts[2] ?? null) - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "editor-member" => [ - [ - "name" => "View page", - "link" => [ - "type" => "url", - "text" => "/" . ($parts[3] ?? null) - ], - "icon" => "/assets/icons/view.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "editor-system" => [ - [ - "name" => "View page", - "link" => [ - "type" => "url", - "text" => "/" . ($parts[2] ?? null) - ], - "icon" => "/assets/icons/view.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "member" => [ - [ - "name" => $lang["titlebar"]["member"], - "link" => [ - "type" => "url", - "text" => "/$system" - ], - "icon" => "/assets/icons/parent.svg", - "invert" => true - ], - [ - "name" => $pages["edit-private"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/-/edit-private/$system/$name" - ], - "icon" => "/assets/icons/edit-private.svg", - "invert" => true, - "show" => $isLoggedIn - ], - [ - "name" => $pages["edit"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/-/edit/$system/$name" - ], - "icon" => "/assets/icons/edit.svg", - "invert" => true, - "show" => $isLoggedIn - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "member-other" => [ - [ - "name" => $lang["titlebar"]["member"], - "link" => [ - "type" => "url", - "text" => "/$system" - ], - "icon" => "/assets/icons/parent.svg", - "invert" => true - ], - [ - "name" => $pages["edit"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/-/edit/$system/$name" - ], - "icon" => "/assets/icons/edit.svg", - "invert" => true, - "show" => $isLoggedIn - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "home" => [ - [ - "name" => "Raindrops System", - "link" => [ - "type" => "url", - "text" => "/raindrops" - ], - "icon" => "/assets/avatars/7d9f543ef74240f69d0786c3f2983124.webp", - "invert" => false - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "planner" => [ - [ - "name" => "Add in the Cloudburst System", - "link" => [ - "type" => "js", - "text" => "document.getElementById('planner-add-link-cloudburst-0').click()" - ], - "icon" => "/assets/icons/add-cloudburst.svg", - "invert" => false - ], - [ - "name" => "Add in the Raindrops System", - "link" => [ - "type" => "js", - "text" => "document.getElementById('planner-add-link-raindrops-0').click()" - ], - "icon" => "/assets/icons/add-raindrops.svg", - "invert" => false - ] - ], - "actions-or-toys" => [ - [ - "name" => "Search", - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0; document.getElementById('search').focus();" - ], - "icon" => "/assets/icons/search.svg", - "invert" => true - ], - [ - "name" => "Add", - "link" => [ - "type" => "js", - "text" => "(new bootstrap.Modal(document.getElementById('creator'))).show(); setInterval(() => { document.getElementById('creator-title').focus(); }, 500);" - ], - "icon" => "/assets/icons/add.svg", - "invert" => true - ] - ], - "docs" => [ - [ - "name" => "Marked for deletion", - "link" => [ - "type" => "url", - "text" => "#deletable" - ], - "icon" => "/assets/icons/delete.svg", - "invert" => true - ], - [ - "name" => "Create new", - "link" => [ - "type" => "url", - "text" => "/-/docs/add" - ], - "icon" => "/assets/icons/add.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "docs-item" => [ - [ - "name" => "Save", - "link" => [ - "type" => "js", - "text" => "save();" - ], - "icon" => "/assets/icons/save.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "debug" => [ - [ - "name" => $lang["titlebar"]["debug"][0], - "link" => [ - "type" => "url", - "text" => "#failures" - ], - "icon" => "/assets/icons/failures.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["debug"][1], - "link" => [ - "type" => "url", - "text" => "#times" - ], - "icon" => "/assets/icons/time.svg", - "invert" => true - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ], - "bitset" => [ - [ - "name" => "Copy bitset", - "link" => [ - "type" => "js", - "text" => "navigator.clipboard.writeText(document.getElementById('input').value);" - ], - "icon" => "/assets/icons/copy.svg", - "invert" => true - ], - [ - "name" => "Reset", - "link" => [ - "type" => "js", - "text" => "document.getElementById('input').value = '2048'; calculateInput();" - ], - "icon" => "/assets/icons/reset.svg", - "invert" => true - ] - ], - "alert" => [ - [ - "name" => "Turn alert on", - "link" => [ - "type" => "js", - "text" => "if (document.getElementById('btn-on').style.display === 'block') (new bootstrap.Modal(document.getElementById('turn-on'))).show();" - ], - "icon" => "/assets/icons/alert-on.svg", - "invert" => true - ], - [ - "name" => "Turn alert off", - "link" => [ - "type" => "js", - "text" => "if (document.getElementById('btn-off').style.display === 'block') (new bootstrap.Modal(document.getElementById('turn-off'))).show();" - ], - "icon" => "/assets/icons/alert-off.svg", - "invert" => true - ] - ], - "system" => [ - [ - "name" => $pages["s:history"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/$name/-/history" - ], - "icon" => "/assets/icons/history.svg", - "invert" => true - ], - [ - "name" => $pages["s:compare"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/$name/-/compare" - ], - "icon" => "/assets/icons/compare.svg", - "invert" => true - ], - [ - "name" => $pages["edit"]["name"][$lang["_name"]], - "link" => [ - "type" => "url", - "text" => "/-/edit/$name" - ], - "icon" => "/assets/icons/edit.svg", - "invert" => true, - "show" => $isLoggedIn - ], - [ - "name" => $lang["titlebar"]["top"], - "link" => [ - "type" => "js", - "text" => "document.body.scrollTop = 0; document.documentElement.scrollTop = 0;" - ], - "icon" => "/assets/icons/up.svg", - "invert" => true - ] - ] -]; - -if ($_SERVER['HTTP_HOST'] !== "fr.equestria.horse") { - array_unshift($links["home"], [ - "name" => "Cloudburst System", - "link" => [ - "type" => "url", - "text" => "/cloudburst" - ], - "icon" => "/assets/avatars/ade46823206b4b0cad3ccaae934a5f3b.webp", - "invert" => false - ]); -} - -if ($isLowerLoggedIn || $isLoggedIn) { - $links["home"][] = [ - "name" => $app["other"]["name"], - "link" => [ - "type" => "url", - "text" => "/" . $app["other"]["slug"] - ], - "icon" => "/assets/avatars/" . str_replace("-", "", $app["other"]["uuid"]) . ".webp", - "invert" => false - ]; - - $links["home"] = [ - array_values(array_filter($links["home"], function ($i) { return $i["name"] === "Cloudburst System"; }))[0], - array_values(array_filter($links["home"], function ($i) { return $i["name"] === "Raindrops System"; }))[0], - array_values(array_filter($links["home"], function ($i) use ($app) { return $i["name"] === $app["other"]["name"]; }))[0], - array_values(array_filter($links["home"], function ($i) { return $i["link"]["type"] === "js"; }))[0] - ]; -} - -$linksList = $links[isset($links[$actionsProfile]) ? $actionsProfile : "default"]; - -?> - <span id="title-bar-actions"> - <?php foreach ($linksList as $index => $link): if (!(isset($link["show"]) && !$link["show"])): ?><a style="height: 33px; display: inline-block; padding: 4px;" id="title-bar-action-<?= $index ?>" <?php if ($link["link"]["type"] === "url"): ?>href<?php else: ?>onclick<?php endif; ?>="<?= $link["link"]["text"] ?>" title="<?= $link["name"] ?>" data-bs-toggle="tooltip" class="title-bar-action tooltip-nohelp"><img src="<?= $link["icon"] ?>" <?php if ($link["invert"]): ?>class="dropdown-icon"<?php endif; ?> alt="" style="width:24px;vertical-align: middle;"></a><?php endif; endforeach; ?> - </span> -</span> - -<style> - .title-bar-backlink { - color: white !important; - text-decoration: none; - } - - .title-bar-backlink:hover { - opacity: .75; - } - - #title-bar-actions { - position: fixed; - right: 0; - height: 34px; - top: 0; - display: block; - border-left: 1px solid rgba(255, 255, 255, .25); - } - - .title-bar-action { - cursor: pointer; - } - - .title-bar-action:hover { - background-color: rgba(255, 255, 255, .1); - } -</style>
\ No newline at end of file |