Skip to content

Feature/artwork dpad nav - #307

Merged
RadicalMuffinMan merged 2 commits into
Moonfin-Client:mainfrom
mattsigal:feature/artwork-dpad-nav
Jul 15, 2026
Merged

Feature/artwork dpad nav#307
RadicalMuffinMan merged 2 commits into
Moonfin-Client:mainfrom
mattsigal:feature/artwork-dpad-nav

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Ports the Artwork Selector feature from the Moonfin-Core client over to the Smart-TV client. This enables administrative users to search, view, download, and delete custom artwork (Posters, Backdrops, Logos, Banners, etc.) directly on the TV interface with full Enact/Sandstone D-pad focus control.

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

List the key changes included in this PR.

  • jellyfinApi.js: Added client API methods (getRemoteImages, downloadRemoteImage, deleteItemImage, getVirtualFolders, checkWriteAccess) on the shared services layer.
  • ChangeArtworkModal: Added Enact Sandstone-styled component supporting horizontal image strip previews, vertical grid expands, resolution filters, interface language filtering, and back history breadcrumb navigation.
  • Details Integration: Integrated ChangeArtwork button triggers on ModernDetailContent and routed modal transitions inside Details view with permission validation checks.
  • Strings: Configured and localized artwork selection titles and labels inside resource files.

Platform

  • Tizen (Samsung)
  • webOS (LG)
  • Both / Shared code

Testing

Describe how this change was tested.

  • Tested on emulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Navigate to an item details view in the emulator (e.g. Series, Season, or Movie).
  2. Click the "Change Artwork" button.
  3. Verify that the Change Artwork Modal overlays correctly and initiates image fetching.
  4. Test resolution filters and switching languages.
  5. Check D-pad remote navigation focus traversal across remote items.
  6. Verify closing the modal refreshes the active details.

Screenshots (if applicable)

Include screenshots or recordings for UI changes.

Admin Access Granted:

2026-07-15_10-31-56_chrome

User Access Denied/Hidden:

2026-07-15_10-33-47_brave

Interface:

2026-07-15_10-33-22_chrome 2026-07-15_10-33-34_chrome

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

- Ported Artwork Selector from core to Smart-TV client.
- Added ChangeArtworkModal component using Enact/Sandstone with full D-pad support.
- Integrated ChangeArtworkModal in Details view and ModernDetailContent.
- Added API endpoints in jellyfinApi.js for remote images and write-access checks.
- Handled write permission warnings and local metadata checks in the modal.
- Add open prop guard to prevent premature rendering before load.
@mattsigal
mattsigal force-pushed the feature/artwork-dpad-nav branch from 78e3d7b to dd7d906 Compare July 15, 2026 17:44
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

✅ Build Successful

All platform builds passed. You can download the test artifacts below.

Platform Status Artifact
webOS ✅ Passed Moonfin_webOS_*.ipk
Tizen Regular ✅ Passed Moonfin_Tizen_Regular_*.wgt
Tizen Oblong ✅ Passed Moonfin_Tizen_Oblong_*.wgt
Tizen Legacy ✅ Passed Moonfin_Tizen_Legacy_*.wgt
Property Value
Commit ed6daab
Workflow run Build #157

@RadicalMuffinMan
RadicalMuffinMan merged commit adc8590 into Moonfin-Client:main Jul 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants