Compare commits

...

3 Commits

Author SHA1 Message Date
CakeLancelot
323b5a3385 Make autoupdater flash graphic unselectable via tab 2024-10-06 15:36:37 -05:00
CakeLancelot
c898cacd7c Automatic update checking and CSS adjustments 2024-10-06 14:06:46 -05:00
CakeLancelot
e5b20f57ce Enable offline caches by default 2024-10-05 21:07:49 -05:00
4 changed files with 130 additions and 36 deletions

View File

@ -65,6 +65,12 @@ body {
right: 8px; right: 8px;
} }
#of-about-flash-div {
position: fixed;
bottom: 4px;
right: 8px;
}
#of-config-button-div { #of-config-button-div {
position: fixed; position: fixed;
bottom: 4px; bottom: 4px;
@ -91,6 +97,18 @@ body {
background-repeat: repeat; background-repeat: repeat;
} }
.form-check-input {
width: 25px;
height: 25px;
}
.form-check-label {
height: 25px;
margin-top: 5px;
margin-left: 10px;
font-size: 1rem;
}
#of-aboutmodal > .modal-dialog > .modal-content { #of-aboutmodal > .modal-dialog > .modal-content {
background-color: #093363; background-color: #093363;
border-color: #6699ff; border-color: #6699ff;
@ -192,3 +210,19 @@ button > i {
background: #000; background: #000;
clear: both; clear: both;
} }
@keyframes pulse {
0% {
opacity: 1;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.pulsing {
animation: pulse 2s infinite;
}

View File

@ -80,6 +80,36 @@ function setAppVersionText() {
$("#of-aboutversionnumber").text("Version " + getAppVersion()); $("#of-aboutversionnumber").text("Version " + getAppVersion());
} }
function checkForNewAppVersion() {
$("#of-about-button").removeClass("pulsing");
setAppVersionText();
if (config["autoupdate-check"] === true) {
$.getJSON(
"https://api.github.com/repos/OpenFusionProject/OpenFusionClient/releases/latest",
{},
function (data) {
$.each(data, function (index, element) {
if (index === "tag_name" && element > getAppVersion()) {
console.log("New version available: " + element);
var downloadPage =
"https://github.com/OpenFusionProject/OpenFusionClient/releases/latest";
$("#of-aboutversionnumber").html(
"Version " +
getAppVersion() +
`<br>A new version is available! ` +
`Click <a href="#" onclick='remote.require("shell").openExternal("` +
downloadPage +
`");'>here</a> to download.`
);
$("#of-about-button").addClass("pulsing");
return false; // break out of loop early
}
});
}
);
}
}
function validateServerSave(modalName) { function validateServerSave(modalName) {
// works everytime a key is entered into the server save form // works everytime a key is entered into the server save form
var descInput = document.getElementById(modalName + "server-descinput"); var descInput = document.getElementById(modalName + "server-descinput");
@ -382,6 +412,7 @@ function loadConfig() {
offlineRoot = config["offline-cache-location"] || offlineRootDefault; offlineRoot = config["offline-cache-location"] || offlineRootDefault;
$("#editconfig-offlinecachelocation:text").val(offlineRoot); $("#editconfig-offlinecachelocation:text").val(offlineRoot);
checkForNewAppVersion();
validateCacheLocation(); validateCacheLocation();
} }

View File

@ -1,7 +1,7 @@
{ {
"autoupdate-check": true, "autoupdate-check": true,
"cache-swapping": true, "cache-swapping": true,
"enable-offline-cache": false, "enable-offline-cache": true,
"verify-offline-cache": false, "verify-offline-cache": false,
"last-version-initialized": "1.6" "last-version-initialized": "1.6"
} }

View File

@ -1,4 +1,4 @@
<!DOCTYPE html> <!doctype html>
<html> <html>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
@ -490,40 +490,63 @@
</button> </button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form id="editconfig-form" class="needs-validation"> <form
<label for="editconfig-autoupdate" id="editconfig-form"
>Automatically update the client:</label class="needs-validation form-group"
><input >
class="form-control form-row w-75" <div class="form-check form-row">
type="checkbox" <input
id="editconfig-autoupdate" class="form-check-input"
/> type="checkbox"
<label for="editconfig-cacheswapping" id="editconfig-autoupdate"
>Swap game caches to avoid unnecessary />
downloads:</label <label
><input class="form-check-label"
class="form-control form-row w-75" for="editconfig-autoupdate"
type="checkbox" >Automatically check for updates</label
id="editconfig-cacheswapping" >
/> </div>
<label for="editconfig-enableofflinecache" <div class="form-check form-row">
>Use offline caches when they are <input
available:</label class="form-check-input"
><input type="checkbox"
class="form-control form-row w-75" id="editconfig-cacheswapping"
type="checkbox" />
id="editconfig-enableofflinecache" <label
/> class="form-check-label"
<label for="editconfig-verifyofflinecache" for="editconfig-cacheswapping"
>Verify offline caches every time they are >Swap game caches to avoid unnecessary
loaded:</label downloads</label
><input >
class="form-control form-row w-75" </div>
type="checkbox" <div class="form-check form-row">
id="editconfig-verifyofflinecache" <input
/> class="form-check-input"
type="checkbox"
id="editconfig-enableofflinecache"
/>
<label
class="form-check-label"
for="editconfig-enableofflinecache"
>Use offline caches when they are
available</label
>
</div>
<div class="form-check form-row mb-3">
<input
class="form-check-input"
type="checkbox"
id="editconfig-verifyofflinecache"
/>
<label
class="form-check-label"
for="editconfig-verifyofflinecache"
>Verify offline caches every time they
are loaded</label
>
</div>
<label for="editconfig-offlinecachelocation" <label for="editconfig-offlinecachelocation"
>Select Offline Cache Location:</label ><h5>Offline Cache Location:</h5></label
> >
<div class="form-row"> <div class="form-row">
<input <input
@ -534,8 +557,9 @@
/> />
<button <button
type="button" type="button"
class="btn btn-primary mb-2 ml-1" class="btn btn-primary ml-1"
onclick="browseOfflineCache()" onclick="browseOfflineCache()"
title="Browse"
> >
<i class="fas fa-folder"></i> <i class="fas fa-folder"></i>
</button> </button>
@ -913,6 +937,11 @@
<i class="fas fa-info-circle"></i> <i class="fas fa-info-circle"></i>
</button> </button>
</div> </div>
<div id="of-about-flash-div" style="z-index: -1">
<button class="btn btn-warning mr-1" tabindex="-1" type="button">
<i class="fas fa-info-circle"></i>
</button>
</div>
</section> </section>
<section> <section>
<div id="client"></div> <div id="client"></div>