about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-02-06 08:45:12 +0300
committerManeraKai <manerakai@protonmail.com>2022-02-06 08:45:12 +0300
commit5cc8ed3f6034a379c29af2388dc59b30751b0f03 (patch)
treef3f9a9bf24cebbbe59062d90634688eece2984ee /src/pages
parentAdded default and custom instances to piped (diff)
downloadlibredirect-5cc8ed3f6034a379c29af2388dc59b30751b0f03.zip
Combined the instances methods to one function
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/options/youtube/invidious.js100
-rw-r--r--src/pages/options/youtube/piped.js92
2 files changed, 20 insertions, 172 deletions
diff --git a/src/pages/options/youtube/invidious.js b/src/pages/options/youtube/invidious.js
index e1b26efc..70b25428 100644
--- a/src/pages/options/youtube/invidious.js
+++ b/src/pages/options/youtube/invidious.js
@@ -1,4 +1,5 @@
 import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
+import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 let invidiousAlwaysProxyElement = document.getElementById("invidious-always-proxy");
 invidiousAlwaysProxyElement.addEventListener("change",
@@ -32,95 +33,14 @@ youtubeHelper.init().then(() => {
     invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles();
     persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs();
 
-
-    invidiousDefaultRedirects = youtubeHelper.getInvidiousRedirectsChecks();
-    invidiousCheckListElement.innerHTML =
-        [
-            '<div>Toggle All<input type="checkbox" id="invidious-toogle-all" /></div>',
-            ...youtubeHelper.getRedirects().invidious.normal.map((x) => `<div>${x}<input type="checkbox" id="${x}" /></div>`),
-        ].join('\n<hr>\n');
-
-    calcInvidiousCheckBoxes();
-    document.getElementById('invidious-toogle-all').addEventListener("change", (event) => {
-        if (event.target.checked)
-            invidiousDefaultRedirects = [...youtubeHelper.getRedirects().invidious.normal];
-        else
-            invidiousDefaultRedirects = [];
-        youtubeHelper.setInvidiousRedirectsChecks(invidiousDefaultRedirects);
-        calcInvidiousCheckBoxes();
-    });
-
-    for (let element of invidiousCheckListElement.getElementsByTagName('input')) {
-        if (element.id != 'invidious-toogle-all')
-            document.getElementById(element.id).addEventListener("change", (event) => {
-                if (event.target.checked)
-                    invidiousDefaultRedirects.push(element.id)
-                else {
-                    let index = invidiousDefaultRedirects.indexOf(element.id);
-                    if (index > -1) invidiousDefaultRedirects.splice(index, 1);
-                }
-                youtubeHelper.setInvidiousRedirectsChecks(invidiousDefaultRedirects);
-                calcInvidiousCheckBoxes();
-            });
-    }
-
-    invidiousCustomInstances = youtubeHelper.getInvidiousCustomRedirects();
-    calcInvidiousCustomInstances();
+    commonHelper.processDefaultCustomInstances(
+        'invidious',
+        youtubeHelper,
+        document,
+        youtubeHelper.getInvidiousRedirectsChecks,
+        youtubeHelper.setInvidiousRedirectsChecks,
+        youtubeHelper.getInvidiousCustomRedirects,
+        youtubeHelper.setInvidiousCustomRedirects
+    )
 });
 
-
-let invidiousCustomInstanceInput = document.getElementById("invidious-custom-instance");
-let invidiousCustomInstances = [];
-
-let invidiousCheckListElement = document.getElementById("invidious-checklist");
-
-
-let invidiousDefaultRedirects;
-
-function calcInvidiousCheckBoxes() {
-    let isTrue = true;
-    for (const item of youtubeHelper.getRedirects().invidious.normal)
-        if (!invidiousDefaultRedirects.includes(item)) {
-            isTrue = false;
-            break;
-        }
-    for (const element of invidiousCheckListElement.getElementsByTagName('input'))
-        element.checked = invidiousDefaultRedirects.includes(element.id)
-    document.getElementById('invidious-toogle-all').checked = isTrue;
-}
-
-function calcInvidiousCustomInstances() {
-    document.getElementById("invidious-custom-checklist").innerHTML =
-        invidiousCustomInstances.map(
-            (x) => `<div>${x}<button class="add" id="clear-${x}">
-                            <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
-                            fill="currentColor">
-                                <path d="M0 0h24v24H0V0z" fill="none" />
-                                <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
-                            </svg>
-                        </button>
-                    </div>
-                    <hr>`
-        ).join('\n');
-
-    for (const item of invidiousCustomInstances) {
-        document.getElementById(`clear-${item}`).addEventListener("click", () => {
-            let index = invidiousCustomInstances.indexOf(item);
-            if (index > -1) invidiousCustomInstances.splice(index, 1);
-            youtubeHelper.setInvidiousCustomRedirects(invidiousCustomInstances);
-            calcInvidiousCustomInstances();
-        });
-    }
-}
-
-document.getElementById("custom-invidious-instance-form").addEventListener("submit", (event) => {
-    event.preventDefault();
-    let val = invidiousCustomInstanceInput.value
-    if (invidiousCustomInstanceInput.validity.valid && !youtubeHelper.getRedirects().invidious.normal.includes(val)) {
-        if (!invidiousCustomInstances.includes(val)) {
-            invidiousCustomInstances.push(val)
-            youtubeHelper.setInvidiousCustomRedirects(invidiousCustomInstances);
-        }
-        calcInvidiousCustomInstances();
-    }
-})
\ No newline at end of file
diff --git a/src/pages/options/youtube/piped.js b/src/pages/options/youtube/piped.js
index 8f12f8ae..ed425237 100644
--- a/src/pages/options/youtube/piped.js
+++ b/src/pages/options/youtube/piped.js
@@ -1,94 +1,22 @@
 import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js";
+import commonHelper from "../../../assets/javascripts/helpers/common.js";
 
 youtubeHelper.init().then(() => {
-
-    pipedDefaultRedirects = youtubeHelper.getPipedRedirectsChecks();
-    pipedCheckListElement.innerHTML =
-        [
-            '<div>Toggle All<input type="checkbox" id="piped-toogle-all" /></div>',
-            ...youtubeHelper.getRedirects().piped.normal.map((x) => `<div>${x}<input type="checkbox" id="${x}" /></div>`),
-        ].join('\n<hr>\n');
-
-    calcPipedCheckBoxes();
-    document.getElementById('piped-toogle-all').addEventListener("change", (event) => {
-        if (event.target.checked)
-            pipedDefaultRedirects = [...youtubeHelper.getRedirects().piped.normal];
-        else
-            pipedDefaultRedirects = [];
-        youtubeHelper.setPipedRedirectsChecks(pipedDefaultRedirects);
-        calcPipedCheckBoxes();
-    });
-
-    for (let element of pipedCheckListElement.getElementsByTagName('input')) {
-        if (element.id != 'piped-toogle-all')
-            document.getElementById(element.id).addEventListener("change", (event) => {
-                if (event.target.checked)
-                    pipedDefaultRedirects.push(element.id)
-                else {
-                    let index = pipedDefaultRedirects.indexOf(element.id);
-                    if (index > -1) pipedDefaultRedirects.splice(index, 1);
-                }
-                youtubeHelper.setPipedRedirectsChecks(pipedDefaultRedirects);
-                calcPipedCheckBoxes();
-            });
-    }
-
-    pipedCustomInstances = youtubeHelper.getPipedCustomRedirects();
-    calcPipedCustomInstances();
+    commonHelper.processDefaultCustomInstances(
+        'piped',
+        youtubeHelper,
+        document,
+        youtubeHelper.getPipedRedirectsChecks,
+        youtubeHelper.setPipedRedirectsChecks,
+        youtubeHelper.getPipedCustomRedirects,
+        youtubeHelper.setPipedCustomRedirects
+    )
 });
 
 
-let pipedCustomInstanceInput = document.getElementById("piped-custom-instance");
-let pipedCustomInstances = [];
 
-let pipedCheckListElement = document.getElementById("piped-checklist");
 
-let pipedDefaultRedirects;
 
-function calcPipedCheckBoxes() {
-    let isTrue = true;
-    for (const item of youtubeHelper.getRedirects().piped.normal)
-        if (!pipedDefaultRedirects.includes(item)) {
-            isTrue = false;
-            break;
-        }
-    for (const element of pipedCheckListElement.getElementsByTagName('input'))
-        element.checked = pipedDefaultRedirects.includes(element.id)
-    document.getElementById('piped-toogle-all').checked = isTrue;
-}
 
-function calcPipedCustomInstances() {
-    document.getElementById("piped-custom-checklist").innerHTML =
-        pipedCustomInstances.map(
-            (x) => `<div>${x}<button class="add" id="clear-${x}">
-                            <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"
-                            fill="currentColor">
-                                <path d="M0 0h24v24H0V0z" fill="none" />
-                                <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" />
-                            </svg>
-                        </button>
-                    </div>
-                    <hr>`
-        ).join('\n');
 
-    for (const item of pipedCustomInstances) {
-        document.getElementById(`clear-${item}`).addEventListener("click", () => {
-            let index = pipedCustomInstances.indexOf(item);
-            if (index > -1) pipedCustomInstances.splice(index, 1);
-            youtubeHelper.setPipedCustomRedirects(pipedCustomInstances);
-            calcPipedCustomInstances();
-        });
-    }
-}
 
-document.getElementById("custom-piped-instance-form").addEventListener("submit", (event) => {
-    event.preventDefault();
-    let val = pipedCustomInstanceInput.value
-    if (pipedCustomInstanceInput.validity.valid && !youtubeHelper.getRedirects().piped.normal.includes(val)) {
-        if (!pipedCustomInstances.includes(val)) {
-            pipedCustomInstances.push(val)
-            youtubeHelper.setPipedCustomRedirects(pipedCustomInstances);
-        }
-        calcPipedCustomInstances();
-    }
-})
\ No newline at end of file