diff options
Diffstat (limited to 'src/js/arching-kaos-web-ui-settings.js')
-rw-r--r-- | src/js/arching-kaos-web-ui-settings.js | 108 |
1 files changed, 70 insertions, 38 deletions
diff --git a/src/js/arching-kaos-web-ui-settings.js b/src/js/arching-kaos-web-ui-settings.js index e170f4e..b4c62ac 100644 --- a/src/js/arching-kaos-web-ui-settings.js +++ b/src/js/arching-kaos-web-ui-settings.js @@ -1,10 +1,10 @@ -/* Arching Kaos Settings - * - * Kaotisk Hund - 2024 - * - * @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0 - * - */ +// Arching Kaos Settings +// +// Kaotisk Hund - 2024 +// +// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL v3.0 +// + /* * We will be using browser's localStorage for the clients to configure their * desired way to visit the web-ui. @@ -22,15 +22,20 @@ * kays or other more personal stuff. Need to encrypt these with a password too! * */ +import { makeElement } from "./arching-kaos-generator.js"; +import { getSettingsPage } from "./ui/sections/settingsSection.js"; +import { debugLog } from "./utils.js"; + var default_settings = { ipfs: { gateway: { list: [ 'https://ipfs.arching-kaos.com/', 'http://gw.ipfs.z.kaotisk-hund.com/', - 'http://localhost:8080/' + 'http://127.0.0.1:8080/', + 'http://127.0.0.1:8082/' ], - active: 0 + active: 3 } }, stellar: { @@ -71,14 +76,22 @@ var default_settings = { connect: { list: [ 'http://127.0.0.1:8610', - 'http://[fc59:6076:6299:6776:c13d:fbb2:1226:ead0]:8610', + 'http://z.kaotisk-hund.com:8610', 'http://api.aknet.z.kaotisk-hund.com/' ], active: 1 }, + radio: { + list: [ + 'http://127.0.0.1:8010', + 'http://z.kaotisk-hund.com:8010', + 'https://api.radio.arching-kaos.com' + ], + active: 2 + }, scan: false } -} +}; // TODO: Make up a settings configuration page to set this up initially rather // than forcing visitors to just save them into their local storage. @@ -93,6 +106,7 @@ var default_settings = { // // All comments above are replaced by temporary initializing without saving // anything in the localStorage + var settings = default_settings; // Also, remove any settings stored from previous runs @@ -106,14 +120,14 @@ if (( location.origin === "http://z.kaotisk-hund.com") || ( location.origin === "http://[fc59:6076:6299:6776:c13d:fbb2:1226:ead0]")) { settings.ipfs.gateway.active = 1; settings.stellar.horizon.active = 1; -} else if ( location.origin === "http://localhost:3000" ) { - settings.ipfs.gateway.active = 2; + settings.ak.connect.active = 1; + settings.ak.radio.active = 1; +} else if ( location.origin === "http://127.0.0.1" ) { + settings.ipfs.gateway.active = 3; } else { settings.ipfs.gateway.active = 0; } -var settingsPage = document.querySelector('#settings-section'); - var settingsKeys = Object.keys(settings); function renderCheck(container, value){ @@ -127,7 +141,7 @@ function renderCheck(container, value){ function renderList(container, value){ var selectOptions = document.createElement('select'); - for ( i = 0 ; i < value.list.length; i++ ){ + for ( var i = 0 ; i < value.list.length; i++ ){ var option = document.createElement("option"); if ( i === value.active ) { option.selected = true; @@ -141,7 +155,7 @@ function renderList(container, value){ function renderAssets(container, value){ var selectOptions = document.createElement('select'); - for ( i = 0 ; i < value.list.length; i++ ){ + for ( var i = 0 ; i < value.list.length; i++ ){ var option = document.createElement("option"); if ( i === value.active ) { option.selected = true; @@ -155,13 +169,16 @@ function renderAssets(container, value){ function settingPlaceToDOM(key, value){ var container = document.createElement("details"); - container.innerText=key; + var summary = document.createElement("summary"); + debugLog("~~KEY: "+key); + summary.innerText=key; + container.appendChild(summary); if ( Array.isArray(value) ){ var ul = document.createElement("select"); value.map((v)=>{ if (v.constructor.name === "Object"){ Object.keys(v).forEach((value)=>{ - makeElement({element:"option", innerText:value + ': ' + v[value], value: value}, ul); + makeElement({element:"option", innerText:`${value}: ${v[value]}`, value: value}, ul); }); } else { makeElement({element:"option", innerText:v, value: v}, ul); @@ -169,53 +186,68 @@ function settingPlaceToDOM(key, value){ }); container.appendChild(ul); } else if (value.constructor.name === "Object" ) { - console.log("KEY: "+key); + debugLog("KEY: "+key); switch (key){ case 'ipfs': - makeElement({ element:"summary",innerText:"IPFS" }, container); + makeElement({ element:"h4",innerText:"Gateway" }, container); renderList(container, value.gateway); break; case 'stellar': - makeElement({ element:"summary",innerText:"Asset" }, container); + makeElement({ element:"h4",innerText:"Asset" }, container); renderAssets(container, value.asset); + makeElement({ element:"hr" }, container); - makeElement({ element:"summary",innerText:"Variable Names" }, container); + makeElement({ element:"h4",innerText:"Variable Names" }, container); renderList(container, value.variableNames); + makeElement({ element:"hr" }, container); - makeElement({ element:"summary",innerText:"Horizon" }, container); + makeElement({ element:"h4",innerText:"Horizon" }, container); renderList(container, value.horizon); + makeElement({ element:"hr" }, container); - makeElement({ element:"summary",innerText:"Scan" }, container); + makeElement({ element:"h4",innerText:"Scan" }, container); renderCheck(container, value.scan); break; case 'ak': - makeElement({ element:"summary",innerText:"Connect" }, container); + makeElement({ element:"h4",innerText:"Connect" }, container); renderList(container, value.connect); break; default: container.innerText += " unknonwn lol"; } } else { - console.log(`Settings value: ${value}, type: ${typeof(value)}`); + debugLog(`Settings value: ${value}, type: ${typeof(value)}`); // container.innerText = value; } - settingsPage.appendChild(container); + getSettingsPage().appendChild(container); } -settingsKeys.forEach( - (value) => { - settingPlaceToDOM(value, settings[value]); +export function showSettings() +{ + for ( var i = 0; i < settingsKeys.length; i++ ) + { + settingPlaceToDOM(settingsKeys[i], settings[settingsKeys[i]]); } -); +// settingsKeys.forEach( +// (value) => { +// settingPlaceToDOM(value, settings[value]); +// } +// ); + + /* Small dump as pre text */ + // var predump = document.createElement('pre'); + // predump.innerText = JSON.stringify(settings, null, 2); + // getSettingsPage().appendChild(predump); + /* END of: Small dump as pre text */ +} -/* Small dump as pre text */ -var predump = document.createElement('pre'); -predump.innerText = JSON.stringify(settings, null, 2); -settingsPage.appendChild(predump); -/* END of: Small dump as pre text */ +export function getSettings() +{ + return default_settings; +} -// console.log(settings.ipfsGatewayAddress[settings.ipfsSelectedGatewayAddress]); +// debugLog(settings.ipfsGatewayAddress[settings.ipfsSelectedGatewayAddress]); // vim: tabstop=4 shiftwidth=4 expandtab softtabstop=4 // @license-end |