Hallo liebe Shopware Entwickler, in den Shopware Tutorials steht ein Beispiel, wie man dynamisch z.B. einen neuen Tab im Article Backend hinzufügt. Nach dieser Methode ist es Möglich, in jede „View“ Klasse von shopware mit „override“ einzugreifen. Wir brauchen für ein internes Modul eine Erweiterung, die das Grid mit den Bestellungen so erweitert, dass ein zusätzliches ActionColumn angezeigt wird. Wenn man dies via override versucht, kann man da nicht mehr eingreifen, da zu dem Zeitpunkt des overrides das View bereits gerendert. Ansätze wie list.getView().render() usw führten zu keinem Erfolg. Natürlich kann ich einfach das View ersetzen durch den original code + meine Buttons, schieße uns die Update-Fähigkeit für diese Stelle ab. Das wollen wir nicht. Kann jemand einen Tipp geben, wie man in vorhandene Views in der Art eingreift, zumindest in diesem konkretem Fall? Danke im Voraus japanwelt
So habe ich es gemacht, um einen weiteren Button der action column hinzuzufügen. Ext.define( "Shopware.apps.Article.view.AtsdWarehouseOrder.list.List", { // override article override: 'Shopware.apps.Order.view.list.List', // override createActionColumn: function() { // get this var me = this; // get parent action column var result = me.callParent( arguments ); // get the default items from the action column var items = result.items; // create our new button var dropshipping = { // icon data iconCls: 'sprite-truck-box-label', tooltip: "Externe Lager benachrichtigen", // click handler handler: function ( view, rowIndex, colIndex, item ) { } }; // add the new button to the items items.push( dropshipping ); // create the action column var column = Ext.create('Ext.grid.column.Action', { width: ( 26 \* items.length ), items: items } ); // and return it return column; }
Viele Grüße
Die letzten Zeilen haben es gelöst. Ich hatte es vorher einfach ins result geschrieben und rausgegeben, aber dass der column neu geschrieben war, da kam ich nicht ganz dahinter. Vielen lieben Dank für die Hilfe Mit freundlichen Grüßen japanwelt