Grid xml column:
<column name='actions' class='My\Test\Ui\Component\Listing\Columns\Feeds\AdvancedActions'> <argument name='data' xsi:type='array'> <item name='config' xsi:type='array'> <item name='component' xsi:type='string'>My_Test/js/grid/columns/actions</item> <item name='dataType' xsi:type='string'>text</item> <item name='label' xsi:type='string' translate='true'>Actions</item> <item name='sortOrder' xsi:type='number'>90</item> </item> </argument> </column> Actions.js
define( [ 'jquery', 'underscore', 'mageUtils', 'uiRegistry', 'Magento_Ui/js/grid/columns/actions', 'Magento_Ui/js/modal/confirm' ], function ($, _, utils, registry, Column, confirm) { 'use strict'; return Column.extend( { /** * Applies specified action. * * @param {String} actionIndex - Actions' identifier. * @param {Number} rowIndex - Index of a row. * @returns {ActionsColumn} Chainable. */ applyAction: function (actionIndex, rowIndex) { var action = this.getAction(rowIndex, actionIndex), callback = this._getCallback(action); if (action.confirm) { this._confirm(action, callback); } else if (action.popup) { this._popup(action, callback); } else { callback(); } return this; }, _popup: function (action, callback) { var popupData = action.popup; var dataType = popupData.type; //Start loader var body = $('body').loader(); body.loader('show'); if (popupData.file !== undefined && popupData.file !== '') { $.ajax( { url: popupData.file, async: false, dataType: "text", type: 'GET', showLoader: true, //use for display loader success: function (data) { popupData.message = data; } } ); } //Stop loader body.loader('hide'); }, }); Used showLoader: true and var body = $('body').loader(); body.loader('show'); but unable to start loader while ajax request.
Need an alternative to start loader during ajax call.