Filter User

PHOTO EMBED

Wed Oct 11 2023 06:20:01 GMT+0000 (Coordinated Universal Time)

Saved by @mradul

function filterUsers() {
    var filter_id = $('.filter_id').val();
    var filter_phone = $('.filter_phone').val();
    var filter_email = $('.filter_email').val();
    var _token = $("input[name=_token]").val();
    var filter_status = $("#filter_status").val();
    var filter_pan = $(".filter_pan").val();
    var filter_fields = $("#filter_fields").val();
    var filter_account_type = $("#filter_account_type").val();
    var filter_accountstatus = $("#filter_accountstatus").val();

    // Check if any filters are provided, otherwise reload the page
    if (
        filter_id.length < 1 &&
        filter_phone.length < 1 &&
        filter_email.length < 1 &&
        filter_status.length < 1 &&
        filter_fields.length < 1 &&
        filter_account_type.length < 1 &&
        filter_accountstatus.length < 1 &&
        filter_pan.length < 1
    ) {
        window.location.reload();
        return; // Exit the function early to prevent further execution
    }

    $.ajax({
        type: "POST",
        url: "{{ url('admin/filter-users') }}",
        enctype: 'multipart/form-data',
        data: {
            '_token': _token,
            'filter_id': filter_id,
            'filter_phone': filter_phone,
            'filter_email': filter_email,
            'filter_status': filter_status,
            'filter_pan': filter_pan,
            'filter_fields': filter_fields,
            'filter_account_type': filter_account_type,
            'filter_accountstatus': filter_accountstatus,
        },
        beforeSend: function () {
            $(".account_activity_pagination").html('');
            $(".filtered_users").html('<div class="loading"></div>');
            $(".totalRec").html('<span>Total::.....</span>');
            $("#Userfilter_spinner").css("pointer-events", "none");
        },
        success: function (data) {
            if (data) {
                $(".totalRec").html('<span>Total::' + data.totalRec + '</span>');
                $(".filtered_users").html('');
                var paginate = data.records.per_page;
                const possibleBlocks = Math.ceil(data.records.total / paginate);

                var sr_num = 1;
                function appendUserTableRow(index, id, first_name, phone, email, digistatus, roles) {
                    var baseUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;
                    var editLink = '<a class="btn-yellow btn-sm text-decoration-none" href="'+ baseUrl + '/' + id + '/edit">Edit</a>';
                    var tableRow = '<tr><td>' + index + '</td><td>' + id + '</td><td>' + first_name + '</td><td>' + phone + '</td><td>' + email + '</td><td class="digistatus">' + digistatus + '</td><td>' + roles[0] + '</td><td>' + editLink + '</td></tr>';
                    $(".filtered_users").append(tableRow);
                }
                $.each(data.records.data, function (index, value) {
                    sr_num++;
                    // var segUrl = @json(Request::segment(count(Request::segments())));
                    $.ajax({
                        type: "GET",
                        url: '{{ url('admin/user-role/').'/'}}' + value.id,
                        data: {},
                        success: function (userRoles) {
                            var roles = userRoles.length === 0 ? '-' : userRoles;
                            var digistatus = '';

                            if (value.digilocker_verification_responce == 2) {
                                var userID = value.id;
                                $.ajax({
                                    type: "GET",
                                    url: '{{ url(app()->getLocale()).'/user/failed-digilocker-details/'}}',
                                    data: {
                                        'userID': userID
                                    },
                                    success: function (failedData) {
                                        digistatus = '<span class="text-red">Failed</span><div class="failDetail"><p class="Unmatched">(Unmatched Details)</p>';
                                        $.each(failedData.failedDetail, function (key, val) {
                                            if (val.digilocker_verification_responce != null) {
                                                var result = JSON.parse(val.digilocker_verification_responce).result;
                                                var name = result.name;
                                                var uid = result.uid;
                                                var dob = result.dob;
                                                var gender = result.gender;

                                                digistatus += '<p>' + name + ' -- ' + gender + '</p>';
                                                digistatus += '<p>' + uid + ' -- ' + dob + '</p>';
                                                digistatus += '<hr>';
                                            }
                                        });
                                        digistatus += '</div>';
                                        appendUserTableRow(sr_num, value.id, value.first_name, value.phone, value.email, digistatus, roles[0]);
                                    }
                                });
                            } else if (value.digilocker_verification_responce == null) {
                                digistatus = 'N/A';
                                appendUserTableRow(sr_num, value.id, value.first_name, value.phone, value.email, digistatus, roles[0]);
                            } else {
                                digistatus = '<span class="text-green">Completed</span>';
                                appendUserTableRow(sr_num, value.id, value.first_name, value.phone, value.email, digistatus, roles[0]);
                            }
                        }
                    });
                });

                $(".account_activity_pagination").html('');
                var bloc = '<nav class="d-flex justify-items-center justify-content-between"><ul class="pagination"><li class="page-item disabled" aria-disabled="true" aria-label="« Previous" style="display:none"><span class="page-link" aria-hidden="true">‹</span></li>';
                var from = 0;
                var to = paginate;

                for (i = 1; i <= possibleBlocks; i++) {
                    var bloc = bloc + '<li class="page-item" aria-current="page" onclick="getFilteredUsersData_withLimit(' + from + ',' + to + ')"><span class="page-link" style="border:1px solid #e2d8d8">' + i + '</span></li>';
                    from = from + paginate;
                    to = to + paginate;
                }

                var bloc = bloc + '<li class="page-item" style="display:none"><a class="page-link" href="#" rel="next" aria-label="Next »">›</a></li></ul></nav>';
                $(".account_activity_pagination").html(bloc);
            } else {
                triggerAlert('Record not found', 'error');
            }
        },
        complete: function (data) {
            $("#Userfilter_spinner").text("");
            $("#Userfilter_spinner").css("pointer-events", "none");
        },
        error: function (xhr, status, error) {
            var erroJson = JSON.parse(xhr.responseText);
            // alert(erroJson.error);
        }
    });
}
content_copyCOPY