1 function load_settings() {
2 browser.storage.local.get({auto_close: true})
5 document.getElementById('auto-close').checked = v.auto_close === true;
6 //console.log('Success', v);
9 document.getElementById('auto-close').checked = true;
10 //console.log('Failure');
15 function save_settings() {
16 let v = document.getElementById('auto-close').checked;
17 browser.storage.local.set({
20 //console.log('stored', v);
24 if (!word) return word;
30 word = word.replace(/^[^a-zA-Z0-9]+/, '');
31 word = word.replace(/[^a-zA-Z0-9]+$/, '');
32 word = word.replace(/^Bug#/i, '');
33 } while ( oldword != word );
38 function open_tab(url) {
39 return new Promise((resolve, reject) => {
40 browser.tabs.create({url:url, active:false})
46 //console.log('Error creating tab', err);
53 function open_link(url, in_new_tab) {
54 //console.log('open_link', url, in_new_tab);
60 //console.log('querying active tab');
61 return new Promise((resolve, reject) => {
62 browser.tabs.query({active:true, currentWindow:true})
65 //console.log('active tab queried');
66 browser.tabs.executeScript(tabs[0].id, {file: '/icedeb-content.js'})
69 //console.log('content script executed');
70 browser.tabs.sendMessage( tabs[0].id, {url:url} )
73 //console.log('message sent');
77 console.log('error sending message', err);
83 console.log('Error executing script. Probably a system tab is active', err, tabs[0]);
86 function() { resolve(); },
87 function(err) { reject(err); } );
92 console.log('Error querying the active tab of the current window', err);
95 function() { resolve(); },
96 function(err) { reject(err) }
103 function link_clicked(e) {
104 //console.log(e.target.tagName);
105 let autoclose = true;
107 if (e.target.tagName == 'A') {
108 open_link(e.target.href, e.button == 1)
111 //console.log('closing pop-up');
119 let clip_input = document.getElementById("clipboard");
120 let clip = trim(clip_input.value);
122 if(clip_input.value == '') return;
126 switch (e.target.id) {
128 url = 'https://bugs.debian.org/' + clip;
131 url = 'https://tracker.debian.org/' + clip;
134 url = 'https://packages.debian.org/' + clip;
137 url = 'https://lists.debian.org/msgid-search/' + clip;
140 url = 'https://qa.debian.org/developer.php';
142 url += '?login=' + clip;
145 url = 'https://buildd.debian.org/' + clip;
148 url = 'https://security-tracker.debian.org/';
150 url += 'tracker/' + clip;
154 open_link(url, e.button == 1)
157 //console.log('closing pop-up');
166 function get_clipboard_contents() {
167 let clip_pot = document.getElementById('clip-pot');
168 let clip_input = document.getElementById("clipboard");
170 if (document.execCommand("Paste")) {
171 clip_input.value = clip_pot.textContent.trim();
173 clip_input.setSelectionRange(0, clip_input.value.length)
177 window.addEventListener('DOMContentLoaded', (e) => {
178 document.querySelectorAll('.icedeb-button, #button-list-container a')
179 .forEach(function(el){
180 el.addEventListener('mouseup', link_clicked);
183 document.addEventListener('change', (e) => {
184 if ( !e.target.classList.contains('icedeb-option') )
190 window.requestAnimationFrame(()=>{
191 window.requestAnimationFrame(get_clipboard_contents);