Skip to content

feat-homerows - Add home row sort order properties to MoonfinSettingsProfile for cross-device sync - #229

Open
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feat/sort-order-home-rows
Open

feat-homerows - Add home row sort order properties to MoonfinSettingsProfile for cross-device sync#229
mattsigal wants to merge 1 commit into
Moonfin-Client:masterfrom
mattsigal:feat/sort-order-home-rows

Conversation

@mattsigal

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

Add 5 home row sort order properties (favoritesRowSortOrder, collectionsRowSortOrder, genresRowSortOrder, playlistsRowSortOrder, audioRowsSortOrder) to MoonfinSettingsProfile in both Jellyfin and Emby server plugin models to support cross-device synchronization for Moonfin client preferences.

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 FavoritesRowSortOrder, CollectionsRowSortOrder, GenresRowSortOrder, PlaylistsRowSortOrder, and AudioRowsSortOrder nullable string properties to MoonfinSettingsProfile in Jellyfin/backend/Models/MoonfinSettingsProfile.cs.
  • Added corresponding properties to MoonfinSettingsProfile in Emby/Emby.Plugins.Moonfin/Models/MoonfinSettingsProfile.cs.

Client Impact

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

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:)
  • Manual testing completed
  • Not tested (explain why): Just adding keys and only have one device of each type 😂

Test Steps

  1. Build Moonfin.Server.csproj via dotnet build.
  2. Sync preferences from Moonfin-Core with server profile.
  3. Verify all 5 sort order fields deserialize and persist in MoonfinSettingsProfile.

Screenshots (if applicable)

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

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 favoritesRowSortOrder, collectionsRowSortOrder, genresRowSortOrder, playlistsRowSortOrder, and audioRowsSortOrder properties to MoonfinSettingsProfile in Jellyfin backend and Emby plugin models for cross-device client settings synchronization.
@github-actions

Copy link
Copy Markdown

Build Successful

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

Property Value
Commit a3d15b5
Workflow Build #285

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