Merge pull request #818 from Pax1601/813-fix-last-details-of-the-manager

Fixed missing sleep in popup callback
This commit is contained in:
Pax1601
2024-01-31 15:42:38 +01:00
committed by GitHub
4 changed files with 16 additions and 11 deletions

View File

@@ -501,7 +501,7 @@ class DCSInstance {
} catch (err) { } catch (err) {
logger.log(`An error occurred during editing: ${err}`); logger.log(`An error occurred during editing: ${err}`);
getManager().getActiveInstance().error = true; getManager().getActiveInstance().error = true;
showErrorPopup(`<div class='main-message'>A critical error occurred! </div><div class='sub-message'> Check ${getManager().getLogLocation()} for more info. </div>`) showErrorPopup(`<div class='main-message'>A critical error occurred! </div><div class='sub-message'> Check ${getManager().getLogLocation()} for more info. </div>`)
getManager().getMode() === "basic"? getManager().settingsPage.show(): getManager().instancesPage.show(); getManager().getMode() === "basic"? getManager().settingsPage.show(): getManager().instancesPage.show();
} }
@@ -599,7 +599,10 @@ class DCSInstance {
getManager().instancesPage.show(); getManager().instancesPage.show();
return true; return true;
} catch (err) { } catch (err) {
logger.error(err) logger.error(err);
/* Nested popup calls need to wait for animation to complete */
await sleep(300);
showErrorPopup(`<div class='main-message'>An error has occurred while uninstalling the Olympus instance. </div><div class='sub-message'> Make sure Olympus and DCS are not running. </div><div class='sub-message'>You can find more info in ${path.join(__dirname, "..", "manager.log")} </div>`, () => { showErrorPopup(`<div class='main-message'>An error has occurred while uninstalling the Olympus instance. </div><div class='sub-message'> Make sure Olympus and DCS are not running. </div><div class='sub-message'>You can find more info in ${path.join(__dirname, "..", "manager.log")} </div>`, () => {
if (getManager().getMode() === 'basic') if (getManager().getMode() === 'basic')
getManager().settingsPage.show(); getManager().settingsPage.show();

View File

@@ -116,11 +116,15 @@ class Manager {
/* Ask the user for confirmation */ /* Ask the user for confirmation */
showConfirmPopup("<div class='main-message'> One or more of your Olympus instances are not up to date! </div><div class='sub-message'> If you have just updated Olympus this is normal.<br><br> Press <b>Accept</b> and the Manager will update your instances for you. <br> Press <b>Close</b> to update your instances manually using the Installation Wizard</div>", async () => { showConfirmPopup("<div class='main-message'> One or more of your Olympus instances are not up to date! </div><div class='sub-message'> If you have just updated Olympus this is normal.<br><br> Press <b>Accept</b> and the Manager will update your instances for you. <br> Press <b>Close</b> to update your instances manually using the Installation Wizard</div>", async () => {
try { try {
/* Nested popup calls need to wait for animation to complete */
await sleep(300); await sleep(300);
await DCSInstance.fixInstances(); await DCSInstance.fixInstances();
location.reload(); location.reload();
} catch (err) { } catch (err) {
logger.error(err); logger.error(err);
/* Nested popup calls need to wait for animation to complete */
await sleep(300); await sleep(300);
showErrorPopup(`<div class='main-message'>An error occurred while trying to fix your installations. Please reinstall Olympus manually. </div><div class='sub-message'> You can find more info in ${this.options.logLocation} </div>`); showErrorPopup(`<div class='main-message'>An error occurred while trying to fix your installations. Please reinstall Olympus manually. </div><div class='sub-message'> You can find more info in ${this.options.logLocation} </div>`);
} }

View File

@@ -10,6 +10,7 @@ const AdmZip = require("adm-zip");
const { Octokit } = require('octokit'); const { Octokit } = require('octokit');
const { logger } = require("./filesystem"); const { logger } = require("./filesystem");
const { getManager } = require('./managerfactory'); const { getManager } = require('./managerfactory');
const { sleep } = require('./utils');
const VERSION = "{{OLYMPUS_VERSION_NUMBER}}"; const VERSION = "{{OLYMPUS_VERSION_NUMBER}}";
logger.log(`Running in ${__dirname}`); logger.log(`Running in ${__dirname}`);
@@ -71,7 +72,10 @@ async function updateOlympusBeta() {
const date1 = new Date(artifact.updated_at); const date1 = new Date(artifact.updated_at);
const date2 = fs.statSync(".").mtime; const date2 = fs.statSync(".").mtime;
if (date1 > date2) { if (date1 > date2) {
showConfirmPopup(`<div class='main-message'> Looks like you are running a beta version of Olympus!</div><div class='sub-message'> Latest beta artifact timestamp of: <b style="color: orange">${date1.toLocaleString()}</b> <br> Your installation timestamp: <b style="color: orange">${date2.toLocaleString()}</b> <br><br> Do you want to update to the newest beta version?</div>`, () => { showConfirmPopup(`<div class='main-message'> Looks like you are running a beta version of Olympus!</div><div class='sub-message'> Latest beta artifact timestamp of: <b style="color: orange">${date1.toLocaleString()}</b> <br> Your installation timestamp: <b style="color: orange">${date2.toLocaleString()}</b> <br><br> Do you want to update to the newest beta version?</div>`, async () => {
/* Nested popup calls need to wait for animation to complete */
await sleep(300);
/* Run the browser and download the artifact */ //TODO: try and directly download the file from code rather than using the browser /* Run the browser and download the artifact */ //TODO: try and directly download the file from code rather than using the browser
exec(`start https://github.com/Pax1601/DCSOlympus/actions/runs/${artifact.workflow_run.id}/artifacts/${artifact.id}`) exec(`start https://github.com/Pax1601/DCSOlympus/actions/runs/${artifact.workflow_run.id}/artifacts/${artifact.id}`)
showConfirmPopup(`<div class='main-message'> A browser window was opened to download the beta artifact. </div><div class='sub-message'> Please wait for the download to complete, then press "Accept" and select the downloaded beta artifact.</div>`, showConfirmPopup(`<div class='main-message'> A browser window was opened to download the beta artifact. </div><div class='sub-message'> Please wait for the download to complete, then press "Accept" and select the downloaded beta artifact.</div>`,
@@ -222,8 +226,7 @@ const ipc = {
/* From main to render. */ /* From main to render. */
'receive': [ 'receive': [
'event:maximized', 'event:maximized',
'event:unmaximized', 'event:unmaximized'
'check-version'
], ],
/* From render to main and back again. */ /* From render to main and back again. */
'sendReceive': [] 'sendReceive': []
@@ -262,6 +265,7 @@ contextBridge.exposeInMainWorld(
window.addEventListener('DOMContentLoaded', async () => { window.addEventListener('DOMContentLoaded', async () => {
document.getElementById("loader").classList.remove("hide"); document.getElementById("loader").classList.remove("hide");
await getManager().start(); await getManager().start();
await checkVersion();
}) })
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
@@ -291,8 +295,3 @@ function computePagesHeight() {
pages[i].style.height = (window.innerHeight - (titleBar.clientHeight + header.clientHeight)) + "px"; pages[i].style.height = (window.innerHeight - (titleBar.clientHeight + header.clientHeight)) + "px";
} }
} }
ipcRenderer.on("check-version", () => {
/* Check if a new version is available */
checkVersion();
})

View File

@@ -38,7 +38,6 @@ function createWindow() {
electronApp.on('ready', () => { electronApp.on('ready', () => {
window = createWindow(); window = createWindow();
window.webContents.send('check-version')
}); });
electronApp.on('window-all-closed', () => { electronApp.on('window-all-closed', () => {