Save tab to URL

This commit is contained in:
Pk11 2021-01-23 00:30:57 -06:00
parent c140c060c1
commit b8a45de027
2 changed files with 26 additions and 14 deletions

View File

@ -1,18 +1,24 @@
function openTab(event, tabName) { function openTab(event, target) {
for(let element of event.currentTarget.parentNode.parentNode.children) { for(let element of target.parentNode.parentNode.children) {
if (element.id.includes("tab")) { if (element.id.includes("tab")) {
element.style.display = "none"; element.style.display = "none";
} }
} }
for(let element of event.currentTarget.parentNode.children) { for(let element of target.parentNode.children) {
element.classList.remove("btn-secondary"); element.classList.remove("btn-secondary");
element.classList.add("btn-outline-secondary"); element.classList.add("btn-outline-secondary");
} }
document.getElementById(tabName).style.display = "block"; document.getElementById(`tab-${target.dataset.tabName}`).style.display = "block";
event.currentTarget.classList.remove("btn-outline-secondary"); target.classList.remove("btn-outline-secondary");
event.currentTarget.classList.add("btn-secondary"); target.classList.add("btn-secondary");
if(event) {
let url = new URL(window.location);
url.searchParams.set("tab", target.dataset.tabName);
history.pushState({}, "", url);
}
} }
// Remove links from tab buttons // Remove links from tab buttons
@ -22,30 +28,36 @@ for(a of document.getElementsByClassName("tab-link")) {
// Open the tabs for the current OS or the default // Open the tabs for the current OS or the default
for(let tabGroup of document.getElementsByClassName("tab-container")) { for(let tabGroup of document.getElementsByClassName("tab-container")) {
let tab = new URL(window.location).searchParams.get("tab");
if(tab) {
openTab(null, Array.from(tabGroup.children[0].children).filter(r => r.dataset.tabName ==tab)[0]);
break;
}
for(let tab of tabGroup.children[0].children) { for(let tab of tabGroup.children[0].children) {
if(tabGroup.classList.contains("tab-os")) { if(tabGroup.classList.contains("tab-os")) {
if(navigator.platform.includes("Win")) { if(navigator.platform.includes("Win")) {
if(tab.classList.contains("tab-windows")) { if(tab.classList.contains("tab-windows")) {
tab.click(); openTab(null, tab);
break; break;
} else if(tab.classList.contains("other")) { } else if(tab.classList.contains("other")) {
tab.click(); openTab(null, tab);
} }
} else if(navigator.platform.includes("Mac")) { } else if(navigator.platform.includes("Mac")) {
if(tab.classList.contains("tab-macos")) { if(tab.classList.contains("tab-macos")) {
tab.click(); openTab(null, tab);
break; break;
} else if(tab.classList.contains("other")) { } else if(tab.classList.contains("other")) {
tab.click(); openTab(null, tab);
} }
} else { } else {
if(tab.classList.contains("tab-other")) { if(tab.classList.contains("tab-other")) {
tab.click(); openTab(null, tab);
break; break;
} }
} }
} else if(tab.classList.contains("tab-default")) { } else if(tab.classList.contains("tab-default")) {
tab.click(); openTab(null, tab);
break; break;
} }
} }

View File

@ -106,8 +106,8 @@ After you extract the pack for your card, you can edit `sd:/_nds/ntr_forwarder.i
<div class="tab-container"> <div class="tab-container">
<div class="pb-3"> <div class="pb-3">
<a class="tab-link btn btn-outline-secondary tab-default" href="#tab-sd-card" onclick="openTab(event, 'tab-sd-card')">SD Card</a> <a class="tab-link btn btn-outline-secondary tab-default" href="#tab-sd-card" onclick="openTab(event, event.currentTarget)" data-tab-name="sd-card">SD Card</a>
<a class="tab-link btn btn-outline-secondary" href="#tab-flashcard" onclick="openTab(event, 'tab-flashcard')">Flashcard</a> <a class="tab-link btn btn-outline-secondary" href="#tab-flashcard" onclick="openTab(event, event.currentTarget)" data-tab-name="flashcard">Flashcard</a>
</div> </div>
<div id="tab-sd-card"> <div id="tab-sd-card">
<noscript><h4>SD Card</h4></noscript> <noscript><h4>SD Card</h4></noscript>