LocalCDN-Firefox-Chrome-Brave/pages/updates/updates.js

87 lines
2.9 KiB
JavaScript
Raw Normal View History

/**
* Main Updates Page
2020-06-30 18:41:58 +02:00
* Belongs to LocalCDN (since 2020-02-26)
* (Origin: Decentraleyes)
*
2020-06-30 18:41:58 +02:00
* @author nobody
* @since 2020-03-08
2020-06-30 18:41:58 +02:00
*
* @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
*/
2020-08-13 08:07:04 +02:00
updates._openHistoryReleaseNotes = function () {
let container = document.getElementById('history-release-notes');
let toggle = document.getElementById('history-indicator');
if (container.style.display === 'none') {
container.style.display = 'block';
toggle.textContent = '';
} else {
container.style.display = 'none';
toggle.textContent = '+';
}
};
updates._onDocumentLoaded = function () {
2020-09-06 11:26:09 +02:00
// ********************************************************************************
// TODO: Remove me in v2.4.1
document.getElementById('export').addEventListener('click', updates._export);
// ********************************************************************************
document.getElementById('generate-ublock-rules').checked = false;
document.getElementById('generate-umatrix-rules').checked = false;
let updateElements = {
2020-08-13 08:07:04 +02:00
['ruleSets']: document.getElementsByName('rule-sets'),
['copyRuleSet']: document.getElementById('button-copy-rule-set'),
};
2020-08-13 08:07:04 +02:00
for (let i = 0; i < updateElements.ruleSets.length; i++) {
2020-08-29 09:56:11 +02:00
updateElements.ruleSets[i].addEventListener('change', ruleGenerator.openRuleSet);
}
2020-08-29 09:56:11 +02:00
updateElements.copyRuleSet.addEventListener('click', ruleGenerator.copyRuleSet);
document.getElementById('history').addEventListener('click', updates._openHistoryReleaseNotes);
// GET parameter to display the rule set generator
let urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('mappingupdate') === 'true') {
document.getElementById('generator-section').style.display = 'block';
}
};
2020-09-06 11:26:09 +02:00
// ********************************************************************************
// TODO: Remove me in v2.4.1
updates._export = function () {
let filename = new Date().toISOString();
filename = filename.substring(0, 10) + '_localcdn_backup.txt';
2020-09-06 11:26:09 +02:00
chrome.storage.sync.get(null, function (items) {
let element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(JSON.stringify(items, null, ' ')));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
});
};
// ********************************************************************************
document.addEventListener('DOMContentLoaded', updates._onDocumentLoaded);