Skip to content

Conversation

@bluesam1
Copy link

@bluesam1 bluesam1 commented Nov 26, 2025

Description

This PR adds Studio filtering and browsing capabilities to the Movies library, bringing feature parity with TV Shows' Networks functionality.

Changes

  1. Studios Filter in Filter Dialog

    • Added "Studios" filter section to Movie Library filter dialog
    • Supports multi-select filtering by studio
    • Uses comma-delimited GUIDs matching API requirements
    • Filter state persists when reopening dialog
  2. Studios Tab in Movies Library

    • Added new "Studios" tab to Movies library (similar to "Networks" tab in TV Shows)
    • Displays studios in a card grid layout
    • Clicking a studio navigates to movies from that studio
    • Added Studios to LibraryTab enum
  3. Bug Fix

    • Hide favorite button on Studio items (Studios cannot be favorited)
    • Updated canRate() function to exclude Studio type

Technical Details

  • New Files:

    • src/controllers/movies/moviestudios.js - Controller for Studios tab
  • Modified Files:

    • src/components/filterdialog/filterdialog.js - Added studios filter logic
    • src/components/filterdialog/filterdialog.template.html - Added Studios UI section
    • src/controllers/movies/movies.html - Added Studios tab HTML
    • src/controllers/movies/moviesrecommended.js - Added Studios tab routing
    • src/types/libraryTab.ts - Added Studios enum value
    • src/components/itemHelper.js - Excluded Studio from canRate()

Backend Support

No backend changes required. The API already supports StudioIds parameter in /Users/{UserId}/Items endpoint.

Testing

  • Studios filter appears in Movie Library filter dialog
  • Studios list loads correctly
  • Selecting studios filters movies correctly
  • Multiple studios can be selected simultaneously
  • Filter state persists when reopening dialog
  • Studios tab appears in Movies library
  • Studios display correctly in card grid
  • Clicking a studio navigates to filtered view
  • Favorite button is hidden on Studio cards
  • No console errors

Related

Addresses the feature request to add Studio filtering to Movie Library, providing consistency with TV Shows' Networks functionality.

image
image

- Add Studios tab to Movies library (similar to Networks tab in TV Shows)
- Add Studios filter option to Movie Library filter dialog
- Create moviestudios.js controller to display studios in card grid
- Add Studios to LibraryTab enum
- Hide favorite button on Studio items (canRate now excludes Studio type)
- Studios filter uses comma-delimited GUIDs matching API requirements
@jellyfin-bot
Copy link
Collaborator

jellyfin-bot commented Nov 26, 2025

Cloudflare Pages deployment

Latest commit 06df388
Status ✅ Deployed!
Preview URL https://cb4fdfb8.jellyfin-web.pages.dev
Type 🔀 Preview

View build logs

- Extract shared studios controller logic into studiosController.js
- Update moviestudios.js and tvstudios.js to use shared controller
- Reduces duplication from 60% to near zero for moviestudios.js
- Add comment explaining acceptable duplication in moviesrecommended.js tab management
- Replace getAttribute('data-filter') with dataset.filter in filterdialog.js (2 instances)
- Fix duplicate id 'items' by renaming to 'studioItems' in movies.html and tvrecommended.html
- Name the controller function StudiosController to address unnamed function warning
- Remove 'self' assignment pattern, use 'this' directly in constructor
- Remove backward compatibility fallback, use #studioItems selector consistently
@sonarqubecloud
Copy link

@bluesam1 bluesam1 marked this pull request as ready for review November 26, 2025 21:41
@bluesam1 bluesam1 requested a review from a team as a code owner November 26, 2025 21:41
@dkanada
Copy link
Member

dkanada commented Nov 28, 2025

@bluesam1 FYI the experimental view will become the default for mobile and desktop in the next release. This pull request is probably fine but it won't affect the new views.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants