Skip to content

Commit edc0407

Browse files
committed
add event for calendar change & add empty row for days
1 parent 76abf23 commit edc0407

File tree

2 files changed

+66
-39
lines changed

2 files changed

+66
-39
lines changed

scripts/ui.js

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,12 @@ class UI {
5252
totalElement.appendChild(spanTime);
5353
}
5454

55-
fillEmptyBlock() {
56-
document.getElementById('chart').innerHTML = '<p class="no-data">No data</p>';
55+
fillEmptyBlock(elementName) {
56+
document.getElementById(elementName).innerHTML = '<p class="no-data">No data</p>';
57+
}
58+
59+
fillEmptyBlockForDays() {
60+
document.getElementById('tableForDaysBlock').innerHTML = '<p class="no-data">Invalid date</p>';
5761
}
5862

5963
addHrAfterChart() {
@@ -158,6 +162,8 @@ class UI {
158162
calendarTwo.type = 'date';
159163
calendarTwo.valueAsDate = new Date(Date.UTC(dateNow.getFullYear(), dateNow.getMonth(), dateNow.getDate()));
160164

165+
var tableForDaysBlock = document.createElement('div');
166+
tableForDaysBlock.id = 'tableForDaysBlock';
161167
var header = document.createElement('div');
162168
header.classList.add('table-header');
163169

@@ -171,12 +177,22 @@ class UI {
171177
header.appendChild(headerTitleDate);
172178
header.appendChild(headerTitleTime);
173179

180+
tableForDaysBlock.appendChild(header);
181+
174182
div.appendChild(from);
175183
div.appendChild(calendarFirst);
176184
div.appendChild(to);
177185
div.appendChild(calendarTwo);
178186

179-
div.append(header);
187+
div.append(tableForDaysBlock);
188+
189+
document.getElementById('dateFrom').addEventListener('change', function () {
190+
getTabsByDays(tabsFromStorage);
191+
});
192+
193+
document.getElementById('dateTo').addEventListener('change', function () {
194+
getTabsByDays(tabsFromStorage);
195+
});
180196
}
181197

182198
getDateRange() {
@@ -187,21 +203,27 @@ class UI {
187203
}
188204

189205
fillListOfDays(days) {
190-
var parent = document.getElementById('byDays');
191-
for (var i = 0; i < days.length; i++) {
192-
var div = document.createElement('div');
193-
div.classList.add('day-block');
194-
var span = document.createElement('span');
195-
span.classList.add('day');
196-
span.innerHTML = days[i].date;
197-
var spanTime = document.createElement('span');
198-
spanTime.classList.add('day-time');
199-
spanTime.innerHTML = convertSummaryTimeToString(days[i].total);
200-
201-
div.appendChild(span);
202-
div.appendChild(spanTime);
203-
204-
parent.appendChild(div);
206+
var parent = document.getElementById('tableForDaysBlock');
207+
parent.innerHTML = null;
208+
if (days.length > 0) {
209+
for (var i = 0; i < days.length; i++) {
210+
var div = document.createElement('div');
211+
div.classList.add('day-block');
212+
var span = document.createElement('span');
213+
span.classList.add('day');
214+
span.innerHTML = days[i].date;
215+
var spanTime = document.createElement('span');
216+
spanTime.classList.add('day-time');
217+
spanTime.innerHTML = convertSummaryTimeToString(days[i].total);
218+
219+
div.appendChild(span);
220+
div.appendChild(spanTime);
221+
222+
parent.appendChild(div);
223+
}
224+
225+
} else {
226+
this.fillEmptyBlock('tableForDaysBlock');
205227
}
206228
}
207229
}

scripts/webact.js

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function getTabsFromStorage(tabs) {
4747

4848
ui.clearUI();
4949
if (tabs === null) {
50-
ui.fillEmptyBlock();
50+
ui.fillEmptyBlock('chart');
5151
return;
5252
}
5353

@@ -68,7 +68,7 @@ function getTabsFromStorage(tabs) {
6868
totalTime = getTotalTime(targetTabs);
6969
}
7070
else {
71-
ui.fillEmptyBlock();
71+
ui.fillEmptyBlock('chart');
7272
return;
7373
}
7474
}
@@ -175,25 +175,30 @@ function getFirstDay() {
175175

176176
function getTabsByDays(tabs) {
177177
var range = ui.getDateRange();
178-
var listOfDays = [];
179-
tabs.map(function (a) {
180-
return a.days.map(function (a) {
181-
var item = listOfDays.find(x => x.date == a.date);
182-
if (item !== undefined){
183-
return item.total += a.summary;
184-
}
185-
if (item === undefined && isDateInRange(a.date, range))
186-
return listOfDays.push(
187-
{
188-
'date': a.date,
189-
'total': a.summary
190-
}
191-
);
178+
if (range.from !== 'Invalid Date' && range.to !== 'Invalid Date') {
179+
var listOfDays = [];
180+
tabs.map(function (a) {
181+
return a.days.map(function (a) {
182+
var item = listOfDays.find(x => x.date == a.date);
183+
if (item !== undefined) {
184+
return item.total += a.summary;
185+
}
186+
if (item === undefined && isDateInRange(a.date, range))
187+
return listOfDays.push(
188+
{
189+
'date': a.date,
190+
'total': a.summary
191+
}
192+
);
193+
});
194+
});
195+
listOfDays = listOfDays.sort(function (a, b) {
196+
return new Date(a.date) - new Date(b.date);
192197
});
193-
});
194-
listOfDays = listOfDays.sort(function (a, b) {
195-
return new Date(a.date) - new Date(b.date);
196-
});
197198

198-
ui.fillListOfDays(listOfDays);
199+
ui.fillListOfDays(listOfDays);
200+
}
201+
else{
202+
ui.fillEmptyBlockForDays();
203+
}
199204
}

0 commit comments

Comments
 (0)