Axes groupés par période sur les profils utilisateur + fix soulignement des titres de cards liées
This commit is contained in:
@@ -110,9 +110,42 @@
|
||||
});
|
||||
}
|
||||
|
||||
// Regroupe les axes thématiques par période (champ en cases à cocher, comme
|
||||
// la page post — implémentation partagée dans admin-base.js). Les checkboxes
|
||||
// sont rendues par le DFV React de façon asynchrone ; sur user-new.php, la
|
||||
// page est très lourde (beaucoup de champs Pods) et le rendu peut arriver
|
||||
// bien après le chargement. On observe donc le formulaire jusqu'à ce que les
|
||||
// cases apparaissent, plutôt qu'un retry borné qui expirait sur user-new.
|
||||
function groupProfileAxes() {
|
||||
function tryGroup() {
|
||||
var row = document.querySelector('.' + TA.CONFIG.rows.axes);
|
||||
var list = row && row.querySelector('ul');
|
||||
if (!list) return false;
|
||||
if (list.querySelector('.axes-group-label')) return true; // déjà groupé
|
||||
if (!list.querySelector('input[type="checkbox"]')) return false; // pas encore rendu
|
||||
TA.groupAxesCheckboxes();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (tryGroup()) return;
|
||||
|
||||
// On observe la LIGNE du champ (le <ul> des cases y est injecté par React)
|
||||
// et on NE se déconnecte PAS au premier succès : sur user-new (item id 0),
|
||||
// le DFV peut re-rendre la liste après coup et écraser le groupement — on
|
||||
// le réapplique alors (tryGroup est idempotent, pas de boucle). Fallback
|
||||
// sur le formulaire si la ligne n'est pas encore là.
|
||||
var row = document.querySelector('.' + TA.CONFIG.rows.axes);
|
||||
var scope = row || TA.getProfileForm() || document.body;
|
||||
var observer = new MutationObserver(function() { tryGroup(); });
|
||||
observer.observe(scope, { childList: true, subtree: true });
|
||||
// Filet de sécurité : cesser d'observer après 30 s.
|
||||
setTimeout(function() { observer.disconnect(); }, 30000);
|
||||
}
|
||||
|
||||
function initProfileEditors() {
|
||||
reorderProfileSections();
|
||||
TA.initInfoPopovers('user');
|
||||
safeRun('groupProfileAxes', groupProfileAxes);
|
||||
|
||||
// Hide the "À propos du compte" section heading
|
||||
document.querySelectorAll('#your-profile h2, #adduser h2, #createuser h2').forEach(function(h2) {
|
||||
|
||||
Reference in New Issue
Block a user