summaryrefslogtreecommitdiffstats
path: root/pages
diff options
context:
space:
mode:
Diffstat (limited to 'pages')
-rw-r--r--pages/options/options.html47
-rw-r--r--pages/options/options.js26
-rw-r--r--pages/popup/popup.html47
-rw-r--r--pages/popup/popup.js28
-rw-r--r--pages/styles.css146
5 files changed, 294 insertions, 0 deletions
diff --git a/pages/options/options.html b/pages/options/options.html
new file mode 100644
index 0000000..124aa4b
--- /dev/null
+++ b/pages/options/options.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title></title>
+ <link href="../styles.css" rel="stylesheet">
+ <title>Privacy Redirect Options</title>
+</head>
+
+<body>
+
+ <section class="options settings_block">
+ <div class="onoffswitch switch" aria-label="Toggle Nitter redirects">
+ <h1>Nitter Redirects</h1>
+ <input aria-hidden="true" id="disableNitter" type="checkbox" checked>&nbsp;
+ <label for="disableNitter" 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="disableInvidious" type="checkbox" checked>&nbsp;
+ <label for="disableInvidious" class="checkbox-label">
+ </label>
+ </div>
+ </section>
+
+ <section class="options settings_block">
+ <h1>Nitter Instance</h1>
+ <input id="nitterInstance" type="url" placeholder="https://nitter.net">
+ <h1>Invidious Instance</h1>
+ <input id="invidiousInstance" type="url" placeholder="https://invidio.us">
+ </section>
+
+ <footer>
+ <a class="button" id="save">Save</a>
+ </footer>
+
+ <script src="./options.js"></script>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/pages/options/options.js b/pages/options/options.js
new file mode 100644
index 0000000..b5c097d
--- /dev/null
+++ b/pages/options/options.js
@@ -0,0 +1,26 @@
+'use strict';
+
+let disableNitter = document.querySelector('#disableNitter');
+let disableInvidious = document.querySelector('#disableInvidious');
+let nitterInstance = document.querySelector('#nitterInstance');
+let invidiousInstance = document.querySelector('#invidiousInstance');
+
+chrome.storage.sync.get(
+ ['disableNitter', 'disableInvidious', 'nitterInstance', 'invidiousInstance'],
+ (result) => {
+ disableNitter.checked = !result.disableNitter;
+ disableInvidious.checked = !result.disableInvidious;
+ nitterInstance.value = result.nitterInstance || '';
+ invidiousInstance.value = result.invidiousInstance || '';
+ }
+);
+
+document.querySelector('#save').addEventListener('click', () => {
+ chrome.storage.sync.set({
+ disableNitter: !disableNitter.checked,
+ disableInvidious: !disableInvidious.checked,
+ nitterInstance: nitterInstance.value,
+ invidiousInstance: invidiousInstance.value
+ });
+ window.close();
+}); \ No newline at end of file
diff --git a/pages/popup/popup.html b/pages/popup/popup.html
new file mode 100644
index 0000000..889ffcd
--- /dev/null
+++ b/pages/popup/popup.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title></title>
+ <link href="../styles.css" rel="stylesheet">
+</head>
+
+<body>
+ <header>
+ <div class="logo-container">
+ <img src="../../images/logo.png" alt="Privacy Redirect logo">
+ </div>
+ <small>
+ <span>Version</span>: 1.1.1</span>
+ </small>
+ </header>
+
+ <section class="options settings_block">
+ <div class="onoffswitch switch" aria-label="Toggle Nitter redirects">
+ <h1>Nitter Redirects</h1>
+ <input aria-hidden="true" id="disableNitter" type="checkbox" checked>&nbsp;
+ <label for="disableNitter" 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="disableInvidious" type="checkbox" checked>&nbsp;
+ <label for="disableInvidious" class="checkbox-label">
+ </label>
+ </div>
+ </section>
+
+ <footer>
+ <a class="button" id="options" target="_blank">Options</a>
+ </footer>
+
+ <script src="./popup.js"></script>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/pages/popup/popup.js b/pages/popup/popup.js
new file mode 100644
index 0000000..2837cdb
--- /dev/null
+++ b/pages/popup/popup.js
@@ -0,0 +1,28 @@
+'use strict';
+
+let disableNitter = document.querySelector('#disableNitter');
+let disableInvidious = document.querySelector('#disableInvidious');
+
+chrome.storage.sync.get(
+ ['disableNitter', 'disableInvidious'],
+ (result) => {
+ disableNitter.checked = !result.disableNitter;
+ disableInvidious.checked = !result.disableInvidious;
+ }
+);
+
+disableNitter.addEventListener('change', (event) => {
+ chrome.storage.sync.set({ disableNitter: !event.target.checked });
+});
+
+disableInvidious.addEventListener('change', (event) => {
+ chrome.storage.sync.set({ disableInvidious: !event.target.checked });
+});
+
+document.querySelector('#options').addEventListener('click', () => {
+ if (chrome.runtime.openOptionsPage) {
+ chrome.runtime.openOptionsPage();
+ } else {
+ window.open(chrome.runtime.getURL('../options/options.html'));
+ }
+}); \ No newline at end of file
diff --git a/pages/styles.css b/pages/styles.css
new file mode 100644
index 0000000..5a23352
--- /dev/null
+++ b/pages/styles.css
@@ -0,0 +1,146 @@
+:root {
+ --text-main: #FFF;
+ --text-secondary: #000;
+ --dark-grey: #3C4043;
+ --white: #FFF;
+ --active: #FF5B56;
+ --space: 5px;
+}
+
+body {
+ color: var(--text-secondary);
+ margin: 0;
+ max-width: 400px;
+ min-width: 240px;
+ background-color: var(--dark-grey)
+}
+
+header {
+ background-color: var(--white);
+ color: var(--text-secondary);
+ display: flex;
+ padding: var(--space);
+}
+
+header h1 {
+ font-size: 2em;
+}
+
+header .logo-container {
+ margin: var(--space);
+}
+
+header .logo-container img {
+ width: 100%;
+}
+
+header small {
+ display: block;
+ font-size: .70em;
+ font-weight: bold;
+ margin: 1%;
+ width: 100%;
+ text-align: right;
+}
+
+h1 {
+ font-size: 14px;
+ margin: var(--space) auto
+}
+
+h2 {
+ clear: both;
+ font-size: 12px;
+ font-weight: normal;
+ margin: 0;
+}
+
+h3 {
+ font-size: 16px;
+}
+
+h1,
+h2 {
+ color: var(--text-main);
+}
+
+footer {
+ width: 100%;
+}
+
+footer a.button {
+ margin: var(--space);
+}
+
+/* Elements */
+
+input[type=url] {
+ width: 100%;
+ margin-bottom: 5px;
+}
+
+input[type=checkbox] {
+ opacity: 0;
+}
+
+.checkbox-label {
+ background: grey;
+ border-radius: 25px;
+ color: var(--text-main);
+ cursor: pointer;
+ display: block;
+ float: right;
+ font-weight: bold;
+ height: 30px;
+ position: relative;
+ text-indent: -400px;
+ width: 50px;
+}
+
+.checkbox-label:after {
+ background: #fff;
+ border-radius: 90px;
+ content: '';
+ height: 20px;
+ left: 5px;
+ position: absolute;
+ top: 5px;
+ transition: 0.3s; /* Acts on transform below */
+ width: 20px;
+}
+input:checked+label {
+ background: var(--active);
+}
+/* position when active*/
+input:checked+label:after {
+ left: calc(100% - 5px);
+ transform: translateX(-100%);
+}
+
+.settings_block {
+ display: block;
+ padding: 5px 1em 20px 1em;
+ border-bottom: var(--dark-grey) solid 1px;
+}
+
+.settings_block h1 {
+ float: left;
+}
+
+.button {
+ border: var(--active) solid 1px;
+ color: var(--text-main);
+ display: block;
+ font-size: 12px;
+ font-weight: bold;
+ margin: var(--space) auto;
+ padding: 10px;
+ text-align: center;
+ text-decoration: none;
+}
+
+.button:hover {
+ background-color: var(--active);
+ color: #fff
+}
+