forked from Stigmatoz/web-activity-time-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathui.js
More file actions
118 lines (95 loc) · 3.87 KB
/
ui.js
File metadata and controls
118 lines (95 loc) · 3.87 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
'use strict';
class UI {
getTableOfSite() {
return document.getElementById('resultTable');
}
setUIForToday() {
document.getElementById('btnToday').classList.add('active');
document.getElementById('btnAll').classList.remove('active');
document.getElementById('btnByDays').classList.remove('active');
}
setUIForAll() {
document.getElementById('btnAll').classList.add('active');
document.getElementById('btnToday').classList.remove('active');
document.getElementById('btnByDays').classList.remove('active');
}
setUIForByDays() {
document.getElementById('btnByDays').classList.add('active');
document.getElementById('btnAll').classList.remove('active');
document.getElementById('btnToday').classList.remove('active');
document.getElementById('resultTable').innerHTML = null;
document.getElementById('chart').innerHTML = null;
}
clearUI() {
document.getElementById('resultTable').innerHTML = null;
document.getElementById('chart').innerHTML = null;
document.getElementById('total').innerHTML = null;
}
createTotalBlock(totalTime) {
var totalElement = document.getElementById('total');
var spanTitle = document.createElement('span');
spanTitle.classList.add('span-total');
spanTitle.innerHTML = 'Total';
var spanTime = document.createElement('span');
spanTime.classList.add('span-time');
spanTime.innerHTML = convertSummaryTimeToString(totalTime);
totalElement.appendChild(spanTitle);
totalElement.appendChild(spanTime);
}
fillEmptyBlock() {
document.getElementById('chart').innerHTML = '<p class="no-data">No data</p>';
}
addHrAfterChart() {
document.getElementById('chart').appendChild(document.createElement('hr'));
}
addHrAfterTableOfSite() {
this.getTableOfSite().appendChild(document.createElement('hr'));
}
setActiveTooltipe(currentTab) {
if (currentTab !== '') {
var element = document.getElementById(currentTab);
if (element !== null) {
var event = new Event("mouseenter");
document.getElementById(currentTab).dispatchEvent(event);
}
}
}
drawChart(tabs) {
var donut = donutChart()
.width(480)
.height(280)
.cornerRadius(5) // sets how rounded the corners are on each slice
.padAngle(0.020) // effectively dictates the gap between slices
.variable('percentage')
.category('url');
d3.select('#chart')
.datum(tabs) // bind data to the div
.call(donut); // draw chart in div
ui.addHrAfterChart();
}
addLineToTableOfSite(tab, currentTab, summaryTime){
var div = document.createElement('div');
div.classList.add('inline-flex');
var img = document.createElement('img');
img.classList.add('favicon');
img.setAttribute('height', 15);
img.setAttribute('src', tab.favicon);
var spanUrl = document.createElement('span');
spanUrl.classList.add('span-url');
spanUrl.innerText = tab.url;
if (tab.url == currentTab) {
spanUrl.classList.add('span-active-url');
}
var spanPercentage = document.createElement('span');
spanPercentage.classList.add('span-percentage');
spanPercentage.innerText = getPercentage(summaryTime);
var spanTime = document.createElement('span');
spanTime.classList.add('span-time');
spanTime.innerText = convertSummaryTimeToString(summaryTime);
div.appendChild(img);
div.appendChild(spanUrl);
div.appendChild(spanPercentage);
div.appendChild(spanTime);
this.getTableOfSite().appendChild(div);
}
}