Refresh-Button im Backend programmgesteuert aufrufen

Hallo, wie kann ich den Refresh-Button des aktuellen Fensters im Backend programmgesteuert aufrufen?

Hallo, was willst du dort denn genau implementieren / erreichen? Der Event-Listener für diesen Button wird in der framework.js in backend/js definiert…

Einfach das Refresh-Ereignis auslösen, damit man es nicht manuell machen muss.

Geht es da um ein eigenes Backend-Modul, welches du per „Knopfdruck“ in dem Modul aktualisieren möchtest? Dann kannst du das doch auch einfach per Javascript z.B. window.location.refresh(); durchführen oder, falls du mit den ExtJS Komponenten arbeitest, dort die Aktualisierungsmethoden der jeweiligen Stores / Komponenten aufrufen.

window.location.refresh() habe ich schon ausprobiert und es gab Probleme. Es ist ein eigenes Backend-modul, welches aus zwei Templates besteht. Das Erst dient zur übersicht und das zweite Zeigt die Deteils an. (Ähnlich wie “Hersteller”) Beim Aufruf von window.location.refresh() ist nur noch das Detail-Template zu sehen. Ich hatte in das Original-Modul “Hersteller” geguckt da findet überhaupt keine Aktualisierung statt.

Stell mal kurz einen Screenshot von dem Backend-Modul, oder den Code der beiden Template-Dateien und der skeleton.php ein - dann hat man da einen besseren Überblick!

Kann ich es dir wegen der Größe auch per Mail schicken?

Ja schick mal an forum@shopware.de - thx!

1 „Gefällt mir“

Du möchtest doch wahrscheinlich das Tree-Menü links neu laden, oder? Einfach: tree.getRootNode().reload(); Statt “tree” halt der Name der Komponente oder per Ext.getCmp(id) addressieren! Alternativ kannst du auch window.location.href = ‘{url action=index}’; setzen - dann müsste der Reload des Fenster-Inhalts auch in jedem Fall funktionieren! Wenn du das aus einem iFrame heraus auf die Index-Seite des Moduls anwenden willst, musst du ggf. parent.location.href nehmen!

Danke, mit window.location.href = ‚{url action=index}‘ funktioniert es. Allerdings habe ich noch eine Frage: Kann man den Tree auch direkt aus dem Controller aktualisieren? Der Controller übernimmt das Erstellen einer neuen Gruppe und es währe schön, wenn die Übersicht auch gleich aktualisiert werden würde.

Besser wäre es, wenn du das Formular auch auf ExtJS umstellst und somit ohne zusätzliches Template / iFrame auskommst! Ein Beispiel dafür, findest du z.B. im Plugin Coupons (Templates sind offen!). Dort wird der Form-Submit dann über Ajax durchgeführt und du kannst direkt im Anschluss den Tree neu laden - das ist sauberer! Alternativ müsstest du deinem Standard-Formular einen onSubmit Event übergeben und dort dann die Rückgabe abfragen und den Tree neu laden - direkt per PHP geht das nicht!