discourse/plugins/discourse-data-explorer/spec/lib/discourse_data_explorer
Osama Sayegh 50d99d9e4d
UX: Interleave dashboard report providers alphabetically (#40483)
The manage-reports list showed every core report first, then every Data
Explorer query, because pagination walked one provider at a time. Switch
to keyset pagination merged across providers so the available list is
one globally title-sorted stream.

Providers now implement `list_all(search:, after:, limit:)`, returning
their rows sorted by [title.downcase, key] after the cursor; the
controller merges a page-worth from each and emits a `{title, key}`
cursor. Data Explorer pushes the keyset into SQL with `COLLATE "C"` so
its ordering matches Ruby's byte order and rows can't be skipped or
duplicated at page boundaries.
2026-06-03 02:51:55 +03:00
..
admin_dashboard_report_provider_spec.rb UX: Interleave dashboard report providers alphabetically (#40483) 2026-06-03 02:51:55 +03:00