Hallo liebe Shopware - Gemeinde,
ich würde gerne ein weiteres Feld in der Listenansicht von „Einstellungen“ -> „Versandkosten“ hinzufügen. Leider bringt es mir einen ExtJs-Fehler (TypeError: c[b/].setSortState is not a function).
Folgenden Code habe ich schon am Beispiel der ID.
Bootstrap.php:
private function subscribeEvents(){ $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Shipping', 'onBackendShippingPostDispatch' ); } public function onBackendShippingPostDispatch(Enlight\_Event\_EventArgs $args){ $controller = $args-\>getSubject(); $request = $controller-\>Request(); $response = $controller-\>Response(); $view = $controller-\>View(); $this-\>Application()-\>Snippets()-\>addConfigDir($this-\>Path() . 'Snippets/'); $view-\>addTemplateDir($this-\>Path() . 'Views/'); if ($args-\>getRequest()-\>getActionName() === 'load') { $view-\>extendsTemplate('backend/shipping/view/attributeshipping/main/list.js'); } }
list.js:
// File location: AttributeShipping/Views/backend/shipping/view/attributeshipping/main/list.js //{block name="backend/shipping/view/main/list" append} /\*{namespace name="backend/shipping/view/main/list"}\*/ Ext.define('Shopware.apps.Shipping.view.attributeshipping.main.List', { override: 'Shopware.apps.Shipping.view.main.List', initComponent: function() { var me = this; var columns = me.callOverridden(arguments); var columnIdField = { header: '{s name=shipping\_grid\_id}ID{/s}', dataIndex : 'dispatch.id', renderer: me.idColumn }; return Ext.Array.insert(columns, 0, [columnIdField]); }, idColumn : function (value, metaData, record) { return record.get('id'); } }); //{/block}
Testweise habe ich das ID-Feld in die themes\Backend\ExtJs\backend\shipping\view\main\list.js eingefügt, und da funktioniert es. Ich finde bisher aber nicht den Fehler. Hat jemand eine Idee?
Beste Grüße
Sebastian