🇬🇧 English
📝 In Short
The admin Configuration page is fully redesigned — tabs, search filters, drag-and-drop, sortable table, sticky save button, toast notifications. Zero change to the bell, the API, or your saved config: this is pure UI polish.
✨ What's New
- Tabbed navigation — Settings / Libraries / Collections / Categories / Deletions. No more endless scrolling.
- Header card with the NotifySync logo, version badge, GitHub link.
- Live counters on each tab: see at a glance how many libraries / collections / categories you have enabled.
- Quota slider (1–50) with live value display, instead of a bare number input.
- Libraries & Collections panels:
- Search filter to quickly find a library when you have many
- "Select all" / "Clear all" buttons that respect the current search
- Live counter "X / Y selected"
- Categories panel:
- Drag-and-drop to reorder mappings (priority of match)
- Delete confirmation modal so a misclick can't wipe a setup
- Deletions panel:
- Toggle-switch for "Enable deletion tracking" instead of a bare checkbox
- Sortable columns (Name / Type / Series / Year / Date)
- Type-colored badges (Movie / Episode / Audio)
- Pagination (20 rows per page)
- Search filter
- Sticky save button bottom-right, always visible — no need to scroll back up to save.
- Toast notifications for save success, refresh confirmation, errors — replaces the old popup dialogs.
- Responsive layout — tabs scroll horizontally on mobile.
🔧 Technical details for the curious
ConfigurationPage.html rewrite:
- All inline styles moved into a single
<style>block at the top of the file. Theming via CSS custom properties (--ns-bg,--ns-card,--ns-accent, etc.). - No external libraries — drag-and-drop uses HTML5 native
dragstart/dragover/dropevents. Sortable table is plain JS. Toast and modal are vanilla. - All API calls preserved:
ApiClient.getPluginConfiguration,ApiClient.updatePluginConfiguration,ApiClient.getUserViews,ApiClient.getItems(BoxSet),ApiClient.ajax('/NotifySync/DeletedItems'),ApiClient.ajax('/NotifySync/Refresh'). - Config schema unchanged:
MaxItems,EnabledLibraries[],EnabledCollections[],CategoryMappings[],ManualLibraryIds[],EnableDeletedTracking,DeletedRetentionDays. - Existing configs continue to load without migration.
- i18n FR/EN dictionary extended with the new labels (tabs, toast messages, search placeholders, confirmation dialog).
Reminder: after updating, restart Jellyfin (so the new ConfigurationPage.html is served from the new DLL) and hard-refresh your browser (Ctrl+Shift+R).
🇫🇷 Français
📝 En bref
La page de configuration admin est entièrement refondue — onglets, filtres de recherche, drag & drop, table triable, bouton "Sauvegarder" sticky, notifications toast. Zéro impact sur la cloche, l'API, ou ta config sauvegardée : c'est du pur polish UI.
✨ Quoi de Neuf
- Navigation par onglets — Paramètres / Bibliothèques / Collections / Catégories / Suppressions. Fini le scroll infini.
- Header card avec le logo NotifySync, badge de version, lien GitHub.
- Compteurs en direct sur chaque onglet : sache d'un coup d'œil combien de bibliothèques / collections / catégories sont activées.
- Slider quota (1–50) avec affichage de la valeur en live, au lieu d'un input numérique sec.
- Onglets Bibliothèques & Collections :
- Filtre de recherche pour trouver rapidement une bibliothèque sur les setups avec beaucoup d'éléments
- Boutons "Tout cocher" / "Tout décocher" qui respectent la recherche en cours
- Compteur en direct "X / Y sélectionnés"
- Onglet Catégories :
- Drag & drop pour réordonner les mappings (priorité de match)
- Modale de confirmation pour la suppression — plus moyen de tout effacer par un mauvais clic
- Onglet Suppressions :
- Toggle switch pour "Activer le suivi" au lieu d'une checkbox sèche
- Colonnes triables (Nom / Type / Série / Année / Date)
- Badges colorés par type (Film / Épisode / Audio)
- Pagination (20 lignes par page)
- Filtre de recherche
- Bouton "Sauvegarder" sticky en bas à droite, toujours visible — plus besoin de remonter pour sauvegarder.
- Notifications toast pour les sauvegardes, régénération d'historique, erreurs — remplacent les anciennes popups.
- Layout responsive — les onglets scrollent horizontalement sur mobile.
🔧 Détails techniques pour les curieux
Réécriture de ConfigurationPage.html :
- Tous les inline styles déplacés dans un seul bloc
<style>en haut du fichier. Theming via CSS custom properties (--ns-bg,--ns-card,--ns-accent, etc.). - Aucune librairie externe — drag-and-drop utilise les events HTML5 natifs (
dragstart/dragover/drop). Tri de table en JS pur. Toast et modale en vanilla. - Tous les appels API préservés :
ApiClient.getPluginConfiguration,ApiClient.updatePluginConfiguration,ApiClient.getUserViews,ApiClient.getItems(BoxSet),ApiClient.ajax('/NotifySync/DeletedItems'),ApiClient.ajax('/NotifySync/Refresh'). - Schéma config inchangé :
MaxItems,EnabledLibraries[],EnabledCollections[],CategoryMappings[],ManualLibraryIds[],EnableDeletedTracking,DeletedRetentionDays. - Les configs existantes se chargent sans migration.
- Dictionnaire i18n FR/EN étendu avec les nouveaux labels (onglets, messages toast, placeholders de recherche, dialogue de confirmation).
Rappel : après la mise à jour, redémarrer Jellyfin (pour que le nouveau ConfigurationPage.html soit servi depuis la nouvelle DLL) et faire un hard refresh navigateur (Ctrl+Shift+R).