diff --git a/manager/.vscode/tasks.json b/manager/.vscode/tasks.json index 7e89e91f..9732cc95 100644 --- a/manager/.vscode/tasks.json +++ b/manager/.vscode/tasks.json @@ -6,7 +6,7 @@ { "label": "mirror-package", "type": "shell", - "command": "./scripts/mirror-package.bat", + "command": "call ./scripts/mirror-package.bat", "isBackground": true } ] diff --git a/manager/ejs/instances.ejs b/manager/ejs/instances.ejs index 86f46e34..4d0236f8 100644 --- a/manager/ejs/instances.ejs +++ b/manager/ejs/instances.ejs @@ -3,6 +3,12 @@
+
"> +
Olympus settings updated for <%= typeof activeInstance !== 'undefined'? activeInstance["name"]: "" %>!
+
+
"> +
An error occurred while updating Olympus settings for <%= typeof activeInstance !== 'undefined'? activeInstance["name"]: "" %>
+
diff --git a/manager/ejs/result.ejs b/manager/ejs/result.ejs index 1a7d0cf9..be2d5c69 100644 --- a/manager/ejs/result.ejs +++ b/manager/ejs/result.ejs @@ -5,39 +5,7 @@ row-gap: 30px; padding: 60px 120px; } - - #result-page .result-summary { - padding: 25px 15px; - display: flex; - flex-direction: column; - row-gap: 10px; - } - - #result-page .result-summary .title { - font-weight: bold; - font-size: var(--big); - display: flex; - align-items: center; - } - - #result-page .result-summary .title img { - margin-right: 10px; - } - - #result-page .result-summary .description { - font-size: var(--normal); - } - - #result-page .result-summary.success{ - color: var(--background-color); - background-color: var(--green); - } - - #result-page .result-summary.error{ - color: var(--background-color); - background-color: var(--red); - } - + #result-page .instructions-group { display: flex; color: var(--offwhite); diff --git a/manager/ejs/settings.ejs b/manager/ejs/settings.ejs index 31e2f3fc..b8183302 100644 --- a/manager/ejs/settings.ejs +++ b/manager/ejs/settings.ejs @@ -2,9 +2,15 @@
-
+
Back to menu
+
"> +
Olympus settings updated for <%= typeof activeInstance !== 'undefined'? activeInstance["name"]: "" %>!
+
+
"> +
An error occurred while updating Olympus settings for <%= typeof activeInstance !== 'undefined'? activeInstance["name"]: "" %>
+
diff --git a/manager/icons/triangle-exclamation-solid-orange.svg b/manager/icons/triangle-exclamation-solid-orange.svg new file mode 100644 index 00000000..cf198f5c --- /dev/null +++ b/manager/icons/triangle-exclamation-solid-orange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/manager/javascripts/dcsinstance.js b/manager/javascripts/dcsinstance.js index 13ff88bd..6bfd924a 100644 --- a/manager/javascripts/dcsinstance.js +++ b/manager/javascripts/dcsinstance.js @@ -474,9 +474,10 @@ class DCSInstance { logger.log(`Editing completed successfully`); hidePopup(); - getManager().options.mode === "basic"? getManager().menuPage.show(): getManager().instancesPage.show(); + getManager().options.mode === "basic"? getManager().settingsPage.show(): getManager().instancesPage.show(); } catch (err) { logger.log(`An error occurred during editing: ${err}`); + getManager().getActiveInstance().error = true; hidePopup(); showErrorPopup(`A critical error occurred, check ${getManager().options.logLocation} for more info.`) } diff --git a/manager/javascripts/manager.js b/manager/javascripts/manager.js index 2d6fff36..fea015d2 100644 --- a/manager/javascripts/manager.js +++ b/manager/javascripts/manager.js @@ -359,12 +359,19 @@ class Manager { /* When the back button of a wizard page is clicked */ onBackClicked() { this.activePage.hide(); + + /* If we have backed to the menu, instances or settings page, reset the active instance */ + if ([this.instancesPage, this.settingsPage].includes(this.activePage.previousPage)) { + delete this.options.activeInstance; + } + this.activePage.previousPage.show(true); // Don't change the previous page this.updateInstances(); } onCancelClicked() { this.activePage.hide(); + delete this.options.activeInstance; if (this.options.mode === "basic") this.menuPage.show(true); else @@ -606,7 +613,7 @@ class Manager { document.getElementById("loader").style.opacity = "0%"; window.setTimeout(() => { document.getElementById("loader").classList.add("hide"); - }, 200); + }, 250); } } diff --git a/manager/javascripts/managerpage.js b/manager/javascripts/managerpage.js index 14470d65..1928377e 100644 --- a/manager/javascripts/managerpage.js +++ b/manager/javascripts/managerpage.js @@ -40,20 +40,17 @@ class ManagerPage { this.element.style.opacity = "0%"; window.setTimeout(() => { this.element.classList.add("hide"); - }, 200); + }, 250); } render(str) { this.element.innerHTML = str; this.element.style.opacity = "0%"; - window.setTimeout(() => { - this.element.classList.remove("hide"); - }, 200) - + this.element.classList.remove("hide"); window.setTimeout(() => { this.element.style.opacity = "100%"; - }, 300) + }, 0) /* Connect all the collapsable buttons */ let buttons = document.querySelectorAll(".button.collapse"); diff --git a/manager/javascripts/popup.js b/manager/javascripts/popup.js index 1c98056a..12a615ea 100644 --- a/manager/javascripts/popup.js +++ b/manager/javascripts/popup.js @@ -97,7 +97,7 @@ function hidePopup() { window.setTimeout(() => { document.getElementById("grayout").classList.add("hide"); document.getElementById("popup").classList.add("hide"); - }, 200); + }, 250); } function setPopupLoadingProgress(message, percent) { diff --git a/manager/stylesheets/style.css b/manager/stylesheets/style.css index 46f9b266..4ab5233b 100644 --- a/manager/stylesheets/style.css +++ b/manager/stylesheets/style.css @@ -212,9 +212,10 @@ body { /* Manager page */ /************************************************/ .manager-page { + position: absolute; min-width: 1200px; overflow-y: auto; - transition: opacity 0.2s linear; + transition: opacity 0.25s linear; opacity: 0%; /* By default has 0% opacity to allow for fade transition */ } @@ -230,7 +231,7 @@ body { height: 100%; background-color: rgba(0, 0, 0, 0.30); z-index: 999; - transition: opacity 0.2s linear; + transition: opacity 0.25s linear; opacity: 0%; /* By default has 0% opacity to allow for fade transition */ } @@ -250,7 +251,7 @@ body { padding: 20px 40px; align-items: start; z-index: 999; - transition: opacity 0.2s linear; + transition: opacity 0.25s linear; opacity: 0%; /* By default has 0% opacity to allow for fade transition */ } @@ -472,7 +473,7 @@ input { flex-direction: column; row-gap: 15px; height: 100%; - padding: 80px; + padding: 40px 80px; } .dashboard .scroll-container { @@ -625,6 +626,9 @@ input { font-size: var(--normal); font-weight: 600; color: var(--lightgray); + display: flex; + flex-direction: row; + column-gap: 8px; } .dashboard .instance-info>.status.installed { @@ -632,11 +636,23 @@ input { color: var(--green); } +.dashboard .instance-info>.status.installed::before { + content: url("../icons/check-solid-green.svg"); + height: 14px; + width: 14px; +} + .dashboard .instance-info>.status.error { font-weight: 600; color: orange; } +.dashboard .instance-info>.status.error::before { + content: url("../icons/triangle-exclamation-solid-orange.svg"); + height: 14px; + width: 14px; +} + .dashboard .instance-buttons { display: flex; flex-direction: row; @@ -724,6 +740,41 @@ input { cursor: default; } +/************************************************/ +/* Result summary */ +/************************************************/ +.result-summary { + padding: 25px 15px; + display: flex; + flex-direction: column; + row-gap: 10px; +} + +.result-summary .title { + font-weight: bold; + font-size: var(--big); + display: flex; + align-items: center; +} + +.result-summary .title img { + margin-right: 10px; +} + +.result-summary .description { + font-size: var(--normal); +} + +.result-summary.success{ + color: var(--background-color); + background-color: var(--green); +} + +.result-summary.error{ + color: var(--background-color); + background-color: var(--red); +} + /************************************************/ /* Misc */ /************************************************/