Task Description
getContribution: function () { return load().contribution; },
getInterest: function () { return load().interest; },
getClubName: function () { return load().clubName; },
getYearEnd: function () { return load().yearEnd; },
getMemberCount: function () { return load().members.length; },
getAvatar: function (i) { return AVATARS[i] || “”; },
getRole: function (i) { return ROLES[i] || “Member”; },
getFinance: function (i) { return DEMO_FINANCE[i] || {}; },
getInitials: function (name) {
return name.split(” “).map(function (w) { return w[0]; }).join(“”).toUpperCase().slice(0, 2);
},
escapeHtml: escapeHtml,
formatPula: function (amount) {
return “P” + Number(amount).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
},
abbreviate: function (name) {
var parts = name.split(” “);
if (parts.length < 2) return name;
return parts[0] + ” ” + parts[parts.length – 1][0] + “.”;
},
};
// Auto-propagate club name on load
document.addEventListener(“DOMContentLoaded”, function () {
var clubName = escapeHtml(load().clubName);
document.querySelectorAll(“[data-club-name]”).forEach(function (el) {
el.textContent = clubName;
});
});