]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
добавил обработчик поиска и кнопки
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 11 Sep 2024 11:00:28 +0000 (14:00 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 11 Sep 2024 11:00:28 +0000 (14:00 +0300)
erp24/views/api/integrations_index.php

index e4807e9c714bf2c2d2af35dd5a41130b64e3db7c..8a65a493dd4d86bfbe9843ffa1d8b9b6d0f1e798 100644 (file)
@@ -17,50 +17,120 @@ use yii\web\View;
  */
 
 $this->registerJs(<<<JS
-    function ajaxLogSave(id,val) {
+    function ajaxLogSave(id, val) {
         $.ajax({
             url: '/api/integration-save/',
             method: 'POST',
-            data: '&id='+id+'&val='+val+'&entity=$entity&export_id=$export_id',
-            success: function(data){
+            data: '&id=' + id + '&val=' + val + '&entity=$entity&export_id=$export_id',
+            success: function(data) {
                 alert(data);
+                // После успешного сохранения удаляем кнопки
+                $('.save-guid, .cancel-guid').remove();
             }
         });
     }
-    
-    $('td.tdd').each(function (index, element) {
-        input_search($(element).attr('id'),$(element).attr('data-id'));
-    });
 
-    $('.poisk-item').change(function() {
-        var id=$(this).attr('data-id');
-        get_select_search(id);
-    });
+    // Функция для отображения кнопок "Сохранить" и "Отмена"
+    function showActionButtons(inputElement) {
+        // Удаляем старые кнопки перед добавлением новых
+        $('.save-guid, .cancel-guid').remove();
+        
+        // Кнопка "Сохранить"
+        var saveButton = $('<button class="save-guid btn btn-success">Сохранить</button>');
+        var cancelButton = $('<button class="cancel-guid btn btn-danger">Отмена</button>');
+        
+        // Вставляем кнопки после элемента input
+        inputElement.after(cancelButton).after(saveButton);
+        
+        // Обработчик нажатия на кнопку "Сохранить"
+        saveButton.click(function() {
+            var id = inputElement.attr('data-id');
+            var val = inputElement.val();
+            if (confirm('Вы уверены, что хотите сохранить изменения?')) {
+                ajaxLogSave(id, val); // Запуск сохранения данных через AJAX
+            }
+            $('.save-guid').remove(); // Удаляем кнопки
+             $('.cancel-guid').remove(); // Удаляем кнопки
+        });
 
+        // Обработчик нажатия на кнопку "Отмена"
+        cancelButton.click(function() {
+            inputElement.val(''); // Очищаем поле
+            
+            
+            // Получаем data-id из inputElement
+            var dataId = inputElement.attr('data-id');
+            
+            // Находим соответствующий select по name атрибуту
+            var relatedSelect = $('select[name="' + dataId + '"]');
+            
+            // Очищаем значение найденного select
+            if (relatedSelect.length > 0) {
+                relatedSelect.val(null).trigger('change'); // Очищаем и обновляем состояние select2
+            }
+             $('.save-guid').remove(); // Удаляем кнопки
+             $('.cancel-guid').remove(); // Удаляем кнопки
+        });
+    }
 
+    // Обработка изменения значения в поле guid_input
     $('.guid_input').change(function() {
-        var id=$(this).attr('data-id');
-        var val=$(this).val();
-        ajaxLogSave(id,val);
+        var inputElement = $(this);
+        showActionButtons(inputElement); // Отображаем кнопки после изменения
     });
 
-    $('.poisk-item').click(function() {
-        var id=$(this).attr('data-id');
-        if($(this).val()!=='' && $(this).val()!==' ') get_select_search(id);
-    });
+   
+   /* $('.poisk-item').change(function() {
+        var id = $(this).attr('data-id');
+        get_select_search(id);
 
-    function get_select_search(id) {
+        // Отображение кнопок после выбора значения
+        var guidInput = $(".guid_input[data-id=" + id + "]");
+        showActionButtons(guidInput);
+    });*/
+
+    
+    /*$('.poisk-item').click(function() {
+        var id = $(this).attr('data-id');
+        if ($(this).val() !== '' && $(this).val() !== ' ') {
+            get_select_search(id);
+        }
+    });*/
+
+    // Добавляем прослушиватель события на все select'ы с id, начинающимся на "w"
+    $('select[id^="w"]').on('change', function() {
+        // Получаем значение выбранного элемента select
+        var selectedValue = $(this).val();
+
+        // Получаем значение атрибута name
+        var selectName = $(this).attr('name');
+
+        // Ищем соответствующий input с data-id, равным атрибуту name селекта
+        var relatedInput = $('input[data-id="' + selectName + '"]');
+
+        // Если найден соответствующий input, обновляем его значение
+        if (relatedInput.length > 0) {
+            relatedInput.val(selectedValue);
+
+            // Показываем кнопки "Сохранить" и "Отмена"
+            showActionButtons(relatedInput);
+        }
+    });
+    // поиск реализован через select2
+    /*function get_select_search(id) {
         $.ajax({
             url: '/api/poisk-item/',
             method: 'POST',
-            data: '&id='+id+'&search='+$('#std_'+id).val()+'&tip=" . $entity . "',
-            success: function(data){
-                $('#std_'+id).after('<div style=\"position:absolute;\">'+data+'</div>');
+            data: '&id=' + id + '&search=' + $('#std_' + id).val() + '&tip=" . $entity . "',
+            success: function(data) {
+                $('#std_' + id).after('<div style="position:absolute;">' + data + '</div>');
             }
         });
-    }
+    }*/
 
 JS);
+
+
 ?>
 
 <div class="p-8">