feat: add server-side pagination, search, and filtering to all collection and admin pages

- Public pages (videos, magazine, models): URL-driven search, sort, category/duration
  filters, and Prev/Next pagination (page size 24)
- Admin tables (videos, articles): search input, toggle filters, and pagination (page size 50)
- Tags page: tag filtering now done server-side via DB arrayContains query instead of
  fetching all items and filtering client-side
- Backend resolvers updated for videos, articles, models with paginated { items, total }
  responses and filter/sort/tag args

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 10:43:26 +01:00
parent c90c09da9a
commit 9c5dba5c90
17 changed files with 1159 additions and 496 deletions

View File

@@ -23,6 +23,8 @@ export default {
my_profile: "My Profile",
anonymous: "Anonymous",
load_more: "Load More",
page_of: "Page {page} of {total}",
total_results: "{total} results",
},
header: {
home: "Home",
@@ -251,6 +253,7 @@ export default {
rating: "Highest Rated",
videos: "Most Videos",
name: "A-Z",
recent: "Newest",
},
online: "Online",
followers: "followers",
@@ -913,6 +916,7 @@ export default {
saving: "Saving…",
creating: "Creating…",
deleting: "Deleting…",
all: "All",
featured: "Featured",
premium: "Premium",
write: "Write",
@@ -944,7 +948,8 @@ export default {
role_updated: "Role updated to {role}",
role_update_failed: "Failed to update role",
delete_title: "Delete user",
delete_description: "Are you sure you want to permanently delete {name}? This cannot be undone.",
delete_description:
"Are you sure you want to permanently delete {name}? This cannot be undone.",
delete_success: "User deleted",
delete_error: "Failed to delete user",
},
@@ -971,6 +976,7 @@ export default {
videos: {
title: "Videos",
new_video: "New video",
search_placeholder: "Search videos...",
col_video: "Video",
col_badges: "Badges",
col_plays: "Plays",
@@ -1005,6 +1011,8 @@ export default {
articles: {
title: "Articles",
new_article: "New article",
search_placeholder: "Search articles...",
filter_all_categories: "All categories",
col_article: "Article",
col_category: "Category",
col_published: "Published",