No results found
Try adjusting your search.
' +
img +
'
' + person.year + '
' +
'
View profile
' +
'' +
'
' +
'
' + person.name + '
' +
'
' + person.role + '
' +
'
' + person.company + '
' +
'
' + person.program + '' +
'
';
card.addEventListener('click', function() { openDrawer(person); });
return card;
}
function render() {
el.grid.innerHTML = '';
state.displayed = 0;
if (state.filtered.length === 0) {
el.noResults.classList.add('is-visible');
el.moreWrap.style.display = 'none';
return;
}
el.noResults.classList.remove('is-visible');
var limit = Math.min(state.pageSize, state.filtered.length);
for (var i = 0; i < limit; i++) {
el.grid.appendChild(renderCard(state.filtered[i]));
}
state.displayed = limit;
updateUI();
}
function updateUI() {
el.counter.textContent = state.filtered.length + ' of ' + state.all.length;
var remaining = state.filtered.length - state.displayed;
if (remaining > 0) {
el.moreWrap.style.display = 'block';
el.moreBtn.textContent = 'Show more (' + remaining + ' remaining)';
} else {
el.moreWrap.style.display = 'none';
}
}
function loadMore() {
var start = state.displayed;
var end = Math.min(start + state.pageSize, state.filtered.length);
for (var i = start; i < end; i++) {
el.grid.appendChild(renderCard(state.filtered[i]));
}
state.displayed = end;
updateUI();
}
function search() {
var q = el.search.value.toLowerCase().trim();
state.filtered = state.all.filter(function(p) {
if (!q) return true;
var str = (p.name + ' ' + p.role + ' ' + p.company).toLowerCase();
return str.indexOf(q) !== -1;
});
render();
}
function openDrawer(person) {
root.querySelector('#drawerInitials').textContent = getInitials(person.name);
root.querySelector('#drawerName').textContent = person.name;
root.querySelector('#drawerRole').textContent = person.role;
root.querySelector('#drawerCompany').textContent = person.company;
root.querySelector('#drawerYear').textContent = person.year;
root.querySelector('#drawerProgram').textContent = person.program;
root.querySelector('#drawerPosition').textContent = person.role;
root.querySelector('#drawerEmployer').textContent = person.company;
var avatar = root.querySelector('#drawerAvatar');
if (person.photo) {
avatar.src = person.photo;
avatar.style.display = '';
} else {
avatar.style.display = 'none';
}
var link = root.querySelector('#drawerLinkedin');
if (person.linkedin) {
link.href = person.linkedin;
link.style.display = 'inline-flex';
} else {
link.style.display = 'none';
}
el.drawer.classList.add('is-open');
el.overlay.classList.add('is-open');
document.body.style.overflow = 'hidden';
}
function closeDrawer() {
el.drawer.classList.remove('is-open');
el.overlay.classList.remove('is-open');
document.body.style.overflow = '';
}
el.search.addEventListener('input', search);
el.moreBtn.addEventListener('click', loadMore);
el.drawerClose.addEventListener('click', closeDrawer);
el.overlay.addEventListener('click', closeDrawer);
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') closeDrawer();
});
render();
}
function bootAlumniWidgets() {
var widgets = document.querySelectorAll('[data-hp-alumni-widget]');
for (var i = 0; i < widgets.length; i++) {
initAlumniWidget(widgets[i]);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', bootAlumniWidgets);
} else {
bootAlumniWidgets();
}
window.addEventListener('load', bootAlumniWidgets);
})();