]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Ошибки удаления и редактирования
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 16 Jan 2025 07:16:08 +0000 (10:16 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 16 Jan 2025 07:16:08 +0000 (10:16 +0300)
erp24/controllers/StoresTypeListController.php
erp24/web/js/crud/stores-type-list/index.js

index a695d4863b74ff9ef771877dcaf44916d176b492..474cfec6088926e4ad765d90b0ef7b609c2f14a1 100644 (file)
@@ -41,10 +41,10 @@ class StoresTypeListController extends Controller
     {
         $model = new StoresTypeList();
         $editId = $this->request->post('editId');
-        $deleteId = $this->request->post('deleteId');
 
         if ($model->load($this->request->post())) {
-            if (!empty($editId) && empty($deleteId)) {
+            if (!empty($editId)) {
+                // Редактирование
                 $existingModel = StoresTypeList::findOne($editId);
                 if ($existingModel) {
                     $existingModel->type_name = $model->type_name;
@@ -53,7 +53,7 @@ class StoresTypeListController extends Controller
                         Yii::$app->session->setFlash('success', 'Запись успешно обновлена.');
                         return $this->redirect(['index']);
                     } else {
-                      //  Yii::$app->session->setFlash('error', 'Ошибка сохранения.');
+                        Yii::$app->session->setFlash('error', 'Ошибка сохранения.');
                     }
                 }
             } else {
@@ -62,18 +62,9 @@ class StoresTypeListController extends Controller
                     Yii::$app->session->setFlash('success', 'Новая запись успешно создана.');
                     return $this->redirect(['index']);
                 } else {
-                  //  Yii::$app->session->setFlash('error', 'Ошибка сохранения.');
+                    Yii::$app->session->setFlash('error', 'Ошибка сохранения.');
                 }
             }
-
-        }
-
-        if (!empty($deleteId)) {
-            $deleteModel = StoresTypeList::findOne($deleteId);
-            if ($deleteModel && $deleteModel->delete()) {
-                Yii::$app->session->setFlash('success', 'Запись успешно удалена.');
-                return $this->redirect(['index']);
-            }
         }
 
         $dataProvider = new ActiveDataProvider([
@@ -161,6 +152,10 @@ class StoresTypeListController extends Controller
     {
         $this->findModel($id)->delete();
 
+        if (Yii::$app->request->isAjax) {
+            return $this->asJson(['success' => true, 'message' => 'Запись успешно удалена.']);
+        }
+
         return $this->redirect(['index']);
     }
 
index 43cbad4be606effda809fcd43a4ca5448cde9d8a..7e2b297293b45aff32494e31fdc1f8e2b4e664cb 100644 (file)
@@ -7,6 +7,8 @@ document.addEventListener('DOMContentLoaded', function () {
     const cancelBtn = document.getElementById('cancel-btn');
     const saveBtn = document.getElementById('save-btn');
     const editBtn = document.getElementById('edit-btn');
+    let typeNameVar = '';
+    let idData = '';
 
     list.addEventListener('click', function (event) {
         const target = event.target;
@@ -19,8 +21,9 @@ document.addEventListener('DOMContentLoaded', function () {
                     if (data.error) {
                         alert(data.error);
                     } else {
-                        typeNameField.value = data.type_name;
-                        editIdInput.value = id;
+                        typeNameVar = data.type_name;
+                        idData = id;
+                        editIdInput.value = '';
                         deleteIdInput.value = '';
 
                         document.querySelectorAll('.list-group-item').forEach(item => {
@@ -35,27 +38,55 @@ document.addEventListener('DOMContentLoaded', function () {
     });
 
     editBtn.addEventListener('click', function () {
-        const id = editIdInput.value;
+
+
+        const id = idData;
+
         if (id) {
-            saveBtn.click();
+            editIdInput.value = id;
+            typeNameField.value = typeNameVar;
         } else {
             alert('Выберите запись для редактирования.');
         }
     });
 
     deleteBtn.addEventListener('click', function () {
-        const id = editIdInput.value;
+        const id = idData;
+
         if (id && confirm('Вы уверены, что хотите удалить запись?')) {
+            fetch(`/stores-type-list/delete?id=${id}`, {
+                method: 'POST',
+                headers: {
+                    'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content // CSRF-токен
+                },
+            })
+                .then(response => {
+                    if (response.ok) {
+                        alert('Запись успешно удалена.');
+                        location.reload();
+                    } else {
+                        alert('Ошибка при удалении записи.');
+                    }
+                })
+                .catch(error => {
+                    console.error('Ошибка:', error);
+                    alert('Ошибка при удалении записи.');
+                });
+
             editIdInput.value = '';
-            deleteIdInput.value = id;
-            saveBtn.click();
+            deleteIdInput.value = '';
+            typeNameVar = '';
+            idData = '';
         }
+
     });
 
     cancelBtn.addEventListener('click', function () {
         typeNameField.value = '';
         editIdInput.value = '';
         deleteIdInput.value = '';
+        typeNameVar = '';
+        idData = '';
         deleteBtn.classList.add('d-none');
         editBtn.classList.add('d-none');
         document.querySelectorAll('.list-group-item').forEach(item => {