aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0neGal <mail@0negal.com>2022-02-21 19:31:33 +0100
committer0neGal <mail@0negal.com>2022-02-21 19:35:56 +0100
commit132fea11e3599c9c2c9df8a69fd4d093033788ba (patch)
treec4a47181d3a65461c3d4448542639dd7dc953d36
parent43122069a282f4594653ede9402ba330b7f39e84 (diff)
downloadViper-132fea11e3599c9c2c9df8a69fd4d093033788ba.tar.gz
Viper-132fea11e3599c9c2c9df8a69fd4d093033788ba.zip
some functionality is now present
Albeit only frontend functionality, it doesn't actually save your settings, it simply loads them, and Settings.get(), allows you to convert them to a format that can be used to save settings.
-rw-r--r--src/app/index.html8
-rw-r--r--src/app/main.js2
-rw-r--r--src/app/settings.js56
-rw-r--r--src/utils.js2
4 files changed, 63 insertions, 5 deletions
diff --git a/src/app/index.html b/src/app/index.html
index 7a919b1..0bd6694 100644
--- a/src/app/index.html
+++ b/src/app/index.html
@@ -37,7 +37,7 @@
</div>
<div class="options">
<h2>Northstar</h2>
- <div class="option">
+ <div class="option" name="nsargs">
<div class="text">
Launch options
<div class="desc">
@@ -49,7 +49,7 @@
</div>
</div>
<h2>Updates</h2>
- <div class="option">
+ <div class="option" name="autoupdate">
<div class="text">
Viper Auto-Updates
<div class="desc">
@@ -60,7 +60,7 @@
<button class="switch on"></button>
</div>
</div>
- <div class="option">
+ <div class="option" name="nsupdate">
<div class="text">
Northstar Auto-Updates
<div class="desc">
@@ -71,7 +71,7 @@
<button class="switch on"></button>
</div>
</div>
- <div class="option">
+ <div class="option" name="excludes" type="array">
<div class="text">
Retain files on update
<div class="desc">
diff --git a/src/app/main.js b/src/app/main.js
index db3514b..a781ef1 100644
--- a/src/app/main.js
+++ b/src/app/main.js
@@ -8,7 +8,9 @@ let shouldInstallNorthstar = false;
// Base settings
var settings = {
+ nsargs: "",
gamepath: "",
+ nsupdate: true,
autoupdate: true,
zip: "/northstar.zip",
lang: navigator.language,
diff --git a/src/app/settings.js b/src/app/settings.js
index c9e43ae..e558d61 100644
--- a/src/app/settings.js
+++ b/src/app/settings.js
@@ -1,6 +1,7 @@
var Settings = {
toggle: (state) => {
if (state) {
+ Settings.load();
options.scrollTo(0, 0);
overlay.classList.add("shown")
options.classList.add("shown")
@@ -14,6 +15,7 @@ var Settings = {
}
}
+ Settings.load();
options.scrollTo(0, 0);
overlay.classList.toggle("shown")
options.classList.toggle("shown")
@@ -39,8 +41,60 @@ var Settings = {
}
Settings.reloadSwitches();
+ },
+ get: () => {
+ let opts = {};
+ let options = document.querySelectorAll(".option");
+
+ for (let i = 0; i < options.length; i++) {
+ let optName = options[i].getAttribute("name");
+ if (options[i].querySelector(".actions input")) {
+ let input = options[i].querySelector(".actions input").value;
+ if (options[i].getAttribute("type")) {
+ opts[optName] = input.split(" ");
+ } else {
+ opts[optName] = input;
+ }
+ } else if (options[i].querySelector(".actions .switch")) {
+ if (options[i].querySelector(".actions .switch.on")) {
+ opts[optName] = true;
+ } else {
+ opts[optName] = false;
+ }
+ }
+ }
+
+ return opts;
+ },
+ load: () => {
+ let options = document.querySelectorAll(".option");
+
+ for (let i = 0; i < options.length; i++) {
+ let optName = options[i].getAttribute("name");
+ if (settings[optName] != undefined) {
+ switch(typeof settings[optName]) {
+ case "string":
+ options[i].querySelector(".actions input").value = settings[optName];
+ break
+ case "object":
+ options[i].querySelector(".actions input").value = settings[optName].join(" ");
+ break
+ case "boolean":
+ let switchDiv = options[i].querySelector(".actions .switch");
+ if (settings[optName]) {
+ switchDiv.classList.add("on");
+ switchDiv.classList.remove("off");
+ } else {
+ switchDiv.classList.add("off");
+ switchDiv.classList.remove("on");
+ }
+ break
+
+ }
+ }
+ }
}
}
Settings.reloadSwitches();
-
+Settings.load();
diff --git a/src/utils.js b/src/utils.js
index 2ea91cd..b4dd920 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -20,8 +20,10 @@ process.chdir(app.getPath("appData"));
// Base settings
var settings = {
+ nsargs: "",
gamepath: "",
lang: "en-US",
+ nsupdate: true,
autoupdate: true,
zip: "/northstar.zip",