Создать поле Выбрать в подробном окне - PullRequest
0 голосов
/ 18 декабря 2018

Я создаю собственный плагин, в котором мне нужно перечислить некоторые вещи в области бэкэнда.У каждого элемента в списке есть возможность открыть подробное окно, в котором я хочу отобразить некоторую информацию, и поле SELECT OPTION , но не знаю, как его создать.Это поле просто для выбора нужного параметра и его сохранения в базе данных.

Можно ли создать его в файле myplugin / Resources / views / backend / my_plugin / model / product.js?

У меня есть что-то вроде (образец) :

Ext.define('Shopware.apps.MyPlugin.model.Product', {
    extend: 'Shopware.data.Model',

    configure: function() {
        return {
            controller: 'MyPlugin',
            detail: 'Shopware.apps.MyPlugin.view.detail.Product'
        };
    },

    fields: [
        { name : 'id', type: 'int', useNull: true },
        { name : 'Name', type: 'string' },
        { name : 'Lastname', type: 'string' },
        { name : 'Date', type: 'date' },
        { name : 'Color', type: 'SELECT?' }
    ]
});

Конечно, поле Color не распознает SELECT, но мне было интересно, есть ли другое слово для этого?

Я надеялся создать это новое поле следующим образом:

fields: [
            ...
            { 
              name : 'Color', 
              type: 'SELECT?', 
              values: {'green', 'blue', 'red'} 
             }
        ]

Если я полностью ошибаюсь, не могли бы вы указать мне, где создать это поле?

Спасибозаранее.

1 Ответ

0 голосов
/ 18 декабря 2018

Вы определяете модель, а не плагин, и похоже, что вы хотите настроить 'Color' как перечисление?Я прав?

Стандартные типы:

Ext.data.field.Field //(Default, implies no conversion)
Ext.data.field.String
Ext.data.field.Integer
Ext.data.field.Number
Ext.data.field.Boolean
Ext.data.field.Date

(см. Документацию по Типы полей )

Возможно, вы можете просто использовать строкуесли вы не хотите валидации модели ...

Вы можете создать собственный тип, расширенный из строки или поля, и использовать собственный валидатор.(см. ту же страницу в разделе Проверка )

Пример:

Ext.define('App.field.Color', {
     extend: 'Ext.data.field.Field',

     alias: 'data.field.color',

     // Match list of colors
     validators: {
         type: 'list',
         list: ['green', 'blue', 'red']
     }
});

Ext.define('App.model.Product', {
    extend: 'Ext.data.Model',

    fields: [
        { name : 'id', type: 'int', useNull: true },
        { name : 'Name', type: 'string' },
        { name : 'Lastname', type: 'string' },
        { name : 'Date', type: 'date' },
        { name : 'Color', type: 'color' }
    ]
});
...