github ZL154/AchievementBadges_for_Jellyfin v1.7.3
v1.7.3 - showcase persist fix, language-revert fix, friends drawer redesign

latest releases: v2.4.0, v2.3.1, v2.3.0...
5 months ago

What's fixed

🏆 Equipped-showcase pills refused to hide (for real this time)

I thought I fixed this in v1.7.0. I was wrong — missed the actual root cause.

The bug: WebInjectionService patches Jellyfin's index.html on disk so our scripts survive client-side caching. Its idempotency check was looking for <!-- achievementbadges-bootstrap --> and skipping if found. Fine for fresh installs — catastrophic for upgrades. Pre-v1.7.0 installs had a bloated inline script block that unconditionally created the sidebar pills + header dots, ignoring both the user preference AND the admin override. When you upgraded to v1.7.0/1/2, the service saw the old marker and said "already patched" — leaving the buggy old block in place alongside the new gated one.

Fix:

  • Markers are now versioned: <!-- ab-vX.Y.Z --> stamp + start/end markers around the block.
  • On every upgrade, StripOldInjections() walks every prior bootstrap block and removes it before re-injecting. Handles three shapes in the wild: current (clean start+end markers), v1.7.0-v1.7.2 (start marker + three script tags), and pre-v1.7.0 (start marker + inline script + script tags, no end marker — scans to the closing </script> after client-script/enhance).
  • Upgrading from any prior version now gets a clean, gated block.

🌍 Language dropdown reverting to "Default (admin)"

Handler was blocking re-render on the save promise. Any server hiccup or rate-limit rolled the <select> value back to default while the user watched.

Fix: re-renders from the locally-chosen value immediately, hard-pins select.value after render as belt-and-braces, and runs save in the background. Also mirrors the pick to localStorage so page reloads pick it up.

👥 Friends drawer redesigned

  • Moved to top-left (vertically centered) — was getting in the way at bottom-right. Corners on mobile.
  • Full visual overhaul: rounded-rect gradient button, avatar circles with initials + online-dot overlay, proper icon buttons for accept/decline/remove, empty-state illustrations with Material icons, blurred backdrop, left-side slide-in.
  • Slides in from the LEFT now to match the button position.

⚙️ Admin page language now follows user's preference

Was pulling from browser navigator.language. Now resolves via (your saved Achievement Badges language → admin server default → localStorage → navigator → English). Writes to localStorage when changed on the standalone page so the next admin load is snappy.

🙏 README credits

@frenchyx24 now credited by name at the top of the credits section with a link to his issue and explicit thanks for the full 171-badge French translation merged in v1.7.2.


MD5: BB321DF533FC75013FA6411B9C89D465

Don't miss a new AchievementBadges_for_Jellyfin release

NewReleases is sending notifications on new releases.