Skip to content

Dashboard: dynamic tag filters with counts + combined search#1543

Draft
meintechblog wants to merge 1 commit into
linuxserver:2.xfrom
meintechblog:feature/hulki-dynamic-tag-filters
Draft

Dashboard: dynamic tag filters with counts + combined search#1543
meintechblog wants to merge 1 commit into
linuxserver:2.xfrom
meintechblog:feature/hulki-dynamic-tag-filters

Conversation

@meintechblog

Copy link
Copy Markdown

Summary

This improves dashboard tile filtering UX by combining search + tag filters and adding dynamic tag button behavior.

What changed

  • Move search UI above tag buttons on dashboard.
  • Render tag buttons for both treat_tags_as=tags and treat_tags_as=categories.
  • Add category class marker to category wrappers for reliable category filtering.
  • Add dynamic tag button counts (TagName (n)) based on current tile-search context.
  • Combine search text and selected tag filtering in tile mode.
  • Improve filtered category rendering:
    • hide category titles while filtered,
    • hide category wrappers without matching children,
    • reset wrapper visibility each run to avoid multi-click stale-state issues.
  • Add usage-based tag ordering with localStorage persistence:
    • keep All fixed first,
    • order remaining tags by frequency in the last 100 clicks window.
  • Add defensive Sortable initialization guard to avoid JS runtime breaks when Sortable is unavailable.

Files touched

  • resources/views/welcome.blade.php
  • resources/views/partials/taglist.blade.php
  • resources/views/sortable.blade.php
  • resources/assets/js/app.js

Notes

  • No backend/database schema changes.
  • No route/controller changes.

Migration Note

Supersedes prior draft from hulki-bot account for account-alignment.

@LinuxServer-CI

Copy link
Copy Markdown

This pull request has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.

@KodeStar

KodeStar commented Jul 8, 2026

Copy link
Copy Markdown
Member

This is still marked as a draft, so it isn't mergeable yet — GitHub blocks merging draft PRs, and it hasn't been marked ready for review.

The direction (combined search + tag filters, dynamic counts, usage-based ordering) is a nice UX improvement. A few things to sort before it's review-ready:

  • It's a fairly large front-end change (+206/-127 across welcome.blade.php, partials/taglist.blade.php, sortable.blade.php, and app.js) that overlaps heavily with the tag-tabs rendering — please rebase on the current 2.x, since that area has changed since this was opened.
  • Run npm run lint and rebuild the mix assets so public/ is in sync with the resources/assets/js changes.
  • The localStorage "last 100 clicks" ordering and the Sortable init guard would benefit from a short note in the description on fallback behaviour when localStorage is unavailable.

Mark it "Ready for review" once it's rebased and lint-clean and I'll go through it properly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

3 participants