Skip to content

Fix: rex:ready nur auf den neu geladenen Bereich triggern - #80

Closed
skerbis wants to merge 1 commit into
mainfrom
fix/scoped-rex-ready-trigger
Closed

Fix: rex:ready nur auf den neu geladenen Bereich triggern#80
skerbis wants to merge 1 commit into
mainfrom
fix/scoped-rex-ready-trigger

Conversation

@skerbis

@skerbis skerbis commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Problem

Beim dynamischen Nachladen von Modulen (gridblock_loadModule) und Content-Settings (gridblock_loadContentSettings) wurde bisher ein globaler Trigger ausgelöst:

$('body').trigger('rex:ready', [$('body')]);   // macht Probleme -> setzt die Spalten-Navigation zurück
$(document).trigger('ready');
$(document).trigger('pjax:success');

Der Kommentar im Code wies bereits auf das Problem hin: Der globale rex:ready initialisiert die gesamte Seite neu. Das

  • setzt die Spalten-Navigation zurück und
  • initialisiert fremde Widgets (z. B. CKE5-/TinyMCE-Editoren) mehrfach bzw. fehlerhaft.

Lösung

Statt der ganzen Seite wird nur der neu geladene Zielbereich initialisiert:

dst.trigger('rex:ready', [dst]);

Das ist der idiomatische REDAXO-Weg: rex:ready mit Scope-Parameter initialisiert gezielt nur den übergebenen Container.

Auswirkung

  • Spalten-Navigation bleibt erhalten
  • Editoren und andere Widgets werden nicht mehr doppelt initialisiert
  • Betrifft beide AJAX-Done-Handler in fragments/gridblock/module_input.php

Beim dynamischen Nachladen von Modulen und Content-Settings wurde
bisher global $('body').trigger('rex:ready') sowie document 'ready'
und 'pjax:success' ausgeloest. Das setzt die Spalten-Navigation
zurueck und initialisiert fremde Widgets (z.B. Editoren) mehrfach.

Stattdessen wird jetzt nur der neu geladene Zielbereich via
dst.trigger('rex:ready', [dst]) initialisiert.
Copilot AI review requested due to automatic review settings June 11, 2026 08:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Diese PR behebt ein Re-Initialisierungsproblem beim AJAX-Nachladen von Modulen und Content-Settings in Gridblock: Statt ein globales rex:ready (Scope = body) auszulösen, wird rex:ready nur noch für den neu geladenen Zielbereich (dst) getriggert, um ungewollte Nebenwirkungen (z. B. Zurücksetzen der Spalten-Navigation / doppelte Widget-Initialisierung) zu vermeiden.

Changes:

  • Ersetzt den globalen $('body').trigger('rex:ready', [$('body')])-Trigger durch einen scoped Trigger auf dem Zielcontainer (dst).
  • Entfernt zusätzliche globale Trigger ($(document).trigger('ready'), $(document).trigger('pjax:success')) in beiden AJAX-Done-Handlern.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@skerbis

skerbis commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator Author

Wird sauber über meinen Fork (skerbis/gridblock) neu eingereicht.

@skerbis skerbis closed this Jun 11, 2026
@skerbis
skerbis deleted the fix/scoped-rex-ready-trigger branch June 11, 2026 08:17
@skerbis
skerbis restored the fix/scoped-rex-ready-trigger branch June 11, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants