aboutsummaryrefslogtreecommitdiff
path: root/src/js/arching-kaos-web-ui-settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/arching-kaos-web-ui-settings.js')
-rw-r--r--src/js/arching-kaos-web-ui-settings.js108
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