2017-01-31 4 views
2

Надеюсь, он не будет суровым просить не заниматься вопросами.Shopware 5, открыть окно BatchProcess из собственного плагина

Здесь мы идем:

У меня есть проблема разрабатывает собственный плагин для Shopware 5. У меня уже есть рабочий плагин, который содержит список заказов для определенных критериев. Теперь я хочу кнопку (которая у меня уже есть) на панели инструментов этого сетчатого окна.

Кнопка должна открыть окно пакетного процесса, которое уже доступно в собственном окне «Заказать» в магазине.

В: Как я могу открыть это приложение с выбранными идентификаторами моей сетки?

Вот что у меня есть:

[...] 
createToolbarButton: function() { 
     var me = this; 
     return Ext.create('Ext.button.Button', { 
      text: 'Batch Processing Orders', 
      name: 'customBatchProcessButton', 
      cls: 'secondary', 
      handler: function() { 
       me.onClickCustomBatchProcessButton(me); 
      } 
     }); 
    }, 
onClickCustomBatchProcessButton: function(me){ 
     var thisGrid = me.getTransferGrid(); 
     var records = thisGrid.getSelectionModel().getSelection(); 
     console.log("Grid"); 
     console.log(thisGrid); 
     console.log("records"); 
     console.log(records); 
     Shopware.app.Application.addSubApplication({ 
      name: 'Shopware.apps.Order', 
      action: 'batch', 
      params: { 
       mode: 'multi', 
       records: records 
      } 
     }); 
    } 
[...] 

Он всегда открывает нормальный вид окна заказа. (без ошибок в консоли) У кого-нибудь есть предложения? Было бы здорово! Спасибо за ваше время :)

Привет

EDIT: Эй, спасибо за ваш ответ до сих пор. мне удалось открыть Batch-процесс-окна, как это:

me.getView('Shopware.apps.Order.view.batch.Window').create({ 
       orderStatusStore: Ext.create('Shopware.apps.Base.store.OrderStatus').load(), 
       records: orderRecords, 
       mode: 'multi' 
      }).show({}); 

Но теперь проблема IST, событие для пакетной обработки не применяется на кнопку на форме ... Я все еще на попытке и ошибке.

ответ

1

Многие вспомогательные приложения Extractor ExtJS могут быть выполнены из другого приложения с определенными параметрами точно так, как вы пытаетесь. К сожалению, я не вижу никакого кода в плагине заказа, который может привести к желаемому результату. Вы можете увидеть, какие действия/Params Shopware субприложения поддерживает, читая init функцию главного контроллера ->Shopware.apps.Order.controller.Main

Shopware.apps.Customer.controller.Main из плагина клиента, например, принимает действие, как вы используете его - он проверяет это:

В плагине заказа есть аналогичный код, но он просто берет идентификатор заказа и открывает страницу подробных сведений о соответствующем заказе. Он, по-видимому, не содержит batch.Window

Возможно, вы каким-то образом сможете повторно использовать этот класс, но это может быть тонна кода, который вам нужно адаптировать из реального плагина заказа. Если вам действительно нужна эта функция, вы можете внимательно прочитать, как плагин Order инициализирует окно и его зависимости, и попробуйте.

Я предпочел бы разработать легкий модуль в этом сценарии (это фрейм внутри бэкэнд-окна, который просто использует контроллеры и представления шаблонов с PHP/Smarty/HTML)

Смежные вопросы