An organization with more than 200 members reads as 200 on its page, and its latest members are picked from the first 200 by name #210

Open
opened 2026-10-09 16:03:04 +00:00 by cgalo5758 · 0 comments
Owner

What happens

The Members section of an operator's organization page shows the 16 most recently joined members, a count in the section header and, once there are more than 16, the line "Showing the latest 16 of N." Both the rows and the count come from ListActiveMembersByOrgID, which sorts the organization's active members by display name and stops at 200. loadOrgEnrollmentData then re-sorts those rows by join date, keeps the first 16 (capEnrollmentList) and takes the number of rows it received as the total.

Once an organization has more than 200 active members:

  • The header reads "200 members" and the line under the table reads "Showing the latest 16 of 200.", whatever the real number is.
  • The 16 rows are the most recently joined among the 200 members whose names sort first, not among all members. Someone who joined today with a name late in the alphabet is missing, and someone earlier in the alphabet who joined long ago can be listed in their place.

Members who share a join time also come out in no defined order. The re-sort is sort.Slice on join time alone, and the query has no tie-break on name either.

What should happen

The header and the line under the table give the organization's true number of active members. The 16 rows are the 16 most recently joined of all of them, newest first, and members who share a join time are ordered by a fixed key. The query can do the ordering itself, newest first with a tie-break and a limit of 16, and a count query can supply the total.

Where

The Members section of /operator/organizations/{orgID}. In code: ListActiveMembersByOrgID in internal/organization/queries/members.sql; the members block of loadOrgEnrollmentData and capEnrollmentList in internal/server/operator_enrollment.go; MembersHeader in internal/server/anatomy.go.

Steps

Give an organization 201 or more active members, with the newest one's display name sorting after the 200th by name. Open the organization's page as an operator.

Why it matters

An operator looking at a large organization's page is told it has 200 members and does not see the people who joined most recently. Nothing on the page shows that both figures are cut off.

## What happens The Members section of an operator's organization page shows the 16 most recently joined members, a count in the section header and, once there are more than 16, the line "Showing the latest 16 of N." Both the rows and the count come from `ListActiveMembersByOrgID`, which sorts the organization's active members by display name and stops at 200. `loadOrgEnrollmentData` then re-sorts those rows by join date, keeps the first 16 (`capEnrollmentList`) and takes the number of rows it received as the total. Once an organization has more than 200 active members: - The header reads "200 members" and the line under the table reads "Showing the latest 16 of 200.", whatever the real number is. - The 16 rows are the most recently joined among the 200 members whose names sort first, not among all members. Someone who joined today with a name late in the alphabet is missing, and someone earlier in the alphabet who joined long ago can be listed in their place. Members who share a join time also come out in no defined order. The re-sort is `sort.Slice` on join time alone, and the query has no tie-break on name either. ## What should happen The header and the line under the table give the organization's true number of active members. The 16 rows are the 16 most recently joined of all of them, newest first, and members who share a join time are ordered by a fixed key. The query can do the ordering itself, newest first with a tie-break and a limit of 16, and a count query can supply the total. ## Where The Members section of `/operator/organizations/{orgID}`. In code: `ListActiveMembersByOrgID` in `internal/organization/queries/members.sql`; the members block of `loadOrgEnrollmentData` and `capEnrollmentList` in `internal/server/operator_enrollment.go`; `MembersHeader` in `internal/server/anatomy.go`. ## Steps Give an organization 201 or more active members, with the newest one's display name sorting after the 200th by name. Open the organization's page as an operator. ## Why it matters An operator looking at a large organization's page is told it has 200 members and does not see the people who joined most recently. Nothing on the page shows that both figures are cut off.
cgalo5758 added the
kind
bug
area/identityarea/operator-ui
labels 2026-10-09 16:03:04 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#210