Sort member lists by last name instead of first name
All checks were successful
Build And Push Image / docker (push) Successful in 2m11s
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user