]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix button
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 21 Apr 2026 12:20:54 +0000 (15:20 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 21 Apr 2026 12:20:54 +0000 (15:20 +0300)
erp24/web/js/supplier/index.js

index 873ed71e1e3038fa094da4bb062a69a1a4b038ea..a7127f510eac4c8ab690c781324d28d0fe368829 100644 (file)
@@ -1,36 +1,84 @@
 (function () {
+    var instanceId = 'supplier-' + Date.now();
+    console.log('[supplier] IIFE запущен, instanceId=' + instanceId);
+
     var cfg = window.supplierConfig || {};
     var urls = cfg.urls || {};
+    console.log('[supplier] urls:', urls);
+
+    var modalEl = document.getElementById('supplier-modal');
+    console.log('[supplier] #supplier-modal найден:', !!modalEl);
+
+    if (!modalEl) {
+        console.error('[supplier] КРИТИЧНО: #supplier-modal не найден в DOM — modal не создан');
+        return;
+    }
+
+    // Проверяем, есть ли уже Bootstrap-инстанс на элементе
+    var existingInstance = bootstrap.Modal.getInstance(modalEl);
+    console.log('[supplier] существующий bootstrap.Modal.getInstance:', existingInstance);
+
+    var supplierModal = new bootstrap.Modal(modalEl);
+    console.log('[supplier] новый bootstrap.Modal создан:', supplierModal);
 
-    var supplierModal = new bootstrap.Modal(document.getElementById('supplier-modal'));
     var editingId = null;
 
     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');
+    });
+
     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);
             }
         });
     }
 
     // Создание
+    var createBtn = document.getElementById('btn-supplier-create');
+    console.log('[supplier] #btn-supplier-create найден:', !!createBtn);
+
     $('#btn-supplier-create').on('click', function () {
+        console.log('[supplier] клик на #btn-supplier-create, instanceId=' + instanceId);
         var $btn = $(this);
+        console.log('[supplier] кнопка disabled:', $btn.prop('disabled'));
         if ($btn.prop('disabled')) return;
         $btn.prop('disabled', true);
         editingId = null;
         $('#supplier-modal-title').text('Добавить поставщика');
         $('#supplier-modal-body').html(loaderHtml);
+        console.log('[supplier] вызываем supplierModal.show()');
         supplierModal.show();
+        console.log('[supplier] supplierModal.show() вызван, загружаем форму:', urls.createForm);
         $.get(urls.createForm, function (html) {
+            console.log('[supplier] createForm ответ получен, длина HTML:', html.length);
             $('#supplier-modal-body').html(html);
+        }).fail(function (xhr, status) {
+            console.error('[supplier] createForm ошибка:', status, xhr.status, xhr.responseText);
         }).always(function () {
             $btn.prop('disabled', false);
         });
@@ -40,6 +88,7 @@
     $(document).on('click', '.btn-supplier-edit', function (e) {
         e.preventDefault();
         var $btn = $(this);
+        console.log('[supplier] клик .btn-supplier-edit id=' + $btn.data('id') + ', instanceId=' + instanceId);
         if ($btn.prop('disabled')) return;
         $btn.prop('disabled', true);
         editingId = $btn.data('id');
         $('#supplier-modal-body').html(loaderHtml);
         supplierModal.show();
         $.get(urls.updateForm, {id: editingId}, function (html) {
+            console.log('[supplier] updateForm ответ получен');
             $('#supplier-modal-body').html(html);
+        }).fail(function (xhr, status) {
+            console.error('[supplier] updateForm ошибка:', status, xhr.status);
         }).always(function () {
             $btn.prop('disabled', false);
         });
     // Сохранение
     $(document).on('click', '#btn-supplier-save', function () {
         var $saveBtn = $(this);
+        console.log('[supplier] клик #btn-supplier-save, disabled=' + $saveBtn.prop('disabled') + ', instanceId=' + instanceId);
         if ($saveBtn.prop('disabled')) return;
         $saveBtn.prop('disabled', true);
 
         var $form = $('#supplier-form');
         var url = editingId ? urls.update + '?id=' + editingId : urls.create;
+        console.log('[supplier] сохранение: url=' + url + ', editingId=' + editingId);
 
         $form.find('.is-invalid').removeClass('is-invalid');
         $form.find('.invalid-feedback').remove();
             data: $form.serialize(),
             dataType: 'json',
             success: function (resp) {
+                console.log('[supplier] сохранение ответ:', resp);
                 if (resp.success) {
                     supplierModal.hide();
                     reloadGrid();
                     });
                 }
             },
-            error: function () {
+            error: function (xhr, status) {
+                console.error('[supplier] сохранение ошибка:', status, xhr.status, xhr.responseText);
                 $saveBtn.prop('disabled', false);
                 alert('Ошибка сервера');
             }
             return;
         }
 
+        console.log('[supplier] деактивация id=' + id);
         $.ajax({
             url: urls.delete + '?id=' + id,
             type: 'POST',
             data: {_csrf: yii.getCsrfToken()},
             dataType: 'json',
             success: function (resp) {
+                console.log('[supplier] деактивация ответ:', resp);
                 if (resp.success) {
                     reloadGrid();
                 } else {
                     alert(resp.message || 'Ошибка деактивации');
                 }
             },
-            error: function () {
+            error: function (xhr, status) {
+                console.error('[supplier] деактивация ошибка:', status, xhr.status);
                 alert('Ошибка сервера');
             }
         });