aboutsummaryrefslogtreecommitdiff
path: root/src/js/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/ui')
-rw-r--r--src/js/ui/components/akfsGet/index.js46
-rw-r--r--src/js/ui/components/homeGrid/index.js51
-rw-r--r--src/js/ui/components/logsArea/index.js24
-rw-r--r--src/js/ui/components/manualPeer/index.js45
-rw-r--r--src/js/ui/components/previewArea/index.js13
-rw-r--r--src/js/ui/components/progressArea/index.js33
-rw-r--r--src/js/ui/components/renderForm/index.js45
-rw-r--r--src/js/ui/components/resultsArea/index.js19
-rw-r--r--src/js/ui/components/scanButtons/index.js35
-rw-r--r--src/js/ui/footer.js54
-rw-r--r--src/js/ui/header.js27
-rw-r--r--src/js/ui/main.js50
-rw-r--r--src/js/ui/mainLayout.js20
-rw-r--r--src/js/ui/menu.js211
-rw-r--r--src/js/ui/sections/aboutSection.js56
-rw-r--r--src/js/ui/sections/akNodeInfoSection.js40
-rw-r--r--src/js/ui/sections/chatSection.js34
-rw-r--r--src/js/ui/sections/commentsSection.js38
-rw-r--r--src/js/ui/sections/donationSection.js181
-rw-r--r--src/js/ui/sections/filesSection.js41
-rw-r--r--src/js/ui/sections/markdownSection.js40
-rw-r--r--src/js/ui/sections/mixtapesSection.js38
-rw-r--r--src/js/ui/sections/myPageSection.js54
-rw-r--r--src/js/ui/sections/newsSection.js40
-rw-r--r--src/js/ui/sections/notFoundSection.js47
-rw-r--r--src/js/ui/sections/radioSection.js203
-rw-r--r--src/js/ui/sections/settingsSection.js55
-rw-r--r--src/js/ui/sections/statsSection.js51
-rw-r--r--src/js/ui/sections/stellarBalancesSection.js41
-rw-r--r--src/js/ui/sections/stellarDataConfigSection.js40
-rw-r--r--src/js/ui/sections/stellarSection.js32
-rw-r--r--src/js/ui/sections/welcomeSection.js63
-rw-r--r--src/js/ui/sections/zchainDataSection.js40
33 files changed, 1807 insertions, 0 deletions
diff --git a/src/js/ui/components/akfsGet/index.js b/src/js/ui/components/akfsGet/index.js
new file mode 100644
index 0000000..9fe0a9e
--- /dev/null
+++ b/src/js/ui/components/akfsGet/index.js
@@ -0,0 +1,46 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+const label = {
+ element : "h3",
+ innerText: "Get a file via AKFS"
+};
+
+const input = {
+ element: "input",
+ id:"hash-field",
+ type:"text",
+ name:"search",
+ placeholder:"Enter a hash"
+};
+
+const button = {
+ element:"button",
+ onclick:"akfsGetMap(this.parentElement.querySelector('#hash-field').value)",
+ innerText:"Get!"
+}
+
+const container = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: row; align-items: center; gap: 10px;",
+ innerHTML: [
+ input,
+ button
+ ]
+};
+
+
+export const akfsGetForm = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: column; align-items: center; gap: 10px;",
+ innerHTML: [
+ label,
+ container
+ ]
+}
+
+// @license-end
diff --git a/src/js/ui/components/homeGrid/index.js b/src/js/ui/components/homeGrid/index.js
new file mode 100644
index 0000000..004057c
--- /dev/null
+++ b/src/js/ui/components/homeGrid/index.js
@@ -0,0 +1,51 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const homeGrid = {
+ element: "div",
+ id: "home-grid",
+ innerHTML: [
+ {
+ element:"button",
+ className:"menu-clickable",
+ id:"#/mixtapes-section",
+ onclick:"menusel(this)",
+ style:"background-image: url(img/mixtapes-logo.png); background-repeat: round;"
+ },
+ {
+ element:"button",
+ className:"menu-clickable",
+ id:"#/news-section",
+ onclick:"menusel(this)",
+ style:"background-image: url(img/news-logo.png); background-repeat: round;"
+ },
+ {
+ element:"button",
+ className:"menu-clickable",
+ id:"#/chat-section",
+ onclick:"menusel(this)",
+ style:"background-image: url(img/chat-logo.png); background-repeat: round;"
+ },
+ {
+ element:"button",
+ className:"menu-clickable",
+ id:"#/radio-section",
+ onclick:"menusel(this)",
+ style:"background-image: url(img/radio-logo.png); background-repeat: round; background-size: cover;"
+ },
+ {
+ element:"button",
+ className:"menu-clickable",
+ id:"#/stats-section",
+ onclick:"menusel(this)",
+ // innerText:"Stats",
+ style:"background-image: url(img/stats-logo.png); background-repeat: round; background-size: cover;"
+ }
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/logsArea/index.js b/src/js/ui/components/logsArea/index.js
new file mode 100644
index 0000000..5782b87
--- /dev/null
+++ b/src/js/ui/components/logsArea/index.js
@@ -0,0 +1,24 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const logsArea = {
+ element: "details",
+ id: "logs-area",
+ innerHTML: [
+ {
+ element: "summary",
+ innerText: "Logs (click to expand)"
+ },
+ {
+ element: "div",
+ style: "font-size: 9px;",
+ id: "logs-area-element"
+ }
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/manualPeer/index.js b/src/js/ui/components/manualPeer/index.js
new file mode 100644
index 0000000..6a78f71
--- /dev/null
+++ b/src/js/ui/components/manualPeer/index.js
@@ -0,0 +1,45 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+const label = {
+ element : "h3",
+ innerText: "Connect to specific peer manually"
+};
+
+const input = {
+ element: "input",
+ id:"peer-field",
+ type:"text",
+ name:"search",
+ placeholder:"Enter an arching-kaos node address"
+};
+
+const button = {
+ element:"button",
+ onclick:"seekPeer(this.parentElement.querySelector('#peer-field').value, ['search', false])",
+ innerText:"Try"
+};
+
+const container = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: row; align-items: center; gap: 10px;",
+ innerHTML: [
+ input,
+ button
+ ]
+};
+
+export const manualPeerForm = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: column; align-items: center; gap: 10px;",
+ innerHTML: [
+ label,
+ container
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/previewArea/index.js b/src/js/ui/components/previewArea/index.js
new file mode 100644
index 0000000..153fe6f
--- /dev/null
+++ b/src/js/ui/components/previewArea/index.js
@@ -0,0 +1,13 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const previewArea = {
+ element: "div",
+ className: "preview"
+};
+
+// @license-end
diff --git a/src/js/ui/components/progressArea/index.js b/src/js/ui/components/progressArea/index.js
new file mode 100644
index 0000000..428481b
--- /dev/null
+++ b/src/js/ui/components/progressArea/index.js
@@ -0,0 +1,33 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const progressArea = {
+ element: "div",
+ className: "dialog",
+ innerHTML: [
+ {
+ element: "h3",
+ innerText: "Progress"
+ },
+ {
+ element: "progress",
+ id: "total-progress",
+ value: 0
+ },
+ {
+ element: "progress",
+ id: "http-progress",
+ value: 0
+ },
+ {
+ element: "pre",
+ id: "current-log-message"
+ }
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/renderForm/index.js b/src/js/ui/components/renderForm/index.js
new file mode 100644
index 0000000..ed9e4b7
--- /dev/null
+++ b/src/js/ui/components/renderForm/index.js
@@ -0,0 +1,45 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+const label = {
+ element : "h3",
+ innerText: "Render explicit zblock"
+};
+
+const input = {
+ element: "input",
+ id:"search-field",
+ type:"text",
+ name:"search",
+ placeholder:"Enter a zblock hash"
+};
+
+const button = {
+ element:"button",
+ onclick:"seekZblock(this.parentElement.querySelector('#search-field').value, ['search', false])",
+ innerText:"Render"
+}
+
+const container = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: row; align-items: center; gap: 10px;",
+ innerHTML: [
+ input,
+ button
+ ]
+};
+
+export const renderForm = {
+ element: "div",
+ style:"padding: 1vh 1vw; display: flex; flex-direction: column; align-items: center; gap: 10px;",
+ innerHTML: [
+ label,
+ container
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/resultsArea/index.js b/src/js/ui/components/resultsArea/index.js
new file mode 100644
index 0000000..58b72ca
--- /dev/null
+++ b/src/js/ui/components/resultsArea/index.js
@@ -0,0 +1,19 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const resultsArea = {
+ element: "div",
+ className: "results-area",
+ innerHTML: [
+ {
+ element: "h3",
+ innerText: "Results"
+ }
+ ]
+};
+
+// @license-end
diff --git a/src/js/ui/components/scanButtons/index.js b/src/js/ui/components/scanButtons/index.js
new file mode 100644
index 0000000..2e7d33b
--- /dev/null
+++ b/src/js/ui/components/scanButtons/index.js
@@ -0,0 +1,35 @@
+// Arching Kaos Welcome Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+export const scanMethodsArea = {
+ element: "div",
+ id: "scan-methods-area",
+ innerHTML: [
+ {
+ element: "h3",
+ innerText: "Manual scan"
+ },
+ {
+ element: "div",
+ id: "manual-scan-section",
+ innerHTML: [
+ {
+ element: "div",
+ className: "manual-scan",
+ innerHTML: [
+ { element:"button", onclick:"scanStellarNetworkForPeers()", innerText:"Check Stellar Network"},
+ { element:"button", onclick:"checkLocalNodeInfo()", innerText:"Check local Node"},
+ { element:"button", onclick:"checkLocalPeers()", innerText:"Check local Peers"},
+ { element:"button", onclick:"checkLocalSchain()", innerText:"Check Local Schain"}
+ ]
+ }
+ ]
+ },
+ ]
+}
+
+// @license-end
diff --git a/src/js/ui/footer.js b/src/js/ui/footer.js
new file mode 100644
index 0000000..6bd56b1
--- /dev/null
+++ b/src/js/ui/footer.js
@@ -0,0 +1,54 @@
+// Arching Kaos Footer
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { makeElement } from "../arching-kaos-generator.js";
+
+export function footerSpawn()
+{
+ var footer = {
+ element:"div",
+ id:"footer",
+ innerHTML:[
+ {
+ element:"div",
+ innerHTML:[
+ {element:"p", innerText:"Arching Kaos 2019-2025"},
+ {element:"a", target:"_blank", href:"https://github.com/arching-kaos/arching-kaos-tools", innerText:"Tools"},
+ {element:"a", target:"_blank", href:"https://arching-kaos.org", innerText:"Org"},
+ {element:"a", target:"_blank", href:"https://arching-kaos.net", innerText:"Net"},
+ ]
+ },
+ {
+ element:"span",
+ innerText:"::"
+ },
+
+ {
+ element:"div",
+ innerHTML:[
+ {element:"a", target:"_blank", href:"https://github.com/arching-kaos/arching-kaos-web-ui/issues/new/choose", innerText:"Report an issue"},
+ ]
+ },
+ {
+ element:"span",
+ innerText:"::"
+ },
+ {
+ element:"div",
+ innerHTML:[
+ {
+ element:"p",
+ innerHTML:"Fra <a target=\"_blank\" href=\"https://www.kaotisk-hund.com\">Kaotisk Hund</a> med kjærlighet. <a href=\"bitcoin:BC1QYL9K5KDLSLJAED9PZCJJX0CPGZVY9LWY427SD4\">Donate</a>"
+ }
+ ]
+ }
+ ]
+ };
+
+ makeElement(footer, document.querySelector('.footer'));
+}
+// @license-end
diff --git a/src/js/ui/header.js b/src/js/ui/header.js
new file mode 100644
index 0000000..8059419
--- /dev/null
+++ b/src/js/ui/header.js
@@ -0,0 +1,27 @@
+// Arching Kaos Header
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { makeElement } from "../arching-kaos-generator.js";
+
+export function headerSpawn()
+{
+ var header = {
+ element: "div",
+ id: 'header',
+ className: 'header',
+ innerHTML: [
+ { element: "a", id:"logo-button", innerHTML:[
+ {element: "img", src:"./img/logo.png" }
+ ]},
+ { element: "h1", style:"text-align: center;", innerText: "Arching Kaos"}
+ ],
+ onclick: 'menusel({id:"#/welcome-section"});'
+ }
+
+ makeElement(header, document.querySelector('#logo-title-placeholder'));
+}
+// @license-end
diff --git a/src/js/ui/main.js b/src/js/ui/main.js
new file mode 100644
index 0000000..209781f
--- /dev/null
+++ b/src/js/ui/main.js
@@ -0,0 +1,50 @@
+// Arching Kaos Main
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { aboutSection } from "./sections/aboutSection.js";
+import { akNodeInfoSection } from "./sections/akNodeInfoSection.js";
+import { chatSection } from "./sections/chatSection.js";
+import { commentsSection } from "./sections/commentsSection.js";
+import { filesSection } from "./sections/filesSection.js";
+import { mixtapesSection } from "./sections/mixtapesSection.js";
+import { newsSection } from "./sections/newsSection.js";
+import { myPageSection } from "./sections/myPageSection.js";
+import { notFoundSection } from "./sections/notFoundSection.js";
+import { radioSection } from "./sections/radioSection.js";
+import { settingsSection } from "./sections/settingsSection.js";
+import { statsSection } from "./sections/statsSection.js";
+import { stellarBalancesSection } from "./sections/stellarBalancesSection.js";
+import { stellarDataConfigSection } from "./sections/stellarDataConfigSection.js";
+import { stellarSection } from "./sections/stellarSection.js";
+import { welcomeSection } from "./sections/welcomeSection.js";
+import { zchainDataSection } from "./sections/zchainDataSection.js";
+import { donationSection } from "./sections/donationSection.js";
+import { markdownSection } from "./sections/markdownSection.js";
+
+export function mainSpawn()
+{
+ aboutSection();
+ akNodeInfoSection();
+ chatSection();
+ commentsSection();
+ donationSection()
+ markdownSection()
+ filesSection();
+ mixtapesSection();
+ newsSection();
+ myPageSection();
+ notFoundSection();
+ radioSection();
+ settingsSection();
+ statsSection();
+ stellarBalancesSection();
+ stellarDataConfigSection();
+ stellarSection();
+ welcomeSection();
+ zchainDataSection();
+}
+// @license-end
diff --git a/src/js/ui/mainLayout.js b/src/js/ui/mainLayout.js
new file mode 100644
index 0000000..715d95c
--- /dev/null
+++ b/src/js/ui/mainLayout.js
@@ -0,0 +1,20 @@
+// Arching Kaos Main Layout
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { headerSpawn } from "./header.js";
+import { menuSpawn } from "./menu.js";
+import { mainSpawn } from "./main.js";
+import { footerSpawn } from "./footer.js";
+
+export function mainLayoutSpawn()
+{
+ headerSpawn();
+ menuSpawn();
+ mainSpawn();
+ footerSpawn();
+}
+// @license-end
diff --git a/src/js/ui/menu.js b/src/js/ui/menu.js
new file mode 100644
index 0000000..0810dc9
--- /dev/null
+++ b/src/js/ui/menu.js
@@ -0,0 +1,211 @@
+// Arching Kaos Menu
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { makeElement } from "../arching-kaos-generator.js";
+import { locationHashSetter } from "../arching-kaos-spa-router.js";
+import { mainContainer } from "../app.js";
+import { debugLog } from "../utils.js";
+
+export function doubleFloorMenu()
+{
+ return document.querySelector('#double-floor');
+}
+export function upperFloor()
+{
+ return document.querySelector('.upper-floor');
+}
+
+export function lowerFloor()
+{
+ return document.querySelector('.lower-floor');
+}
+
+export function modulesSubmenu()
+{
+ return document.querySelector('#modules-submenu');
+}
+
+export function exploreSubmenu()
+{
+ return document.querySelector('#explore-submenu');
+}
+
+export function stellarSubmenu()
+{
+ return document.querySelector('#stellar-submenu');
+}
+
+
+export function menuSpawn()
+{
+ var menuButton = {
+ element: "button",
+ id:"mobile-menu",
+ innerText:"Show menu"
+ };
+
+ makeElement(menuButton, document.querySelector('#menu-placeholder'));
+
+ document.querySelector('#mobile-menu').addEventListener("click", toggleMenu);
+
+ var menuLayout = {
+ element: 'nav', id:"double-floor", innerHTML:[
+ { element: "div", id:"menu", className:"upper-floor", innerHTML: [
+ { element: "button", onclick:'menusel({id:"#/welcome-section"})', innerText:"Home"},
+ { element: "button", onclick:'modulesSubToggle()', innerText:"Modules"},
+ { element: "button", onclick:'exploreSubToggle()', innerText:"Explore"},
+ { element: "button", onclick:'menusel({id:"#/chat-section"})', innerText:"Chat"},
+ { element: "button", onclick:'menusel({id:"#/radio-section"})', innerText:"Radio"},
+ { element: "button", onclick:'menusel({id:"#/settings-section"})', innerText:"Settings"},
+ { element: "button", onclick:'stellarSubToggle()', innerText:"Stellar"},
+ { element: "button", onclick:'menusel({id:"#/about-section"})', innerText:"About"}
+ ]
+ },
+ { element: "div", id:"menu", className:"lower-floor"}
+ ]
+ };
+
+ makeElement(menuLayout, document.querySelector('#menu-placeholder'));
+
+ var modulesSubmenuTemplate = {
+ element: 'div',
+ className:"dropdown",
+ id:"modules-submenu",
+ innerHTML: [
+ { element:'button', onclick:"modulesSubToggle()", innerText:".."},
+ { element:'button', onclick:'menusel({id:"#/mixtapes-section"})', innerText:"Mixtapes"},
+ { element:'button', onclick:'menusel({id:"#/news-section"})', innerText:"News"},
+ { element:'button', onclick:'menusel({id:"#/markdown-section"})', innerText:"Markdown"},
+ { element:'button', onclick:'menusel({id:"#/comments-section"})', innerText:"Comments"},
+ { element:'button', onclick:'menusel({id:"#/files-section"})', innerText:"Files"}
+ ]
+ };
+
+ makeElement(modulesSubmenuTemplate, lowerFloor());
+
+ var exploreSubmenuTemplate = {
+ element: 'div',
+ className:"dropdown",
+ id:"explore-submenu",
+ innerHTML: [
+ { element:'button', onclick:"exploreSubToggle()", innerText:".."},
+ { element:'button', onclick:'menusel({id:"#/zchain-data-section"})', innerText:"zchain"},
+ { element:'button', onclick:'menusel({id:"#/stats-section"})', innerText:"Stats"}
+ ]
+ };
+ makeElement(exploreSubmenuTemplate, lowerFloor());
+
+ var stellarSubmenuTemplate = {
+ element: 'div',
+ className:"dropdown",
+ id:"stellar-submenu",
+ innerHTML: [
+ { element:'button', onclick:"stellarSubToggle()", innerText:".."},
+ { element:'button', onclick:'menusel({id:"#/mypage-section"})', innerText:"My page"},
+ { element:'button', onclick:'menusel({id:"#/stellar-balances"})', innerText:"Balances"},
+ { element:'button', onclick:'menusel({id:"#/stellar-data-config"})', innerText:"Data"},
+ { element:'button', onclick:'menusel({id:"#/arching-kaos-node-info"})', innerText:"Node Info"}
+ ]
+ };
+
+ makeElement(stellarSubmenuTemplate, lowerFloor());
+
+ upperFloor().style.display = 'flex';
+ lowerFloor().style.display = 'none';
+ modulesSubmenu().style.display = 'none';
+ exploreSubmenu().style.display = 'none';
+ stellarSubmenu().style.display = 'none';
+}
+
+/*
+ * Menu bar management
+ *
+ * We change the visible floor according to menu selection.
+ *
+ */
+
+export function modulesSubToggle(){
+ modulesSubmenu().style.display = modulesSubmenu().style.display === 'none' ? 'flex' : 'none';
+ upperFloor().style.display = upperFloor().style.display === 'none' ? 'flex' : 'none';
+ lowerFloor().style.display = lowerFloor().style.display === 'none' ? 'flex' : 'none';
+}
+
+export function exploreSubToggle(){
+ exploreSubmenu().style.display = exploreSubmenu().style.display === 'none' ? 'flex' : 'none';
+ upperFloor().style.display = upperFloor().style.display === 'none' ? 'flex' : 'none';
+ lowerFloor().style.display = lowerFloor().style.display === 'none' ? 'flex' : 'none';
+}
+
+export function stellarSubToggle(){
+ stellarSubmenu().style.display = stellarSubmenu().style.display === 'none' ? 'flex' : 'none';
+ upperFloor().style.display = upperFloor().style.display === 'none' ? 'flex' : 'none';
+ lowerFloor().style.display = lowerFloor().style.display === 'none' ? 'flex' : 'none';
+}
+/*
+ * Array of all the menu-panes IDs
+ */
+export function menuids()
+{
+ return [
+ '#welcome-section',
+ '#about-section',
+ '#donation-section',
+ '#zchain-data-section',
+ '#news-section',
+ '#comments-section',
+ '#stats-section',
+ '#markdown-section',
+ '#mixtapes-section',
+ '#chat-section',
+ '#radio-section',
+ '#mypage-section',
+ '#stellar-balances',
+ '#stellar-data-config',
+ '#arching-kaos-node-info',
+ '#files-section',
+ '#settings-section',
+ '#stellar-section',
+ '#not-found-section'
+ ]
+};
+
+// Function to hide all the panes
+export function menuinit(){
+ for ( var i = 0; i < menuids().length; i++ ){
+ var sec = document.querySelector(menuids()[i]);
+ if ( sec !== null )
+ {
+ sec.hidden = true;
+ }
+ else
+ {
+ debugLog(`menuinit: ${menuids()[i]} was not found`);
+ }
+ }
+}
+
+/*
+ * Function called on clicks on the menu bar
+ * Unhides the pane connected to the clicked menu entry
+ */
+export function menusel(m){
+ menuinit();
+ // document.querySelector(m.id.replace('/','')).hidden=false;
+ locationHashSetter(m.id);
+
+ mainContainer().style.display = 'block';
+ if ( window.isMobile ) {
+ doubleFloorMenu().style.display = 'none';
+ }
+}
+
+export function toggleMenu(){
+ mainContainer().style.display = 'none';
+ doubleFloorMenu().style.display = 'flex';
+}
+
+// @license-end
diff --git a/src/js/ui/sections/aboutSection.js b/src/js/ui/sections/aboutSection.js
new file mode 100644
index 0000000..7c77f46
--- /dev/null
+++ b/src/js/ui/sections/aboutSection.js
@@ -0,0 +1,56 @@
+// Arching Kaos About Section
+//
+// Kaotisk Hund - 2024
+//
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0
+//
+
+import { makeElement } from "../../arching-kaos-generator.js";
+
+export function aboutSection()
+{
+ var whereAmI = {
+ element: "div",
+ className: "where-am-i",
+ innerHTML: [
+ { element: "img", src:"./img/logo.png", onclick:"menusel({id:'#/welcome-section'})"},
+ { element: "span", innerText:">"},
+ { element: "h2", innerText:"About"}
+ ]
+ };
+
+ var content = {
+ element: "div",
+ className: "content",
+ innerHTML: [
+ { element: "p", innerText:"Arching Kaos is a project about radio, music, communications and decentralization."},
+ { element: "p", innerText:'On site, you can listen to the latest mixes of music (menu entry "Mixtapes"), read latest news ("News") of the network and chat (you guessed it, "Chat" menu entry).'},
+ { element: "p", innerText:'You can see the zchains appearing in "zchain" and logs of the process on "Logs"'},
+ { element: "p", innerText:"Note that to participate you will need to set up your Arching Kaos set, which is not so convinient yet but possible."},
+ { element: "p", innerText:"Furthermore, if you are using Freighter extension you can additionally see:"},
+ { element: "ol", innerHTML: [
+ { element:"li", innerText:"Your balances on your wallet"},
+ { element:"li", innerText:"Your configuration IPNS address (if any)"},
+ { element:"li", innerText:"Your Arching Kaos configuration (if any)"},
+ { element:"li", innerText:"Your zchain (...)"},
+ { element:"li", innerText:"Your posted newsfeed (...)"}
+ ]},
+ { element:"p", innerText:"Also, on the stats page you can find people that are participating over the Stellar Network, using the ARCHINGKAOS token/asset/coin."},
+ { element:"p", innerText:"If you like what you see or you think the project has potential, you can use the button below to donate."},
+ { element: "button", onclick:'menusel({id:"#/donation-section"})', innerText:"Donation"}
+ ]
+ };
+
+ var aboutSection = {
+ element: "div",
+ hidden: true,
+ id:"about-section",
+ innerHTML: [
+ whereAmI,
+ content
+ ]
+ };
+
+ makeElement(aboutSection, document.querySelector('.main'));
+}
+// @license-end
diff --git a/src/js/ui/sections/akNodeInfoSection.js b/src/js/ui/sections/akNodeInfoSection.js
new file mode 100644
index 0000000..63f2a0a
--- /dev/null
+++ b/src/js/ui/sections/akNodeInfoSection.js
@@ -0,0 +1,40 @@
+// Arching Kaos Node Info