Laravel SweetAlert2 - блокировать пользовательский интерфейс при отправке запроса ajax - PullRequest
0 голосов
/ 18 марта 2020

У меня есть кнопка, которую пользователь нажимает и спрашивает его, хочет ли он продолжить запрос или нет. Если он выберет «ОК», на сервер будет отправлен запрос AJAX, а когда ответ получен, будет запущено новое «сладкое» оповещение, информирующее пользователя о том, что запрос был выполнен успешно или нет.

Проблема в том, что я если пользователь подтверждает, что запрос отправлен, и ответ получен, пользовательский интерфейс может снова нажать кнопку, запускающую запрос.

Если есть какой-либо способ заблокировать пользовательский интерфейс во время запроса отправляется и / или закрывается первый подсластитель, когда получен ответ, и запускает второй подсластитель для информирования пользователя о результате запроса?

Это код:


"use strict";

function likeProperty(matchid) {

    swal.fire({
        buttonsStyling: false,
        text: "¿Esta seguro que desea enviar una notificación al agente informando que estás interesado en su propiedad?",
        type: "question",
        confirmButtonText: "Si, enviar!",
        confirmButtonClass: "btn btn-sm btn-bold btn-brand",
        showCancelButton: true,
        cancelButtonText: "No, cancelar",
        cancelButtonClass: "btn btn-sm btn-bold btn-danger"

    }).then(function (result) {
        if (result.value) {

            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });

            $.ajax({
                type: 'POST',
                url: '/processes/offerdemand/matchlike/'+ matchid,
                data: {
                    'id': matchid,
                },
                dataType: 'JSON',

                success: function (data) {

                    if (data.status != 200) {

                        console.log(data.status);
                        swal.fire({
                            "title": "",
                            "text": "Ocurrió un error, contactar al administrador",
                            "type": "error",
                            showConfirmButton: !1,
                            timer: 3000,
                            onClose: () => {
                                window.location.reload();
                            }
                        });

                    }

                    if (data.status = 200) {
                        swal.fire({
                            "title": "",
                            "text": "Se ha notificado al agente que estas interesado en su propiedad!",
                            "type": "success",
                            showConfirmButton: !1,
                            timer: 3000,
                            onClose: () => {
                                window.location.reload();
                            }
                        });
                    }

                    // hide like button
                    $('#likeprop'+matchid).hide();
                    // show like button
                    $('#unlikeprop'+matchid).show();
                    // window.location.reload();
                    console.log(data);
                },
            })
            var xhr = $.ajax();
            console.log(xhr)

        }
    });
}
...