-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptions.js
More file actions
81 lines (69 loc) · 2.62 KB
/
Copy pathoptions.js
File metadata and controls
81 lines (69 loc) · 2.62 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
document.addEventListener("DOMContentLoaded", () => {
const form = document.getElementById("settingsForm");
const settingsList = document.getElementById("settingsList");
const domainInput = document.getElementById("domain");
const speedInput = document.getElementById("speed");
let editingDomain = null;
// Load saved settings and display them
chrome.storage.sync.get("settings", (data) => {
const settings = data.settings || {};
updateSettingsList(settings);
});
// Handle form submit to save or update a setting
form.addEventListener("submit", (event) => {
event.preventDefault();
const domain = domainInput.value.trim();
const speed = parseFloat(speedInput.value);
if (domain && speed) {
chrome.storage.sync.get("settings", (data) => {
const settings = data.settings || {};
// If editing, remove the old entry
if (editingDomain && editingDomain !== domain) {
delete settings[editingDomain];
}
// Update or add the new setting
settings[domain] = speed;
chrome.storage.sync.set({ settings }, () => {
updateSettingsList(settings);
form.reset();
editingDomain = null;
});
});
}
});
// Update the displayed list of saved settings
function updateSettingsList(settings) {
settingsList.innerHTML = "";
for (const [domain, speed] of Object.entries(settings)) {
const li = document.createElement("li");
li.className = "domain-item";
// Display domain and speed
const info = document.createElement("span");
info.textContent = `${domain}: ${speed}x`;
// Edit button
const editButton = document.createElement("button");
editButton.className = "edit-button";
editButton.textContent = "Edit";
editButton.onclick = () => {
domainInput.value = domain;
speedInput.value = speed;
editingDomain = domain;
};
// Delete button
const deleteButton = document.createElement("button");
deleteButton.className = "delete-button";
deleteButton.textContent = "Delete";
deleteButton.onclick = () => {
delete settings[domain];
chrome.storage.sync.set({ settings }, () => {
updateSettingsList(settings);
});
};
// Append info and buttons to list item
li.appendChild(info);
li.appendChild(editButton);
li.appendChild(deleteButton);
settingsList.appendChild(li);
}
}
});