Skip to content

Commit

Permalink
ui: add options for delay before auto forwarding
Browse files Browse the repository at this point in the history
  • Loading branch information
walkingice committed Jan 3, 2018
1 parent 6d77f80 commit 43805e7
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 4 deletions.
40 changes: 37 additions & 3 deletions js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
const INTERVAL = 250; // 0.25 second
const TIMEOUT = 5000; // 5 seconds
const OPTIONS_AUTO_ENABLED = 'enabled_auto_forward';
const OPTIONS_FORWARD_DELAY = 'auto_forward_delay';
const DEFAULT_DELAY = 5;

function searchUrlFromDisp() {
let doms = document.getElementsByClassName("record");
Expand All @@ -21,7 +23,8 @@
let href = '<a href="' + url + '">' + url + "</a>";
let div = document.createElement("div");
let style = 'style="color:blue; background-color:#EE0; position: fixed; top:0px;left:0px; width:100%;"';
div.innerHTML='<div ' + style + '>' + href + '</div>';
let countDownSpan = '<span id="countdown_span" style="float:right; margin-right:10px"></span>';
div.innerHTML='<div ' + style + '>' + href + countDownSpan + '</div>';
document.body.append(div);
}

Expand All @@ -31,8 +34,39 @@
return;
}

// auto forward to web PTT
window.location.assign(url);
waitAndLoad(url);
});
}

function waitAndLoad(url) {
browser.storage.local.get(OPTIONS_FORWARD_DELAY).then((result) => {
let delay = result.hasOwnProperty(OPTIONS_FORWARD_DELAY) ? result[OPTIONS_FORWARD_DELAY] : DEFAULT_DELAY;

if (delay == 0) {
window.location.assign(url);
return;
}

let container = document.getElementById("countdown_span");
container.innerHTML = 'Wait <span id="count_down">' + delay + '</span>...<button id="cancel">Cancel</button>';
let countDownSec = document.getElementById('count_down');
let cancelBtn = document.getElementById('cancel');

let countDown = setInterval(() => {
delay--;
console.log('wait', delay, 'then auto forward');
countDownSec.innerText = delay;
if (delay <= 0) {
clearInterval(countDown);
// auto forward to web PTT
window.location.assign(url);
}
}, 1000);

cancelBtn.addEventListener('click', () => {
clearInterval(countDown);
container.innerHTML = '';
});
});
}

Expand Down
21 changes: 20 additions & 1 deletion options/options.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,28 @@
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
</style>
</head>
<body>
<div><input id="checkbox_auto_forward" type="checkbox">Auto forward to web PTT</input></div>
<div>
<input id="checkbox_auto_forward" type="checkbox">Auto forward to web PTT</input>
<span>, Wait</span>
<select id="auto_forward_wait">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<span>seconds then forword</span>
</div>
<script type="text/javascript" src="./options.js"></script>
</body>
</html>
19 changes: 19 additions & 0 deletions options/options.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
(() => {
const OPTIONS_AUTO_ENABLED = 'enabled_auto_forward';
const OPTIONS_FORWARD_DELAY = 'auto_forward_delay';
const DEFAULT_DELAY = 5;

let checkbox = document.getElementById('checkbox_auto_forward');
let delay = document.getElementById('auto_forward_wait');

browser.storage.local.get(OPTIONS_AUTO_ENABLED).then((r) => {
checkbox.checked = !!r[OPTIONS_AUTO_ENABLED];
Expand All @@ -10,7 +13,23 @@
var obj = {};
obj[OPTIONS_AUTO_ENABLED] = checkbox.checked;
browser.storage.local.set(obj);

delay.disabled = !checkbox.checked;
});
});

browser.storage.local.get(OPTIONS_FORWARD_DELAY).then((r) => {
delay.value = r.hasOwnProperty(OPTIONS_FORWARD_DELAY) ? r[OPTIONS_FORWARD_DELAY] : DEFAULT_DELAY;

delay.addEventListener('change', () => {
var obj = {};
try {
obj[OPTIONS_FORWARD_DELAY] = parseInt(delay.value);
} catch (e) {
obj[OPTIONS_FORWARD_DELAY] = DEFAULT_DELAY;
}

browser.storage.local.set(obj);
});
});
})();

0 comments on commit 43805e7

Please sign in to comment.