From f2ac3bc948207603ef64e775abad22aed220f224 Mon Sep 17 00:00:00 2001 From: Erika <87762061+NovaT82@users.noreply.github.com> Date: Wed, 13 Dec 2023 15:41:47 +0200 Subject: [PATCH] fix: downloads latest file selection (#190) --- assets/css/downloads.css | 9 +++-- assets/js/downloads.js | 87 +++++++++++++++++++++------------------- 2 files changed, 52 insertions(+), 44 deletions(-) diff --git a/assets/css/downloads.css b/assets/css/downloads.css index bd2c58b..b2cc3b4 100644 --- a/assets/css/downloads.css +++ b/assets/css/downloads.css @@ -339,10 +339,13 @@ div#support.download-content > .dl-card div.dl-info-holder { flex-grow: 1; } -/* #linuxArchID, +.dropdown-container select, +#linuxArchID, #osxArchID, -#windowsArchID */ -.dropdown-container select { +#windowsArchID, +#linuxNetworkID, +#osxNetworkID, +#windowsNetworkID { padding: 10px; font-size: 16px; border: 1px solid #ebebeb; diff --git a/assets/js/downloads.js b/assets/js/downloads.js index c7a06bc..e3df3aa 100644 --- a/assets/js/downloads.js +++ b/assets/js/downloads.js @@ -2,15 +2,15 @@ let OS = ""; const networks = ["nextnet", "testnet"] let options = [{ os: "linux", - arch: [], + arch: ['arm64', 'x86_64'], network: [], },{ os: "osx", - arch: [], + arch: ['arm64', 'x86_64'], network: [], },{ os: "windows", - arch: [], + arch: ['x64'], network: [], }]; let currentNetwork = networks[0]; @@ -19,34 +19,34 @@ let networkUrlData = {}; let currentOS = ""; let currentArch = ""; -function getArchValues() { - options.forEach(({os, arch}) => { - let selectElement = document.getElementById(`${os}ArchID`) || ""; - - if (selectElement !== "") { - for (let i = 0; i < selectElement.options.length; i++) { - let optionValue = selectElement.options[i].value; - arch.push(optionValue); - } - currentArch = arch[0]; - } - }); -} -getArchValues(); - -function getNetworkValues() { - options.forEach(({os, network}) => { - let selectElement = document.getElementById(`${os}NetworkID`) || ""; - - if (selectElement !== "") { - for (let i = 0; i < selectElement.options.length; i++) { - let optionValue = selectElement.options[i].value; - network.push(optionValue); - } - } - }); -} -getNetworkValues(); +// function getArchValues() { +// options.forEach(({os, arch}) => { +// let selectElement = document.getElementById(`${os}ArchID`) || ""; + +// if (selectElement !== "") { +// for (let i = 0; i < selectElement.options.length; i++) { +// let optionValue = selectElement.options[i].value; +// arch.push(optionValue); +// } +// currentArch = arch[0]; +// } +// }); +// } +// getArchValues(); + +// function getNetworkValues() { +// options.forEach(({os, network}) => { +// let selectElement = document.getElementById(`${os}NetworkID`) || ""; + +// if (selectElement !== "") { +// for (let i = 0; i < selectElement.options.length; i++) { +// let optionValue = selectElement.options[i].value; +// network.push(optionValue); +// } +// } +// }); +// } +// getNetworkValues(); function ignoreFolders(data, foldersToIgnore) { return Object.entries(data).reduce((acc, [os, binaries]) => { @@ -237,21 +237,24 @@ jQuery(document).ready(function ($) { return; } if (rawOs !== "libwallet") { - + // filter by network networks.forEach((network) => { let nets = data[os].filter((key) => key.path.includes(network)); - + // filter by architecture if (nets.length > 0) { let btn = document.getElementById(`${rawOs}DL`); let checkSumDiv = document.getElementById(`${rawOs}CSID`); - + let filteredUrls = {}; options.forEach(({ os: archOs, arch: archList }) => { if (rawOs === archOs) { + + let filteredNetWithoutSha256 = nets.filter(net => !net.url.endsWith(".sha256")); + archList.forEach((archItem) => { - let filteredNet = nets.filter((net) => net.path.includes(archItem)); + let filteredNet = filteredNetWithoutSha256.filter((net) => net.path.includes(archItem)); if (filteredNet.length > 0) { let latest = filteredNet.reduce((a, b) => a.lastModified > b.lastModified || (a.lastModified == b.lastModified && a.url < b.url) ? a : b); filteredUrls[archItem] = latest; @@ -259,37 +262,39 @@ jQuery(document).ready(function ($) { }); } }); - + // create object for each arch/network Object.keys(filteredUrls).forEach((arch) => { let latest = filteredUrls[arch]; let sha256 = ""; let checksum = latest.sha256; - + if (checksum) { sha256 = checksum.split(" ")[0]; } - + latest.checksum = checksum ? `SHA256: ${sha256}` : ""; latest.button = btn; latest.checksumDiv = checkSumDiv; latest.arch = arch; - + if (!networkUrlData[rawOs]) { networkUrlData[rawOs] = {}; } - + if (!networkUrlData[rawOs][network]) { networkUrlData[rawOs][network] = {}; } - + networkUrlData[rawOs][network][arch] = latest; + }); } }); } }); } + function setInitialActive(os) { switch (os) {