Skip to content

MoonSync: The Revamp - #218

Open
mattsigal wants to merge 2 commits into
Moonfin-Client:masterfrom
mattsigal:feature/action-buttons-and-seerr-row-defaults
Open

MoonSync: The Revamp#218
mattsigal wants to merge 2 commits into
Moonfin-Client:masterfrom
mattsigal:feature/action-buttons-and-seerr-row-defaults

Conversation

@mattsigal

@mattsigal mattsigal commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

The cleaning house PR. Makes the admin panel in Moonbase match Core as closely as possible in terms of headings, naming, values (e.g., sliders for 0-25 to match core), and so on. Adds interactive re-ordering pickers and visibility toggles for Action Buttons and Seerr Discovery Rows to the Moonfin admin settings pages across Jellyfin and Emby backends. Cleaned up legacy description text, fixed UI script null-safety, and added backend profile model properties (SeerrRowOrder and HiddenSeerrRows). All pushable to Core, Smart-TV, and Roku!

Related Issues

Link related issues or tickets separated by commas.

  • Closes #
  • Fixes #
  • Related to #

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 interactive Action Buttons re-ordering and visibility picker (#DefaultDetailButtonsList) to the Details Screen section containing all 16 enum options (shuffle, restart, playOffline, audio, subtitles, version, cast, trailer, watchWithGroup, watched, favorite, playlist, download, deleteFiles, goToSeries, admin).
  • Added interactive Seerr Discovery Rows re-ordering and visibility picker (#DefaultSeerrDiscoveryList) under Seerr in the Integrations subtab containing all 12 discovery row types (recent_requests, watchlist, recently_added, trending, popular_movies, movie_genres, upcoming_movies, studios, popular_series, series_genres, upcoming_series, networks).
  • Added SeerrRowOrder (List<string>) and HiddenSeerrRows (List<string>) to MoonfinSettingsProfile.cs in both Jellyfin and Emby backend models.
  • Fixed frontend script null safety and bound static subtab button navigation (bindDefaultSettingsSubTabs).

Wired up and verified the following profile keys in the backend model (MoonfinSettingsProfile.cs) for syncing:

  • recommendationSystemSource & recommendationsApplyParentalRatingCap
  • detailShowTechnicalDetails & detailScreenStyle
  • mediaBarContentType
  • screensaverMode
  • classicHomeRowsPadding & modernHomeRowsPadding
  • themeMusicEnabled, themeMusicOnHomeRows, themeMusicVolume, themeMusicLoop
  • mdblistRatingSources, mdblistShowRatingBadges, mdblistShowRatingNames
  • showShuffleButton, showGenresButton, showFavoritesButton, showCastButton, showSyncPlayButton, showLibrariesInToolbar
  • mergeContinueWatchingNextUp, nextUpMaxDays, enableMultiServerLibraries

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:

detailButtonOrder: List
hiddenDetailButtons: List
seerrRowOrder: List
hiddenSeerrRows: List

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 Moonfin.Server.dll (v2.0.2.0) and uploaded to /volume1/@appdata/jellyfin/data/plugins/Moonbase_2.0.2.0/Moonfin.Server.dll
  2. Restarted Jellyfin service on NAS and verified process running.
  3. Loaded admin page, verified tab switching, Action Buttons picker, Seerr Discovery Rows picker, and settings save.

Screenshots (if applicable)

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

Screenshots are in tab order.

GENERAL STYLE

2026-08-04_20-46-59_brave 2026-08-04_20-47-08_brave

DETAILS SCREEN

2026-08-04_20-47-31_brave 2026-08-04_20-47-39_brave

NAVIGATION

2026-08-04_20-47-49_brave 2026-08-04_20-47-56_brave

HOME SCREEN

2026-08-04_20-48-27_brave

HOME SECTIONS (unchanged)

2026-08-04_20-48-36_brave

LIBRARIES

2026-08-04_20-48-51_brave

EXTRAS

2026-08-04_20-49-02_brave 2026-08-04_20-49-12_brave 2026-08-04_20-49-34_brave

INTEGRATIONS

2026-08-04_20-49-52_brave 2026-08-04_20-50-05_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

@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 f0d36e9
Workflow Build #264

- 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.
@mattsigal
mattsigal force-pushed the feature/action-buttons-and-seerr-row-defaults branch from 79d496a to 62026fe Compare August 5, 2026 04:14
@mattsigal mattsigal self-assigned this Aug 5, 2026
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