78 lines
2.1 KiB
JavaScript
78 lines
2.1 KiB
JavaScript
|
/**
|
||
|
* Main Updates Page
|
||
|
* Belongs to Decentraleyes.
|
||
|
*
|
||
|
* @author nobody42
|
||
|
* @since 2020-03-08
|
||
|
* @license MPL 2.0
|
||
|
*
|
||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||
|
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Updates
|
||
|
*/
|
||
|
|
||
|
var updates = {};
|
||
|
|
||
|
/**
|
||
|
* Private Methods
|
||
|
*/
|
||
|
updates._openRuleSet = function({target}) {
|
||
|
|
||
|
let urls = mappings;
|
||
|
let updateKey = target.getAttribute('data-option');
|
||
|
let updateType = target.getAttribute('value');
|
||
|
|
||
|
let textArea = document.getElementById("generated-rules");
|
||
|
let btnCopy = document.getElementById("button-copy-rule-set");
|
||
|
|
||
|
let content = "";
|
||
|
let ruleSyntax = "";
|
||
|
|
||
|
if (updateKey === "uMatrix") {
|
||
|
ruleSyntax = " script allow";
|
||
|
} else if (updateKey === "uBlock") {
|
||
|
ruleSyntax = " * noop";
|
||
|
}
|
||
|
|
||
|
textArea.style.display = "block";
|
||
|
btnCopy.style.display = "block";
|
||
|
|
||
|
for (var domain in urls) {
|
||
|
content += "* " + domain + ruleSyntax + '\n';
|
||
|
}
|
||
|
textArea.value = content.replace(/\n+$/, "");
|
||
|
}
|
||
|
|
||
|
updates._copyRuleSet = function() {
|
||
|
let textArea = document.getElementById("generated-rules");
|
||
|
navigator.clipboard.writeText(textArea.value).then(function() {
|
||
|
textArea.select();
|
||
|
}, function() {
|
||
|
alert("Rule set cannot be copied!");
|
||
|
});
|
||
|
}
|
||
|
|
||
|
updates._onDocumentLoaded = function () {
|
||
|
|
||
|
document.getElementById('generate-ublock-rules').checked = false;
|
||
|
document.getElementById('generate-umatrix-rules').checked = false;
|
||
|
|
||
|
let updateElements = {
|
||
|
['ruleSets']: document.getElementsByName("rule-sets"),
|
||
|
['copyRuleSet']: document.getElementById("button-copy-rule-set")
|
||
|
};
|
||
|
|
||
|
for(let i = 0; i < updateElements.ruleSets.length; i++) {
|
||
|
updateElements.ruleSets[i].addEventListener('change', updates._openRuleSet);
|
||
|
}
|
||
|
updateElements.copyRuleSet.addEventListener('click', updates._copyRuleSet);
|
||
|
};
|
||
|
|
||
|
document.addEventListener('DOMContentLoaded', updates._onDocumentLoaded);
|