Skip to content

Commit d3127d2

Browse files
authored
Merge pull request Stigmatoz#50 from tschettler/block-deferral-option
Added block deferral option
2 parents dc9ce12 + 06c3d49 commit d3127d2

File tree

6 files changed

+41
-14
lines changed

6 files changed

+41
-14
lines changed

src/block.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<div>
1515
<img src="icons/time.svg" height="50">
1616
<p class="title">Time limit</p>
17-
<div class="description">You've reached today your limit on <span id='site' class="current-site"></span></div>
18-
<div class="description margin-top-10">Your current daily limit is <span id='limit' class="current-limit"></span></div>
17+
<div class="description">You've reached your limit today on <span id="site" class="current-site"></span></div>
18+
<div class="description margin-top-10">Your current daily limit is <span id="limit" class="current-limit"></span></div>
1919

2020
<div class="margin-top-10"><a id="deffererBtn" class="defferer-link">Set aside for 5 minutes</a></div>
2121
</div>

src/options.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,15 @@
3030
<div id='block'>
3131
<div id='settingsBlock'>
3232
<label>
33-
<input type="checkbox" class="filled-in" id="viewTimeInBadge" checked="checked" />
33+
<input type="checkbox" class="filled-in" id="viewTimeInBadge" />
3434
<span>Display time tracker in icon</span>
3535
</label>
36+
<div class="margin-top-10">
37+
<label>
38+
<input type="checkbox" class="filled-in" id="blockDeferral" />
39+
<span>Allow deferring block for 5 minutes</span>
40+
</label>
41+
</div>
3642
<div class="margin-top-10">
3743
<label>
3844
<input type="checkbox" class="filled-in" id="darkMode" />

src/scripts/background.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var setting_restriction_list;
1313
var setting_interval_save;
1414
var setting_interval_inactivity;
1515
var setting_view_in_badge;
16+
var setting_block_deferral;
1617
var setting_dark_mode;
1718
var setting_notification_list;
1819
var setting_notification_message;
@@ -198,6 +199,7 @@ function setDefaultSettings() {
198199
storage.saveValue(SETTINGS_INTERVAL_INACTIVITY, SETTINGS_INTERVAL_INACTIVITY_DEFAULT);
199200
storage.saveValue(SETTINGS_INTERVAL_RANGE, SETTINGS_INTERVAL_RANGE_DEFAULT);
200201
storage.saveValue(SETTINGS_VIEW_TIME_IN_BADGE, SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT);
202+
storage.saveValue(SETTINGS_BLOCK_DEFERRAL, SETTINGS_BLOCK_DEFERRAL_DEFAULT);
201203
storage.saveValue(SETTINGS_DARK_MODE, SETTINGS_DARK_MODE_DEFAULT);
202204
storage.saveValue(SETTINGS_INTERVAL_SAVE_STORAGE, SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT);
203205
storage.saveValue(STORAGE_NOTIFICATION_MESSAGE, STORAGE_NOTIFICATION_MESSAGE_DEFAULT);
@@ -259,6 +261,9 @@ function addListener() {
259261
if (key === SETTINGS_VIEW_TIME_IN_BADGE) {
260262
storage.getValue(SETTINGS_VIEW_TIME_IN_BADGE, function(item) { setting_view_in_badge = item; });
261263
}
264+
if (key === SETTINGS_BLOCK_DEFERRAL) {
265+
storage.getValue(SETTINGS_BLOCK_DEFERRAL, function(item) { setting_block_deferral = item; });
266+
}
262267
if (key === SETTINGS_DARK_MODE) {
263268
storage.getValue(SETTINGS_DARK_MODE, function(item) { setting_dark_mode = item; });
264269
}
@@ -337,6 +342,7 @@ function loadNotificationMessage() {
337342
function loadSettings() {
338343
storage.getValue(SETTINGS_INTERVAL_INACTIVITY, function(item) { setting_interval_inactivity = item; });
339344
storage.getValue(SETTINGS_VIEW_TIME_IN_BADGE, function(item) { setting_view_in_badge = item; });
345+
storage.getValue(SETTINGS_BLOCK_DEFERRAL, function(item) { setting_block_deferral = item; });
340346
storage.getValue(SETTINGS_DARK_MODE, function(item) { setting_dark_mode = item; });
341347
}
342348

src/scripts/block.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var restrictionList = [];
66

77
document.addEventListener('DOMContentLoaded', function () {
88
var url = new URL(document.URL);
9-
blockSiteUrl = url.searchParams.get("url");
9+
blockSiteUrl = url.searchParams.get('url');
1010
document.getElementById('site').innerText = extractHostname(blockSiteUrl);
1111

1212
storage.getValue(STORAGE_RESTRICTION_LIST, function (items) {
@@ -19,18 +19,25 @@ document.addEventListener('DOMContentLoaded', function () {
1919
}
2020
});
2121

22-
document.getElementById('deffererBtn').addEventListener('click', function () {
23-
chrome.runtime.getBackgroundPage(function (bg) {
24-
let defList = bg.deferredRestrictionsList;
25-
if (defList == undefined)
26-
defList = [];
27-
defList.push({ site: blockSiteUrl, dateOfDeferred: new Date().getTime()});
22+
storage.getValue(SETTINGS_BLOCK_DEFERRAL, function(item) {
23+
var deferBtn = document.getElementById('deffererBtn');
24+
if (item){
25+
deferBtn.addEventListener('click', function () {
26+
chrome.runtime.getBackgroundPage(function (bg) {
27+
let defList = bg.deferredRestrictionsList;
28+
if (defList == undefined)
29+
defList = [];
30+
defList.push({ site: blockSiteUrl, dateOfDeferred: new Date().getTime()});
2831

29-
bg.deferredRestrictionsList = defList;
32+
bg.deferredRestrictionsList = defList;
3033

31-
chrome.tabs.query({ currentWindow: true, active: true }, function(tab) {
32-
chrome.tabs.update(tab.id, { url: blockSiteUrl });
34+
chrome.tabs.query({ currentWindow: true, active: true }, function(tab) {
35+
chrome.tabs.update(tab.id, { url: blockSiteUrl });
36+
});
37+
});
3338
});
34-
});
39+
} else {
40+
deferBtn.remove();
41+
}
3542
});
3643
});

src/scripts/common.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ var SETTINGS_INTERVAL_CHECK_DEFAULT = 1000;
4141
var SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT = 5000;
4242
var SETTINGS_INTERVAL_RANGE_DEFAULT = RangeForDays.days7;
4343
var SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT = true;
44+
var SETTINGS_BLOCK_DEFERRAL_DEFAULT = true;
4445
var SETTINGS_DARK_MODE_DEFAULT = false;
4546
var SETTINGS_SHOW_HINT_DEFAULT = true;
4647
var STORAGE_NOTIFICATION_MESSAGE_DEFAULT = 'You have spent a lot of time on this site';
@@ -50,6 +51,7 @@ var SETTINGS_INTERVAL_SAVE_STORAGE = 'interval_save_in_storage';
5051
var SETTINGS_INTERVAL_RANGE = 'range_days';
5152
var SETTINGS_DARK_MODE = 'night_mode';
5253
var SETTINGS_VIEW_TIME_IN_BADGE = 'view_time_in_badge';
54+
var SETTINGS_BLOCK_DEFERRAL = 'view_block_deferral';
5355
var SETTINGS_SHOW_HINT = 'show_hint';
5456

5557
function isEmpty(obj) {

src/scripts/settings.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ document.addEventListener('DOMContentLoaded', function () {
4949
document.getElementById('viewTimeInBadge').addEventListener('change', function () {
5050
storage.saveValue(SETTINGS_VIEW_TIME_IN_BADGE, this.checked);
5151
});
52+
document.getElementById('blockDeferral').addEventListener('change', function () {
53+
storage.saveValue(SETTINGS_BLOCK_DEFERRAL, this.checked);
54+
});
5255
document.getElementById('darkMode').addEventListener('change', function () {
5356
storage.saveValue(SETTINGS_DARK_MODE, this.checked);
5457
});
@@ -100,6 +103,9 @@ function loadSettings() {
100103
storage.getValue(SETTINGS_VIEW_TIME_IN_BADGE, function (item) {
101104
document.getElementById('viewTimeInBadge').checked = item;
102105
});
106+
storage.getValue(SETTINGS_BLOCK_DEFERRAL, function (item) {
107+
document.getElementById('blockDeferral').checked = item;
108+
});
103109
storage.getValue(SETTINGS_DARK_MODE, function (item) {
104110
document.getElementById('darkMode').checked = item;
105111
});

0 commit comments

Comments
 (0)