File manager - Edit - /home/autoph/public_html/connectv1/resources/views/nature_of_business/top/data.php
Back
<!DOCTYPE html> <html lang="en"> <head> <?php include_once(__DIR__ . '/../../common/meta.php'); ?> <title> <?= $page_title ?> </title> <?php include_once(__DIR__ . '/../../common/css.php'); ?> <link href="/plugins/bootstrap-table/css/bootstrap-table.min.css" rel="stylesheet"> <!-- daterange picker --> <link rel="stylesheet" href="/plugins/daterangepicker/daterangepicker.css"> <!-- Tempusdominus Bootstrap 4 --> <link rel="stylesheet" href="/plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css"> <!-- dropzonejs --> <link rel="stylesheet" href="/plugins/dropzone/min/dropzone.min.css"> <!-- Daterange picker --> <link rel="stylesheet" href="/plugins/daterangepicker/daterangepicker.css"> <!-- Select2 --> <link rel="stylesheet" href="/plugins/select2/css/select2.min.css"> <link rel="stylesheet" href="/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css"> <style> fieldset { margin-left: 2px; margin-right: 2px; padding-top: 0.35em; padding-bottom: 0.625em; padding-left: 0.75em; padding-right: 0.75em; border: 1px solid gray; border-radius: 3%; } legend { font-size: 16px; font-weight: bold; color: blue; } .textarea-container { position: relative; } .textarea-container textarea { width: 100%; height: 100%; box-sizing: border-box; } .textarea-container button { position: absolute; top: 0; right: 0; } </style> </head> <body class="hold-transition sidebar-mini text-sm layout-fixed"> <div class="wrapper"> <?php include_once('include/header.php'); ?> <?php include_once('include/sidebar.php'); ?> <div id="upper" class="content-wrapper"> <!-- START --> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-md mt-3"> <div class="card card-primary rounded-0"> <div class="card-body"> <div class="row mb-3 d-print-none"> <div class="col-sm-4"> <div class="row"> <!-- <button id="btn_add_orcr_plate" data-toggle="modal" data-target="#modal_orcr_plate" type="button" class="btn btn-success px-3 ml-2 btn-sm"><i class="fa fa-plus" aria-hidden="true"></i> <strong>Add</strong></button> <button id="btn_import_orcr_plate" data-toggle="modal" data-target="#modal_orcr_plate_import" type="button" class="btn btn-success px-3 ml-2 btn-sm"><i class="fa fa-upload" aria-hidden="true"></i> <strong>Import</strong></button> --> <button class="btn btn-tool mt-1" title="Go back" type="button" onclick="back()"> <i class="fas fa-arrow-alt-circle-left fa-2x"></i> </button> </div> </div> <div class="col-sm-8 "> <div class="row d-flex justify-content-end"> <div style="width: 200px;"> <select name="category-filter" id="category-filter" class="form-control form-control-sm select2 dropdown-filter" style="width: 100%;"> <option value="">All Category</option> <?= $nob_cat_options ?> </select> </div> <div class="tooltip-me ml-2" title="More filters"> <button type="button" class="btn dropdown-toggle btn-sm pl-0 pr-2" data-toggle="dropdown"> <i class="fas fa-filter"></i><u>More Filters</u> </button> <ul class="ticket-more-filter dropdown-menu white-bg" style="width:100px;"> <li class="dropdown-item cursor-pointer py-0 px-2 mb-2"> <label class=" mx-0 my-0 font-weight-normal">Sales Date</label> <div class="form-group mb-0"> <div class="form-group dropdown-input mb-1"> <div id="filter-date-added" class="p-1 dropdown-filter" name="filter-date-added" style="background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%"> <i class="fa fa-calendar"></i> <span></span> <!-- <i class="fa fa-angle-down mt-1 float-right"></i> --> </div> </div> <!--form-group dropdown--> </div> <!--form-group--> </li> <li class=" dropdown-item cursor-pointer py-0 px-2 mb-2"> <label class=" mx-0 my-0 font-weight-normal">Company</label> <select name="company-filter" id="company-filter" class="form-control form-control-sm select2 dropdown-filter" style="width: 100%;"> </select> </li> <li class=" dropdown-item cursor-pointer py-0 px-2 mb-2"> <label class=" mx-0 my-0 font-weight-normal">Dealer</label> <select name="dealer-filter" id="dealer-filter" class="form-control form-control-sm select2 dropdown-filter" style="width: 100%;"> </select> </li> </ul> </div> <!-- <button id="export_pdf" type="button" title="Download PDF" class="btn btn-secondary px-3 ml-2 btn-sm"><i class="fa fa-file-pdf"></i></button> <button id="export_excel" type="button" title="Download Excel" class=" btn btn-secondary px-3 ml-2 btn-sm"><i class="fa fa-file-excel"></i></button> --> <!-- <button id="view_data" type="button" title="View Data" class="btn btn-primary px-3 ml-2 btn-sm"><i class="fa fa-eye"></i> View Data</button> --> <!-- <button id="print_data" type="button" onclick="window.print();" title="Print" class=" btn btn-primary px-3 ml-2 btn-sm"><i class="fa fa-print"></i> Print</button> --> </div> </div> </div> <hr class="d-print-none"> <div id="support_data" class=""> <div class="row mb-2 d-print-none"> <div class="col-sm-4"> <div class="row"> <!-- <button id="btn_add_orcr_plate" data-toggle="modal" data-target="#modal_orcr_plate" type="button" class="btn btn-success px-3 ml-2 btn-sm"><i class="fa fa-plus" aria-hidden="true"></i> <strong>Add</strong></button> <button id="btn_import_orcr_plate" data-toggle="modal" data-target="#modal_orcr_plate_import" type="button" class="btn btn-success px-3 ml-2 btn-sm"><i class="fa fa-upload" aria-hidden="true"></i> <strong>Import</strong></button> --> </div> </div> <div class="col-sm-8 "> <div class="row d-flex justify-content-end"> <button id="export_pdf" type="button" title="Download PDF" class="btn btn-secondary px-3 ml-2 btn-sm"><i class="fa fa-file-pdf"></i></button> <button id="export_excel" type="button" title="Download Excel" class=" btn btn-secondary px-3 ml-2 btn-sm"><i class="fa fa-file-excel"></i></button> </div> </div> </div> <table id="tbl_nob_data" data-search="false" data-custom-search="" data-buttons="" data-url="" class="table table-bordered table-hover table-sm" data-page-size="15" data-page-list="[15, 30, 50, 100, all]" data-show-refresh="false" data-query-params="queryParams" data-pagination="true"> <thead> <tr> <th class="cursor" data-width="100" data-formatter="" data-field="date" data-sortable="true">Sales Date</th> <th class="cursor" data-width="150" data-formatter="" data-field="company" data-sortable="true">Company & Dealer</th> <th class="cursor" data-width="500" data-formatter="" data-field="customer" data-sortable="true">Customer</th> <th class="cursor" data-width="100" data-formatter="" data-field="mobile">Mobile</th> <th class="cursor" data-width="200" data-formatter="" data-field="email" data-sortable="true">Email</th> <th class="cursor text-center" data-width="50" data-formatter="" data-field="sms">SMS</th> <th class="cursor text-center" data-width="50" data-formatter="" data-field="called">Called</th> </tr> </thead> <tbody></tbody> </table> </div> </div> </div> </div> </div> </div> <!--container-fluid--> <div class="modal fade" id="modal-sms-call" tabindex="-1" data-backdrop="static" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> <div class="modal-dialog modal-dialog modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalCenterTitle"><span id="modal-title">Action</span></h5> <div id="loading-view" class="fas fa-2x fa-sync-alt fa-spin customer-modal-overlay" hidden> </div> <button id="sms-call-close-modal" type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <input type="hidden" name="csrf_token" id="csrf_token" value="<?= csrf_token(); ?>"> <div class="modal-body"> <div class="row"> <div class="col-12"> <table id="tbl_action_data" data-search="false" data-custom-search="" data-buttons="" data-url="" class="table table-bordered table-hover table-sm" data-page-size="" data-page-list="" data-show-refresh="false" data-query-params="queryParamsTableAction" data-pagination="false"> <thead> <tr> <th class="text-center" data-width="200" data-formatter="" data-field="action">Action</th> <th class="text-center" data-width="550" data-formatter="" data-field="data">Data</th> <th class="text-center" data-width="300" data-formatter="" data-field="done_by">Done by</th> </tr> </thead> <tbody></tbody> </table> </div> </div> <div class="form-group row my-1 mt-2"> <div class="col-12 textarea-container"> <textarea class="form-control" rows="2" placeholder="No remarks" id="remarks" name="remarks" readonly style="background-color: transparent;"></textarea> <button id="btn-remarks" class="btn btn-primary btn-sm mr-2" title="Add/edit remarks"><i id="btn-remarks-i" class="fas fa-pen"></i></button> </div> </div> <div id="remarks-log-div" class="form-group row ml-1 my-1" hidden> <label id="lbl-remarks" class="form-group">Remarks last updated by: </label> <span id="span-remarks"></span> </div> <hr> <div class="row"> <div class="col-12"> <fieldset class="card card-primary card-outline"> <legend class="w-auto px-1">Take action</legend> <div class="row"> <div class="col-sm-6 text-center"> <button id="btn-send-sms" class="btn btn-primary btn-sm" title=""><i id="btn-send-i" class="fas fa-paper-plane"></i> Send SMS</button> </div> <div class="col-sm-6 text-center"> <button id="btn-call" class="btn btn-primary btn-sm" title=""><i id="btn-call-i" class="fas fa-phone-alt"></i> Mark as called</button> </div> </div> </fieldset> </div> </div> </div> </div> </div> </div> </section> </div> <?php include_once('include/footer.php'); ?> <aside class="control-sidebar control-sidebar-dark"></aside> </div><!-- ./wrapper --> <?php include_once(__DIR__ . '/../../common/script.php'); ?> <!-- daterangepicker --> <script src="/plugins/moment/moment.min.js"></script> <script src="/plugins/daterangepicker/daterangepicker.js"></script> <!-- InputMask --> <script src="/plugins/inputmask/jquery.inputmask.min.js"></script> <!-- Tempusdominus Bootstrap 4 --> <script src="/plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-4.min.js"></script> <!-- ChartJS --> <script src="/plugins/chart.js/Chart.min.js"></script> <!-- Select2 --> <script src="/plugins/select2/js/select2.full.min.js"></script> <!-- Boostrap table --> <!-- <script src="/plugins/bootstrap-table/js/tableExport.min.js"></script> --> <script src="/plugins/bootstrap-table/js/bootstrap-table.min.js"></script> <script src="/plugins/bootstrap-table/js/bootstrap-table-en-US.js"></script> <script src="/plugins/bootstrap-table/js/bootstrap-table-export.min.js"></script> <!-- dropzonejs --> <script src="/plugins/dropzone/min/dropzone.min.js"></script> <!-- table export --> <script src="/dist/js/tableExport/tableExport.min.js"></script> <script src="/dist/js/tableExport/libs/js-xlsx/xlsx.core.min.js"></script> <script src="/dist/js/tableExport/libs/jsPDF/jspdf.umd.min.js"></script> <!-- generic script --> <script> var page_title = '<?= $page_title ?>'; var nob_id = '<?= $cat_id ?>'; $(function() { $('.modal-dialog').draggable({ handle: ".modal-header" }); }); $('#company-filter').select2({ placeholder: "Company", allowClear: true }); $('#category-filter').select2({ placeholder: "Category", allowClear: true }); function refreshNobDataTable() { var $table = $('#tbl_nob_data'); $(function() { try { $table.bootstrapTable('refresh', { url: '/reports/nature_of_business/top/data' }); } catch (e) { console.log('reply from viewer. error: ' + e) } }) } function initNobDataTable() { var $table = $('#tbl_nob_data'); $table.bootstrapTable('destroy').bootstrapTable({ sidePagination: 'server', formatSearch: function() { return 'Search...' }, onLoadSuccess: function(result) { }, // showExport: true, // exportOptions: { // fileName: function() { // return "LTO ORCR PLATE " + moment().format('YYYY-M-D h-m-s A') // } // } }); } function queryParams(params) { //dates filter var date_tom = moment().add(1, 'days').format('YYYY-MM-DD'); var start_date_add = $('#filter-date-added').data('daterangepicker').startDate.format("YYYY-MM-DD"); start_date_add = start_date_add == date_tom ? "" : start_date_add; var end_date_add = $('#filter-date-added').data('daterangepicker').endDate.format("YYYY-MM-DD"); return { nob_id: $('#category-filter').val(), offset: params.offset, limit: params.limit, sort: params.sort, order: params.order, start_sales_date: start_date_add, end_sales_date: end_date_add, company_id: $('#company-filter').val(), dealer_id: $('#dealer-filter').val(), }; } function getUserCompanies() { $.ajax({ url: '/user/companies', type: "GET", dataType: 'json', data: {}, beforeSend: function() { $('#company-filter').append('<option value="" selected>All</option>'); }, success: function(result) { $.each(result, function(i, n) { $('#company-filter').append('<option value="' + n.id + '">' + n.code + '</option>'); }); }, error: function(xhr, status, error) { toastr.remove(); toastr.error("Error has occurred..."); } }); getCompanyDealers(''); } function getCompanyDealers(company_id) { if (company_id == '') { $('#dealer-filter').html('<option value="" selected>All</option>'); // $('#dealer-filter').trigger('change'); return false; } $.ajax({ url: '/dealer/' + company_id, type: "GET", dataType: 'json', data: {}, beforeSend: function() { $('#dealer-filter').html('<option value="" selected>All</option>'); }, success: function(result) { $.each(result, function(i, n) { $('#dealer-filter').append('<option value="' + n.id + '">' + n.code + '</option>'); }); }, error: function(xhr, status, error) { toastr.remove(); toastr.error("Error has occurred..."); } }); } function filterSalesDate(start, end) { if (moment().add(1, 'days').format('M/D/YYYY') == start.format('M/D/YYYY')) { $('#filter-date-added span').html("All"); } else { $('#filter-date-added span').html(start.format('M/D/YYYY') + ' to<br>' + end.format( 'M/D/YYYY')); } refreshNobDataTable(); } function DoOnCellHtmlData(cell, row, col, data) { // console.log(data) return data; // // console.log(row) // if ((col == '8' || col == '10') && parseInt(row) > 0) { // var spanObj = $(data); //Convert a string labeled <span title="val"> </span> to a jQuery object // var spanObj2 = $(spanObj[0].innerHTML); // var title = spanObj2.attr( // "title"); //Read the value of title attribute in <span title="val"</span>. // if (typeof(title) != 'undefined') { // return title; // } // } else if ((col == '9') && parseInt(row) > 0) { // var spanObj = $(data); //Convert a string labeled <span title="val"> </span> to a jQuery object // // var title = spanObj2.attr( // // "selected"); //Read the value of title attribute in <span title="val"</span>. // // return $('#'+spanObj[0].id+ ' option:selected').text(); // return spanObj[1].innerText; // } else { // return data; // } } var selected_table_row = null; var phone_number = null; function refreshActionTable() { var $table = $('#tbl_action_data'); $(function() { try { $table.bootstrapTable('refresh', { url: '/reports/nature_of_business/top/table_action' }); } catch (e) { alert("error: " + e); } }); } function queryParamsTableAction(params) { return { offset: params.offset, limit: params.limit, sales_id: selected_table_row }; } function back() { window.history.back(); } $(function() { initNobDataTable(); var date_add_start = moment().add(1, 'days'); var date_add_end = moment().add(1, 'days'); $('#filter-date-added').daterangepicker({ startDate: date_add_start, endDate: date_add_end, maxDate: moment().add(1, 'days'), ranges: { 'All': [moment().add(1, 'days'), moment().add(1, 'days')], 'Today': [moment(), moment()], 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')], 'This Year': [moment().startOf('year'), moment().endOf('year')], 'Last Year': [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')] } }, filterSalesDate); filterSalesDate(date_add_start, date_add_end); // testGraph(); getUserCompanies(); $('#company-filter').on('change', function(e) { // refresh data getCompanyDealers($(this).val()); refreshNobDataTable(); }); $('#dealer-filter').on('change', function(e) { // refresh data refreshNobDataTable(); }); $('#category-filter').on('change', function(e) { // refresh data refreshNobDataTable(); }); function initTableAction() { var $table = $('#tbl_action_data'); $table.bootstrapTable('destroy').bootstrapTable({ sidePagination: 'server', onLoadSuccess: function(data) { } // showExport: true, // exportOptions: { // fileName: function() { // return "LTO ORCR PLATE " + moment().format('YYYY-M-D h-m-s A') // } // } }); } function operateRemarks() { $.ajax({ url: '/reports/nature_of_business/top/remarks', type: 'POST', dataType: 'json', data: { remarks: $('#remarks').val(), sales_id: selected_table_row, csrf_token: $('#csrf_token').val() }, beforeSend: function() { $('#btn-remarks-i').removeClass('fa-save').addClass('fa-spinner fa-spin'); $('#btn-remarks').attr('disabled', true); }, success: function(result) { if (result.status == 0) { $('#btn-remarks-i').removeClass('fa-spinner fa-spin').addClass('fa-pen'); $('#btn-remarks').attr('disabled', false); loadRemarks(); } } }); } function loadRemarks() { $.ajax({ url: '/reports/nature_of_business/top/load_remarks', type: 'POST', dataType: 'json', data: { sales_id: selected_table_row, csrf_token: $('#csrf_token').val() }, beforeSend: function() { $('#remarks').attr('disabled', true); $('#span-remarks').text(""); }, success: function(result) { if (result.status == 0) { $('#remarks').attr('disabled', false).val(result.remarks); $('#remarks-log-div').attr('hidden', false); $('#span-remarks').text(result.remarks_log); } else { $('#remarks').attr('disabled', true).val(""); $('#remarks-log-div').attr('hidden', true); $('#span-remarks').text(""); } } }); } $('#tbl_nob_data').on('click-cell.bs.table', function($el, field, value, row) { selected_table_row = row.sales_id; phone_number = row.mobile_var; initTableAction(); refreshActionTable(); loadRemarks(); $('#modal-sms-call').modal('show'); if (row.sms_var != null) { $('#btn-send-sms').attr('disabled', true).addClass('btn-success'); $('#btn-send-i').removeClass('fa-paper-plane').addClass('fa-check'); } else { $('#btn-send-sms').attr('disabled', false).removeClass('btn-success'); $('#btn-send-i').removeClass('fa-check').addClass('fa-paper-plane'); } if (row.called_var != null) { $('#btn-call').attr('disabled', true).addClass('btn-success'); $('#btn-call-i').removeClass('fa-phone-alt').addClass('fa-check'); } else { $('#btn-call').attr('disabled', false).removeClass('btn-success'); $('#btn-call-i').removeClass('fa-check').addClass('fa-phone-alt'); } }); $('#export_excel').on('click', function(e) { var $table = $('#tbl_nob_data'); $table.bootstrapTable('exportTable', { type: 'xlsx', escape: false, onCellHtmlData: DoOnCellHtmlData, // ignoreColumn: [9,10], addColumn: ["sdsa"], // fileName: moment().format('YYYY-M-D H:i:s'), fileName: page_title + " " + moment().format('YYYY-M-D hmsA'), }); }); $('#export_pdf').on('click', function(e) { var $table = $('#tbl_nob_data'); $table.bootstrapTable('exportTable', { type: 'pdf', escape: false, onCellHtmlData: DoOnCellHtmlData, // ignoreColumn: [9,10], fileName: page_title + " " + moment().format('YYYY-M-D hmsA'), jspdf: { orientation: 'l', margins: { left: 10, right: 10, top: 40, bottom: 20 }, autotable: { startY: false, startX: 10, showHeader: 'firstPage', margin: { top: 10 }, bodyStyles: { valign: "top" }, theme: "striped", beforePageContent: function(data) { //console.log(data.settings.tableExport.doc);return; var doc = data.settings.tableExport.doc; // Internal jspdf instance console.log(doc.getFontList()); doc.setFontSize(12); doc.text(page_title, data.settings.margin.top - 30, 20); doc.setFont('helvetica', 'normal'); doc.setFontSize(10); doc.text(moment().format('MMMM DD, YYYY'), data.settings.margin.top - 30, 32); // var str = "Page " + doc.internal.getNumberOfPages() + ' - ' + export_filename; // doc.setFont('Times', 'normal'); // doc.setFontSize(10); // // jsPDF 1.4+ uses getWidth, <1.4 uses .width // var pageSize = doc.internal.pageSize; // var pageHeight = pageSize.height ? // pageSize.height : // pageSize.getHeight(); // doc.text(str, data.settings.margin.left, pageHeight - 10); }, styles: { overflow: 'linebreak', fontSize: 8, overflowColumns: 'linebreak' } } } }); }); var remarks_flag = "edit"; $('#btn-remarks').on('click', function() { if (remarks_flag == "edit") { $(this).removeClass('btn-primary').addClass('btn-success'); $('#btn-remarks-i').removeClass('fa-plus').addClass('fa-save'); $('#remarks').attr('readonly', false); remarks_flag = "save"; } else if (remarks_flag == "save") { $(this).removeClass('btn-success').addClass('btn-primary'); $('#btn-remarks-i').removeClass('fa-save').addClass('fa-pen'); $('#remarks').attr('readonly', true); operateRemarks(); remarks_flag = "edit"; } }); }); $('#btn-send-sms').on('click', function() { alert("No template!"); return; $.ajax({ url: '/reports/nature_of_business/top/make_call_sms', type: 'POST', dataType: 'json', data: { type: "sms", sales_id: selected_table_row, phone: phone_number, csrf_token: $('#csrf_token').val() }, beforeSend: function() { $('#btn-send-sms').attr('disabled', true); $('#btn-send-i').removeClass('fa-paper-plane').addClass('fa-spinner fa-spin'); }, success: function(result) { if (result.status == 0) { $('#btn-send-sms').attr('disabled', true).addClass('btn-success'); $('#btn-send-i').removeClass('fa-spinner fa-spin').addClass('fa-check'); refreshActionTable(); refreshNobDataTable(); } else if (result.status == 1) { $('#btn-send-sms').attr('disabled', false); $('#btn-send-i').removeClass('fa-spinner fa-spin').addClass('fa-paper-plane'); toastr.remove(); toastr.error("There's something wrong in sending sms"); } else if (result.status == 2) { $('#btn-send-sms').attr('disabled', false); $('#btn-send-i').removeClass('fa-spinner fa-spin').addClass('fa-paper-plane'); toastr.remove(); toastr.error("There's something wrong in sending sms"); } else if (result.status == 3) { $('#btn-send-sms').attr('disabled', true).addClass('btn-success'); $('#btn-send-i').removeClass('fa-spinner fa-spin').addClass('fa-check'); toastr.remove(); toastr.warning("Action already done"); } } }); }); $('#btn-call').on('click', function() { // alert("Almost done"); return; $.ajax({ url: '/reports/nature_of_business/top/make_call_sms', type: 'POST', dataType: 'json', data: { type: "call", sales_id: selected_table_row, phone: phone_number, csrf_token: $('#csrf_token').val() }, beforeSend: function() { $('#btn-call').attr('disabled', true); $('#btn-call-i').removeClass('fa-phone-alt').addClass('fa-spinner fa-spin'); }, success: function(result) { if (result.status == 0) { $('#btn-call').attr('disabled', true).addClass('btn-success'); $('#btn-call-i').removeClass('fa-spinner fa-spin').addClass('fa-check'); refreshActionTable(); refreshNobDataTable(); } else if (result.status == 1) { $('#btn-call').attr('disabled', false); $('#btn-call-i').removeClass('fa-spinner fa-spin').addClass('fa-phone-alt'); toastr.remove(); toastr.error("There's something wrong in sending sms"); } else if (result.status == 3) { $('#btn-call').attr('disabled', true).addClass('btn-success'); $('#btn-call-i').removeClass('fa-spinner fa-spin').addClass('fa-check'); toastr.remove(); toastr.warning("Action already done"); } } }); }); </script> </body> </html>
| ver. 1.4 |
.
| PHP 7.3.33 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings