From 584a2ebb6fb457d7d6ee1b033460cf97aa5ece7a Mon Sep 17 00:00:00 2001 From: Jonathon Leight Date: Sun, 21 Jun 2026 22:14:46 -0400 Subject: [PATCH] Sort by name on logged in page --- internal/store/orgs.go | 2 +- internal/store/repeaters.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/store/orgs.go b/internal/store/orgs.go index 09d7e90..bbcbb01 100644 --- a/internal/store/orgs.go +++ b/internal/store/orgs.go @@ -346,7 +346,7 @@ func (s *Store) ListOrgsForUser(ctx context.Context, userID int64) ([]OrgMembers rows, err := s.pool.Query(ctx, ` SELECT o.id, o.slug, o.name, o.description, o.created_by, o.created_at, m.role FROM org_members m JOIN organizations o ON o.id = m.org_id - WHERE m.user_id = $1 ORDER BY o.name`, userID) + WHERE m.user_id = $1 ORDER BY lower(o.name), o.id`, userID) if err != nil { return nil, fmt.Errorf("list orgs: %w", err) } diff --git a/internal/store/repeaters.go b/internal/store/repeaters.go index bc8ba74..06b44e0 100644 --- a/internal/store/repeaters.go +++ b/internal/store/repeaters.go @@ -126,14 +126,14 @@ func scanRepeater(row pgx.Row) (*Repeater, error) { } // ListRepeatersForUser returns repeaters the user owns or has been granted -// access to, owned ones first. +// access to, owned ones first and then by name within each group. func (s *Store) ListRepeatersForUser(ctx context.Context, userID int64) ([]*Repeater, error) { // Dashboard listing: repeaters the user owns or has a direct share on. Org- // contributed repeaters are reached from the org page, not listed here. rows, err := s.pool.Query(ctx, repeaterSelect+` WHERE r.owner_id = $1 OR r.id IN (SELECT repeater_id FROM repeater_shares WHERE user_id = $1) - ORDER BY shared, r.created_at`, userID) + ORDER BY shared, lower(r.name), r.id`, userID) if err != nil { return nil, fmt.Errorf("list repeaters: %w", err) }