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
130 lines (113 loc) · 3.32 KB
/
common.js
File metadata and controls
130 lines (113 loc) · 3.32 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
123
124
125
126
127
128
129
130
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 from = getValueFromArrayRange(range.from);
var to = getValueFromArrayRange(range.to);
return date >= from && date <= to;
}
function getValueFromArrayRange(value){
var arr;
if (value.indexOf('.') !== -1){
arr = value.split('.');
return new Date(arr[2], arr[1] - 1, arr[0]);
}
if (value.indexOf('/') !== -1)
arr = value.split('/');
return new Date(arr[2], arr[0] - 1, arr[1]);
}
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;
}
}