forked from Stigmatoz/web-activity-time-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommon.js
More file actions
122 lines (106 loc) · 3.12 KB
/
common.js
File metadata and controls
122 lines (106 loc) · 3.12 KB
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
var RangeForDays = {
days2: 'days2',
days3: 'days3',
days4: 'days4',
days5: 'days5',
days6: 'days6',
days7: 'days7',
month1: 'month1',
month2: 'month2',
month3: 'month3'
};
var InactivityInterval = {
second30: 30,
second45: 45,
min1: 60,
min2: 120,
min5: 300,
min10: 600,
min20: 1200,
min30: 1800
};
var TypeListEnum = {
ToDay: 1,
All: 2,
ByDays: 3,
};
var STORAGE_TABS = 'tabs';
var STORAGE_BLACK_LIST = 'black_list';
var SETTINGS_INTERVAL_INACTIVITY_DEFAULT = InactivityInterval.second30;
var SETTINGS_INTERVAL_CHECK_DEFAULT = 1000;
var SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT = 3000;
var SETTINGS_INTERVAL_CHECK_STORAGE_DEFAULT = 3000;
var SETTINGS_INTERVAL_RANGE_DEFAULT = RangeForDays.days7;
var SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT = true;
var SETTINGS_INTERVAL_INACTIVITY = 'inactivity_interval';
var SETTINGS_INTERVAL_SAVE_STORAGE = 'interval_save_in_storage';
var SETTINGS_INTERVAL_RANGE = 'range_days';
var SETTINGS_VIEW_TIME_IN_BADGE = 'view_time_in_badge';
function isEmpty(obj) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop))
return false;
}
return JSON.stringify(obj) === JSON.stringify({});
}
function convertSummaryTimeToBadgeString(summaryTime) {
var sec = (summaryTime);
var min = (summaryTime / 60).toFixed(0);
var hours = (summaryTime / (60 * 60)).toFixed(0);
var days = (summaryTime / (60 * 60 * 24)).toFixed(0);
if (sec < 60) {
return sec + "s";
} else if (min < 60) {
return min + "m";
} else if (hours < 24) {
return hours + "h";
} else {
return days + "d"
}
}
function convertSummaryTimeToString(summaryTime) {
var days = Math.floor(summaryTime / 3600 / 24);
var totalHours = summaryTime % (3600 * 24);
var hours = Math.floor(totalHours / 3600);
var totalSeconds = summaryTime % 3600;
var mins = Math.floor(totalSeconds / 60);
var seconds = totalSeconds % 60;
hours = zeroAppend(hours);
mins = zeroAppend(mins);
seconds = zeroAppend(seconds);
if (days > 0)
return days + 'd ' + hours + 'h ' + mins + 'm ' + seconds + 's';
else return hours + 'h ' + mins + 'm ' + seconds + 's';
}
function zeroAppend(time) {
if (time < 10)
return '0' + time;
else return time;
}
function isDateInRange(dateStr, range){
var arr = dateStr.split('.');
var date = new Date(arr[2], arr[1]-1, arr[0]);
var arrFrom = range.from.split('.');
var from = new Date(arrFrom[2], arrFrom[1]-1, arrFrom[0]);
var arrTo = range.to.split('.');
var to = new Date(arrTo[2], arrTo[1]-1, arrTo[0]);
return date >= from && date <= to;
}
function convertToDate(date){
var arr = date.split('.');
return new Date(arr[2], arr[1]-1, arr[0]);
}
function getDateFromRange(range){
switch (range)
{
case 'days2': return 2;
case 'days3': return 3;
case 'days4': return 4;
case 'days5': return 5;
case 'days6': return 6;
case 'days7': return 7;
case 'month1': return 30;
case 'month2': return 60;
case 'month3': return 90;
}
}