Skip to content

Commit d7bb160

Browse files
committed
View overall stats
1 parent e9f9bc8 commit d7bb160

File tree

7 files changed

+116
-30
lines changed

7 files changed

+116
-30
lines changed

src/index.html

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,42 +58,45 @@
5858
</div>
5959
</div>
6060
<div>
61-
<div class="most-inactive-days-title">
62-
<div class="most-inactive-days-value">
63-
<span>Most inactive day</span>
61+
<div class="title-block">
62+
<span>Today</span>
63+
<span class="span-time" id="statTodayTime"></span>
64+
</div>
65+
<div class="inline-block">
66+
<span>All-time</span>
67+
<span class="span-time" id="statAllDaysTime"></span>
68+
</div>
69+
</div>
70+
<div>
71+
<div class="most-active-days-title">
72+
<div class="most-active-days-value">
73+
<span>Most active day</span>
6474
</div>
6575
<div class="inline-block">
66-
<div class="value-block" id="statInActiveDay"></div>
67-
<div class="value-block" id="statInActiveDayTime"></div>
76+
<div class="value-block" id="statActiveDay"></div>
77+
<div class="span-time" id="statActiveDayTime"></div>
6878
</div>
6979
</div>
7080
<div class="inline-block">
7181
<div style="display: inline-block;vertical-align: top;">
72-
<span>Most active day</span>
82+
<span>Most inactive day</span>
7383
</div>
7484
<div class="inline-block">
75-
<div class="value-block" id="statActiveDay"></div>
76-
<div class="value-block" id="statActiveDayTime"></div>
85+
<div class="value-block" id="statInActiveDay"></div>
86+
<div class="span-time" id="statInActiveDayTime"></div>
7787
</div>
7888
</div>
7989
</div>
80-
<div>
81-
<div class="title-block">
82-
<span>Today</span>
83-
<span class="value-block" id="statTodayTime"></span>
84-
</div>
85-
<div class="inline-block">
86-
<span>All-time</span>
87-
<span class="value-block" id="statAllDaysTime"></span>
88-
</div>
89-
</div>
9090
</div>
9191
</div>
9292
<div id="blockForChartBtn">
9393
<a class="button active chart-btn chart-btn-donut" id="donutChartBtn">Common chart</a>
9494
<a class="button chart-btn chart-btn-heatmap" id="heatMapChartBtn">Time chart</a>
9595
</div>
9696
<div id="chart"></div>
97+
<div id="labelForTimeInterval" class="warning hide">
98+
<label>Only time intervals greater than 3 seconds are shown</label>
99+
</div>
97100
<div id="timeChart"></div>
98101
<div id="resultTable" class="list-of-site"></div>
99102
<div id="total" class="inline-flex"></div>

src/scripts/activity.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class Activity {
102102
setCurrentActiveTab(domain) {
103103
this.closeIntervalForCurrentTab();
104104
currentTab = domain;
105+
this.addTimeInterval(domain);
105106
}
106107

107108
clearCurrentActiveTab() {

src/scripts/background.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ function deleteTimeIntervalFromTabs() {
202202
})
203203
}
204204

205+
function deleteYesterdayTimeInterval(){
206+
timeIntervalList = timeIntervalList.filter(x => x.day == new Date().toLocaleDateString("en-US"));
207+
}
208+
205209
function loadBlackList() {
206210
storage.getValue(STORAGE_BLACK_LIST, function (items) {
207211
setting_black_list = items;
@@ -215,6 +219,7 @@ function loadTimeIntervals() {
215219
for (var i = 0; i < items.length; i++) {
216220
timeIntervalList.push(new TimeInterval(items[i].day, items[i].domain, items[i].intervals));
217221
}
222+
deleteYesterdayTimeInterval();
218223
}
219224
});
220225
}

src/scripts/common.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,14 @@ function isDomainEquals(first, second) {
183183
else return false;
184184
}
185185
}
186+
187+
function treatAsUTC(date) {
188+
var result = new Date(date);
189+
result.setMinutes(result.getMinutes() - result.getTimezoneOffset());
190+
return result;
191+
}
192+
193+
function daysBetween(startDate, endDate) {
194+
var millisecondsPerDay = 24 * 60 * 60 * 1000;
195+
return ((treatAsUTC(endDate) - treatAsUTC(startDate)) / millisecondsPerDay) + 1;
196+
}

src/scripts/ui.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class UI {
1111
document.getElementById('btnByDays').classList.remove('active');
1212
document.getElementById('blockForChartBtn').classList.remove('hide');
1313
document.getElementById('stats').classList.add('hide');
14+
document.getElementById('labelForTimeInterval').classList.add('hide');
1415
this.setUIForDonutChart();
1516

1617
this.clearUI();
@@ -22,6 +23,7 @@ class UI {
2223
document.getElementById('btnByDays').classList.remove('active');
2324
document.getElementById('blockForChartBtn').classList.add('hide');
2425
document.getElementById('stats').classList.remove('hide');
26+
document.getElementById('labelForTimeInterval').classList.add('hide');
2527

2628
this.clearUI();
2729
}
@@ -32,6 +34,7 @@ class UI {
3234
document.getElementById('btnToday').classList.remove('active');
3335
document.getElementById('blockForChartBtn').classList.add('hide');
3436
document.getElementById('stats').classList.add('hide');
37+
document.getElementById('labelForTimeInterval').classList.add('hide');
3538

3639
this.clearUI();
3740
this.addBlockForCalendar(range);
@@ -49,12 +52,14 @@ class UI {
4952
document.getElementById('donutChartBtn').classList.add('active');
5053
document.getElementById('heatMapChartBtn').classList.remove('active');
5154
document.getElementById('timeChart').innerHTML = null;
55+
document.getElementById('labelForTimeInterval').classList.add('hide');
5256
}
5357

5458
setUIForTimeChart() {
5559
document.getElementById('donutChartBtn').classList.remove('active');
5660
document.getElementById('heatMapChartBtn').classList.add('active');
5761
document.getElementById('chart').innerHTML = null;
62+
document.getElementById('labelForTimeInterval').classList.remove('hide');
5863
}
5964

6065
createTotalBlock(totalTime, currentTypeOfList, counter) {

src/scripts/webact.js

Lines changed: 65 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,40 @@ var today = new Date().toLocaleDateString("en-US");
1010
var setting_range_days;
1111
var restrictionList;
1212
var stat = {
13-
'firstDay': null,
14-
'lastDay': null,
15-
'activeDays': null,
16-
'totalDays': null,
17-
'inActiveDay': null,
18-
'inActiveDayTime': null,
19-
'activeDay': null,
20-
'activeDayTime': null,
21-
'todayTime': null,
22-
'allDaysTime': null
13+
set firstDay(value){
14+
document.getElementById('statFirstDay').innerHTML = value;
15+
},
16+
set lastDay(value){
17+
document.getElementById('statLastDay').innerHTML = value;
18+
},
19+
set activeDays(value){
20+
document.getElementById('statActiveDays').innerHTML = value;
21+
},
22+
set totalDays(value){
23+
document.getElementById('statTotalDays').innerHTML = value;
24+
},
25+
set inActiveDay(value){
26+
document.getElementById('statInActiveDay').innerHTML = value;
27+
},
28+
set inActiveDayTime(value){
29+
document.getElementById('statInActiveDayTime').innerHTML = '';
30+
ui.createElementsForTotalTime(value, TypeListEnum.ToDay, document.getElementById('statInActiveDayTime'));
31+
},
32+
set activeDay(value){
33+
document.getElementById('statActiveDay').innerHTML = value;
34+
},
35+
set activeDayTime(value){
36+
document.getElementById('statActiveDayTime').innerHTML = '';
37+
ui.createElementsForTotalTime(value, TypeListEnum.ToDay, document.getElementById('statActiveDayTime'));
38+
},
39+
set todayTime(value){
40+
document.getElementById('statTodayTime').innerHTML = '';
41+
ui.createElementsForTotalTime(value, TypeListEnum.ToDay, document.getElementById('statTodayTime'));
42+
},
43+
set allDaysTime(value){
44+
document.getElementById('statAllDaysTime').innerHTML = '';
45+
ui.createElementsForTotalTime(value, TypeListEnum.All, document.getElementById('statAllDaysTime'));
46+
},
2347
};
2448

2549
document.addEventListener('DOMContentLoaded', function () {
@@ -295,16 +319,47 @@ function getFirstDay() {
295319
return array.push(a.date);
296320
});
297321
});
322+
298323
array = array.sort(function (a, b) {
299324
return new Date(a) - new Date(b);
300325
});
301326

327+
setStatData(array);
302328
return {
303329
'countOfDays': array.length,
304330
'minDate': array[0]
305331
};
306332
}
307333

334+
function setStatData(array){
335+
var arrayAscByTime = [];
336+
tabsFromStorage.forEach(tab => {
337+
return tab.days.forEach(day => {
338+
var item = arrayAscByTime.find(x => x.date == day.date);
339+
if (item !== undefined) {
340+
return item.total += day.summary;
341+
}
342+
if (item === undefined)
343+
return arrayAscByTime.push({
344+
'date': day.date,
345+
'total': day.summary
346+
});
347+
});
348+
});
349+
350+
arrayAscByTime = arrayAscByTime.sort(function (a, b) {
351+
return a.total - b.total;
352+
});
353+
stat.inActiveDay = arrayAscByTime[0].date;
354+
stat.activeDay = arrayAscByTime[arrayAscByTime.length-1].date;
355+
stat.inActiveDayTime = arrayAscByTime[0].total;
356+
stat.activeDayTime = arrayAscByTime[arrayAscByTime.length-1].total;
357+
stat.firstDay = array[0];
358+
stat.lastDay = array[array.length-1];
359+
stat.activeDays = array.length;
360+
stat.totalDays = daysBetween(array[0], array[array.length-1]);
361+
}
362+
308363
function getTabsByDays(tabs) {
309364
var range = ui.getDateRange();
310365
if (tabs === undefined) {

src/style/webact.css

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,13 +421,19 @@ p.table-header{
421421
display: inline-block;
422422
}
423423

424-
#statsBlock .most-inactive-days-title{
424+
#statsBlock .most-active-days-title{
425425
width: 50%;
426426
display: inline-block;
427427
}
428428

429-
#statsBlock .most-inactive-days-value{
429+
#statsBlock .most-active-days-value{
430430
display: inline-block;
431431
margin-left:20%;
432432
vertical-align: top;
433+
}
434+
435+
.warning{
436+
color: #9b9b9b;
437+
font-size: 13px;
438+
text-align: center;
433439
}

0 commit comments

Comments
 (0)