mirror of
https://github.com/Ximi1970/systray-x.git
synced 2026-07-20 05:00:02 +02:00
Fix clean start, use const
This commit is contained in:
@@ -72,14 +72,18 @@ SysTrayX.Messaging = {
|
||||
//
|
||||
// Get the unread nessages of the selected accounts
|
||||
//
|
||||
let filtersDiv = document.getElementById("filters");
|
||||
let filtersAttr = filtersDiv.getAttribute("data-filters");
|
||||
let filters = JSON.parse(filtersAttr);
|
||||
const filtersDiv = document.getElementById("filters");
|
||||
const filtersAttr = filtersDiv.getAttribute("data-filters");
|
||||
const filters = JSON.parse(filtersAttr);
|
||||
|
||||
if (filters.length > 0) {
|
||||
SysTrayX.Messaging.unReadMessages(filters).then(
|
||||
SysTrayX.Messaging.unreadCb
|
||||
);
|
||||
} else {
|
||||
SysTrayX.Messaging.unReadMessages([{ unread: true }]).then(
|
||||
SysTrayX.Messaging.unreadCb
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -115,7 +119,7 @@ SysTrayX.Messaging = {
|
||||
sendPreferences: function() {
|
||||
console.debug("Send preferences");
|
||||
|
||||
let getter = browser.storage.sync.get([
|
||||
const getter = browser.storage.sync.get([
|
||||
"debug",
|
||||
"iconType",
|
||||
"iconMime",
|
||||
@@ -127,10 +131,10 @@ SysTrayX.Messaging = {
|
||||
sendPreferencesStorage: function(result) {
|
||||
console.debug("Get preferences from storage");
|
||||
|
||||
let debug = result.debug || "false";
|
||||
let iconType = result.iconType || "0";
|
||||
let iconMime = result.iconMime || "image/png";
|
||||
let icon = result.icon || [];
|
||||
const debug = result.debug || "false";
|
||||
const iconType = result.iconType || "0";
|
||||
const iconMime = result.iconMime || "image/png";
|
||||
const icon = result.icon || [];
|
||||
|
||||
console.log("Debug" + debug);
|
||||
console.log("Type" + iconType);
|
||||
@@ -158,16 +162,16 @@ SysTrayX.Messaging = {
|
||||
getAccounts: function() {
|
||||
console.debug("Get accounts");
|
||||
|
||||
let getter = browser.storage.sync.get(["accounts", "filters"]);
|
||||
const getter = browser.storage.sync.get(["accounts", "filters"]);
|
||||
getter.then(this.getAccountsStorage, this.onGetAccountsStorageError);
|
||||
|
||||
if (SysTrayX.debugAccounts) {
|
||||
let accountsDiv = document.getElementById("accounts");
|
||||
const accountsDiv = document.getElementById("accounts");
|
||||
|
||||
let accountsAttr = accountsDiv.getAttribute("data-accounts");
|
||||
const accountsAttr = accountsDiv.getAttribute("data-accounts");
|
||||
console.debug("Accounts attr: " + accountsAttr);
|
||||
|
||||
let accounts = JSON.parse(accountsAttr);
|
||||
const accounts = JSON.parse(accountsAttr);
|
||||
console.debug("Accounts poll: " + accounts.length);
|
||||
}
|
||||
},
|
||||
@@ -179,16 +183,16 @@ SysTrayX.Messaging = {
|
||||
getAccountsStorage: function(result) {
|
||||
console.debug("Get accounts from storage");
|
||||
|
||||
let accounts = result.accounts || [];
|
||||
const accounts = result.accounts || [];
|
||||
|
||||
// Store them in the background HTML
|
||||
let accountsDiv = document.getElementById("accounts");
|
||||
const accountsDiv = document.getElementById("accounts");
|
||||
accountsDiv.setAttribute("data-accounts", JSON.stringify(accounts));
|
||||
|
||||
let filters = result.filters || [];
|
||||
const filters = result.filters || [];
|
||||
|
||||
// Store them in the background HTML
|
||||
let filtersDiv = document.getElementById("filters");
|
||||
const filtersDiv = document.getElementById("filters");
|
||||
filtersDiv.setAttribute("data-filters", JSON.stringify(filters));
|
||||
},
|
||||
|
||||
@@ -225,28 +229,28 @@ SysTrayX.Link = {
|
||||
// Store the preferences from the app
|
||||
console.log("Preferences received");
|
||||
|
||||
let iconMime = response["preferences"].iconMime;
|
||||
const iconMime = response["preferences"].iconMime;
|
||||
if (iconMime) {
|
||||
browser.storage.sync.set({
|
||||
iconMime: iconMime
|
||||
});
|
||||
}
|
||||
|
||||
let icon = response["preferences"].icon;
|
||||
const icon = response["preferences"].icon;
|
||||
if (icon) {
|
||||
browser.storage.sync.set({
|
||||
icon: icon
|
||||
});
|
||||
}
|
||||
|
||||
let iconType = response["preferences"].iconType;
|
||||
const iconType = response["preferences"].iconType;
|
||||
if (iconType) {
|
||||
browser.storage.sync.set({
|
||||
iconType: iconType
|
||||
});
|
||||
}
|
||||
|
||||
let debug = response["preferences"].debug;
|
||||
const debug = response["preferences"].debug;
|
||||
if (debug) {
|
||||
browser.storage.sync.set({
|
||||
debug: debug
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
function fileSelected() {
|
||||
let input = document.getElementById("selectedFileIconType");
|
||||
const input = document.getElementById("selectedFileIconType");
|
||||
|
||||
if (input.files.length > 0) {
|
||||
console.debug("Selected file: " + input.files[0].name);
|
||||
@@ -7,20 +7,20 @@ function fileSelected() {
|
||||
}
|
||||
|
||||
function storeFile() {
|
||||
let buffer = new Uint8Array(fr.result);
|
||||
const buffer = new Uint8Array(fr.result);
|
||||
|
||||
let binary = "";
|
||||
let len = buffer.byteLength;
|
||||
const len = buffer.byteLength;
|
||||
for (let i = 0; i < len; i++) {
|
||||
binary += String.fromCharCode(buffer[i]);
|
||||
}
|
||||
|
||||
let base64 = window.btoa(binary);
|
||||
let iconDiv = document.getElementById("icon");
|
||||
const base64 = window.btoa(binary);
|
||||
const iconDiv = document.getElementById("icon");
|
||||
iconDiv.setAttribute("data-icon", base64);
|
||||
iconDiv.setAttribute("data-icon-mime", input.files[0].type);
|
||||
|
||||
let image = document.getElementById("customIconImage");
|
||||
const image = document.getElementById("customIconImage");
|
||||
image.setAttribute("src", `data:${input.files[0].type};base64,${base64}` );
|
||||
|
||||
console.log(base64);
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="radio" name="iconType" value="2" /> Custom icon</td>
|
||||
<td><img id="customIconImage" height="25" width="25" align="middle" src=""></td>
|
||||
<td><img id="customIconImage" height="25" width="25" align="middle" src="icons/blank-icon.png"></td>
|
||||
<td>
|
||||
<label for="selectedFileIconType" style="-moz-appearance: button;"}>Browse...</label>
|
||||
<input type="file" id="selectedFileIconType" accept="image/*" style="display:none;">
|
||||
|
||||
@@ -21,13 +21,13 @@ SysTrayX.SaveOptions = {
|
||||
|
||||
console.debug("Store accounts and filters");
|
||||
|
||||
let treeBase = document.getElementById("accountsTree");
|
||||
let inputs = treeBase.querySelectorAll("input");
|
||||
const treeBase = document.getElementById("accountsTree");
|
||||
const inputs = treeBase.querySelectorAll("input");
|
||||
let accounts = [];
|
||||
let filters = [];
|
||||
for (let i = 0; i < inputs.length; ++i) {
|
||||
let account = JSON.parse(inputs[i].value);
|
||||
let checked = inputs[i].checked;
|
||||
const account = JSON.parse(inputs[i].value);
|
||||
const checked = inputs[i].checked;
|
||||
accounts.push({ ...account, checked: checked });
|
||||
|
||||
if (checked) {
|
||||
@@ -72,7 +72,7 @@ SysTrayX.SaveOptions = {
|
||||
|
||||
console.debug("Store icon preferences");
|
||||
|
||||
let iconType = document.querySelector('input[name="iconType"]:checked')
|
||||
const iconType = document.querySelector('input[name="iconType"]:checked')
|
||||
.value;
|
||||
|
||||
// Store icon type
|
||||
@@ -106,8 +106,8 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
// Test 1
|
||||
//
|
||||
let getting = browser.storage.sync.get("optionsRadioTest");
|
||||
getting.then(
|
||||
const getRadioTest = browser.storage.sync.get("optionsRadioTest");
|
||||
getRadioTest.then(
|
||||
SysTrayX.RestoreOptions.setCurrentRadioChoice,
|
||||
SysTrayX.RestoreOptions.onError
|
||||
);
|
||||
@@ -115,12 +115,12 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
// Test 2
|
||||
//
|
||||
getting = browser.storage.sync.get([
|
||||
const getCheckTest = browser.storage.sync.get([
|
||||
"optionsCheck1",
|
||||
"optionsCheck2",
|
||||
"optionsCheck3"
|
||||
]);
|
||||
getting.then(
|
||||
getCheckTest.then(
|
||||
SysTrayX.RestoreOptions.setCurrentCheckChoice,
|
||||
SysTrayX.RestoreOptions.onError
|
||||
);
|
||||
@@ -130,7 +130,7 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
// Restore debug state
|
||||
//
|
||||
let getDebug = browser.storage.sync.get("debug");
|
||||
const getDebug = browser.storage.sync.get("debug");
|
||||
getDebug.then(
|
||||
SysTrayX.RestoreOptions.setDebug,
|
||||
SysTrayX.RestoreOptions.onDebugError
|
||||
@@ -139,7 +139,7 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
// Restore icon type
|
||||
//
|
||||
let getIconType = browser.storage.sync.get("iconType");
|
||||
const getIconType = browser.storage.sync.get("iconType");
|
||||
getIconType.then(
|
||||
SysTrayX.RestoreOptions.setIconType,
|
||||
SysTrayX.RestoreOptions.onIconTypeError
|
||||
@@ -148,7 +148,7 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
// Restore icon
|
||||
//
|
||||
let getIcon = browser.storage.sync.get(["iconMime", "icon"]);
|
||||
const getIcon = browser.storage.sync.get(["iconMime", "icon"]);
|
||||
getIcon.then(
|
||||
SysTrayX.RestoreOptions.setIcon,
|
||||
SysTrayX.RestoreOptions.onIconError
|
||||
@@ -161,8 +161,8 @@ SysTrayX.RestoreOptions = {
|
||||
// Test 1 Callback
|
||||
//
|
||||
setCurrentRadioChoice: function(result) {
|
||||
let selector = result.optionsRadioTest || "Option1";
|
||||
let radioButton = document.querySelector(`[value=${selector}]`);
|
||||
const selector = result.optionsRadioTest || "Option1";
|
||||
const radioButton = document.querySelector(`[value=${selector}]`);
|
||||
radioButton.checked = true;
|
||||
},
|
||||
|
||||
@@ -170,11 +170,11 @@ SysTrayX.RestoreOptions = {
|
||||
// Test 2 Callback
|
||||
//
|
||||
setCurrentCheckChoice: function(result) {
|
||||
let checkbox1 = document.querySelector('[name="check1"]');
|
||||
const checkbox1 = document.querySelector('[name="check1"]');
|
||||
checkbox1.checked = result.optionsCheck1 || false;
|
||||
let checkbox2 = document.querySelector('[name="check2"]');
|
||||
const checkbox2 = document.querySelector('[name="check2"]');
|
||||
checkbox2.checked = result.optionsCheck2 || false;
|
||||
let checkbox3 = document.querySelector('[name="check3"]');
|
||||
const checkbox3 = document.querySelector('[name="check3"]');
|
||||
checkbox3.checked = result.optionsCheck3 || false;
|
||||
},
|
||||
|
||||
@@ -189,12 +189,12 @@ SysTrayX.RestoreOptions = {
|
||||
// Restore debug state callbacks
|
||||
//
|
||||
setDebug: function(result) {
|
||||
let debug = result.debug || "false";
|
||||
const debug = result.debug || "false";
|
||||
|
||||
console.debug("Debug: " + debug);
|
||||
|
||||
let checkbox = document.querySelector(`input[name="debug"]`);
|
||||
checkbox.checked = (debug === "true");
|
||||
const checkbox = document.querySelector(`input[name="debug"]`);
|
||||
checkbox.checked = debug === "true";
|
||||
},
|
||||
|
||||
onDebugError: function(error) {
|
||||
@@ -205,8 +205,8 @@ SysTrayX.RestoreOptions = {
|
||||
// Restore icon type callbacks
|
||||
//
|
||||
setIconType: function(result) {
|
||||
let iconType = result.iconType || "0";
|
||||
let radioButton = document.querySelector(`[value="${iconType}"]`);
|
||||
const iconType = result.iconType || "0";
|
||||
const radioButton = document.querySelector(`[value="${iconType}"]`);
|
||||
radioButton.checked = true;
|
||||
},
|
||||
|
||||
@@ -218,33 +218,45 @@ SysTrayX.RestoreOptions = {
|
||||
// Restore icon
|
||||
//
|
||||
setIconMime: function(result) {
|
||||
let iconMime = result.iconMime || "image/png";
|
||||
const iconMime = result.iconMime || "";
|
||||
|
||||
let iconDiv = document.getElementById("icon");
|
||||
iconDiv.setAttribute("data-icon-mime", iconMime);
|
||||
const valid = iconMime !== "";
|
||||
if (valid) {
|
||||
const iconDiv = document.getElementById("icon");
|
||||
iconDiv.setAttribute("data-icon-mime", iconMime);
|
||||
}
|
||||
|
||||
return valid;
|
||||
},
|
||||
|
||||
setIconData: function(result) {
|
||||
let iconBase64 = result.icon || "";
|
||||
const iconBase64 = result.icon || "";
|
||||
|
||||
let iconDiv = document.getElementById("icon");
|
||||
iconDiv.setAttribute("data-icon", iconBase64);
|
||||
const valid = iconBase64 !== "";
|
||||
if (valid) {
|
||||
const iconDiv = document.getElementById("icon");
|
||||
iconDiv.setAttribute("data-icon", iconBase64);
|
||||
}
|
||||
|
||||
return valid;
|
||||
},
|
||||
|
||||
updateIconImage: function() {
|
||||
let iconDiv = document.getElementById("icon");
|
||||
const iconDiv = document.getElementById("icon");
|
||||
icon_mime = iconDiv.getAttribute("data-icon-mime");
|
||||
icon_data = iconDiv.getAttribute("data-icon");
|
||||
|
||||
let image = document.getElementById("customIconImage");
|
||||
const image = document.getElementById("customIconImage");
|
||||
image.setAttribute("src", `data:${icon_mime};base64,${icon_data}`);
|
||||
},
|
||||
|
||||
setIcon: function(result) {
|
||||
SysTrayX.RestoreOptions.setIconMime(result);
|
||||
SysTrayX.RestoreOptions.setIconData(result);
|
||||
const validMime = SysTrayX.RestoreOptions.setIconMime(result);
|
||||
const validData = SysTrayX.RestoreOptions.setIconData(result);
|
||||
|
||||
SysTrayX.RestoreOptions.updateIconImage();
|
||||
if (validMime && validData) {
|
||||
SysTrayX.RestoreOptions.updateIconImage();
|
||||
}
|
||||
},
|
||||
|
||||
onIconError: function(error) {
|
||||
@@ -255,7 +267,7 @@ SysTrayX.RestoreOptions = {
|
||||
SysTrayX.StorageChanged = {
|
||||
changed: function(changes, area) {
|
||||
// Try to keep the preferences of the add-on and the app in sync
|
||||
let changedItems = Object.keys(changes);
|
||||
const changedItems = Object.keys(changes);
|
||||
|
||||
let changed_icon = false;
|
||||
let changed_icon_mime = false;
|
||||
@@ -294,6 +306,49 @@ SysTrayX.StorageChanged = {
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Set default icon
|
||||
//
|
||||
const toDataURL = url =>
|
||||
fetch(url)
|
||||
.then(response => response.blob())
|
||||
.then(
|
||||
blob =>
|
||||
new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
reader.onloadend = () => resolve(reader.result);
|
||||
reader.onerror = reject;
|
||||
reader.readAsDataURL(blob);
|
||||
})
|
||||
);
|
||||
|
||||
toDataURL("icons/blank-icon.png").then(dataUrl => {
|
||||
const data = dataUrl
|
||||
.split(":")
|
||||
.pop()
|
||||
.split(",");
|
||||
const mime = data[0].split(";")[0];
|
||||
const base64 = data[1];
|
||||
|
||||
const iconDiv = document.getElementById("icon");
|
||||
|
||||
if (
|
||||
iconDiv.getAttribute("data-icon") === "" &&
|
||||
iconDiv.getAttribute("data-icon-mime") === ""
|
||||
) {
|
||||
iconDiv.setAttribute("data-icon", base64);
|
||||
iconDiv.setAttribute("data-icon-mime", mime);
|
||||
|
||||
console.debug("Default set");
|
||||
}
|
||||
|
||||
console.debug("Default: " + mime);
|
||||
console.debug("Default: " + base64);
|
||||
});
|
||||
|
||||
//
|
||||
// Main
|
||||
//
|
||||
document.addEventListener("DOMContentLoaded", SysTrayX.RestoreOptions.start);
|
||||
document
|
||||
.querySelector('[name="saveform"]')
|
||||
|
||||
Reference in New Issue
Block a user