Sort member lists by last name instead of first name
All checks were successful
Build And Push Image / docker (push) Successful in 2m11s

- Updated member-list.vue to sort by last name with new sort options
- Changed default sort to lastname-asc
- Added Last Name and First Name sort options in dropdown
- Updated board/members/index.vue to include name field and sort by last name
- Updated admin/members/index.vue to include name field and sort by last name
- All member lists now consistently sort alphabetically by last name
This commit is contained in:
2025-08-31 18:58:16 +02:00
parent ce7d5af450
commit c9e181e8a8
3 changed files with 57 additions and 8 deletions

View File

@@ -410,6 +410,7 @@ const headers = [
// Real members data from API
const members = ref([]);
const loading = ref(false);
// New member form
const newMember = ref({
@@ -538,6 +539,8 @@ const loadMembers = async () => {
memberId: member.member_id || `MUSA-${String(member.Id).padStart(4, '0')}`,
firstName: member.first_name,
lastName: member.last_name,
// Add name field for sorting (last name, first name format for proper sorting)
name: `${member.last_name || ''}, ${member.first_name || ''}`.trim(),
email: member.email,
phone: member.phone_number || member.phone || '',
status: member.membership_status === 'Active' ? 'Active' : 'Inactive',
@@ -547,7 +550,22 @@ const loadMembers = async () => {
nationality: member.nationality || member.country || ''
}));
console.log(`[board-members] Loaded ${members.value.length} members from API`);
// Sort by last name, then first name by default
members.value.sort((a, b) => {
const aLastName = (a.lastName || '').toLowerCase();
const bLastName = (b.lastName || '').toLowerCase();
const aFirstName = (a.firstName || '').toLowerCase();
const bFirstName = (b.firstName || '').toLowerCase();
// First compare by last name
const lastNameCompare = aLastName.localeCompare(bLastName);
if (lastNameCompare !== 0) return lastNameCompare;
// If last names are the same, compare by first name
return aFirstName.localeCompare(bFirstName);
});
console.log(`[board-members] Loaded ${members.value.length} members from API, sorted by last name`);
}
} catch (error) {
console.error('Error loading members:', error);