diff options
author | SimonBrazell <simon@brazell.com.au> | 2020-04-25 18:31:27 +1000 |
---|---|---|
committer | SimonBrazell <simon@brazell.com.au> | 2020-04-25 18:32:00 +1000 |
commit | 269739347f40e50148617e48b786ab3c8144bf4b (patch) | |
tree | d20219c09b92d4f713cac42a96118c5ec1e13021 /pages/options | |
parent | Merge branch 'master' of github.com:SimonBrazell/privacy-redirect (diff) | |
download | libredirect-269739347f40e50148617e48b786ab3c8144bf4b.zip |
Add tabs UI to options page
Diffstat (limited to 'pages/options')
-rw-r--r-- | pages/options/options.html | 236 | ||||
-rw-r--r-- | pages/options/options.js | 50 |
2 files changed, 166 insertions, 120 deletions
diff --git a/pages/options/options.html b/pages/options/options.html index 60545874..f638fcf3 100644 --- a/pages/options/options.html +++ b/pages/options/options.html @@ -11,114 +11,134 @@ <body> - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Toggle Nitter redirects"> - <h1>Nitter Redirects</h1> - <input aria-hidden="true" id="disable-nitter" type="checkbox" checked> - <label for="disable-nitter" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Toggle Invidious redirects"> - <h1>Invidious Redirects</h1> - <input aria-hidden="true" id="disable-invidious" type="checkbox" checked> - <label for="disable-invidious" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Toggle Bibliogram redirects"> - <h1>Bibliogram Redirects</h1> - <input aria-hidden="true" id="disable-bibliogram" type="checkbox" checked> - <label for="disable-bibliogram" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Toggle OpenStreetMap redirects"> - <h1>OpenStreetMap Redirects</h1> - <input aria-hidden="true" id="disable-osm" type="checkbox" checked> - <label for="disable-osm" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <h1>Nitter Instance</h1> - <input id="nitter-instance" list="nitter-instance-list" type="url" placeholder="https://nitter.net"> - <datalist id="nitter-instance-list"> - <option value="https://nitter.net"> - <option value="https://nitter.snopyta.org"> - <option value="https://nitter.42l.fr"> - <option value="https://nitter.nixnet.xyz"> - <option value="https://nitter.13ad.de"> - <option value="https://tw.openalgeria.org"> - </datalist> - <h1>Invidious Instance</h1> - <input id="invidious-instance" list="invidious-instances-list" type="url" placeholder="https://invidio.us"> - <datalist id="invidious-instances-list"> - <option value="https://invidio.us"> - <option value="https://invidious.snopyta.org"> - <option value="https://invidiou.sh"> - <option value="https://yewtu.be"> - <option value="https://invidious.zapashcanon.fr"> - <option value="https://invidious.toot.koeln"> - <option value="https://invidious.ggc-project.de"> - </datalist> - <h1>Bibliogram Instance</h1> - <input id="bibliogram-instance" list="bibliogram-instance-list" type="url" placeholder="https://bibliogram.art"> - <datalist id="bibliogram-instance-list"> - <option value="https://bibliogram.art"> - <option value="https://bibliogram.snopyta.org"> - <option value="https://bibliogram.pussthecat.org"> - </datalist> - <h1>OpenStreetMap Instance</h1> - <input id="osm-instance" list="osm-instance-list" type="url" placeholder="https://openstreetmap.org"> - <datalist id="osm-instance-list"> - <option value="https://openstreetmap.org"> - </datalist> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Always proxy videos through Invidious"> - <h1>Always proxy videos through Invidious?</h1> - <input aria-hidden="true" id="always-proxy" type="checkbox" checked> - <label for="always-proxy" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Only redirect embedded video to Invidious"> - <h1>Only redirect embedded video to Invidious?</h1> - <input aria-hidden="true" id="only-embed" type="checkbox" checked> - <label for="only-embed" class="checkbox-label"> - </label> - </div> - </section> - - <section class="options settings_block"> - <h1>Invidious Video Quality</h1> - <select id="video-quality"> - <option value="">Default</option> - <option value="hd720">720p</option> - <option value="medium">480p</option> - <option value="dash">DASH (Dynamic Adaptive Streaming over HTTP)</option> - </select> - </section> - - <section class="options settings_block"> - <div class="onoffswitch switch" aria-label="Proactively remove Twitter service worker"> - <h1>Proactively remove Twitter service worker</h1> - <input aria-hidden="true" id="remove-twitter-sw" type="checkbox" checked> - <label for="remove-twitter-sw" class="checkbox-label"> - </label> - </div> - </section> + <div class="tab"> + <button class="tablinks" id="generalTab"> + General + </button> + <button class="tablinks" id="advancedTab"> + Advanced + </button> + <button class="tablinks" id="whitelistTab"> + Whitelist + </button> + </div> + + <div id="general" class="tabcontent"> + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Toggle Nitter redirects"> + <h1>Nitter Redirects</h1> + <input aria-hidden="true" id="disable-nitter" type="checkbox" checked> + <label for="disable-nitter" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Toggle Invidious redirects"> + <h1>Invidious Redirects</h1> + <input aria-hidden="true" id="disable-invidious" type="checkbox" checked> + <label for="disable-invidious" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Toggle Bibliogram redirects"> + <h1>Bibliogram Redirects</h1> + <input aria-hidden="true" id="disable-bibliogram" type="checkbox" checked> + <label for="disable-bibliogram" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Toggle OpenStreetMap redirects"> + <h1>OpenStreetMap Redirects</h1> + <input aria-hidden="true" id="disable-osm" type="checkbox" checked> + <label for="disable-osm" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <h1>Nitter Instance</h1> + <input id="nitter-instance" list="nitter-instance-list" type="url" placeholder="https://nitter.net"> + <datalist id="nitter-instance-list"> + <option value="https://nitter.net"> + <option value="https://nitter.snopyta.org"> + <option value="https://nitter.42l.fr"> + <option value="https://nitter.nixnet.xyz"> + <option value="https://nitter.13ad.de"> + <option value="https://tw.openalgeria.org"> + </datalist> + <h1>Invidious Instance</h1> + <input id="invidious-instance" list="invidious-instances-list" type="url" placeholder="https://invidio.us"> + <datalist id="invidious-instances-list"> + <option value="https://invidio.us"> + <option value="https://invidious.snopyta.org"> + <option value="https://invidiou.sh"> + <option value="https://yewtu.be"> + <option value="https://invidious.zapashcanon.fr"> + <option value="https://invidious.toot.koeln"> + <option value="https://invidious.ggc-project.de"> + </datalist> + <h1>Bibliogram Instance</h1> + <input id="bibliogram-instance" list="bibliogram-instance-list" type="url" placeholder="https://bibliogram.art"> + <datalist id="bibliogram-instance-list"> + <option value="https://bibliogram.art"> + <option value="https://bibliogram.snopyta.org"> + <option value="https://bibliogram.pussthecat.org"> + </datalist> + <h1>OpenStreetMap Instance</h1> + <input id="osm-instance" list="osm-instance-list" type="url" placeholder="https://openstreetmap.org"> + <datalist id="osm-instance-list"> + <option value="https://openstreetmap.org"> + </datalist> + </section> + </div> + + <div id="advanced" class="tabcontent"> + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Always proxy videos through Invidious"> + <h1>Always proxy videos through Invidious</h1> + <input aria-hidden="true" id="always-proxy" type="checkbox" checked> + <label for="always-proxy" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Only redirect embedded video to Invidious"> + <h1>Only redirect embedded video to Invidious</h1> + <input aria-hidden="true" id="only-embed" type="checkbox" checked> + <label for="only-embed" class="checkbox-label"> + </label> + </div> + </section> + + <section class="options settings_block"> + <h1>Invidious Video Quality</h1> + <select id="video-quality"> + <option value="">Default</option> + <option value="hd720">720p</option> + <option value="medium">480p</option> + <option value="dash">DASH (Dynamic Adaptive Streaming over HTTP)</option> + </select> + </section> + + <section class="options settings_block"> + <div class="onoffswitch switch" aria-label="Proactively remove Twitter service worker"> + <h1>Proactively remove Twitter service worker</h1> + <input aria-hidden="true" id="remove-twitter-sw" type="checkbox" checked> + <label for="remove-twitter-sw" class="checkbox-label"> + </label> + </div> + </section> + </div> + + <div id="whitelist" class="tabcontent"> + + </div> <script src="./options.js"></script> diff --git a/pages/options/options.js b/pages/options/options.js index 3b850384..d702eb83 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -1,17 +1,17 @@ 'use strict'; -let nitterInstance = document.querySelector('#nitter-instance'); -let invidiousInstance = document.querySelector('#invidious-instance'); -let bibliogramInstance = document.querySelector('#bibliogram-instance'); -let osmInstance = document.querySelector('#osm-instance'); -let disableNitter = document.querySelector('#disable-nitter'); -let disableInvidious = document.querySelector('#disable-invidious'); -let disableBibliogram = document.querySelector('#disable-bibliogram'); -let disableOsm = document.querySelector('#disable-osm'); -let alwaysProxy = document.querySelector('#always-proxy'); -let onlyEmbeddedVideo = document.querySelector('#only-embed'); -let videoQuality = document.querySelector('#video-quality'); -let removeTwitterSW = document.querySelector('#remove-twitter-sw'); +let nitterInstance = document.getElementById('nitter-instance'); +let invidiousInstance = document.getElementById('invidious-instance'); +let bibliogramInstance = document.getElementById('bibliogram-instance'); +let osmInstance = document.getElementById('osm-instance'); +let disableNitter = document.getElementById('disable-nitter'); +let disableInvidious = document.getElementById('disable-invidious'); +let disableBibliogram = document.getElementById('disable-bibliogram'); +let disableOsm = document.getElementById('disable-osm'); +let alwaysProxy = document.getElementById('always-proxy'); +let onlyEmbeddedVideo = document.getElementById('only-embed'); +let videoQuality = document.getElementById('video-quality'); +let removeTwitterSW = document.getElementById('remove-twitter-sw'); window.browser = window.browser || window.chrome; @@ -46,6 +46,32 @@ browser.storage.sync.get( } ); +function openTab(tab, event) { + let i, tabcontent, tablinks; + tabcontent = document.getElementsByClassName('tabcontent'); + for (i = 0; i < tabcontent.length; i++) { + tabcontent[i].style.display = 'none'; + } + tablinks = document.getElementsByClassName('tablinks'); + for (i = 0; i < tablinks.length; i++) { + tablinks[i].className = tablinks[i].className.replace(' active', ''); + } + document.getElementById(tab).style.display = 'block'; + event.currentTarget.className += ' active'; +} + +document.getElementById('generalTab').addEventListener( + 'click', openTab.bind(null, 'general') +); +document.getElementById('advancedTab').addEventListener( + 'click', openTab.bind(null, 'advanced') +); +document.getElementById('whitelistTab').addEventListener( + 'click', openTab.bind(null, 'whitelist') +); + +document.getElementById('generalTab').click(); + function debounce(func, wait, immediate) { let timeout; return () => { |