Fixes related to updates

This commit is contained in:
tanetakumi 2022-11-29 18:29:28 +09:00
parent e3ee03ef73
commit d7f6e04c65

View File

@ -1454,28 +1454,58 @@ function populateAboutVersionInformation(){
* of the current version. This value is displayed on the UI.
*/
function populateReleaseNotes(){
return new Promise((resolve, reject) => {
$.ajax({
url: 'https://github.com/dscalzi/HeliosLauncher/releases.atom',
success: (data) => {
timeout: 2500
}).done(function(data) {
const version = 'v' + remote.app.getVersion()
const entries = $(data).find('entry')
let latestVersionData = {}
latestVersionData.version = version
for(let i=0; i<entries.length; i++){
const entry = $(entries[i])
let id = entry.find('id').text()
id = id.substring(id.lastIndexOf('/')+1)
if(semver.lt(latestVersionData.version, id)){
latestVersionData.version = id
latestVersionData.releaseName = entry.find('title').text()
latestVersionData.releaseNotes = entry.find('content').text()
}
if(id === version){
if(semver.satisfies(version, "="+id)){
settingsAboutChangelogTitle.innerHTML = entry.find('title').text()
settingsAboutChangelogText.innerHTML = entry.find('content').text()
settingsAboutChangelogButton.href = entry.find('link').attr('href')
}
}
},
if(semver.lt(version, latestVersionData.version)){
$.ajax({
url: 'https://api.github.com/repos/dscalzi/HeliosLauncher/releases/tags/'+latestVersionData.version,
timeout: 2500
}).catch(err => {
}).done(function(assetsData) {
const assets = assetsData.assets
for(let i=0; i<assets.length; i++){
const url = assets[i].browser_download_url
if(/\.dmg$/.test(url)){
latestVersionData.darwindownload = url
} else if(/\.exe$/.test(url)){
latestVersionData.windowsdownload = url
}
}
resolve(latestVersionData)
}).fail(function() {
console.log("fail")
reject()
})
} else {
latestVersionData = null
resolve(latestVersionData)
}
}).fail(function() {
settingsAboutChangelogText.innerHTML = 'Failed to load release notes.'
reject()
})
})
}
@ -1484,7 +1514,6 @@ function populateReleaseNotes(){
*/
function prepareAboutTab(){
populateAboutVersionInformation()
populateReleaseNotes()
}
/**
@ -1567,11 +1596,12 @@ function prepareUpdateTab(data = null){
*
* @param {boolean} first Whether or not it is the first load.
*/
function prepareSettings(first = false) {
async function prepareSettings(first = false) {
if(first){
const vdata = await populateReleaseNotes()
setupSettingsTabs()
initSettingsValidators()
prepareUpdateTab()
prepareUpdateTab(vdata)
} else {
prepareModsTab()
}