clear-urls-browser-extension/core_js/popup_new.js

161 lines
3.6 KiB
JavaScript
Raw Normal View History

var element = $("#statistics_value");
var elGlobalPercentage = $("#statistics_value_global_percentage");
var elProgressbar_blocked = $('#progress_blocked');
var elProgressbar_non_blocked = $('#progress_non_blocked');
var elTotal = $('#statistics_total_elements');
var globalPercentage = 0;
var globalCounter;
var globalurlcounter;
var globalStatus;
var badgedStatus;
var hashStatus;
var loggingStatus;
var core = function (func) {
return browser.runtime.getBackgroundPage().then(func);
};
function getData()
{
core(function (ref){
globalCounter = ref.getData('globalCounter');
globalurlcounter = ref.getData('globalurlcounter');
globalStatus = ref.getData('globalStatus');
badgedStatus = ref.getData('badgedStatus');
hashStatus = ref.getData('hashStatus');
loggingStatus = ref.getData('loggingStatus');
});
}
2017-08-31 19:19:32 +00:00
/**
* Initialize the UI.
*
*/
2017-08-31 19:19:32 +00:00
function init()
{
setHashStatus();
setGlobalStatus();
changeStatistics();
setTabcounter();
setLogging();
2017-08-31 19:19:32 +00:00
}
/**
* Get the globalCounter value from the browser storage
* @param {(data){} Return value form browser.storage.local.get
*/
2017-08-31 19:19:32 +00:00
function changeStatistics(){
globalPercentage = ((globalCounter/globalurlcounter)*100).toFixed(3);
if(isNaN(Number(globalPercentage))) globalPercentage = 0;
element.text(globalCounter.toLocaleString());
elGlobalPercentage.text(globalPercentage+"%");
elProgressbar_blocked.css('width', globalPercentage+'%');
elProgressbar_non_blocked.css('width', (100-globalPercentage)+'%');
elTotal.text(globalurlcounter.toLocaleString());
}
2017-08-31 19:19:32 +00:00
/**
* Change the value of the globalStatus.
* Call by onChange()
*
*/
2017-08-31 19:19:32 +00:00
function changeGlobalStatus() {
var element = $('#globalStatus').is(':checked');
2017-08-31 19:19:32 +00:00
core(function (ref){
ref.setData('globalStatus', element);
});
}
2017-08-31 19:19:32 +00:00
/**
* Set the values for the global status switch
*/
2017-08-31 19:19:32 +00:00
function setGlobalStatus() {
var element = $('#globalStatus');
element.prop('checked', globalStatus);
}
2017-08-31 19:19:32 +00:00
/**
* Change the value of the badgedStatus.
* Call by onChange()
*
*/
2017-08-31 19:19:32 +00:00
function changeTabcounter() {
var element = $('#tabcounter').is(':checked');
2017-08-31 19:19:32 +00:00
core(function (ref){
ref.setData('badgedStatus', element);
});
}
2017-08-31 19:19:32 +00:00
/**
* Set the values for the tabcounter switch
*/
2017-08-31 19:19:32 +00:00
function setTabcounter() {
var element = $('#tabcounter');
element.prop('checked', badgedStatus);
2017-08-31 19:19:32 +00:00
}
/**
* Change the value of the logging switch
*/
function changeLogging()
{
var element = $('#logging').is(':checked');
core(function (ref){
ref.setData('loggingStatus', element);
});
}
/**
* Set the value for the hashStatus on startUp.
2017-08-31 19:19:32 +00:00
*/
function setHashStatus()
{
var element = $('#hashStatus');
if(hashStatus)
{
element.text(hashStatus);
}
else {
element.text('Oops something went wrong!');
}
}
/**
* Set the value for the logging switch
*/
function setLogging()
{
var element = $('#logging');
element.prop('checked', loggingStatus);
}
/**
* Reset the global statistic
*/
2017-08-31 19:19:32 +00:00
function resetGlobalCounter(){
core(function (ref){
globalurlcounter = 0;
globalCounter = 0;
ref.setData('globalCounter', 0);
ref.setData('globalurlcounter', 0);
});
}
2017-08-31 19:19:32 +00:00
getData();
2017-08-31 19:19:32 +00:00
$(document).ready(function(){
init();
$("#globalStatus").on("change", changeGlobalStatus);
$('#reset_counter_btn').on("click", resetGlobalCounter);
$('#tabcounter').on('change', changeTabcounter);
$('#logging').on('change', changeLogging);
$('#loggingPage').attr('href', browser.extension.getURL('./html/log.html'));
browser.storage.onChanged.addListener(changeStatistics);
});