Add server-side column sorting to the Tickets page#72
Open
NanakiEmi wants to merge 3 commits into
Open
Conversation
Adds whitelisted order/order_direction query param handling to TicketController@index, mirroring the existing admin tickets sort convention (default: newest event first). Covers reference, type, seat, and event columns with join-based sorting and a stable tickets.id tiebreaker; invalid inputs fall back to the default.
Reuse the existing partials/_sortheader partial for the Reference, Type, Seat, and Event column headers so they become clickable sort links (Event defaults to desc on first click for newest-first). Adds an HTTP feature test proving the headers render sort links and that rows are ordered accordingly.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #72 +/- ##
===========================================
Coverage 100.00% 100.00%
- Complexity 1155 1163 +8
===========================================
Files 136 136
Lines 4053 4036 -17
===========================================
- Hits 4053 4036 -17 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The user Tickets page (
TicketController@index) paginates with noorderBy, so tickets are shown in database insertion order. With 15 rows per page a user's most recent tickets can land on page 2, and the Reference / Type / Seat / Event columns can't be reordered.Change
Adds server-side sorting to
/tickets, mirroring the existing Admin tickets convention (sameorder/order_directionquery params and the sharedpartials/_sortheader.blade.phppartial):order=event,order_direction=desc), so recent tickets appear on page 1.->appends().->select('tickets.*')avoids column collisions and atickets.idtiebreaker keeps ordering deterministic. Existing eager loads and the non-admin draft filter are unchanged.Tests
TicketController@index: default order, each column ascending/descending, invalidorder/directionfall back to defaults, pagination preserves the sort, and seat sort keeps unseated tickets.phpcsclean.🤖 Generated with Claude Code