From ee73186016298fa9f63b08dc9c59b0c950154e93 Mon Sep 17 00:00:00 2001 From: SpikeHD Date: Fri, 22 Apr 2022 19:43:50 -0700 Subject: [PATCH] disable/enable server button --- resources/js/index.js | 55 ++++++++++++++++++++++++++++++++++++++- resources/style/index.css | 2 +- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/resources/js/index.js b/resources/js/index.js index b80660f..10fe83e 100644 --- a/resources/js/index.js +++ b/resources/js/index.js @@ -9,6 +9,7 @@ const filesystem = Neutralino.filesystem document.addEventListener('DOMContentLoaded', async () => { setBackgroundImage(); displayGenshinFolder(); + displayServerFolder(); // Set title version document.querySelector('#version').innerHTML = NL_APPVERSION @@ -20,6 +21,10 @@ document.addEventListener('DOMContentLoaded', async () => { handleGenshinFolderNotSet() } + if (!config.serverFolder) { + handleServerNotSet() + } + // Set last connect document.querySelector('#ip').value = config.lastConnect @@ -92,6 +97,7 @@ async function getFavIps() { async function getCfg() { const defaultConf = { genshinImpactFolder: '', + serverFolder: '', lastConnect: '', enableKillswitch: false, serverLaunchPanel: false @@ -126,6 +132,16 @@ async function enableButtons() { } } +/** + * Enable server launch button + */ + async function enableServerButton() { + const serverBtn = document.querySelector('#serverLaunch') + + serverBtn.classList.remove('disabled') + serverBtn.disabled = false +} + /** * Disable buttons when the game folder is not set */ @@ -148,6 +164,19 @@ async function handleGenshinFolderNotSet() { // TODO show a dialog of sorts } +async function handleServerNotSet() { + // Set buttons to greyed out and disable + document.querySelector('#serverPath').innerHTML = 'Not set' + + // Set official server background to default + // document.querySelector('#firstPanel').style.backgroundImage = `url("../bg/private/default.png")` + + const privBtn = document.querySelector('#serverLaunch') + + privBtn.classList.add('disabled') + privBtn.disabled = true +} + async function proxyIsInstalled() { // Check if the proxy server is installed const curDirList = await filesystem.readDirectory(NL_CWD) @@ -173,6 +202,16 @@ async function displayGenshinFolder() { elm.innerHTML = config.genshinImpactFolder } +/** + * Show the server folder under the select button + */ + async function displayServerFolder() { + const elm = document.querySelector('#serverPath') + const config = await getCfg() + + elm.innerHTML = config.serverFolder +} + /** * Set the background images of both the private and public sections */ @@ -366,11 +405,12 @@ async function openSettings() { async function closeSettings() { const settings = document.querySelector('#settingsPanel') + const config = await getCfg() settings.style.display = 'none' // In case we installed the proxy server - if (await proxyIsInstalled()) { + if (await proxyIsInstalled() && config.genshinImpactFolder) { const playPriv = document.querySelector('#playPrivate') playPriv.classList.remove('disabled') @@ -461,6 +501,19 @@ async function setGenshinImpactFolder() { enableButtons() } +async function setGrassCutterFolder() { + const folder = await Neutralino.os.showFolderDialog('Select GrassCutter folder') + + // Set the folder in our configuration + const config = await getCfg() + + config.serverFolder = folder + Neutralino.storage.setData('config', JSON.stringify(config)) + + displayServerFolder() + enableServerButton() +} + /** * Get the name of the game executable * diff --git a/resources/style/index.css b/resources/style/index.css index 54473c7..02b04f5 100644 --- a/resources/style/index.css +++ b/resources/style/index.css @@ -298,7 +298,7 @@ body { height: 10%; } -#genshinPath { +#genshinPath, #serverPath { color: white; font-size: 14px; }