Compare commits
No commits in common. "b23bac3f83ace839d8d7165c9ebc1c8d618da1a5" and "e90920ce861f5213618d28bae073d56c52b5ce43" have entirely different histories.
b23bac3f83
...
e90920ce86
3 changed files with 40 additions and 3 deletions
18
css/site.css
18
css/site.css
|
|
@ -273,6 +273,24 @@ body.custom-background { background-color: #ffffff; }
|
||||||
color: #bf4d28;
|
color: #bf4d28;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.calendar-search {
|
||||||
|
display: grid;
|
||||||
|
gap: 5px;
|
||||||
|
min-width: min(100%, 280px);
|
||||||
|
color: #444444;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 700;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-search input {
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 38px;
|
||||||
|
margin: 0;
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
.calendar-layout {
|
.calendar-layout {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
|
grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@
|
||||||
|
|
||||||
<div class="calendar-actions">
|
<div class="calendar-actions">
|
||||||
<button class="calendar-secondary-button" type="button" data-calendar-today>This Month</button>
|
<button class="calendar-secondary-button" type="button" data-calendar-today>This Month</button>
|
||||||
|
<label class="calendar-search">
|
||||||
|
<span>Search events</span>
|
||||||
|
<input type="search" data-calendar-search autocomplete="off" placeholder="Search by title, location, or details" />
|
||||||
|
</label>
|
||||||
<button class="calendar-secondary-button" type="button" data-calendar-export>Export Calendar</button>
|
<button class="calendar-secondary-button" type="button" data-calendar-export>Export Calendar</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
<SiteLayout
|
<SiteLayout
|
||||||
title="Upcoming Events – FFWPU Ireland"
|
title="Upcoming Events – FFWPU Ireland"
|
||||||
description="See upcoming FFWPU Ireland community events and calendar listings."
|
description="See upcoming FFWPU Ireland community events and calendar listings."
|
||||||
bodyClass="archive post-type-archive post-type-archive-tribe_events custom-background metaslider-plugin parabola-image-three caption-light meta-light parabola_triagles parabola-menu-left"
|
bodyClass="archive post-type-archive post-type-archive-tribe_events custom-background tribe-events-page-template tribe-no-js tribe-filter-live metaslider-plugin parabola-image-three caption-light meta-light parabola_triagles parabola-menu-left"
|
||||||
pathname="/events.html"
|
pathname="/events.html"
|
||||||
canonical="/events.html"
|
canonical="/events.html"
|
||||||
>
|
>
|
||||||
|
|
@ -36,6 +36,7 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
const grid = calendar.querySelector("[data-calendar-grid]");
|
const grid = calendar.querySelector("[data-calendar-grid]");
|
||||||
const list = calendar.querySelector("[data-calendar-list]");
|
const list = calendar.querySelector("[data-calendar-list]");
|
||||||
const title = calendar.querySelector("#calendar-month-title");
|
const title = calendar.querySelector("#calendar-month-title");
|
||||||
|
const search = calendar.querySelector("[data-calendar-search]");
|
||||||
const today = new Date();
|
const today = new Date();
|
||||||
let visibleMonth = new Date(today.getFullYear(), today.getMonth(), 1);
|
let visibleMonth = new Date(today.getFullYear(), today.getMonth(), 1);
|
||||||
let selectedDate = toDateKey(today);
|
let selectedDate = toDateKey(today);
|
||||||
|
|
@ -78,6 +79,19 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
return addDays(last, sundayIndex);
|
return addDays(last, sundayIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function eventMatchesQuery(event) {
|
||||||
|
const query = String(search?.value || "").trim().toLowerCase();
|
||||||
|
|
||||||
|
if (!query) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [event.title, event.location, event.details]
|
||||||
|
.join(" ")
|
||||||
|
.toLowerCase()
|
||||||
|
.includes(query);
|
||||||
|
}
|
||||||
|
|
||||||
function eventsBetween(start, end) {
|
function eventsBetween(start, end) {
|
||||||
const events = [];
|
const events = [];
|
||||||
|
|
||||||
|
|
@ -96,7 +110,7 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return events;
|
return events.filter(eventMatchesQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatEventTime(event) {
|
function formatEventTime(event) {
|
||||||
|
|
@ -189,7 +203,7 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
if (!events.length) {
|
if (!events.length) {
|
||||||
const empty = document.createElement("p");
|
const empty = document.createElement("p");
|
||||||
empty.className = "calendar-empty";
|
empty.className = "calendar-empty";
|
||||||
empty.textContent = "No events for this view.";
|
empty.textContent = "No matching events for this view.";
|
||||||
list.append(empty);
|
list.append(empty);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -304,6 +318,7 @@ import mainHtml from "../content/pages/events.html?raw";
|
||||||
});
|
});
|
||||||
|
|
||||||
calendar.querySelector("[data-calendar-export]")?.addEventListener("click", exportCalendar);
|
calendar.querySelector("[data-calendar-export]")?.addEventListener("click", exportCalendar);
|
||||||
|
search?.addEventListener("input", render);
|
||||||
|
|
||||||
render();
|
render();
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue