Hallo
Ich speichere im Backend in der BEstellung unter Positionen die Spalte um ein Attribute erweitert welches eine checkbox als Editor aufweist.
Dazu habe ich mich an die Anleitung von
Attribute system
gehalten und den Controller
**Shopware.apps.Order.controller.Detail'**
erweitert.
Soweit war die Umsetzung auch recht einfach und alles funktioniert auch soweit.
Das einzige Problem ist, dass beim Refresh des Grid Rows den Text der Checkbox (TrueText /FalseText nicht gesetzt bekomme.
onSavePosition: function(editor, e, store, options) {
var me = this;
originalCallback = options.callback;
if ((e.newValues.md_express != e.originalValues.md_express) && e.record.internalId > 0) {
var customCallback = function (position, success) {
Ext.callback(originalCallback, this, arguments);
Ext.Ajax.request({
method: 'POST',
url: '{url controller=AttributeData action=saveData}',
params: {
_foreignKey: e.record.internalId,
_table: 's_order_details_attributes',
__attribute_md_express: Number(e.newValues.md_express)
},
success: function(response){
//reload of the orderList Grid
me.getOrderList().store.load();
//reload the grid row of position
var selectedRowIndex=e.grid.getSelectionModel().getCurrentPosition().row;
var selectedRowRecord=e.grid.getStore().getAt(selectedRowIndex);
selectedRowRecord.set('md_express',Number(e.newValues.md_express));
selectedRowRecord.commit();
}
});
};
if (!options.callback || options.callback.toString() !== customCallback.toString()) {
options.callback = customCallback;
}
}
me.callParent([editor, e, store, options]);
}