diff --git a/2021.12/_static/javascripts/version_dropdown.js b/2021.12/_static/javascripts/version_dropdown.js index e09b6c0b0..d43ddde52 100644 --- a/2021.12/_static/javascripts/version_dropdown.js +++ b/2021.12/_static/javascripts/version_dropdown.js @@ -1,5 +1,16 @@ -function add_version_dropdown(json_loc, target_loc, text) { +function assign_href(a, url, path) { + fetch(url + "/" + path).then(response => { + if (response.ok) { + a.href = url + "/" + path; + } else { + a.href = url + "/index.html"; + } + }).catch(error => { + a.href = url + "/index.html"; + }); +} +function add_version_dropdown(json_loc, target_loc, text) { var dropdown = document.createElement("div"); dropdown.className = "md-flex__cell md-flex__cell--shrink dropdown"; var button = document.createElement("button"); @@ -9,13 +20,17 @@ function add_version_dropdown(json_loc, target_loc, text) { dropdown.appendChild(button); dropdown.appendChild(content); $.getJSON(json_loc, function(versions) { + var currentURL = window.location.href; + var path = currentURL.split("_site")[1]; + path = path.split("/"); + path = path.slice(2, path.length); + path = path.join("/"); for (var key in versions) { if (versions.hasOwnProperty(key)) { - console.log(key, versions[key]); var a = document.createElement("a"); a.innerHTML = key; a.title = key; - a.href = target_loc + versions[key]; + assign_href(a, target_loc + versions[key], path); content.appendChild(a); } } diff --git a/2022.12/_static/javascripts/version_dropdown.js b/2022.12/_static/javascripts/version_dropdown.js index e09b6c0b0..d43ddde52 100644 --- a/2022.12/_static/javascripts/version_dropdown.js +++ b/2022.12/_static/javascripts/version_dropdown.js @@ -1,5 +1,16 @@ -function add_version_dropdown(json_loc, target_loc, text) { +function assign_href(a, url, path) { + fetch(url + "/" + path).then(response => { + if (response.ok) { + a.href = url + "/" + path; + } else { + a.href = url + "/index.html"; + } + }).catch(error => { + a.href = url + "/index.html"; + }); +} +function add_version_dropdown(json_loc, target_loc, text) { var dropdown = document.createElement("div"); dropdown.className = "md-flex__cell md-flex__cell--shrink dropdown"; var button = document.createElement("button"); @@ -9,13 +20,17 @@ function add_version_dropdown(json_loc, target_loc, text) { dropdown.appendChild(button); dropdown.appendChild(content); $.getJSON(json_loc, function(versions) { + var currentURL = window.location.href; + var path = currentURL.split("_site")[1]; + path = path.split("/"); + path = path.slice(2, path.length); + path = path.join("/"); for (var key in versions) { if (versions.hasOwnProperty(key)) { - console.log(key, versions[key]); var a = document.createElement("a"); a.innerHTML = key; a.title = key; - a.href = target_loc + versions[key]; + assign_href(a, target_loc + versions[key], path); content.appendChild(a); } } diff --git a/draft/_static/javascripts/version_dropdown.js b/draft/_static/javascripts/version_dropdown.js index e09b6c0b0..d43ddde52 100644 --- a/draft/_static/javascripts/version_dropdown.js +++ b/draft/_static/javascripts/version_dropdown.js @@ -1,5 +1,16 @@ -function add_version_dropdown(json_loc, target_loc, text) { +function assign_href(a, url, path) { + fetch(url + "/" + path).then(response => { + if (response.ok) { + a.href = url + "/" + path; + } else { + a.href = url + "/index.html"; + } + }).catch(error => { + a.href = url + "/index.html"; + }); +} +function add_version_dropdown(json_loc, target_loc, text) { var dropdown = document.createElement("div"); dropdown.className = "md-flex__cell md-flex__cell--shrink dropdown"; var button = document.createElement("button"); @@ -9,13 +20,17 @@ function add_version_dropdown(json_loc, target_loc, text) { dropdown.appendChild(button); dropdown.appendChild(content); $.getJSON(json_loc, function(versions) { + var currentURL = window.location.href; + var path = currentURL.split("_site")[1]; + path = path.split("/"); + path = path.slice(2, path.length); + path = path.join("/"); for (var key in versions) { if (versions.hasOwnProperty(key)) { - console.log(key, versions[key]); var a = document.createElement("a"); a.innerHTML = key; a.title = key; - a.href = target_loc + versions[key]; + assign_href(a, target_loc + versions[key], path); content.appendChild(a); } } diff --git a/latest/_static/javascripts/version_dropdown.js b/latest/_static/javascripts/version_dropdown.js index e09b6c0b0..d43ddde52 100644 --- a/latest/_static/javascripts/version_dropdown.js +++ b/latest/_static/javascripts/version_dropdown.js @@ -1,5 +1,16 @@ -function add_version_dropdown(json_loc, target_loc, text) { +function assign_href(a, url, path) { + fetch(url + "/" + path).then(response => { + if (response.ok) { + a.href = url + "/" + path; + } else { + a.href = url + "/index.html"; + } + }).catch(error => { + a.href = url + "/index.html"; + }); +} +function add_version_dropdown(json_loc, target_loc, text) { var dropdown = document.createElement("div"); dropdown.className = "md-flex__cell md-flex__cell--shrink dropdown"; var button = document.createElement("button"); @@ -9,13 +20,17 @@ function add_version_dropdown(json_loc, target_loc, text) { dropdown.appendChild(button); dropdown.appendChild(content); $.getJSON(json_loc, function(versions) { + var currentURL = window.location.href; + var path = currentURL.split("_site")[1]; + path = path.split("/"); + path = path.slice(2, path.length); + path = path.join("/"); for (var key in versions) { if (versions.hasOwnProperty(key)) { - console.log(key, versions[key]); var a = document.createElement("a"); a.innerHTML = key; a.title = key; - a.href = target_loc + versions[key]; + assign_href(a, target_loc + versions[key], path); content.appendChild(a); } }