Extjs: добавление поля в таблице заказов

Добрый день!

Подскажите, пожалуйста, как добавить с помощью MODX-плагина элемент в контекстное меню в таблице заказов Минишопа? По-умолчанию, там Изменить и Удалить. joxi.ru/52azjXgu4dzBZA

1. Я создал плагин msOrderAddPrint, повесил его на событие msOnManagerCustomCssJs
Написал в нем код:

<?php
switch ($modx->event->name) {
    
  case 'msOnManagerCustomCssJs':
  if ($page != 'orders') return;
  $modx->controller->addHtml("
          <script type='text/javascript'>
              Ext.ComponentMgr.onAvailable('minishop2-grid-orders', function(){
		Что здесь писать?
              });                
          </script>");
  break;
}


Если править исходный код файла /assets/components/minishop2/js/mgr/orders/orders.grid.js, то все работает:
Ext.extend(miniShop2.grid.Orders, miniShop2.grid.Default, {

    getFields: function () {
        return miniShop2.config['order_grid_fields'];
    },
    
    
    getMenu: function (grid, rowIndex) {
        var ids = this._getSelectedIds();
        var row = grid.getStore().getAt(rowIndex);

        var menu = miniShop2.utils.getMenu(row.data['actions'], this, ids);
        //var menu = [];
        menu.push({
          text: 'Печать'
          ,handler: function () {
                window.open('http://www.example.com?ReportID=1', '_blank');
            }
        });

        this.addContextMenuItem(menu);
    }
........
});
А что писать в плагине? Не хочется править исходники js. Или через плагин криво делать?
Михаил
04 июля 2017, 13:30
modx.pro
8
2 679
0

Комментарии: 3

Володя
04 июля 2017, 16:51
4
+2
примерно так
Ext.override(miniShop2.grid.Orders , {
    getMenu: function (grid, rowIndex) {
        var ids = this._getSelectedIds();
        var row = grid.getStore().getAt(rowIndex);
        var menu = miniShop2.utils.getMenu(row.data['actions'], this, ids);
        menu.push({
          text: 'Печать'
          ,handler: function () {
                window.open('http://www.example.com?ReportID=1', '_blank');
            }
        });
        this.addContextMenuItem(menu);
    }
});
    Михаил
    05 июля 2017, 09:25
    0
    Володя, большое спасибо. Помогло.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
3