Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/langganan.fixmate.id/resources/views/Langganan/
Upload File :
Current File : /home/aplikasiposinfo/public_html/langganan.fixmate.id/resources/views/Langganan/script.blade.php

<script src="{{ url('https://cdn.jsdelivr.net/npm/[email protected]/moment.min.js') }}"></script>


<script>
    // Create an instance of Notyf
    var notyf = new Notyf();
    // REFRESH FORM -Start-
    function refreshForm() {
        $('#addForm #email').val('');
        $('#addForm #paket_id').val('');

    }
    // REFRESH FORM -End-


    function status_domain_label(status) {
        if (status === 'not_found') {
            return '<span class="badge bg-light-danger">Not Found</span>';
        } else if (status === 'pending') {
            return `<span class="badge bg-light-warning">Pending</span>`;
        } else if(status === "success") {
            return `<span class="badge bg-light-success">Success</span>`;
        } else {
            return `<span class="badge bg-light-default">${status}</span>`;
        }
    }

    function render_row(langganan) {
        var row = `
                        <tr id="langganan-${langganan.id}">
                            <td>${langganan.no_langganan}</td>
                            <td>${langganan.user.email}</td>
                            <td>${langganan.user.profile.no_telp}</td>
                            <td>${langganan.paket.nama_paket}</td>
                            <td>${langganan.tgl_mulai}</td>
                            <td>${langganan.tgl_selesai}<br>
                                ${langganan.kadaluwarsa == true ? '<span class="badge bg-light-warning">Kadaluwarsa</span>' : ''}
                                </td>
                            <td>
  ${langganan.status === 'paket aktif'
                ? '<span class="badge bg-light-success">paket aktif</span>'
                : `<span class="badge bg-light-secondary">${langganan.status}</span>`}
</td>
<td>${langganan.status_domain == "success"?`<a href="${langganan.link}" target="_blank">${langganan.domain}</a>`:langganan.domain}<br>${status_domain_label(langganan.status_domain)}</td>
                            <td>
                                <div>
                                    <div class="btn-group  mb-1">
                                        <span class="loading" style="display:none;">Loading...</span>
                                        <div class="dropdown">
                                            <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton7"
                                                data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                                 Action
                                            </button>
                                            <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton7">
                                                <li>
                                                    <button class="dropdown-item" onclick="checkCreatedDomain('${langganan.log_file}','${langganan.domain}',${langganan.id})" >Cek Domain</button>
                                                </li>
                                                <li>
                                                    <button class="dropdown-item aktivasi-btn" data-id="${langganan.id}" >${langganan.status === 'paket aktif' ? 'Nonaktifkan Paket' : 'Aktifkan Paket'}</button>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                    <button class="btn btn-info text-white edit-btn btn-sm" data-bs-toggle="modal"
                                    data-bs-target="#modalEdit" data-id="${langganan.id}" data-email="${langganan.user.email}" data-paket_id="${langganan.paket.id}"
                                    data-bs-target="#modalEdit" data-id="${langganan.id}" data-email="${langganan.user.email}" data-paket_id="${langganan.paket.id}"
                                    data-link="${langganan.link}"
                                    data-domain="${langganan.domain}"
                                    data-username="${langganan.username}"
                                    data-password="${langganan.password}"
                                  >
                                    <i class="bi bi-pencil-square"></i>
                                    </button>
                                    <button class="btn btn-danger btn-sm delete-btn" data-id="${langganan.id}">
                                        <i class="bi bi-trash-fill"></i>
                                        </button>
                                         <a href="https://wa.me/${langganan.user.profile.no_telp != undefined ? langganan.user.profile.no_telp.replace(/^0/, '+62') : "-"}"
                                                                target="blank_" class="btn btn-success btn-sm"
                                                                > <i class="bi bi-whatsapp"></i></a>
                                        </div>
                                        </td>
                                        </tr>`;

        return row;
    }

    // REFRESH TABLE -Start-
    function refreshTable(searchQuery) {
        var TableBody = $('#mainTable tbody');
        var currentPageUrl = '/getLangganan?page=1';

        TableBody.html('<tr><td colspan="6" class="text-center">Memuat data...</td></tr>');

        $.ajax({
            url: currentPageUrl,
            type: 'GET',
            data: {
                search: searchQuery
            },
            cache: false,
            success: function (response) {

                if (response.status === 'success') {
                    TableBody.empty();

                    nextPageUrl = response.next_page_url || null;

                    $.each(response.data, function (index, langganan) {
                        // var kadaluwarsa = false;
                        // if (moment(langganan.tgl_selesai).isBefore(moment(), 'day')) {
                        //     kadaluwarsa = true;
                        // } else {
                        //     kadaluwarsa = false;
                        // }
                        // langganan.kadaluwarsa = kadaluwarsa;
                        var row = render_row(langganan);
                        TableBody.append(row);
                    });
                } else {
                    TableBody.html(
                        '<tr><td colspan="6" class="text-center">Data Tidak Ditemukan!</td></tr>');
                }
            },
            error: function (xhr) {
                TableBody.html('<tr><td colspan="6" class="text-center">Data Tidak Ditemukan!</td></tr>');

            },
            complete: function () {
                isLoading = false;
            }
        });
    }
    // REFRESH TABLE -End-



    //  LOAD DATA -Start-
    let nextPageUrl = '/getLangganan?page=2'
    var isLoading = false;

    function loadData(searchQuery = '') {
        var TableBody = $('#mainTable tbody');
        if (!nextPageUrl || isLoading) return;

        isLoading = true;
        $.ajax({
            url: nextPageUrl,
            type: 'GET',
            data: {
                search: searchQuery
            },
            success: function (response) {
                if (response.status === 'success') {
                    nextPageUrl = response.next_page_url || null;

                    


                    $.each(response.data, function (index, langganan) {
                        // var kadaluwarsa = false;
                        // if (moment(langganan.tgl_selesai).isBefore(moment(), 'day')) {
                        //     kadaluwarsa = true;
                        // } else {
                        //     kadaluwarsa = false;
                        // }

                        // langganan.kadaluwarsa = kadaluwarsa;
                        var row = render_row(langganan);
                        TableBody.append(row);
                    });
                } else {
                    TableBody.html(
                        '<tr><td colspan="6" class="text-center">Gagal Memuat Data!</td></tr>');
                }
            },
            error: function (xhr) {
                TableBody.html('<tr><td colspan="6" class="text-center">Data Tidak Ditemukan!</td></tr>');
            },
            complete: function () {
                isLoading = false; // Selesai memuat data
            }
        });
    }
    // LOAD DATA -End-



    // LOAD DATA WHEN SCROLL -Start-
    $(window).on('scroll', function () {
        if ($(window).scrollTop() + $(window).height() >= $(document).height() - 50) {
            loadData();
        }
    });
    // LOAD DATA WHEN SCROLL -End-





    // FILL EDIT MODAL -Start-
    $(document).on('click', '.edit-btn', function (e) {
        var id = $(this).data('id');
        var email = $(this).data('email');
        var paket_id = $(this).data('paket_id');
        var link = $(this).data('link');
        var domain = $(this).data('domain');
        var username = $(this).data('username');
        var password = $(this).data('password');


        $('#editForm #edit_id').val(id);
        $('#editForm #edit_email').val(email);
        $('#editForm #edit_paket_id').val(paket_id);
        $('#editForm #link').val(link);
        $('#editForm #domain').val(domain);
        $('#editForm #username').val(username);
        $('#editForm #password').val(password);

    });
    // FILL EDIT MODAL -End-





    // ADD DATA WHEN SUBMIT BUTTON GET CLICK -Start-

    $('#submit-btn').click(function (e) {
        e.preventDefault();

        var formData = new FormData();
        formData.append('_method', 'POST');
        formData.append('email', $('#email').val());
        formData.append('paket_id', $('#paket_id').val());


        $.ajax({
            url: '{{ route('langganan.store') }}',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            success: function (response) {
                if (response.status == 'success') {
                    showAlert(
                        'Data Berhasil Di Tambahkan!',
                        response.message,
                        response.status,
                        function () { }
                    );
                    refreshTable();
                    refreshForm();
                } else {
                    showAlert(
                        'Data Gagal Di Tambahkan!',
                        response.message,
                        response.status,
                        function () { }
                    );
                }
            },
            error: function (xhr) {
                if (xhr.status === 422) {
                    var errors = xhr.responseJSON.errors;
                    console.log(errors);
                    var errorMessage = '';
                    if (typeof errors === "object" && errors !== null) {
                        $.each(errors, function (key, value) {
                            errorMessage += value + '\n';
                        });
                    } else {
                        errorMessage = errors;
                    }
                    showAlert(
                        'Gagal Ditambahkan!',
                        errorMessage,
                        'error',
                        function () { }
                    );
                } else {
                    alert('Terjadi kesalahan server.');
                }
            }
        });
    });
    // ADD DATA WHEN SUBMIT BUTTON GET CLICK -End-



    // UPDATE WHEN UPDATE BUTTON GET CLICK -Start-






    $(document).on('click', '#update-btn', function (e) {
        e.preventDefault();

        var id = $('#edit_id').val();
        var formData = new FormData();
        formData.append('_method', 'PUT');
        formData.append('email', $('#edit_email').val());
        formData.append('paket_id', $('#edit_paket_id').val());
        formData.append('link', $('#link').val());
        formData.append('domain', $('#domain').val());
        formData.append('username', $('#username').val());
        formData.append('password', $('#password').val());



        $.ajax({
            url: `{{ route('langganan.update', ':id') }}`.replace(':id', id),
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            success: function (response) {
                if (response.status == 'success') {
                    showAlert(
                        'Berhasil Diubah!',
                        response.message,
                        response.status,
                        function () {
                            refreshTable()
                        }
                    );

                } else {
                    showAlert(
                        'Gagal Diubah!',
                        response.errors,
                        response.status,
                        function () { }
                    );
                }
            },
            error: function (xhr) {
                if (xhr.status === 422) {
                    var errors = xhr.responseJSON.errors;
                    var errorMessage = '';
                    if (typeof errors === "object" && errors !== null) {
                        $.each(errors, function (key, value) {
                            errorMessage += value + '\n';
                        });
                    } else {
                        errorMessage = errors;
                    }
                    showAlert(
                        'Gagal Diubah!',
                        errorMessage,
                        'error',
                        function () { }
                    );
                } else {
                    alert('Terjadi kesalahan server.');
                }
            }
        });
    });
    // UPDATE WHEN UPDATE BUTTON GET CLICK -End-



    // DELETE WHEN DELETE BUTTON GET CLICK -Start-

    $(document).on('click', '.delete-btn', function (e) {
        e.preventDefault();

        var id = $(this).data('id');

        deleteAlert(function () {
            $.ajax({
                url: '/langganan/' + id,
                type: 'DELETE',
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                success: function (response) {
                    if (response.status === 'success') {
                        showAlert(
                            'Data Berhasil Dihapus!',
                            response.message,
                            response.status,
                            function () {
                                refreshTable();
                            }
                        );
                    } else {
                        showAlert(
                            'Data Gagal Dihapus!',
                            response.message,
                            response.status,
                            function () { }
                        );
                    }
                },
                error: function (xhr) {
                    if (xhr.status === 422) {
                        var errors = xhr.responseJSON.errors;
                        var errorMessage = '';
                        $.each(errors, function (key, value) {
                            errorMessage += value + '\n';
                        });
                        showAlert(
                            'Gagal Diubah!',
                            errorMessage,
                            'error',
                            function () { }
                        );
                    } else {
                        alert('Terjadi kesalahan server.');
                    }
                }
            });
        });
    });
    // DELETE WHEN DELETE BUTTON GET CLICK -End-



    // REFRESH THE TABLE WHEN THERE IS INPUT IN SEARCH BAR -Start-
    $('#search-bar').on('input', function () {
        const searchQuery = $(this).val();

        refreshTable(searchQuery);
    });
    // REFRESH THE TABLE WHEN THERE IS INPUT IN SEARCH BAR -End-



    // WHEN DOCUMENT IS FULLY LOADED -Start
    $(document).ready(function () {

        refreshTable('');

    });
    // WHEN DOCUMENT IS FULLY LOADED -End-


    function checkCreatedDomain(logFile, subdomain, id) {
        $.ajax({
            url: `{{ route('check.created.domain') }}?logFile=${logFile}&subdomain=${subdomain}`,
            type: 'GET',
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            success: function (response) {
                if (response.status === 'success') {
                    $(`#langganan-${id}`).find('.loading').hide();
                    $(`#langganan-${id}`).find('.dropdown').show();
                    notyf.success(`Subdomain ${subdomain} berhasil dibuat!`);
                    refreshTable();
                } else if (response.status === 'pending') {
                    $(`#langganan-${id}`).find('.loading').show();
                    $(`#langganan-${id}`).find('.dropdown').hide();
                    setTimeout(function () {
                        checkCreatedDomain(logFile, subdomain, id);
                    }, 5000); // Cek lagi setelah 5 detik
                } else {
                    notyf.error(`Subdomain ${subdomain} gagal dibuat: ` + response.message);
                    $(`#langganan-${id}`).find('.loading').hide();
                    $(`#langganan-${id}`).find('.dropdown').show();
                }
                
            },
            error: function (xhr) {
                // $(`#langganan-${id}`).find('.loading').hide();
                // $(`#langganan-${id}`).find('.dropdown').show();
                // alert('Terjadi kesalahan server.');
                setTimeout(function () {
                    checkCreatedDomain(logFile, subdomain, id);
                }, 5000);
            }
        });
    }


    $(document).on('click', '.aktivasi-btn', function (e) {
        e.preventDefault();
        var id = $(this).data('id');
        //find parent .dropdown and hide and show .loading in same td
        $(this).closest('td').find('.loading').show();
        $(this).closest('td').find('.dropdown').hide();
        $.ajax({
            url: `{{ route('langganan.aktifasi', ':id') }}`.replace(':id', id),
            type: 'POST',
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            success: function (response) {
                if (response.status === 'success') {


                    if (response.domainResult != undefined && response.domainResult != null) {
                        showAlert(
                            'Berhasil diaktifkan!',
                            "menunggu proses pembuatan domain...",
                            "warning",
                            function () {
                                checkCreatedDomain(response.domainResult.log_file, response.domainResult.subdomain, id);
                            }
                        );
                    } else {
                        showAlert(
                            'Langganan',
                            response.message,
                            response.status,
                            function () {
                                refreshTable();
                            }
                        );
                        $(this).closest('td').find('.loading').hide();
                        $(this).closest('td').find('.dropdown').show();
                    }
                } else {
                    showAlert(
                        'Gagal!',
                        response.message,
                        response.status,
                        function () { }
                    );
                    $(this).closest('td').find('.loading').hide();
                    $(this).closest('td').find('.dropdown').show();
                }

            },
            error: function (xhr) {
                if (xhr.status === 422) {
                    var errors = xhr.responseJSON.errors;
                    var errorMessage = '';
                    $.each(errors, function (key, value) {
                        errorMessage += value + '\n';
                    });
                    showAlert(
                        'Gagal Diubah!',
                        errorMessage,
                        'error',
                        function () { }
                    );
                } else {
                    alert('Terjadi kesalahan server.');
                }
                $(this).closest('td').find('.loading').hide();
                $(this).closest('td').find('.dropdown').show();
            }

        });
    });

    $(document).on('click', '.sub-btn', function (e) {
        e.preventDefault();
        var user_id = $(this).data('user_id');
        var paket_id = $(this).data('paket_id');


        var formData = new FormData();
        formData.append('_method', 'POST');
        formData.append('user_id', user_id);
        formData.append('paket_id', paket_id);

        confirmAlert(function () {
            $.ajax({
                url: '{{ route('user.langganan') }}',
                type: 'POST',
                data: formData,
                processData: false,
                contentType: false,
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                success: function (response) {
                    if (response.status == 'success') {
                        showAlert(
                            'Data Berhasil Di Tambahkan!',
                            response.message,
                            response.status,
                            function () { }
                        );
                        refreshTable();
                        refreshForm();
                    } else {
                        showAlert(
                            'Data Gagal Di Tambahkan!',
                            response.message,
                            response.status,
                            function () { }
                        );
                    }
                },
                error: function (xhr) {
                    if (xhr.status === 422) {
                        console.log(xhr.responseJSON);
                        var errors = xhr.responseJSON.error;
                        var errorMessage = '';
                        $.each(errors, function (key, value) {
                            errorMessage += value + '\n';
                        });
                        showAlert(
                            'Gagal Ditambahkan!',
                            errorMessage,
                            'error',
                            function () { }
                        );
                    } else {
                        alert('Terjadi kesalahan server.');
                    }
                }

            });
        });

    });

    // $(document).ready(function() {
    //     fetchPaket();

    //     function fetchPaket() {
    //         $.ajax({
    //             url: '/getPaket',
    //             method: 'GET',
    //             success: function(data) {
    //                 let options = '<option value="">-paket-</option>';
    //                 $.each(data.paket, function(index, paket) {
    //                     options +=
    //                         `<option value="${paket.id}">${paket.nama_paket}</option>`;

    //                 });

    //                 $('#paket_id').html(options);
    //                 $('#edit_paket_id').html(options);
    //             },
    //             error: function() {
    //                 alert('Gagal memuat data paket');
    //             }
    //         });
    //     }
    // });
</script>

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]