Skip to content

MoonSync - The Final Frontier (for now) - #219

Open
mattsigal wants to merge 9 commits into
Moonfin-Client:masterfrom
mattsigal:feature/admin-playback-settings-defaults
Open

MoonSync - The Final Frontier (for now)#219
mattsigal wants to merge 9 commits into
Moonfin-Client:masterfrom
mattsigal:feature/admin-playback-settings-defaults

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Add a dedicated Playback subtab panel under User Defaults in the admin config page for configuring and pushing default Video Playback, Audio Playback, Subtitle Preferences, and Automation & Queue settings to client profiles. Note: Only customization based preferences are included (nothing hardware related) and only settings that were available on Core, Roku, and Smart-TV. Also, this builds off of PR #218 so please review that one first.

Related Issues

Link related issues or tickets separated by commas.

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • API / endpoint change
  • Settings schema change
  • Documentation update
  • Build/CI change
  • Other (describe):

Area

  • Settings sync / profiles
  • Admin defaults / config page
  • Ratings (MDBList / TMDB)
  • Notifications / Push (FCM / relay)
  • Seerr integration
  • Games / Emulators
  • Custom home rows
  • Web Client (Go to Moonfin-Core repo)
  • Other / shared

Changes Made

List the key changes included in this PR.

  • Added #playback subtab button and subtab panel container to configPage.html across Jellyfin and Emby backends.
  • Added admin controls for Video Playback: Show Description on Pause (showDescriptionOnPause), Resume Rewind (resumeSubtractDuration), Unpause Rewind (unpauseRewindDuration), Skip Back Length (skipBackLength), Skip Forward Length (skipForwardLength).
  • Added admin controls for Audio Playback: Default Audio Language (defaultAudioLanguage) dropdown selector, Prefer Default Audio Track (preferDefaultAudioTrack), Prefer Audio Description (preferAudioDescription).
  • Added admin controls for Subtitle Preferences: Subtitle Mode (subtitleMode), Default Subtitle Language (defaultSubtitleLanguage) dropdown selector, Prefer SDH Subtitles (preferSdhSubtitles), Text Color (subtitlesTextColor), Background Color (subtitlesBackgroundColor), Text Size (subtitlesTextSize).
  • Added admin controls for Automation & Queue: Cinema Mode (cinemaModeEnabled), Skip Intros and Outros (introAction/outroAction), Media Segment Countdown (nextUpCountdownStyle), Autoplay Next Episode (autoplayNextEpisode), Next Up Timeout (nextUpTimeout), Replace Skip Outro with Next Up Display (replaceSkipOutroWithNextUp), Still Watching Prompt (stillWatchingBehavior).
  • Added profile load and save binding handlers in configPage.html (Jellyfin) and moonfin.js (Emby).

Client Impact

Does this need matching changes in a client repo (Core, Smart-TV, Roku)?

  • No client changes needed
  • Companion client PR(s) required, linked here:
  • New setting keys added. List each key and confirm it matches the client key exactly, including casing:

Compatibility

  • Change to the settings profile is additive only, no renamed or removed properties
  • New properties use the same type the client sends (a client bool maps to bool?, an int to int?)
  • Migration added for any renamed or removed settings
  • Older clients still work, unknown fields are ignored and no keys were removed

Testing

Describe how this change was tested.

  • Built the plugin and deployed to a Jellyfin server
  • Verified against a live client (which one:) Windows Desktop
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Built backend plugin via build.ps1 in C:\Moonbase\Jellyfin.
  2. Deployed Moonfin.Server.dll to Synology NAS and verified server restart (status: running).
  3. Verified dropdown option parity for Resume Rewind, Unpause Rewind, and language selections against in-app dialogs.

Screenshots (if applicable)

Include config page screenshots or request/response samples where relevant.

2026-08-04_23-44-57_brave 2026-08-04_23-45-06_brave 2026-08-04_23-45-13_brave

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced
  • Any new setting keys match the client-side keys exactly

- Add interactive re-ordering and visibility toggles for Action Buttons (all 16 options) and Seerr Discovery Rows (all 12 options) across Jellyfin and Emby admin pages.
- Add SeerrRowOrder and HiddenSeerrRows to backend profile models.
- Remove legacy "Leave all unchecked to use each user's own choice" text from picker field descriptions.
- Remove Default Excluded Genres picker.
- Fix UI script null safety and static subtabs binding.
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Build Successful

The plugin compiled successfully against .NET 8 / Jellyfin 10.10.0.

Property Value
Commit a59c3fe
Workflow Build #269

@mattsigal

Copy link
Copy Markdown
Collaborator Author

Removed subtitle customizations since Roku can't handle them.

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.

1 participant