Skip to content

Commit aa6c1b3

Browse files
authored
Merge pull request #59 from ProLoser/copilot/fade-out-ended-events
2 parents 7c6d74c + b403989 commit aa6c1b3

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

map.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,28 @@ async function initialize() {
137137
}
138138

139139
let options = {};
140+
141+
function isEventEnded(event) {
142+
if (!event.time || !event.date_text) return false;
143+
const timeParts = event.time.split(' to ');
144+
const start = new Date(`${event.date_text} ${timeParts[0]}`);
145+
if (isNaN(start.getTime())) return false;
146+
let end;
147+
if (timeParts[1]) {
148+
const startDate = start.toLocaleDateString('sv-SE');
149+
if (timeParts[1].slice(-2) === 'am' && timeParts[0].slice(-2) === 'pm') {
150+
const endDate = new Date(start);
151+
endDate.setDate(endDate.getDate() + 1);
152+
end = new Date(`${endDate.toLocaleDateString('sv-SE').replace(/-/gi, '/')} ${timeParts[1]}`);
153+
} else {
154+
end = new Date(`${startDate.replace(/-/gi, '/')} ${timeParts[1]}`);
155+
}
156+
} else {
157+
end = new Date(start.getTime() + 60 * 60 * 1000);
158+
}
159+
return end < new Date();
160+
}
161+
140162
/**
141163
* Callback for datepicker, filters all visible events to specified date and category
142164
* @param {object} filters
@@ -150,6 +172,11 @@ window.filter = async function (filters = {}) {
150172
date = options.date.replace(/-/gi, '/');
151173
date = new Date(date);
152174
}
175+
const today = new Date();
176+
const isToday = date &&
177+
date.getFullYear() === today.getFullYear() &&
178+
date.getMonth() === today.getMonth() &&
179+
date.getDate() === today.getDate();
153180
let categories = [];
154181
if (options.category) {
155182
categories = options.category.split(CATEGORY_DELIMITER)
@@ -230,6 +257,11 @@ window.filter = async function (filters = {}) {
230257
if (event.marker.content.style.opacity === '0') {
231258
intersectionObserver.observe(event.marker.content);
232259
}
260+
if (isToday && isEventEnded(event)) {
261+
event.marker.content.classList.add('event-ended');
262+
} else {
263+
event.marker.content.classList.remove('event-ended');
264+
}
233265
}
234266
} else {
235267
// Multiple events at same location - create cluster marker

style.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,3 +273,7 @@ html, body, #map-canvas {
273273
border-top: 1px solid #e0e0e0;
274274
margin: 10px 0;
275275
}
276+
277+
.event-ended {
278+
opacity: 0.5 !important;
279+
}

0 commit comments

Comments
 (0)