Last active
March 28, 2021 15:05
-
-
Save dev-marisa/a3cdeb248a573f0e4b89fb102cc69fc3 to your computer and use it in GitHub Desktop.
Simple tampermonkey script to let a user hide tracks they don't need to see.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Hide Unneeded Tracks | |
// @namespace http://tampermonkey.net/ | |
// @version 1.0 | |
// @description Hide tracks that you don't need to see | |
// @author Marisa Goode | |
// @match https://learn.codingdojo.com/dashboard | |
// @icon https://www.google.com/s2/favicons?domain=codingdojo.com | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
window.getHiddenTracks = function() { | |
let ids = JSON.parse(localStorage.getItem("hidden-tracks")); | |
return Array.isArray(ids) ? ids : []; | |
} | |
window.setHiddenTrack = function(id) { | |
let tracksToHide = getHiddenTracks(); | |
tracksToHide.push(id); | |
localStorage.setItem("hidden-tracks", JSON.stringify(tracksToHide)); | |
} | |
window.hideTrack = function(trackId, e) { | |
if(e) { | |
e.target.remove(); | |
setHiddenTrack(trackId); | |
} | |
let selector = `[data-track-id="${trackId}"]`; | |
document.querySelector(selector).style.display = "none"; | |
} | |
window.showAllTracks = function() { | |
document.querySelectorAll(".btn-hide").forEach(b => b.remove()); | |
getHiddenTracks().forEach(trackId => { | |
let selector = `[data-track-id="${trackId}"]`; | |
document.querySelector(selector).style.display = "block"; | |
}); | |
localStorage.setItem("hidden-tracks", "[]"); | |
enableHideTracks(); | |
} | |
window.enableHideTracks = function() { | |
getHiddenTracks().forEach(id => hideTrack(id)); | |
document.querySelectorAll("[data-track-id]").forEach(t => { | |
if(t.style.display === "none") { | |
return; | |
} | |
const button = document.createElement("button"); | |
button.textContent = "[hide]"; | |
button.style = "border:none;background-color:transparent;" + | |
"color:#009cc6;cursor: pointer;"; | |
button.classList = "btn-hide"; | |
button.onclick = e => hideTrack(t.dataset.trackId, e); | |
t.parentNode.insertBefore(button, t); | |
}); | |
} | |
let firstTrack = document.querySelector("[data-track-id]"); | |
const button = document.createElement("button"); | |
button.textContent = "[show all]"; | |
button.style = "border:none;background-color:transparent;" + | |
"color:#009cc6;cursor: pointer;display:block;"; | |
button.onclick = e => showAllTracks(); | |
firstTrack.parentNode.insertBefore(button, firstTrack); | |
enableHideTracks(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment