Skip to content

Commit f3874f5

Browse files
committed
save settings
1 parent 6c4d62b commit f3874f5

File tree

5 files changed

+81
-27
lines changed

5 files changed

+81
-27
lines changed

options.html

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
<meta charset="utf-8">
66
<title>WebActivity Time Tracker</title>
77
<link href="style/settings.css" rel="stylesheet" />
8+
<script src="scripts/common.js"></script>
89
<script src="scripts/storage.js"></script>
910
<script src="scripts/settings.js"></script>
1011
</head>
@@ -21,7 +22,7 @@
2122
<div id='block'>
2223
<div id="settingsBlock">
2324
<label>
24-
<input type="checkbox" class="filled-in" id="chk-demo3" checked="checked" />
25+
<input type="checkbox" class="filled-in" id="viewTimeInBadge" checked="checked" />
2526
<span>Display time tracker in icon</span>
2627
</label>
2728
<div class="margin-top-10">
@@ -30,8 +31,8 @@
3031
<span class="tooltiptext">An activity is an action with a mouse or keyboard</span>
3132
</div>
3233
<div class="margin-top-10">
33-
<select id='timeToStopTracking' class="option">
34-
<option value="0.33">30 seconds</option>
34+
<select id='intervalInactivity' class="option">
35+
<option value="0.3">30 seconds</option>
3536
<option value="0.45">45 seconds</option>
3637
<option value="1">1 min</option>
3738
<option value="2">2 min</option>
@@ -45,18 +46,18 @@
4546
<div class="margin-top-10"><label>Default range for days:</label></div>
4647
<div class="margin-top-10">
4748
<select id='rangeToDays' class="option">
48-
<option value="2days">2 days</option>
49-
<option value="3days">3 days</option>
50-
<option value="4days">4 days</option>
51-
<option value="5days">5 days</option>
52-
<option value="6days">6 days</option>
53-
<option value="7days">7 days</option>
54-
<option value="1month">1 month</option>
55-
<option value="2month">2 month</option>
56-
<option value="3month">3 month</option>
49+
<option value="days2">2 days</option>
50+
<option value="days3">3 days</option>
51+
<option value="days4">4 days</option>
52+
<option value="days5">5 days</option>
53+
<option value="days6">6 days</option>
54+
<option value="days7">7 days</option>
55+
<option value="month1">1 month</option>
56+
<option value="month2">2 month</option>
57+
<option value="month3">3 month</option>
5758
</select>
5859
</div>
59-
<div class="margin-top-10"><input type="button" value="Clear all data"></div>
60+
<div class="margin-top-10"><input type="button" value="Clear all data" id='clearAllData'></div>
6061
</div>
6162
</div>
6263
<div id='aboutBlock' hidden>

scripts/background.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var activity = new Activity();
66
var storage = new LocalStorage();
77

88
function updateSummaryTime() {
9-
setInterval(backgroundCheck, SETTINGS_INTERVAL_CHECK);
9+
setInterval(backgroundCheck, SETTINGS_INTERVAL_CHECK_DEFAULT);
1010
}
1111

1212
function updateStorage() {
@@ -46,18 +46,30 @@ function backgroundUpdateStorage() {
4646
storage.saveTabs(tabs);
4747
}
4848

49+
function setDefaultSettings(){
50+
storage.saveSettings(SETTINGS_INTERVAL_INACTIVITY, SETTINGS_INTERVAL_INACTIVITY_DEFAULT);
51+
storage.saveSettings(SETTINGS_INTERVAL_RANGE, SETTINGS_INTERVAL_RANGE_DEFAULT);
52+
storage.saveSettings(SETTINGS_VIEW_TIME_IN_BADGE, SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT);
53+
storage.saveSettings(SETTINGS_INTERVAL_SAVE_STORAGE, SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT);
54+
}
55+
4956
function addListener() {
5057
chrome.tabs.onActivated.addListener(function (info) {
5158
chrome.tabs.get(info.tabId, function (tab) {
5259
activity.addTab(tab);
5360
});
5461
});
5562

56-
chrome.webNavigation.onCompleted.addListener(function(details){
63+
chrome.webNavigation.onCompleted.addListener(function (details) {
5764
chrome.tabs.get(details.tabId, function (tab) {
5865
activity.updateFavicon(tab);
5966
});
6067
});
68+
chrome.runtime.onInstalled.addListener(function (details) {
69+
//if (details.reason == "install") {
70+
setDefaultSettings();
71+
//}
72+
});
6173
}
6274

6375
addListener();

scripts/common.js

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,47 @@
1+
var RangeForDays = {
2+
days2: 'days2',
3+
days3: 'days3',
4+
days4: 'days4',
5+
days5: 'days5',
6+
days6: 'days6',
7+
days7: 'days7',
8+
month1: 'month1',
9+
month2: 'month2',
10+
month3: 'month3'
11+
};
12+
13+
var InactivityInterval = {
14+
second30: 0.3,
15+
second45: 0.45,
16+
min1: 1,
17+
min2: 2,
18+
min5: 5,
19+
min10: 10,
20+
min20: 20,
21+
min30: 30,
22+
min40: 40
23+
};
24+
25+
var TypeListEnum = {
26+
ToDay: 1,
27+
All: 2,
28+
ByDays: 3,
29+
};
30+
131
var STORAGE_TABS = 'tabs';
232

3-
var SETTINGS_INTERVAL_INACTIVITY_DEFAULT = 30;
33+
var SETTINGS_INTERVAL_INACTIVITY_DEFAULT = InactivityInterval.second30;
434
var SETTINGS_INTERVAL_CHECK_DEFAULT = 1000;
535
var SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT = 3000;
636
var SETTINGS_INTERVAL_CHECK_STORAGE_DEFAULT = 3000;
7-
var SETTINGS_INTERVAL_RANGE_DEFAULT = 7;
37+
var SETTINGS_INTERVAL_RANGE_DEFAULT = RangeForDays.days7;
838
var SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT = true;
939

1040
var SETTINGS_INTERVAL_INACTIVITY = 'inactivity_interval';
11-
var SETTINGS_INTERVAL_CHECK = 'interval_check';
1241
var SETTINGS_INTERVAL_SAVE_STORAGE = 'interval_save_in_storage';
1342
var SETTINGS_INTERVAL_RANGE = 'range_days';
1443
var SETTINGS_VIEW_TIME_IN_BADGE = 'view_time_in_badge';
1544

16-
var TypeListEnum = {
17-
ToDay: 1,
18-
All: 2,
19-
ByDays: 3,
20-
};
21-
2245
function isEmpty(obj) {
2346
for (var prop in obj) {
2447
if (obj.hasOwnProperty(prop))

scripts/settings.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,28 @@ document.addEventListener('DOMContentLoaded', function () {
1515
document.getElementById('settingsBlock').hidden = true;
1616
document.getElementById('aboutBlock').hidden = false;
1717
});
18+
document.getElementById('clearAllData').addEventListener('click', function () {
19+
clearAllData();
20+
});
1821
});
1922

2023
loadSettings();
2124

2225
function loadSettings(){
23-
var options = storage.getSettings();
26+
storage.getSettings(SETTINGS_INTERVAL_INACTIVITY, function (item){
27+
document.getElementById('intervalInactivity').value = item[SETTINGS_INTERVAL_INACTIVITY];
28+
});
29+
storage.getSettings(SETTINGS_INTERVAL_RANGE, function (item){
30+
document.getElementById('rangeToDays').value = item[SETTINGS_INTERVAL_RANGE];
31+
});
32+
storage.getSettings(SETTINGS_VIEW_TIME_IN_BADGE, function (item){
33+
document.getElementById('viewTimeInBadge').setAttribute('checked', item[SETTINGS_VIEW_TIME_IN_BADGE]);
34+
});
35+
// storage.getSettings(SETTINGS_INTERVAL_SAVE_STORAGE, function (item){
36+
// document.getElementById('intervalInactivity').value = item;
37+
// });
38+
}
39+
40+
function clearAllData(){
41+
storage.saveTabs(null);
2442
}

scripts/storage.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ class LocalStorage {
1616
}
1717

1818
saveSettings(name, value) {
19-
chrome.storage.local.set({ name: value });
19+
chrome.storage.local.set({ [name]: value });
2020
}
2121

2222
getSettings(name, callback) {
2323
chrome.storage.local.get(name, function(item){
2424
if (item !== undefined){
25-
callback(item.name);
25+
callback(item);
2626
}
2727
});
2828
}

0 commit comments

Comments
 (0)