Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/clinic.corals.io/resources/assets/js/doctors/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/clinic.corals.io/resources/assets/js/doctors/doctors.js
'use strict';

let tableName = '#doctorTable';
$(document).ready(function () {
    let tbl = $(tableName).DataTable({
        deferRender: true,
        processing: true,
        serverSide: true,
        searchDelay: 500,
        'language': {
            'lengthMenu': 'Show _MENU_',
        },
        'order': [[4, 'desc']],
        ajax: {
            url: route('doctors.index'),
            data: function (data) {
                data.status = $('#doctorStatus').
                    find('option:selected').
                    val();
            },
        },
        columnDefs: [
            {
                'targets': [0],
                'width': '30%',
            },
            {
                'targets': [4],
                'width': '20%',
                'className': 'text-center',
            },
            {
                'targets': [1],
                'width': '5%',
                'orderable': false,
                'searchable': false,
            },
            {
                'targets': [5],
                'width': '13%',
                'class': 'text-center',
                'orderable': false,
                'searchable': false,
            },
            {
                'targets': [3],
                'orderable': false,
                'className': 'text-center',
            },
            {
                'targets': [2],
                'orderable': false,
                'searchable': false,
            },
        ],
        columns: [
            {
                data: function (row) {
                    return `<div class="symbol symbol-circle symbol-50px overflow-hidden me-3">
                        <div class="symbol-label">
                            <img src="${row.user.profile_image}" alt=""
                                 class="w-100 object-cover">
                        </div>
                    </div>
                    <div class="d-inline-block align-top">
                        <a href="${route('doctors.show', row.id)}"
                           class="text-primary-800 mb-1 d-block">${row.user.full_name}</a>
                        <span class="d-block text-muted fw-bold">${row.user.email}</span>
                    </div>`;
                },
                name: 'user.full_name',
            },
            {
                data: function (row) {
                    let data = [
                        {
                            'id': row.user.id,
                            'status': row.user.status,
                        },
                    ];
                    return prepareTemplateRender('#changeDoctorStatus', data);
                },
                name: 'user.status',
            },
            {
                data: function (row) {
                    return `<div class="form-check form-switch form-check-custom form-check-solid justify-content-center">
                            <input class="form-check-input h-20px w-30px email-verified" data-id="${row.user.id}" type="checkbox" value=""
                               ${row.user.email_verified_at ? 'checked' : ''} />
                            </div>`;
                },
                name: 'user.id',
            },
            {
                data: function (row) {
                    return `<td class=" text-center action-table-btn">
                        <a title="Impersonate ${row.user.full_name}" class="btn btn-sm btn-primary" href="${ route('impersonate', row.user.id) }">
                            Impersonate
                        </a>
                        </td>`;
                },
                name: 'user.id',
            },
            {
                data: function (row) {
                    return row;
                },
                render: function (row) {
                    if (row.created_at === null) {
                        return 'N/A';
                    }

                    return `<span class="badge badge-light-info">${moment.parseZone(
                        row.created_at).format('Do MMM, Y h:mm A')}</span>`;
                },
                name: 'created_at',
            },
            {
                data: function (row) {
                    let data = [
                        {
                            'id': row.id,
                            'userId': row.user_id,
                            'editUrl': route('doctors.edit', row.id),
                        },
                    ];

                    return prepareTemplateRender('#userActionTemplate',
                        data);
                },
                name: 'id',
            },
        ],
        'fnInitComplete': function () {
            $('#doctorStatus').change(function () {
                $('#filter').removeClass('show');
                $('#filterBtn').removeClass('show');
                $('#doctorTable').DataTable().ajax.reload(null, true);
            });
        },
    });
    handleSearchDatatable(tbl);
});

$(document).on('click', '#resetFilter', function () {
    $('#doctorStatus').val(all).trigger('change');
});

$(document).on('click', '.delete-btn', function () {
    let userId = $(this).attr('data-id');
    let deleteUserUrl = route('doctors.destroy', userId);
    deleteItem(deleteUserUrl, '#doctorTable', 'Doctor');
});

$(document).on('click', '.add-qualification', function () {
    let userId = $(this).attr('data-id');
    $('#qualificationID').val(userId);
    $('#qualificationModal').modal('show');
});

$(document).on('submit', '#qualificationForm', function (e) {
    e.preventDefault();
    $.ajax({
        url: route('add.qualification'),
        type: 'POST',
        data: $(this).serialize(),
        success: function (result) {
            if (result.success) {
                displaySuccessMessage(result.message);
                $('#year').val(null).trigger('change');
                $('#qualificationModal').modal('hide');
                $(tableName).DataTable().ajax.reload(null, false);
            }
        },
        error: function (result) {
            displayErrorMessage(result.responseJSON.message);
        },
    });
});

$('#qualificationModal').on('hidden.bs.modal', function () {
    resetModalForm('#qualificationForm');
    $('#year').val(null).trigger('change');
});

$(document).on('click', '.doctor-status', function (event) {
    let recordId = $(event.currentTarget).data('id');

    $.ajax({
        type: 'PUT',
        url: route('doctor.status'),
        data: { id: recordId },
        success: function (result) {
            $(tableName).DataTable().ajax.reload(null, false);
            displaySuccessMessage(result.message);
        },
    });
});

$(document).on('change','.email-verified',function(e){
    let recordId = $(e.currentTarget).data('id');

    $.ajax({
        type: 'POST',
        url: route('emailVerified'),
        data: { id: recordId },
        success: function (result) {
            $(tableName).DataTable().ajax.reload(null, false);
            displaySuccessMessage(result.message);
        },
    });
});

Spamworldpro Mini