Liebe Shopware-Profis,
ich hab ein „SimplifiedModule“ mit Dashboard-Widget. In einer Tabelle im Widget lässt sich pro Datensatz-Zeile das Unterfenster öffnen:
//...
{
xtype: 'actioncolumn',
items: [{
iconCls: 'sprite-mail-open-image',
tooltip: me.snippets.buttons.open,
handler: function(view, rowIndex, colIndex, item, event, record) {
Shopware.ModuleManager.createSimplifiedModule('MeinModulName', {...});
}
}]
}
//...
Naheliegenderweise soll das „SimplifiedModule“ eine Information darüber erhalten, welcher Datensatz geklickt wurde, um ihn direkt zu laden - d.h. ich möchte z.B. die record.id im Unterfenster haben.
Momentan hab ich’s so gelöst, dass ich analog zu addSubApplication oder postMessageApi.openModule in der createSimplifiedModule-Methode ein „params“ an das config-Objekt hänge - und das wiederum, und hier fühlt sich’s mäh an, im Unterfenster aus window rausfisch:
// Im Widget:
Shopware.ModuleManager.createSimplifiedModule('MeinModulName', {
title: "Mein Titel",
params: {
recordId: ~~(record.get('id'))
}
});
// Im "SimplifiedModule":
var subscription = window.events.subscribe('initialized-api', function(obj) {
var module = window.parent.Shopware.ModuleManager.modules.map[obj.instance];
var component = module.windows.map[obj.component];
var recordId = component.params.recordId;
//...
}
Ich frag mich jetzt, ob es da einen besseren/„offizielleren“ Weg der Parameterübergabe gibt?