Paginated Secondary Tags
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Followup to https://github.com/flarum/core/issues/2177
I propose the following changes:
- On the tags page, load in all primary tags on load, but paginate in secondary tags
- On the admin tags page, set up a paginated table / grid for secondary tags. Load in all primary tags on load though.
- Send in the number of primary tags usable via API, use that as criteria for showing/disabling the "select tags" button.
- In the tag discussion modal, lazy-load in children when a top-level primary tag is selected (make the code from `IndexPage.currentTag` into a util). Add search (and show only 10-20 most recent results) instead of showing ALL of them.
- Improve scalability of the admin permissions dashboard (also through pagination of some sort, maybe a scope selector too).
This way, it should be possible to have thousands or tens of thousands of secondary tags without any performance impact whatsoever.
Contributor guide
Research direction
Start by tracing the tag page, admin tags page, tag discussion modal, and permissions dashboard described in the issue, including the IndexPage.currentTag code and the API response. Define separate pagination and lazy-loading behavior for primary and secondary tags, then verify that large tag sets do not load all results and that the select-tags control uses the reported primary-tag count.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, full-stack, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100