Shopware 5.3 Backend Plugin 101 | ExtJS Styles

Im vorherigen Beitrag haben wir uns ein Standard Backend View mit ExtJS in Shopware eingerichtet. Nun enthielten die Views relativ wenig Einstellungen und damit war es nicht schön anzusehen.

Das wollen wir nun mit einigen Anpassungen ändern.

Listing

Ext.define('Shopware.apps.Bug.view.list.List', {
    extend: 'Shopware.grid.Panel',
    alias:  'widget.bug-reporting-listing-grid',
    region: 'center',

    configure: function() {
        return {
            detailWindow: 'Shopware.apps.Bug.view.detail.Window',
            columns: {
                short_description: { header: 'Beschreibung', flex: 6 },
                type: { header: 'Typ', flex: 2 },
                created: { header: 'Erstellt am', flex: 2 }
            }
        };
    }

});

columns

header

Hier geben wir den Titel der Spalte an

flex

Flex bezieht sich auf die Breite der Spalte. 100% = 10

Sprich möchten wir 3 Spaltig arbeiten können wir die erste mit 6 definieren und die letzten beiden mit 2 (siehe Beispiel oben)

Das ganze sieht dann wie folgt aus:

Detail

Ext.define('Shopware.apps.Bug.view.detail.Container', {
    extend: 'Shopware.model.Container',
    padding: 20,

    configure: function() {
        return {
            controller: 'Bug',
            fieldSets: [{
                title: 'Testsystem',
                fields: {
                    browser:{ disabled: true, fieldLabel: 'Browser' },
                    browser_version: { disabled: true, fieldLabel: 'Browser Version' },
                    operatingsystem: { disabled: true, fieldLabel: 'Operating System' }
                }
            }, {
                title: 'Beschreibung',
                fields: {
                    url: {fieldLabel: 'Shop URL' },
                    short_description: { fieldLabel: 'Titel' },
                    description: this.createDescription
                }

            }]
        };
    },

    createDescription: function(model, formField) {
        formField.xtype = 'textarea';
        formField.height = 90;
        formField.grow = true;
        formField.fieldLabel = 'Beschreibung';
        return formField;
    }
});

Schauen wir uns den Detail View des Bug Models an. Hier finden wir einige interessante Einstellungen.

fieldSets

Hiermit setzen wir verschieden Sub-Blöcke im Fenster

Dadurch bleibt es auch bei umfangreichen Models immer Übersichtlich.

Die Fieldsets werden in runde Klammern gepackt und enthalten den Titel in title. Außerdem kann man dort auch noch die fields festlegen, benennen und entsprechend anpassen.

fieldLabel

Bestimmt das Label des jeweiligen Input Fields.

disabled

Legt fest ob das Input Feld beschreibbar ist oder nicht. Wir möchten nicht das der User oder Admin hier etwas an den Browserdaten des Testers ändert.

createDescription

Hier wird es nochmal interessant.  Wir übergeben der Funktion das model sowie das jeweilige formfield

Mit der Funktion setzen wir den Typ auf textarea und die Höhe auf 90. Weiteres dazu findet Ihr in der ExtJS Doku

Ich hoffe ich konnte einen kleinen Einblick ins Backend geben – eventuell erweitere ich den Beitrag noch um eine Bildkomponente (Assoziationen).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert