Skip to content

Replace identifier skip checkboxes with a select that matches the filter's behavior - #277

Closed
bhoffman20 wants to merge 1 commit into
Chaptarr:developfrom
bhoffman20:feature/identifier-filter-select
Closed

bhoffman20 wants to merge 1 commit into
Chaptarr:developfrom
bhoffman20:feature/identifier-filter-select

Conversation

@bhoffman20

@bhoffman20 bhoffman20 commented Oct 2, 2026 •

Copy link
Copy Markdown

Description

Replaces the "Skip audiobooks/books missing identifier" and "Skip audiobooks/books missing ASIN" checkboxes in the metadata profile editor with a single select list.

Ticked together, the two checkboxes did something neither label described. EditionMetadataProfileFilter.MeetsIdentifierRequirements keeps an edition based on the combination of the two flags:

skipMissingIsbn skipMissingAsin Edition kept when New option
off off always Don't skip
on off ISBN or ASIN Skip if missing both ISBN and ASIN (Require either)
on on ISBN and ASIN Skip if missing either ISBN or ASIN (Require both)
off on ASIN Skip if missing ASIN

With both boxes ticked, an ISBN became mandatory, even though the "missing identifier" help text said "ISBN or ASIN". Audible-only editions rarely carry an ISBN, so they were silently pruned during refresh. For example, the Elizabeth Evans narrations of Sarah J. Maas's A Court of Thorns and Roses books were dropped.

This PR only changes the UI:

  • Each option sets the two existing skipMissingIsbn / skipMissingAsin flags. The API, the backend filter and the database schema are unchanged, so existing profiles keep their behavior.
  • When a profile is opened, the select shows the option that matches its saved flags, and the profile is only changed if the user picks a different option.
  • The new options say exactly what the backend does. I didn't add an ISBN-only option because the two flags can't express it.
  • Help text no longer claims "ISBN or ASIN", and now mentions that editions you have files for or added manually are never skipped (IsProtectedEdition / MetadataProfileService local-file protection).
  • I removed the now-unused SkipMissingAsin* strings from en.json; no other locale defines them.

Fixes # (no existing issue)

Database Migration

NO

How was this tested?

On Ubuntu 25.10, building natively from source (.NET 10.0.401):

  • dotnet build src/Chaptarr.sln -c Release: 0 warnings, 0 errors.
  • dotnet test --filter FullyQualifiedName~MetadataProfile: 38 passed, including EditionMetadataProfileFilterFixture, which covers the flag combinations above.
  • yarn build and yarn typecheck pass. yarn check-translations reports all keys present.
  • eslint on the changed file is clean; the repo-wide yarn lint count is unchanged from develop (1309 pre-existing problems).
  • I tested it by hand in the UI on a dev instance built from this branch. Each existing profile opened with the option that matches its saved flags, and saving each option wrote the expected skipMissingIsbn / skipMissingAsin values.

Screenshots (UI changes only)

The metadata profile editor with the new select, closed and open:

List Collapsed:
skip-menu-closed

List Open:
skip-menu-open

@bhoffman20 bhoffman20 closed this Oct 2, 2026
@bhoffman20
bhoffman20 deleted the feature/identifier-filter-select branch October 2, 2026 19:51
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