-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptions.js
More file actions
92 lines (82 loc) · 4.59 KB
/
options.js
File metadata and controls
92 lines (82 loc) · 4.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
async function getOptions() {
const manifestVersion = chrome.runtime.getManifest().version;
const versionLabel = document.getElementById('extensionVersionLabel');
if (versionLabel) {
versionLabel.textContent = `Version: ${manifestVersion}`;
}
// Get local storage
let localstorage = await chrome.storage.local.get();
// Populate settings with default values if they are undefined (but don't overwrite existing values)
const needsUpdate =
localstorage.haloDomain === undefined ||
localstorage.haloAddFormattedCopyButton === undefined ||
localstorage.haloTicketHistoryMax === undefined ||
localstorage.haloPlanDateEnabled === undefined ||
localstorage.haloPlanDateFieldId === undefined ||
localstorage.haloPlanDateFieldName === undefined ||
localstorage.haloPlanDateDashes === undefined ||
localstorage.haloAwaitingReviewEnabled === undefined;
if (needsUpdate) {
if (localstorage.haloDomain === undefined) {
localstorage.haloDomain = ''; // Empty domain for open source users
}
if (localstorage.haloAddFormattedCopyButton === undefined) {
localstorage.haloAddFormattedCopyButton = true;
}
if (localstorage.haloTicketHistoryMax === undefined) {
localstorage.haloTicketHistoryMax = 10;
}
if (localstorage.haloPlanDateEnabled === undefined) {
localstorage.haloPlanDateEnabled = true;
}
if (localstorage.haloPlanDateFieldId === undefined) {
localstorage.haloPlanDateFieldId = 239;
}
if (localstorage.haloPlanDateFieldName === undefined) {
localstorage.haloPlanDateFieldName = 'Plandatum';
}
if (localstorage.haloPlanDateDashes === undefined) {
localstorage.haloPlanDateDashes = true;
}
if (localstorage.haloAwaitingReviewEnabled === undefined) {
localstorage.haloAwaitingReviewEnabled = true;
}
// Save changes only if needed
await chrome.storage.local.set(localstorage);
}
// Set the page's options to what is stored in local storage
document.getElementById('haloDomainTextBox').value = localstorage.haloDomain || '';
document.getElementById('haloAddFormattedCopyButtonCheckbox').checked = localstorage.haloAddFormattedCopyButton;
document.getElementById('haloTicketHistoryMaxTextBox').value = localstorage.haloTicketHistoryMax;
document.getElementById('haloPlanDateEnabledCheckbox').checked = localstorage.haloPlanDateEnabled;
document.getElementById('haloPlanDateFieldIdTextBox').value = localstorage.haloPlanDateFieldId;
document.getElementById('haloPlanDateFieldNameTextBox').value = localstorage.haloPlanDateFieldName || 'Plandatum';
document.getElementById('haloPlanDateDashesCheckbox').checked = localstorage.haloPlanDateDashes;
document.getElementById('haloAwaitingReviewEnabledCheckbox').checked = localstorage.haloAwaitingReviewEnabled;
}
async function setOptions() {
// Halo
let haloDomain = document.getElementById('haloDomainTextBox').value.trim();
let haloAddFormattedCopyButton = document.getElementById('haloAddFormattedCopyButtonCheckbox').checked;
let haloTicketHistoryMax = document.getElementById('haloTicketHistoryMaxTextBox').value;
let haloPlanDateEnabled = document.getElementById('haloPlanDateEnabledCheckbox').checked;
let haloPlanDateFieldId = parseInt(document.getElementById('haloPlanDateFieldIdTextBox').value, 10) || 239;
let haloPlanDateFieldName = document.getElementById('haloPlanDateFieldNameTextBox').value.trim() || 'Plandatum';
let haloPlanDateDashes = document.getElementById('haloPlanDateDashesCheckbox').checked;
let haloAwaitingReviewEnabled = document.getElementById('haloAwaitingReviewEnabledCheckbox').checked;
let localStorage = {
'haloDomain': haloDomain,
'haloAddFormattedCopyButton': haloAddFormattedCopyButton,
'haloTicketHistoryMax': haloTicketHistoryMax,
'haloPlanDateEnabled': haloPlanDateEnabled,
'haloPlanDateFieldId': haloPlanDateFieldId,
'haloPlanDateFieldName': haloPlanDateFieldName,
'haloPlanDateDashes': haloPlanDateDashes,
'haloAwaitingReviewEnabled': haloAwaitingReviewEnabled
};
await chrome.storage.local.set(localStorage);
chrome.permissions.request({ origins: ['*://*.halopsa.com/*', '*://*.haloitsm.com/*'] });
}
document.addEventListener('DOMContentLoaded', getOptions);
document.querySelector('#resetButton').addEventListener('click', getOptions);
document.querySelector('#saveButton').addEventListener('click', setOptions);