Spaces:
Paused
Paused
Commit History
-
fix: update free-key URL when typing backdrop edge insets
PNRxAA `type=number` input's v-model yields a Number (Vue coerces it), so the free-key card's insetParam ran `raw.trim()` on a number and threw, which broke the queryString/curl computed — the request URL stopped updating as soon as a digit was entered. Normalise string|number in insetParam (and type the refs accordingly). The Input test stub now coerces type=number values like real Vue, so this path is actually covered.52aa243 -
feat: expose backdrop edge inset in the free-key "Try it out" card
PNRxAWhen backdrop is the selected image type, show Horizontal/Vertical inset (%) number inputs that emit edge_inset_x / edge_inset_y query params (clamped 0–50, sent as explicit overrides; placeholders show the operator's configured defaults). Cleared on image-type switch like the other type-specific controls.0d3ca24 -
expose poster fit in the free-key "Try it out" card
PNRxAThe free-key try-it-out panel showed Textless and Split (poster-only overrides) but not the new aspect-ratio fit. Add a "Fit" dropdown (native/cover/blur/pad) that emits `?fit=` for posters, with the resolved "default (<value>)" annotation from the free key's global default. Resets on image-type switch and is hidden for non-poster types, matching split.1a7acb0
-
Merge pull request #50 from PNRxA/feat/badge-shape-background
PNRxAAdd pill-style badges and dark/transparent/no-background options (#19)617b567 -
fix: dedupe pill cache keys + disable ignored badge style control for pills
PNRxAPills always render as a horizontal lozenge, so badge style is overridden to horizontal at render time. Route both the renderer and the cache key through a single BadgeStyle::for_shape() helper so pill+vertical and pill+horizontal no longer produce two cache entries for identical output. UX: disable the Badge style select (and show a hint) when the badge shape is pill, in both the per-key settings form and the free-key try-it-out form, so users don't expect the orientation choice to take effect. Badge direction stays enabled — it still controls multi-badge stacking for pills.6387a43 -
fix: refresh free-key dropdown trigger text when the resolved default changes
PNRxAThe value reset in the previous commit clears a stale override, but the closed Select trigger could still show the wrong summary: reka-ui snapshots each option's text once when the item mounts and never re-reads it. So a dynamic "default (resolved)" label that changes per image type went stale on the trigger when switching poster<->backdrop (the control stays mounted, unlike logo which unmounts and so happened to refresh). The same staleness left the trigger without its "(resolved)" annotation after the server defaults loaded asynchronously post-mount. Key each dynamic "default"/"any" item by its label so reka-ui re-registers the option text whenever it changes, keeping the trigger summary in sync with the selected image type's defaults. Adds a display regression test that mounts the real reka-ui selects (the rest of the suite stubs them) and asserts the trigger text across poster<->backdrop switches and a post-mount defaults load.5af303d -
fix: re-apply per-type defaults when switching free-key image type
PNRxAThe free API key "Try it out" card loads every per-type render default once and switches the dropdown "default" labels per image type, but the selected control values (badge style, label style, badge size, max badges, position, direction) were left untouched on a type switch. A value chosen for poster therefore carried over to backdrop/logo/episode, so the form showed — and the curl emitted — the previous type's settings instead of the new type's defaults. Reset every per-type render control to "default" on each image-type switch so the dropdowns re-resolve to the newly selected type's server defaults. Genuinely global controls (image source, language, ratings order/exclude, a still-valid image size) continue to persist across switches.d7f53d5 -
Merge remote-tracking branch 'origin/main' into feat/badge-shape-background
PNRxA# Conflicts: # README.md # api/src/handlers/preview.rs # api/src/image/generate.rs # api/src/image/serve.rs # api/src/lib.rs # web/src/__tests__/components/RenderSettingsForm.spec.ts # web/src/components/RenderSettingsForm.vue # web/src/lib/api.tsc45d5f9 -
fix: offer up to 10 rating badges in the free-key card
PNRxAThe "Try it out" card's ratings-limit ("Max badges") dropdown only offered 0–8, but the backend allows 0–10 (validate_ratings_limit) — one slot per available rating source, and there are now 10 sources — and the admin RenderSettingsForm already exposes the full 0–10 range. Bump the dropdown from `n in 9` to `n in 11` so the free card can request the same maximum as everything else, and add a regression test pinning the offered range at 0–10.2a48b9b
-
feat: split poster badges onto opposite sides (#18)
PNRxAAdd a per-poster `poster_badge_split` setting (query param `split`) that divides rating badges evenly across two opposite sides of the poster. The split axis follows the badge layout: a vertical column splits left/right, horizontal rows split top/bottom. With an odd number of badges the configured side keeps the extra one (4 -> 2+2, 3 -> 2+1); a single badge is never split. - Rendering: BadgePosition::split_anchors + overlay_poster_group on the poster render path; threaded through ImageParams/serve/preview. - Cache: the split contributes a key token only when enabled, so existing non-split cache keys and CDN settings hashes are unchanged. - Settings: new column + migration, per-key/global/free-key plumbing, `split` query-param override. - Web: settings-form checkbox with live preview, free-key "Try it out" control, API params, types, and README docs.6db0b76 -
feat: add pill-style badges and dark/transparent/no-background options (#19)
PNRxAAdd two orthogonal, per-image-type badge appearance settings: - badge_shape: rounded (default) | pill (fully rounded ends) - badge_background: default | dark | transparent | none These are plumbed through the full settings stack (per-key + global defaults, query-param overrides, cache keys) for posters, logos, backdrops, and episodes, and exposed in the admin/key settings forms and the public free-key "Try it out" form. Closes #19.c165e10 -
feat: add a ratings-exclude control to the free-key "Try it out" form
PNRxAThe free key honours a `ratings_exclude` query override, but the card had no way to set it. Add an "Exclude ratings" checkbox grid (mirroring the settings form) seeded from the server's exclusion list; toggling a source emits a `ratings_exclude` override (including an empty value to clear a server-set exclusion) and dims it live in the priority list. UI: white background on the checkboxes so they read against the card's tint, and top-aligned rows so long labels (e.g. "Rotten Tomatoes (Audience)") wrap left-aligned instead of centering against the control.61c0e40 -
feat: reflect server defaults in the free-key "Try it out" form
PNRxAThe free API key serves with the instance's global render settings, but the "Try it out" card showed hardcoded frontend defaults — so the displayed rating priority and the implied curl output didn't match what the key actually produces. Add a public GET /api/free-key/settings endpoint (gated on the free key being enabled, served from the existing global_settings_cache so it adds no DB reads, and trimmed of the admin-only operational flags). The card fetches it once (memoized in the auth store) and now: - seeds the rating priority list from the server's order (only sending a ratings_order override once the user reorders away from it), - annotates each dropdown's "default" with the server's resolved per-image-type value (e.g. "Badge style: default (Vertical)"), - dims rating sources the server excludes, falling back to the built-in defaults if the fetch fails.7e7d412
-
fix backdrop default, add to free key ui, fixes #36
PNRxAe030eb4
-
add support for episode ratings, closes #5
PNRxA76b8a0b
-
large refactor to prioritise tmdb logos and backdrops, then fall back to
PNRxAfanart, fixes #10094c13f
-
expose all customisation through url params, fixes #3
PNRxA0b7bef2
-
remove fallback placeholder behavior, accept param as no-op for rpdb
PNRxAcompatibility1464c42
-
only allowed sizes in try section
PNRxA2c40cbf -
use shadcn-vue components for select, input, and checkbox
PNRxAc5ec7be -
collapse free api key section
PNRxA05bef0c -
add missing params to
PNRxA070d4d5
-
fix accessibility, SEO, and contrast issues flagged by PageSpeed
PNRxAInsightsedf424c
-
add homepage
PNRxA5afb157