mirror of
https://git.ari.lt/ari.lt/ari.lt.git
synced 2025-02-05 18:09:24 +01:00
210 lines
5.1 KiB
JavaScript
210 lines
5.1 KiB
JavaScript
const content = document.getElementById("content");
|
|
const bar = document.getElementById("bar");
|
|
const bar_list = document.getElementById("bar-list");
|
|
const menus = document.getElementById("menus");
|
|
const mobileMenu = document.getElementById("mobile-menu");
|
|
|
|
var showMobileMenu = true;
|
|
|
|
|
|
function addNewBarElement(innerElement, content, attrs, appendElement = bar_list) {
|
|
let item = document.createElement('li');
|
|
let itemContent = document.createElement(innerElement);
|
|
|
|
item.setAttribute("class", "nav-item");
|
|
for (const attr in attrs) {
|
|
itemContent.setAttribute(attr, attrs[attr]);
|
|
}
|
|
|
|
itemContent.innerHTML = content;
|
|
appendElement.appendChild(document.createTextNode("\n"));
|
|
|
|
item.appendChild(itemContent);
|
|
appendElement.appendChild(item);
|
|
}
|
|
|
|
function detectSmallScreen() {
|
|
var isSmall = window.matchMedia ?
|
|
window.matchMedia("screen and (max-width: 699px)") :
|
|
screen.width<=699;
|
|
let bar_items = document.getElementsByClassName("doHide");
|
|
|
|
if (isSmall.matches) {
|
|
for (const bar_item of bar_items) {
|
|
bar_item.classList.add("smallHide");
|
|
}
|
|
|
|
if (!document.getElementById("mobileMenu")) {
|
|
addNewBarElement(
|
|
'a', 'Menu', {
|
|
"href": "#!",
|
|
"class": "nav-item bigHide noMargin",
|
|
"onClick": "openMobileMenu();",
|
|
"id": "mobileMenu"
|
|
}
|
|
);
|
|
}
|
|
} else {
|
|
for (const bar_item of bar_items) {
|
|
bar_item.classList.remove("smallHide", "noMargin");
|
|
}
|
|
}
|
|
}
|
|
|
|
function mobileCmd(e) {
|
|
let textbox = document.getElementById("mobileCmd");
|
|
let output = document.getElementById("mobileCmdOutput");
|
|
|
|
if (!e) e = window.event;
|
|
const keyCode = e.code || e.key;
|
|
|
|
if (keyCode == 'Enter'){
|
|
if (textbox.value) {
|
|
try {
|
|
var out = commands[textbox.value.split(' ')[0]](textbox.value);
|
|
textbox.blur();
|
|
} catch (e) {
|
|
var out = e;
|
|
}
|
|
}
|
|
|
|
if (out) {
|
|
output.innerText = out;
|
|
textbox.value = '';
|
|
}
|
|
}
|
|
}
|
|
|
|
function autorun() {
|
|
// code that will run evety 100ms
|
|
}
|
|
|
|
function addNewMobileMenuItem(innerElement, content, attrs) {
|
|
if (!document.getElementById("mobileList")) {
|
|
let list = document.createElement("ul");
|
|
list.setAttribute("id", "mobileList")
|
|
mobileMenu.appendChild(list);
|
|
}
|
|
let list = document.getElementById("mobileList");
|
|
|
|
let item = document.createElement("li");
|
|
let itemContent = document.createElement(innerElement);
|
|
|
|
for (const attr in attrs) {
|
|
itemContent.setAttribute(attr, attrs[attr]);
|
|
}
|
|
|
|
itemContent.innerHTML = content;
|
|
list.appendChild(document.createTextNode("\n"));
|
|
|
|
item.appendChild(itemContent);
|
|
list.appendChild(item);
|
|
}
|
|
|
|
function openMobileMenu() {
|
|
if (!showMobileMenu) {
|
|
return;
|
|
}
|
|
|
|
let list = document.getElementById("mobileList");
|
|
if (!list) {
|
|
alert("No menu found :)");
|
|
showMobileMenu = false;
|
|
return;
|
|
}
|
|
|
|
let output = document.getElementById("mobileCmdOutput");
|
|
output.innerHTML = '';
|
|
|
|
let textbox = document.getElementById("mobileCmd");
|
|
if (mobileMenu.classList.contains("hiddenMobile") || mobileMenu.classList.contains("hiddenMobile-noanim")) {
|
|
mobileMenu.classList.remove("hiddenMobile");
|
|
mobileMenu.classList.remove("hiddenMobile-noanim");
|
|
|
|
textbox.focus();
|
|
} else {
|
|
mobileMenu.classList.add("hiddenMobile");
|
|
textbox.blur();
|
|
// mobileMenu.classList.add("hiddenMobile-noanim");
|
|
}
|
|
}
|
|
|
|
addNewBarElement(
|
|
'a', 'Help',
|
|
{
|
|
"href": "/help",
|
|
"class": "nav-item doHide",
|
|
}
|
|
);
|
|
|
|
addNewBarElement(
|
|
'a', 'Random_things',
|
|
{
|
|
"href": "/page/random",
|
|
"class": "nav-item doHide",
|
|
}
|
|
);
|
|
|
|
addNewBarElement(
|
|
'a', 'JavaScript_apps',
|
|
{
|
|
"href": "/page/js",
|
|
"class": "nav-item doHide",
|
|
}
|
|
);
|
|
|
|
addNewBarElement(
|
|
'a', 'Source_code',
|
|
{
|
|
"href": "//github.com/TruncatedDinosour/website",
|
|
"class": "nav-item doHide",
|
|
}
|
|
);
|
|
|
|
addNewBarElement(
|
|
'a', 'Ari\'s_Web',
|
|
{
|
|
"href": "/",
|
|
"class": "nav-logo"
|
|
}
|
|
);
|
|
|
|
|
|
addNewMobileMenuItem('b', 'Pages:', {});
|
|
for (const page in pages) {
|
|
addNewMobileMenuItem(
|
|
'p', ` * ${page}`,
|
|
{
|
|
"class": "keep-whitespace caps",
|
|
"style": "text-transform: capitalize;"
|
|
}
|
|
);
|
|
}
|
|
|
|
addNewMobileMenuItem('br', '', {});
|
|
addNewMobileMenuItem('b', 'type "help" for help', {});
|
|
|
|
|
|
addNewMobileMenuItem(
|
|
'input', '',
|
|
{
|
|
"type": "text",
|
|
"class": "cmd",
|
|
"onkeypress": "mobileCmd();",
|
|
"id": "mobileCmd",
|
|
"autocomplete": "off",
|
|
"autocapitalize":"off",
|
|
"spellcheck": "false"
|
|
}
|
|
);
|
|
|
|
addNewMobileMenuItem('div', '', { "id": "mobileCmdOutput", "class": "cmd-output" });
|
|
|
|
|
|
detectSmallScreen();
|
|
setInterval(detectSmallScreen, 100);
|
|
|
|
if (!window.localStorage.getItem("fistTime")) {
|
|
window.location.assign("/help");
|
|
}
|
|
// setInterval(autorun, 100);
|