ari.lt/content/js/generic/generic.js

211 lines
5.1 KiB
JavaScript
Raw Normal View History

2021-07-02 04:03:52 +03:00
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 {
2021-07-03 23:25:21 +03:00
var out = commands[textbox.value.split(' ')[0]](textbox.value);
textbox.blur();
2021-07-02 04:03:52 +03:00
} catch (e) {
var out = e;
}
}
if (out) {
output.innerText = out;
textbox.value = '';
}
}
}
2021-07-03 23:25:21 +03:00
function autorun() {
// code that will run evety 100ms
}
2021-07-02 04:03:52 +03:00
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 = '';
2021-07-03 23:25:21 +03:00
let textbox = document.getElementById("mobileCmd");
if (mobileMenu.classList.contains("hiddenMobile") || mobileMenu.classList.contains("hiddenMobile-noanim")) {
2021-07-02 04:03:52 +03:00
mobileMenu.classList.remove("hiddenMobile");
2021-07-03 23:25:21 +03:00
mobileMenu.classList.remove("hiddenMobile-noanim");
textbox.focus();
2021-07-02 04:03:52 +03:00
} else {
mobileMenu.classList.add("hiddenMobile");
2021-07-03 23:25:21 +03:00
textbox.blur();
// mobileMenu.classList.add("hiddenMobile-noanim");
2021-07-02 04:03:52 +03:00
}
}
2021-07-03 23:25:21 +03:00
addNewBarElement(
'a', 'Help',
{
"href": "/help",
"class": "nav-item doHide",
}
);
2021-07-02 04:03:52 +03:00
addNewBarElement(
2021-07-03 23:25:21 +03:00
'a', 'Random_things',
{
2021-07-02 04:03:52 +03:00
"href": "/page/random",
"class": "nav-item doHide",
}
);
addNewBarElement(
2021-07-03 23:25:21 +03:00
'a', 'JavaScript_apps',
{
2021-07-02 04:03:52 +03:00
"href": "/page/js",
"class": "nav-item doHide",
}
);
addNewBarElement(
2021-07-03 23:25:21 +03:00
'a', 'Source_code',
{
2021-07-02 04:03:52 +03:00
"href": "//github.com/TruncatedDinosour/website",
"class": "nav-item doHide",
}
);
addNewBarElement(
2021-07-03 23:25:21 +03:00
'a', 'Ari\'s_Web',
{
2021-07-02 04:03:52 +03:00
"href": "/",
"class": "nav-logo"
}
);
2021-07-03 23:25:21 +03:00
addNewMobileMenuItem('b', 'Pages:', {});
for (const page in pages) {
addNewMobileMenuItem(
'p', ` * ${page}`,
{
"class": "keep-whitespace caps",
"style": "text-transform: capitalize;"
}
);
}
2021-07-02 04:03:52 +03:00
addNewMobileMenuItem('br', '', {});
addNewMobileMenuItem('b', 'type "help" for help', {});
2021-07-03 23:25:21 +03:00
2021-07-02 04:03:52 +03:00
addNewMobileMenuItem(
'input', '',
{
"type": "text",
"class": "cmd",
"onkeypress": "mobileCmd();",
2021-07-03 23:25:21 +03:00
"id": "mobileCmd",
"autocomplete": "off",
"autocapitalize":"off",
"spellcheck": "false"
2021-07-02 04:03:52 +03:00
}
);
addNewMobileMenuItem('div', '', { "id": "mobileCmdOutput", "class": "cmd-output" });
detectSmallScreen();
setInterval(detectSmallScreen, 100);
2021-07-03 23:25:21 +03:00
if (!window.localStorage.getItem("fistTime")) {
window.location.assign("/help");
}
// setInterval(autorun, 100);