forked from kesselborn/conex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
conex-options-ui.js
108 lines (90 loc) · 3.55 KB
/
conex-options-ui.js
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
const filePicker = $1('#file-picker');
const bg = browser.extension.getBackgroundPage();
filePicker.addEventListener('change', picker => {
const file = picker.target.files[0];
const reader = new FileReader();
reader.onload = function(r) {
try {
const json = JSON.parse(r.target.result);
const tabContainers = [];
const windows = [];
for(const w of json.windows) {
const windowTabContainers = {};
if(w.extData && w.extData['tabview-group']) {
const windowTabContainersJSON = JSON.parse(w.extData['tabview-group']);
for(const key in windowTabContainersJSON) {
if(windowTabContainersJSON[key].title) {
windowTabContainers[key] = windowTabContainersJSON[key].title;
tabContainers.push(windowTabContainers[key]);
}
}
}
const tabs = [];
for(const tab of w.tabs) {
if(tab.extData && tab.extData['tabview-tab']) {
const extData = JSON.parse(tab.extData['tabview-tab']);
if(extData && extData.groupID && windowTabContainers[Number(extData.groupID)]) {
tabs.push({url: tab.entries[0].url, container: windowTabContainers[Number(extData.groupID)]});
} else {
tabs.push({url: tab.entries[0].url, container: null});
}
} else {
tabs.push({url: tab.entries[0].url, container: null});
}
}
windows.push(tabs);
}
bg.restoreTabContainersBackup(tabContainers, windows);
} catch(e){ console.error(e); }
};
reader.readAsText(file);
});
browser.contextualIdentities.query({}).then(identities => {
if(!identities) {
document.querySelector('#missing-tab-container-support').style.display = 'block';
}
});
function showHideTabContainersMovingDetails() {
$1('#show-hide-tab-containers-moving-details-link').remove();
$1('#moving-tabs-explanation').style.display = 'block';
return false;
}
$1('#show-hide-tab-containers-moving-details-link').addEventListener('click', showHideTabContainersMovingDetails);
browser.storage.local.get('conex/settings/tab-moving-allowed').then(settings => {
const on = settings['conex/settings/tab-moving-allowed'];
if(on) {
$1('#move-tab-yes').checked = 'checked';
$1('#error').style.display = 'none';
} else if(on == false) {
$1('#move-tab-no').checked = 'checked';
$1('#error').style.display = 'none';
}
bg.setupMenus();
});
$1('#move-tab-yes').addEventListener('click', () => {
$1('#error').style.display = 'none';
browser.storage.local.set({'conex/settings/tab-moving-allowed': true});
bg.setupMenus();
});
$1('#move-tab-no').addEventListener('click', () => {
$1('#error').style.display = 'none';
browser.storage.local.set({'conex/settings/tab-moving-allowed': false});
browser.storage.local.set({tabMovingSettingKey: false});
bg.setupMenus();
});
browser.storage.local.get('conex/settings/tab-moving-allowed/prefer-context-menu').then(settings => {
const on = settings['conex/settings/tab-moving-allowed/prefer-context-menu'];
if(on) {
$1('#move-tab-menu-context-menu').checked = 'checked';
} else {
$1('#move-tab-menu-page-action').checked = 'checked';
}
});
$1('#move-tab-menu-context-menu').addEventListener('click', () => {
browser.storage.local.set({'conex/settings/tab-moving-allowed/prefer-context-menu' : true});
bg.setupMenus();
});
$1('#move-tab-menu-page-action').addEventListener('click', () => {
browser.storage.local.set({'conex/settings/tab-moving-allowed/prefer-context-menu' : false});
bg.setupMenus();
});