move javascript files to js directory
This commit is contained in:
36
static/js/redirect.js
Normal file
36
static/js/redirect.js
Normal file
@@ -0,0 +1,36 @@
|
||||
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT
|
||||
|
||||
// Client-side redirects for fragments (anchors)
|
||||
//
|
||||
// It should be possible to do this with server-side redirects, but it was never implemented or
|
||||
// standardized. For reference:
|
||||
//
|
||||
// https://www.w3.org/People/Bos/redirect
|
||||
// https://www.w3.org/Protocols/HTTP/Fragment/draft-bos-http-redirect-00.txt
|
||||
|
||||
const redirects = new Map([
|
||||
["/#device-support", "/faq#device-support"],
|
||||
["/#roadmap", "/faq#roadmap"],
|
||||
["/#copyright-and-licensing", "/faq#copyright-and-licensing"],
|
||||
["/usage#default-connections", "/faq#default-connections"],
|
||||
["/releases#marlin-stable", "/faq#legacy-devices"],
|
||||
["/releases#sailfish-stable", "/faq#legacy-devices"],
|
||||
["/releases#marlin-beta", "/faq#legacy-devices"],
|
||||
["/releases#sailfish-beta", "/faq#legacy-devices"],
|
||||
["/faq#dns", "/faq#custom-dns"],
|
||||
["/build#upgrading-to-android-10", "/build#generating-release-signing-keys"],
|
||||
]);
|
||||
|
||||
function handle_hash() {
|
||||
if (window.location.hash) {
|
||||
const redirect = redirects.get(window.location.pathname + window.location.hash);
|
||||
if (redirect) {
|
||||
window.location.replace(redirect);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handle_hash();
|
||||
addEventListener("hashchange", handle_hash, false);
|
||||
|
||||
// @license-end
|
||||
44
static/js/releases.js
Normal file
44
static/js/releases.js
Normal file
@@ -0,0 +1,44 @@
|
||||
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT
|
||||
|
||||
const baseUrl = "https://releases.grapheneos.org/";
|
||||
const versionBaseUrl = "https://github.com/GrapheneOS/platform_manifest/releases/tag/";
|
||||
const devices = ["sunfish", "coral", "flame", "bonito", "sargo", "crosshatch", "blueline", "taimen", "walleye"];
|
||||
const channels = ["stable", "beta"];
|
||||
|
||||
for (const channel of channels) {
|
||||
for (const device of devices) {
|
||||
fetch(baseUrl + device + "-" + channel).then(response => {
|
||||
if (!response.ok) {
|
||||
return Promise.reject();
|
||||
}
|
||||
return response.text();
|
||||
}).then(text => {
|
||||
const metadata = text.trim().split(" ");
|
||||
|
||||
const factoryFilename = device + "-factory-" + metadata[0] + ".zip";
|
||||
const factoryUrl = baseUrl + factoryFilename;
|
||||
|
||||
const updateFilename = device + "-ota_update-" + metadata[0] + ".zip";
|
||||
const updateUrl = baseUrl + updateFilename;
|
||||
|
||||
const tag = metadata[2] + "." + metadata[0];
|
||||
|
||||
const release = document.getElementById(device + "-" + channel);
|
||||
const links = release.getElementsByTagName("a");
|
||||
|
||||
links[1].innerText = tag;
|
||||
links[1].setAttribute("href", versionBaseUrl + tag);
|
||||
|
||||
links[2].innerText = factoryFilename;
|
||||
links[2].setAttribute("href", factoryUrl);
|
||||
|
||||
links[3].innerText = factoryFilename + ".sig";
|
||||
links[3].setAttribute("href", factoryUrl + ".sig");
|
||||
|
||||
links[4].innerText = updateFilename;
|
||||
links[4].setAttribute("href", updateUrl);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// @license-end
|
||||
Reference in New Issue
Block a user