console.log('[supplier] новый bootstrap.Modal создан:', supplierModal);
var editingId = null;
+ var shouldReload = false;
var loaderHtml = '<div class="text-center p-4"><i class="fa fa-spinner fa-spin fa-2x text-secondary"></i></div>';
- // Слушаем события самого модального окна
- modalEl.addEventListener('show.bs.modal', function () {
- console.log('[supplier] СОБЫТИЕ: show.bs.modal');
- });
- modalEl.addEventListener('shown.bs.modal', function () {
- console.log('[supplier] СОБЫТИЕ: shown.bs.modal');
- });
- modalEl.addEventListener('hide.bs.modal', function () {
- console.log('[supplier] СОБЫТИЕ: hide.bs.modal, стек:', new Error().stack);
- });
modalEl.addEventListener('hidden.bs.modal', function () {
- console.log('[supplier] СОБЫТИЕ: hidden.bs.modal');
+ if (shouldReload) {
+ shouldReload = false;
+ reloadGrid();
+ }
});
function reloadGrid() {
- console.log('[supplier] reloadGrid: старт, instanceId=' + instanceId);
- $.ajax({
- url: urls.index,
- type: 'GET',
- success: function (html) {
- var $grid = $('<div>').append($.parseHTML(html, document, false)).find('#supplier-pjax');
- console.log('[supplier] reloadGrid: #supplier-pjax найден в ответе:', $grid.length > 0);
- if ($grid.length) {
- $('#supplier-pjax').replaceWith($grid);
- console.log('[supplier] reloadGrid: грид заменён');
- }
- },
- error: function (xhr, status) {
- console.error('[supplier] reloadGrid: ошибка', status, xhr.status);
- }
- });
+ $.pjax.reload({container: '#supplier-pjax', url: urls.index, timeout: 5000});
}
// Создание
success: function (resp) {
console.log('[supplier] сохранение ответ:', resp);
if (resp.success) {
+ shouldReload = true;
supplierModal.hide();
- reloadGrid();
} else if (resp.errors) {
$saveBtn.prop('disabled', false);
$.each(resp.errors, function (field, messages) {