670 lines
28 KiB
PHP
Executable File
670 lines
28 KiB
PHP
Executable File
<style>
|
||
#table-kyc-docs_wrapper .datatable-search-wrapper{
|
||
width: auto !important;
|
||
}
|
||
|
||
#table-kyc-docs_wrapper .dataTables_filter input{
|
||
width: 220px !important;
|
||
padding-right: 34px !important;
|
||
}
|
||
|
||
#table-kyc-docs_wrapper .datatable-search-icon,
|
||
#table-kyc-docs_wrapper .datatable-clear-icon{
|
||
right: 11px !important;
|
||
}
|
||
|
||
/* Unset position on datatables filter to fix alignment issues */
|
||
#table-kyc-docs_wrapper div.dataTables_filter {
|
||
position: unset !important;
|
||
}
|
||
|
||
#kycdocsModal {
|
||
padding-right: 0 !important;
|
||
z-index: 1060;
|
||
}
|
||
|
||
#kycdocsModal.show {
|
||
display: flex !important;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.modal-backdrop {
|
||
z-index: 1050;
|
||
}
|
||
</style>
|
||
|
||
<div class="tab-pane fade" id="branch-tab">
|
||
|
||
<div class="row float-right" style="padding-bottom: 10px;position: relative;right: 13px;">
|
||
<button type="button" id="btnKycDocsAdd" class="btn btn-primary waves-effect waves-light btn-sm"><span class="mdi mdi-plus-box-outline" aria-hidden="true" style="padding: 5px 10px;"></span>Add KYC Docs</button>
|
||
</div>
|
||
|
||
<div class="table-responsive" id="branch_table" >
|
||
|
||
<table data-custom-table-css="table" class="table table-borderless table-nowrap mb-0" id="table-kyc-docs">
|
||
<thead class="">
|
||
<tr>
|
||
<th>File Name</th>
|
||
<th>Action</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="kyc_docs_list">
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<!-- <div class="row" id="add_branch">
|
||
<div class="col-12">
|
||
<div class="card-body">
|
||
<div class="row float-right" style="position: relative; bottom: 20px; right: 13px;">
|
||
<button type="button" id="btnBranchBack" class="btn btn-primary waves-effect waves-light btn-sm btnBack"><span class="mdi mdi-format-list-bulleted" aria-hidden="true" style="padding: 5px 10px;"></span>Back To List</button>
|
||
</div>
|
||
|
||
<hr>
|
||
|
||
<form role="form" class="parsley-examples" method="post" id="kyc_docs_form"
|
||
enctype="multipart/form-data">
|
||
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
|
||
<input type="hidden" name="PrimaryKey" id="kyc_Docs_PrimaryKey" />
|
||
<input type="hidden" name="kyc_type_id" id="kyc_type_id" value="<?= isset($kyc['id']) ? $kyc['id'] : '' ?>"/>
|
||
<div class="form-group">
|
||
<div class="form-row">
|
||
<div class="form-group col-md-6">
|
||
<label for="file_name">KYC Docs File Name<span
|
||
class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="file_name"
|
||
placeholder="Enter File Name" name="file_name" required>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="form-group text-right m-b-0">
|
||
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1"
|
||
id="btnSubmit">Submit</button>
|
||
<button type="button" class="btn btn-secondary waves-effect btnBack"
|
||
id="btnBack">Cancel</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div> end col -->
|
||
</div>
|
||
<!-- end -->
|
||
|
||
<div class="modal fade" id="kycdocsModal" tabindex="-1" role="dialog" aria-hidden="true">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
|
||
<!-- Modal Header -->
|
||
<div class="modal-header flex-column">
|
||
<div class="d-flex w-100 justify-content-between align-items-center">
|
||
<h4 class="modal-title mb-0" id="modalLabel">KYC Docs</h4>
|
||
<button type="button" class="close js-kyc-docs-close" data-dismiss="modal" aria-label="Close">
|
||
<span aria-hidden="true">×</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Modal Body -->
|
||
<div class="modal-body" style="overflow-y:auto; max-height:80vh;">
|
||
<form role="form" class="parsley-examples" method="post" id="kyc_docs_form" enctype="multipart/form-data">
|
||
|
||
<!-- CSRF + hidden inputs -->
|
||
<input type="hidden" class="form-control" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>" />
|
||
<input type="hidden" name="PrimaryKey" id="kyc_Docs_PrimaryKey" />
|
||
<input type="hidden" name="kyc_type_id" id="kyc_type_id" value="<?= isset($kyc['id']) ? $kyc['id'] : '' ?>"/>
|
||
|
||
<!-- Form fields -->
|
||
<div class="form-row">
|
||
<div class="form-group col-md-12">
|
||
<label for="file_name">KYC Docs File Name <span class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="file_name" name="file_name" placeholder="Enter File Name" required>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Form Actions -->
|
||
<div class="form-group d-flex justify-content-end mb-0" id="hide_smbt_btn">
|
||
<button type="button" class="btn app-btn-outline-secondary mr-2 waves-effect js-kyc-docs-cancel" data-bs-dismiss="modal">
|
||
Cancel
|
||
</button>
|
||
<button type="submit" class="btn app-btn-secondary waves-effect waves-light" id="btnSubmit">
|
||
Submit
|
||
</button>
|
||
</div>
|
||
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<script>
|
||
|
||
$(document).ready(function () {
|
||
|
||
var kyc_Docs_PrimaryKey = $('#kyc_General_PrimaryKey').val();
|
||
var kyc_docs_form_action = '';
|
||
var kycDocsTable = null;
|
||
|
||
var kycDocsDebugPrefix = '[KYCDocs]';
|
||
|
||
function resetKYCDocsForm() {
|
||
console.log(kycDocsDebugPrefix + ' resetKYCDocsForm() called.');
|
||
var $form = $('#kyc_docs_form');
|
||
|
||
// Reset the form fields
|
||
if ($form.length && typeof $form[0].reset === 'function') {
|
||
$form[0].reset();
|
||
}
|
||
|
||
// Reset Parsley validation state
|
||
if ($form.length && typeof $form.parsley === 'function') {
|
||
try {
|
||
$form.parsley().reset();
|
||
} catch (e) {
|
||
console.warn(kycDocsDebugPrefix + ' Could not reset parsley form.', e);
|
||
}
|
||
}
|
||
|
||
// Explicitly clear fields just in case .reset() fails or they are not part of the form
|
||
$('#file_name').val('');
|
||
$('#kyc_Docs_PrimaryKey').val('');
|
||
}
|
||
|
||
function normalizeKYCDocsRows(response) {
|
||
if (!response) return [];
|
||
if (Array.isArray(response)) return response;
|
||
if (Array.isArray(response.kyc_docs)) return response.kyc_docs;
|
||
if (Array.isArray(response.data)) return response.data;
|
||
if (response.data && Array.isArray(response.data.kyc_docs)) return response.data.kyc_docs;
|
||
return [];
|
||
}
|
||
|
||
function renderKYCDocsTableRows(rows) {
|
||
var html = '';
|
||
$.each(rows || [], function(index, item) {
|
||
var fileName = (item && (item.file_name || item.fileName || item.document_name || item.name)) || '';
|
||
var rowId = (item && (item.id || item.primarykey || item.PrimaryKey)) || '';
|
||
html += `
|
||
<tr>
|
||
<td>${fileName}</td>
|
||
<td>
|
||
<a class="btnBranchEdit" data-id="${rowId}" href="#"><i data-id="${rowId}" class="mdi mdi-lead-pencil btnBranchEdit" style="font-size:18px;"></i></a>
|
||
<a style="color:#02a8b5" data-id="${rowId}" onclick="removeKYCDocs(this)"><i data-id="${rowId}" class="mdi mdi-delete" style="font-size:18px;"></i></a>
|
||
</td>
|
||
</tr>
|
||
`;
|
||
});
|
||
$('#kyc_docs_list').html(html);
|
||
}
|
||
|
||
window.forceHideKYCDocsModal = function () {
|
||
console.log(kycDocsDebugPrefix + ' forceHideKYCDocsModal() called.');
|
||
var modalEl = document.getElementById('kycdocsModal');
|
||
if (modalEl) {
|
||
modalEl.classList.remove('show');
|
||
modalEl.classList.remove('in');
|
||
modalEl.style.display = 'none';
|
||
modalEl.setAttribute('aria-hidden', 'true');
|
||
modalEl.removeAttribute('aria-modal');
|
||
}
|
||
document.body.classList.remove('modal-open');
|
||
document.body.style.removeProperty('padding-right');
|
||
$('.modal-backdrop').remove();
|
||
console.log(kycDocsDebugPrefix + ' forceHideKYCDocsModal() finished.');
|
||
};
|
||
|
||
window.forceShowKYCDocsModal = function () {
|
||
console.log(kycDocsDebugPrefix + ' forceShowKYCDocsModal() called.');
|
||
var modalEl = document.getElementById('kycdocsModal');
|
||
if (!modalEl) {
|
||
console.log(kycDocsDebugPrefix + ' Modal element not found. Aborting.');
|
||
return;
|
||
}
|
||
|
||
console.log(kycDocsDebugPrefix + ' Displaying modal element.');
|
||
modalEl.style.display = 'block';
|
||
modalEl.classList.add('show');
|
||
modalEl.removeAttribute('aria-hidden');
|
||
modalEl.setAttribute('aria-modal', 'true');
|
||
document.body.classList.add('modal-open');
|
||
|
||
if (!document.querySelector('.modal-backdrop')) {
|
||
console.log(kycDocsDebugPrefix + ' Creating and appending modal-backdrop.');
|
||
var backdrop = document.createElement('div');
|
||
backdrop.className = 'modal-backdrop fade show';
|
||
document.body.appendChild(backdrop);
|
||
} else {
|
||
console.log(kycDocsDebugPrefix + ' Modal-backdrop already exists.');
|
||
}
|
||
console.log(kycDocsDebugPrefix + ' forceShowKYCDocsModal() finished.');
|
||
};
|
||
|
||
window.showKYCDocsModal = function () {
|
||
console.log(kycDocsDebugPrefix + ' showKYCDocsModal() called.');
|
||
var $modal = $('#kycdocsModal');
|
||
var modalEl = document.getElementById('kycdocsModal');
|
||
try {
|
||
console.log(kycDocsDebugPrefix + ' Trying to show modal using jQuery/Bootstrap.');
|
||
if (typeof jQuery !== 'undefined' && jQuery.fn && typeof jQuery.fn.modal === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using jQuery modal("show").');
|
||
$modal.modal('show');
|
||
console.log(kycDocsDebugPrefix + ' Setting timeout to check if modal is visible.');
|
||
setTimeout(function () {
|
||
console.log(kycDocsDebugPrefix + ' Timeout check: Modal has "show" class:', $modal.hasClass('show'), 'Is visible:', $modal.is(':visible'));
|
||
if (!$modal.hasClass('show') || !$modal.is(':visible')) {
|
||
console.log(kycDocsDebugPrefix + ' Modal not visible after timeout, forcing show.');
|
||
window.forceShowKYCDocsModal();
|
||
}
|
||
}, 120);
|
||
console.log(kycDocsDebugPrefix + ' showKYCDocsModal() finished via jQuery path.');
|
||
return;
|
||
}
|
||
console.log(kycDocsDebugPrefix + ' jQuery modal not available. Checking for Bootstrap 5 API.');
|
||
if (window.bootstrap && bootstrap.Modal && modalEl) {
|
||
if (typeof bootstrap.Modal.getOrCreateInstance === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using bootstrap.Modal.getOrCreateInstance().show().');
|
||
bootstrap.Modal.getOrCreateInstance(modalEl).show();
|
||
console.log(kycDocsDebugPrefix + ' showKYCDocsModal() finished via BS5 getOrCreateInstance.');
|
||
return;
|
||
}
|
||
if (typeof bootstrap.Modal.getInstance === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using bootstrap.Modal.getInstance().');
|
||
var existing = bootstrap.Modal.getInstance(modalEl);
|
||
if (existing) {
|
||
console.log(kycDocsDebugPrefix + ' Existing BS5 instance found, calling show().');
|
||
existing.show();
|
||
console.log(kycDocsDebugPrefix + ' showKYCDocsModal() finished via existing BS5 instance.');
|
||
return;
|
||
}
|
||
}
|
||
console.log(kycDocsDebugPrefix + ' Using new bootstrap.Modal().show().');
|
||
(new bootstrap.Modal(modalEl)).show();
|
||
console.log(kycDocsDebugPrefix + ' showKYCDocsModal() finished via new BS5 instance.');
|
||
return;
|
||
}
|
||
} catch (e) {
|
||
console.error('[KYCDocs] Failed to show modal:', e);
|
||
console.log(kycDocsDebugPrefix + ' Falling back to forceShowKYCDocsModal().');
|
||
window.forceShowKYCDocsModal();
|
||
return;
|
||
}
|
||
console.log(kycDocsDebugPrefix + ' No standard modal methods found, falling back to forceShowKYCDocsModal().');
|
||
window.forceShowKYCDocsModal();
|
||
};
|
||
|
||
window.hideKYCDocsModal = function () {
|
||
console.log(kycDocsDebugPrefix + ' hideKYCDocsModal() called.');
|
||
var $modal = $('#kycdocsModal');
|
||
var modalEl = document.getElementById('kycdocsModal');
|
||
if (!modalEl) {
|
||
console.log(kycDocsDebugPrefix + ' Modal element not found. Aborting.');
|
||
return;
|
||
}
|
||
|
||
var closed = false;
|
||
try {
|
||
console.log(kycDocsDebugPrefix + ' Trying to hide modal using jQuery/Bootstrap.');
|
||
if (typeof jQuery !== 'undefined' && jQuery.fn && typeof jQuery.fn.modal === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using jQuery modal("hide").');
|
||
$modal.modal('hide');
|
||
closed = true;
|
||
}
|
||
if (!closed && window.bootstrap && bootstrap.Modal && modalEl) {
|
||
console.log(kycDocsDebugPrefix + ' jQuery modal not available/failed. Checking for Bootstrap 5 API.');
|
||
if (typeof bootstrap.Modal.getOrCreateInstance === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using bootstrap.Modal.getOrCreateInstance().hide().');
|
||
bootstrap.Modal.getOrCreateInstance(modalEl).hide();
|
||
closed = true;
|
||
}
|
||
if (!closed && typeof bootstrap.Modal.getInstance === 'function') {
|
||
console.log(kycDocsDebugPrefix + ' Using bootstrap.Modal.getInstance().');
|
||
var existing = bootstrap.Modal.getInstance(modalEl);
|
||
if (existing) {
|
||
console.log(kycDocsDebugPrefix + ' Existing BS5 instance found, calling hide().');
|
||
existing.hide();
|
||
closed = true;
|
||
}
|
||
}
|
||
if (!closed) {
|
||
console.log(kycDocsDebugPrefix + ' Using new bootstrap.Modal().hide().');
|
||
(new bootstrap.Modal(modalEl)).hide();
|
||
closed = true;
|
||
}
|
||
}
|
||
} catch (e) {
|
||
console.error('[KYCDocs] Failed to hide modal, using fallback:', e);
|
||
}
|
||
|
||
// In mixed Bootstrap environments, plugin hide() can return without visually closing.
|
||
// Validate with class and visibility checks, then force cleanup if needed.
|
||
setTimeout(function () {
|
||
var stillVisible = $modal.is(':visible');
|
||
var stillOpen = modalEl.classList.contains('show') || modalEl.classList.contains('in');
|
||
if (!closed || stillVisible || stillOpen) {
|
||
console.log(kycDocsDebugPrefix + ' Modal still open after hide attempt, forcing close.');
|
||
window.forceHideKYCDocsModal();
|
||
}
|
||
}, 120);
|
||
};
|
||
// $('#add_branch').hide();
|
||
// $('.btnBack').hide();
|
||
|
||
loadKYCDocsList();
|
||
|
||
|
||
$('#btnKycDocsAdd').click(function(){
|
||
console.log(kycDocsDebugPrefix + ' #btnKycDocsAdd clicked.');
|
||
kyc_docs_form_action = '<?= base_url("master/kyc/kycdocs/createpost"); ?>';
|
||
console.log(kycDocsDebugPrefix + ' Set form action to:', kyc_docs_form_action);
|
||
|
||
// Reset form before showing to ensure it's clean
|
||
resetKYCDocsForm();
|
||
|
||
console.log(kycDocsDebugPrefix + ' Calling showKYCDocsModal().');
|
||
window.showKYCDocsModal();
|
||
console.log(kycDocsDebugPrefix + ' #btnKycDocsAdd click handler finished.');
|
||
});
|
||
|
||
// When the modal is completely hidden, reset the form.
|
||
// This is the recommended Bootstrap way to handle cleanup.
|
||
$('#kycdocsModal').on('hidden.bs.modal', function () {
|
||
console.log(kycDocsDebugPrefix + ' #kycdocsModal hidden.bs.modal event fired.');
|
||
resetKYCDocsForm();
|
||
});
|
||
|
||
// Add explicit click handlers for close/cancel buttons as data-bs-dismiss might be unreliable.
|
||
// This makes it consistent with the working insurer_branch.php modal.
|
||
$(document).on('click', '.js-kyc-docs-close, .js-kyc-docs-cancel', function (e) {
|
||
e.preventDefault();
|
||
window.hideKYCDocsModal();
|
||
});
|
||
|
||
|
||
if(kyc_Docs_PrimaryKey !== ''){
|
||
|
||
var data = <?= isset($insurer_branch) ? json_encode($insurer_branch) : '[]' ?>;
|
||
renderKYCDocsTableRows(data);
|
||
}
|
||
|
||
|
||
$("#kyc_docs_form").submit(function(events) {
|
||
events.preventDefault();
|
||
|
||
var isValid = $('#kyc_docs_form').parsley().validate();
|
||
|
||
|
||
if (isValid) {
|
||
|
||
var formData = new FormData($('#kyc_docs_form')[0]);
|
||
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
console.log("kyc_docs_form_action");
|
||
console.log(kyc_docs_form_action);
|
||
$.ajax({
|
||
data: formData,
|
||
url: kyc_docs_form_action,
|
||
type: "POST",
|
||
dataType: 'json',
|
||
processData: false,
|
||
contentType: false,
|
||
success: function(res) {
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
}, 1000);
|
||
console.log(res);
|
||
var rows = normalizeKYCDocsRows(res);
|
||
if (rows.length) {
|
||
renderKYCDocsTableRows(rows);
|
||
} else {
|
||
// Edit API may return only status/message; refresh from list endpoint.
|
||
loadKYCDocsList();
|
||
}
|
||
window.hideKYCDocsModal();
|
||
// $('#add_branch').hide();
|
||
// $('#branch_table').show();
|
||
// $('.btnBack').hide();
|
||
// $('#btnBranchAdd').show();
|
||
},
|
||
error: function (xhr, status, error) {
|
||
console.error(xhr.responseText);
|
||
console.error(status, error);
|
||
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
if (xhr.status === 400) {
|
||
let response = JSON.parse(xhr.responseText);
|
||
let errorMessages = "";
|
||
let seenMessages = []; // Array to store unique messages
|
||
if (response.errors) {
|
||
$.each(response.errors, function (field, message) {
|
||
if (!seenMessages.includes(message)) {
|
||
errorMessages += `• ${message}<br>`;
|
||
seenMessages.push(message); // Mark this message as "seen"
|
||
}
|
||
});
|
||
toastr.error(errorMessages, 'Validation Error', { "allowHtml": true });
|
||
} else {
|
||
toastr.warning(response.message || 'Validation failed', 'Warning');
|
||
}
|
||
|
||
}else if (xhr.status === 403) {
|
||
let response = JSON.parse(xhr.responseText);
|
||
toastr.error(response.message, 'Security Policy');
|
||
} else {
|
||
toastr.error('An unexpected error occurred. Please try again later.', 'Error');
|
||
}
|
||
}, 1000);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
$('body').on('click', '.btnBranchEdit', function () {
|
||
var branch_id = $(this).attr('data-id');
|
||
kyc_docs_form_action = '<?= base_url("master/kyc/kycdocs/edit"); ?>';
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$.ajax({
|
||
url: '<?php echo base_url('master/kyc/kycdocs/editget/');?>'+branch_id,
|
||
type: "GET",
|
||
dataType: 'json',
|
||
success: function (res) {
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
}, 1000);
|
||
console.log("right.........");
|
||
window.showKYCDocsModal();
|
||
// $('#add_branch').show();
|
||
// $('#branch_table').hide();
|
||
// $('.btnBack').show();
|
||
// $('#btnBranchAdd').hide();
|
||
$('#file_name').val(res.policies.file_name);
|
||
$('#kyc_Docs_PrimaryKey').val(res.policies.id);
|
||
|
||
// $('#kyc_docs_list').html(" ");
|
||
|
||
|
||
},
|
||
error: function (xhr, status, error) {
|
||
console.error(xhr.responseText);
|
||
console.error(status, error);
|
||
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
if (xhr.status === 400) {
|
||
let response = JSON.parse(xhr.responseText);
|
||
let errorMessages = "";
|
||
let seenMessages = []; // Array to store unique messages
|
||
if (response.errors) {
|
||
$.each(response.errors, function (field, message) {
|
||
if (!seenMessages.includes(message)) {
|
||
errorMessages += `• ${message}<br>`;
|
||
seenMessages.push(message); // Mark this message as "seen"
|
||
}
|
||
});
|
||
toastr.error(errorMessages, 'Validation Error', { "allowHtml": true });
|
||
} else {
|
||
toastr.warning(response.message || 'Validation failed', 'Warning');
|
||
}
|
||
|
||
}else if (xhr.status === 403) {
|
||
let response = JSON.parse(xhr.responseText);
|
||
toastr.error(response.message, 'Security Policy');
|
||
} else {
|
||
toastr.error('An unexpected error occurred. Please try again later.', 'Error');
|
||
}
|
||
}, 1000);
|
||
}
|
||
});
|
||
});
|
||
|
||
function loadKYCDocsList() {
|
||
var base_url = '<?= base_url("master/kyc/kycdocs/list/"); ?>';
|
||
|
||
var kyc_Docs_PrimaryKey_1 = $('#kyc_General_PrimaryKey').val();
|
||
|
||
// console.log("kyc_Docs_PrimaryKey_1");
|
||
// console.log(kyc_Docs_PrimaryKey_1);
|
||
|
||
var kyc_docs_action = base_url + kyc_Docs_PrimaryKey_1;
|
||
// console.log(kyc_docs_action);
|
||
if (kyc_Docs_PrimaryKey != '') {
|
||
$('.loader').fadeIn();
|
||
$('.loader-mask').fadeIn();
|
||
$.ajax({
|
||
url: kyc_docs_action,
|
||
type: "GET",
|
||
dataType: 'json',
|
||
processData: false,
|
||
contentType: false,
|
||
success: function(res) {
|
||
|
||
console.log("response in", res);
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
}, 1000);
|
||
var rows = normalizeKYCDocsRows(res);
|
||
renderKYCDocsTableRows(rows);
|
||
},
|
||
error: function (xhr, status, error) {
|
||
console.error(xhr.responseText);
|
||
console.error(status, error);
|
||
|
||
setTimeout(function() {
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
console.log('Something Wrong!', 'warning'); }, 1000);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
|
||
setTimeout(() => {
|
||
kycDocsTable = $('#table-kyc-docs').DataTable({
|
||
paging: true,
|
||
searching: true,
|
||
autoWidth: false,
|
||
scrollX: false,
|
||
responsive: false,
|
||
columnDefs: [
|
||
{ targets: 0, width: '50%' },
|
||
{ targets: 1, width: '50%' }
|
||
],
|
||
initComplete: function () {
|
||
var $wrapper = $('#table-kyc-docs_wrapper');
|
||
$wrapper.find('.dataTables_scrollHeadInner').css({
|
||
'box-sizing': 'content-box',
|
||
'padding-right': '0px',
|
||
'width': '100%'
|
||
});
|
||
this.api().columns.adjust();
|
||
},
|
||
dom: "<'datatable-top-section'f>" +
|
||
"tr" +
|
||
"<'datatable-bottom-section d-flex justify-content-between align-items-center mt-2'<'datatable-info'i><'datatable-controls d-flex align-items-center'<'me-2'l>p>>",
|
||
language: {
|
||
search: `
|
||
<div class="datatable-search-wrapper" style="position:relative; display:inline-block;">
|
||
_INPUT_
|
||
<i class="mdi mdi-magnify datatable-search-icon" style="position:absolute; right:11px; top:50%; transform:translateY(-53%); color:#666;"></i>
|
||
<i class="mdi mdi-close-circle datatable-clear-icon" style="position:absolute; right:11px; top:50%; transform:translateY(-53%); color:#666; display:none;"></i>
|
||
</div>`,
|
||
searchPlaceholder: "Search",
|
||
emptyTable: '<div class="text-center text-muted">No data available</div>'
|
||
}
|
||
});
|
||
|
||
// Table is inside a tab-pane; adjust once visible to keep th/td aligned.
|
||
$('a[data-toggle="tab"][href="#branch-tab"], a[data-bs-toggle="tab"][href="#branch-tab"]').on('shown.bs.tab', function () {
|
||
if (kycDocsTable) {
|
||
kycDocsTable.columns.adjust().draw(false);
|
||
}
|
||
});
|
||
|
||
if ($('#branch-tab').hasClass('active') || $('#branch-tab').hasClass('show')) {
|
||
kycDocsTable.columns.adjust().draw(false);
|
||
}
|
||
}, 2000);
|
||
});
|
||
|
||
|
||
|
||
|
||
function removeKYCDocs(element) {
|
||
|
||
Swal.fire({
|
||
title: "Are you sure?",
|
||
text: "You need to remove this!.",
|
||
icon: "info",
|
||
showCancelButton: true,
|
||
confirmButtonColor: "#3085d6",
|
||
confirmButtonText: "Yes",
|
||
}).then((result) => {
|
||
|
||
if (result.isConfirmed) {
|
||
var kyc_docs_id_for_reload = $('#kyc_type_id').val();
|
||
var id = element.getAttribute('data-id');
|
||
var form_action = '<?= base_url("master/kyc/kycdocs/remove/") ?>' + id;
|
||
$.ajax({
|
||
url: form_action,
|
||
type: "GET",
|
||
dataType: 'json',
|
||
processData: false,
|
||
contentType: false,
|
||
success: function(res) {
|
||
// console.log(res.status == true);
|
||
if(res){
|
||
if (res.status == true) {
|
||
toastr.success('KYC docs removed successfully');
|
||
// location.reload();
|
||
window.location.href = '<?= base_url("master/kyc/list/") ?>' + kyc_docs_id_for_reload;
|
||
|
||
} else {
|
||
toastr.warning('Failed to remove KYC docs', 'Warning');
|
||
}
|
||
}
|
||
},
|
||
error: function (xhr, status, error) {
|
||
console.error(xhr.responseText);
|
||
console.error(status, error);
|
||
$('.loader').fadeOut();
|
||
$('.loader-mask').delay(350).fadeOut('slow');
|
||
toastr.warning('Failed to remove KYC docs', 'Warning');
|
||
}
|
||
});
|
||
}
|
||
|
||
});
|
||
}
|
||
|
||
</script>
|