Backend / Artikel / Fenstergröße / extjs

Hallo, ich habe im Backend einen eigenen Reiter bei den Artikel. Leider fuktioniert mit dem Reiter das Maximieren des Fensters nicht mehr. Fehler: TypeError: container.getViewSize is not a function [Bei diesem Fehler anhalten] size = container.getViewSize(false); Hat jemand eine Idee? So wird der Container erzeugt. Fehlt da was wichtiges? createMyPluginTabContent: function(article, stores, createdTab) { var me = this; me.createdTab = createdTab; me.createdTab.tab.setDisabled((me.article.get('id') === null)); me.container = Ext.create('Ext.container.Container', { html: 'Yes, there you go' }); me.createdTab.tab.add(me.container); }, Über einen Tipp bin ich dankbar.

hi ottscho, ich hab leider kein swag beispiel gefunden, um ein eigenes tut zu machen. auch dein post verweist auf kein swag beispiel. hast du ggf. ein link, oder kannst dein ein tut zur verfügung stellen. würde gern das problem mal nach konstruieren. hab mal statisch in backend/article/view/detail/window.js ein weiteren tab angelegt. da gab es keinerlei probleme.

Moin Pino, danke für die Rückmeldung :wink: Ich habe hier mal dieses Tut: http://wiki.shopware.de/Fortgeschritten … 1_871.html Da klappt auch die größenänderung des Fensters. Aber wenn ich dann den Tab Content Anpasse mit dem Container vvon oben, so klappt es nicht mehr. So sieht meine Window.js aus: //{namespace name="backend/ott\_test/article/view/main"} //{block name="backend/article/view/detail/window" append} Ext.define('Shopware.apps.Article.OttTest.view.Window', { override: 'Shopware.apps.Article.view.detail.Window', /\*\* \* @Override \* Creates the main tab panel which displays the different tabs for the article sections. \* To extend the tab panel this function can be override. \* \* @return Ext.tab.Panel \*/ createMainTabPanel: function() { var me = this, result; result = me.callParent(arguments); me.registerAdditionalTab({ title: 'TestTab', contentFn: me.createMyPluginTabContent, articleChangeFn: me.onArticleChangeMyPlugin, scope: me }); return result; }, /\*\* \* Wird zur Erstellung des Tab-Contents aufgerufen, hier die Basis \* Initialisierung vornehmen. \* \* @param article \* @param stores \* @param createdTab \*/ createMyPluginTabContent: function(article, stores, createdTab) { var me = this; me.createdTab = createdTab; me.createdTab.tab.setDisabled((me.article.get('id') === null)); me.container = Ext.create('Ext.container.Container', { html: 'Yes, there you go' }); me.createdTab.tab.add(me.container); }, /\*\* \* Wird aufgerufen, wenn der Kunde die Split-View Ansicht aktiviert hat \* und einen Artikel wechselt. \* Hier muss der extraParam am Store geändert werden. \*/ onArticleChangeMyPlugin: function(tab) { var me = this; me.createdTab.tab.setDisabled((me.article.get('id') === null)); // `extraParam` ändern } }); //{/block} // Controller Ext.define('Shopware.apps.Article.controller.Detail.OttTest', { override: 'Shopware.apps.Article.controller.Detail', /\*\* \* Wird aufgerufen, wenn der Artikel gespeichert wurde. Hier muss der \* der extraParam am Store gesetzt werden. \* @param article \*/ reconfigureAssociationComponents: function(article) { var me = this, mainWindow = me.getMainWindow(); me.callParent(arguments); mainWindow.createdTab.tab.setDisabled(article.get('id') === null); } });

1 „Gefällt mir“

hi ottscho, ich konnte mich leider nicht sehr intensiv damit beschäfitgen. ich bin das tut nun durch, stoße selbst auf ein problem. es wird eine app.js benötigt, die im tut nicht mit aufgeführt ist. das sieht so bei mir aus: Ext.define('Shopware.apps.Article.swagArticleOrdersTab', { name: 'Shopware.apps.Article.swagArticleOrdersTab', extend:'Enlight.app.SubApplication', bulkLoad: true, loadPath:'{url action=load}', controllers: [], stores: ['Order'], models: ['Order'], views: ['Window', 'Grid'], launch: function() { var me = this; mainController = me.getController('Main'); return mainController.mainWindow; } }); wie soll’s auch anders sein. mir wird kein weiterer reiter angezeigt :frowning: // edit hab die app.js umgebaut: //{namespace name="backend/swag\_article\_orders\_tab/article/view/main"} //{block name="backend/article/application" append} Ext.define('Shopware.apps.Article.swagArticleOrdersTab', { name: 'Shopware.apps.Article.swagArticleOrdersTab', extend:'Enlight.app.SubApplication', bulkLoad: true, loadPath:'{url action=load}' }); //{/block} jetzt bekomm ich smarty fehler: [quote]Unable to load template snippet ‘backend/article/store/order.js|backend/article/swag_article_orders_tab/view/window.js’ in Smarty/sysplugins/smarty_internal_templatebase.php on line 127[/quote] jedoch sehe ich schon den reiter und kann das fenster vergrößern.

so ottscho, ich hab’s :wink: es lag an der variable die du für deinen container vergeben hast. me.container wurde zu me.myContainerTab das ist schon alles. hier mal die änderung, dazu noch ein return, wie im tut. createMyPluginTabContent: function(article, stores, createdTab) { var me = this; me.createdTab = createdTab; me.createdTab.tab.setDisabled((me.article.get('id') === null)); me.myContainerTab = Ext.create('Ext.container.Container', { html: 'Yes, there you go' }); me.createdTab.tab.add(me.myContainerTab); return me.myContainerTab; }, mein problem konnte ich umgehen, indem ich alles aus dem ordner swag_article_orders_tab/ ins hauptverzeichnis article/ verschoben habe. die bootstap noch angepasst, dann geht’s. viele grüße

[quote=“pino”]so ottscho, ich hab’s :wink: es lag an der variable die du für deinen container vergeben hast. me.container wurde zu me.myContainerTab das ist schon alles. hier mal die änderung, dazu noch ein return, wie im tut. createMyPluginTabContent: function(article, stores, createdTab) { var me = this; me.createdTab = createdTab; me.createdTab.tab.setDisabled((me.article.get('id') === null)); me.myContainerTab = Ext.create('Ext.container.Container', { html: 'Yes, there you go' }); me.createdTab.tab.add(me.myContainerTab); return me.myContainerTab; }, mein problem konnte ich umgehen, indem ich alles aus dem ordner swag_article_orders_tab/ ins hauptverzeichnis article/ verschoben habe. die bootstap noch angepasst, dann geht’s. viele grüße[/quote] hey pino, super, ich werde es gleich mal ausprobieren. vielen vielen dank.

ich hab herausgefunden wie das mit der app.js läuft. //{block name="backend/article/application" append} //{include file="backend/article/swag\_article\_orders\_tab/model/order.js"} //{include file="backend/article/swag\_article\_orders\_tab/store/order.js"} //{include file="backend/article/swag\_article\_orders\_tab/view/grid.js"} //{include file="backend/article/swag\_article\_orders\_tab/view/window.js"} //{/block} ist natürlich das selbe wie das eigene emotion plugin. wie schön das man tuts macht :smiley: