Dev #5

Merged
w-vandal merged 16 commits from dev into main 2026-08-30 09:29:41 +00:00
Showing only changes of commit 666aa892e0 - Show all commits
+23 -1
View File
@@ -796,10 +796,32 @@
// l'éditeur — contourne la contrainte de clé étrangère de
// target_element_id, qui empêche d'y stocker un sentinel comme
// EVENT_ROW_ID directement (voir screens/flow/ensure_flow_schema.py).
//
// data-element-id N'EST PAS unique quand l'élément vit dans un
// Répéteur : chaque ligne rejoue le MÊME modèle, donc le MÊME
// data-element-id se répète à l'identique sur chaque ligne (voir
// render_repeater.py, seul data-row-id — posé sur .repeaterItem,
// l'englobant — distingue réellement une ligne d'une autre). Un
// simple document.querySelector('[data-element-id]') global
// prendrait toujours la PREMIÈRE ligne, jamais la bonne — sans
// rapport avec l'événement reçu. Quand l'événement transmet aussi
// une ligne (row_id), la recherche est donc scopée à L'INTÉRIEUR de
// ce .repeaterItem précis ; sinon (élément fixe, ou événement sans
// paramètre de ligne), recherche globale comme avant.
const resolvedElementId = node.target_element_from_event
? (window.lastEventParams ? window.lastEventParams.element_id : null)
: node.target_element_id;
const targetEl = resolvedElementId ? document.querySelector('[data-element-id="' + resolvedElementId + '"]') : null;
const resolvedRowId = node.target_element_from_event && window.lastEventParams
? window.lastEventParams.row_id : null;
let targetEl = null;
if (resolvedElementId != null) {
if (resolvedRowId != null) {
const rowEl = document.querySelector('.repeaterItem[data-row-id="' + resolvedRowId + '"]');
targetEl = rowEl ? rowEl.querySelector('[data-element-id="' + resolvedElementId + '"]') : null;
} else {
targetEl = document.querySelector('[data-element-id="' + resolvedElementId + '"]');
}
}
if (targetEl) applyElementProperty(targetEl, node.element_property, node.element_value);
return Promise.resolve();
} else if (node.action_type === 'declencher_evenement' && node.target_custom_event_id) {