-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptions.js
More file actions
executable file
·48 lines (38 loc) · 1.59 KB
/
options.js
File metadata and controls
executable file
·48 lines (38 loc) · 1.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
// Copyright 2011-2026 Henry A Schimke
// See license.txt for details
function traverseBookmarks(select, nodes) {
for (const node of nodes) {
if (node.id !== '0' && !node.url) {
const option = document.createElement('option');
option.value = node.id;
option.textContent = node.title;
select.appendChild(option);
}
if (node.children) {
traverseBookmarks(select, node.children);
}
}
}
async function populateSelect() {
const select = document.getElementById('folder-list');
select.replaceChildren(); // clear existing options safely
const [root] = await chrome.bookmarks.getTree();
traverseBookmarks(select, root.children);
const { queue_folder_id } = await chrome.storage.local.get('queue_folder_id');
if (queue_folder_id) {
select.value = queue_folder_id;
}
}
async function saveOptions() {
const folderId = document.getElementById('folder-list').value;
const quickClick = document.getElementById('use-quick-click-mode-cb').checked;
await chrome.runtime.sendMessage({ type: 'set-folder', folderId });
await chrome.runtime.sendMessage({ type: 'set-quick-click', value: quickClick });
await populateSelect();
}
document.addEventListener('DOMContentLoaded', async () => {
await populateSelect();
const { use_quick_click_mode } = await chrome.storage.local.get('use_quick_click_mode');
document.getElementById('use-quick-click-mode-cb').checked = !!use_quick_click_mode;
document.getElementById('save-button').addEventListener('click', saveOptions);
});