FIX_POLICY_TRANSACTION_INCEPTION_EDIT/DELETE_SRI

This commit is contained in:
Srinivas-Saravanan 2025-02-25 14:55:33 +05:30
parent 5c3d928c24
commit d9bd488f2a

View File

@ -319,7 +319,7 @@ table.dataTable tbody td {
<a class="dropdown-item btnEdit" data-id="<?= $row['id'];?>" onclick="getPolicyTransactionDataForEdit('<?= htmlspecialchars($row['id'], ENT_QUOTES) ?>')">
<i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit
</a>
<a class="dropdown-item" data-id="<?= $row['id'];?>" onclick="removePolicyTransaction(this, '<?= htmlspecialchars($row['id'], ENT_QUOTES) ?>')">
<a class="dropdown-item delete" data-id="<?= $row['id'];?>" onclick="removePolicyTransaction(this, '<?= htmlspecialchars($row['id'], ENT_QUOTES) ?>')">
<i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Delete
</a>
</div>
@ -370,25 +370,25 @@ table.dataTable tbody td {
document.addEventListener("DOMContentLoaded", function () {
const table = document.getElementById("tickets-table");
// Create custom dropdown
function createCustomDropdown(row) {
// Get the original dropdown items
const originalDropdown = row.querySelector('.dropdown-menu');
if (!originalDropdown) return null;
// Create new dropdown with proper background and spacing
const customDropdown = document.createElement('div');
customDropdown.className = 'custom-dropdown-menu';
// Copy inner content while maintaining icon alignment
customDropdown.innerHTML = originalDropdown.innerHTML;
const items = originalDropdown.querySelectorAll('.dropdown-item');
items.forEach(item => {
const newItem = item.cloneNode(true);
newItem.removeAttribute('onclick');
customDropdown.appendChild(newItem);
});
return customDropdown;
}
let activeDropdown = null;
// Add click event listener to rows
table.querySelectorAll("tbody tr").forEach(row => {
const customDropdown = createCustomDropdown(row);
if (!customDropdown) return;
@ -401,51 +401,56 @@ document.addEventListener("DOMContentLoaded", function () {
return;
}
// Hide any active dropdown
if (activeDropdown) {
// Close any existing dropdown
if (activeDropdown && activeDropdown !== customDropdown) {
activeDropdown.style.display = 'none';
}
// Get click position
const rect = event.target.getBoundingClientRect();
// Position the dropdown with some offset
customDropdown.style.display = 'block';
customDropdown.style.position = 'fixed';
customDropdown.style.left = `${rect.left}px`;
customDropdown.style.top = `${rect.bottom + 5}px`; // Add 5px gap
customDropdown.style.top = `${rect.bottom + 5}px`;
// Set as active dropdown
activeDropdown = customDropdown;
event.stopPropagation();
});
// Preserve click handlers and add auto-close
// Handle clicks on dropdown items
customDropdown.querySelectorAll('.dropdown-item').forEach(item => {
item.addEventListener('click', function(e) {
const onclickAttr = this.getAttribute('onclick');
if (onclickAttr) {
eval(onclickAttr);
}
e.preventDefault();
e.stopPropagation();
const id = this.getAttribute('data-id');
const href = this.getAttribute('href');
if (href && href !== '#') {
window.location.href = href;
// Handle edit button
if (this.classList.contains('btnEdit') && id) {
getPolicyTransactionDataForEdit(id);
}
// Handle delete button
else if (this.classList.contains('delete') && id) {
removePolicyTransaction(this, id);
}
// Handle other links
else {
const href = this.getAttribute('href');
if (href && href !== '#' && href !== 'javascript: void(0);') {
window.location.href = href;
}
}
// Close the dropdown after handling the click
// Close dropdown
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
e.stopPropagation();
});
}, { once: true });
});
});
// Close dropdown when clicking outside
// Close dropdown on outside click
document.addEventListener("click", function() {
if (activeDropdown) {
activeDropdown.style.display = 'none';
@ -1486,7 +1491,7 @@ function onlyNumbers(event)
<script>
$(document).ready(function() {
getURLParams()
// getURLParams()
$('#client_id_for_search').select2();
$('#insurer_id_for_search').select2();
$('#policy_type_for_search').select2();
@ -1531,50 +1536,50 @@ function objectToQueryString(obj)
return Object.keys(obj).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join('&');
}
function getURLParams()
{
const url = new URL(window.location.href);
const params = new URLSearchParams(url.search);
// function getURLParams()
// {
// const url = new URL(window.location.href);
// const params = new URLSearchParams(url.search);
const startDate = params.get('start_date') || 0; // Default to 0 if not found
const endDate = params.get('end_date') || 0; // Default to 0 if not found
const client_id = params.get('client_id') || 0; // Default to 0 if not found
const insurer_id = params.get('insurer_id') || 0; // Default to 0 if not found
const policy_type_id = params.get('policy_type_id') || 0; // Default to 0 if not found
const date_type = params.get('date_type') || 0; // Default to 0 if not found
const issuer = params.get('issuer') || 0; // Default to 0 if not found
const status = params.get('status') || 0; // Default to 0 if not found
// const startDate = params.get('start_date') || 0; // Default to 0 if not found
// const endDate = params.get('end_date') || 0; // Default to 0 if not found
// const client_id = params.get('client_id') || 0; // Default to 0 if not found
// const insurer_id = params.get('insurer_id') || 0; // Default to 0 if not found
// const policy_type_id = params.get('policy_type_id') || 0; // Default to 0 if not found
// const date_type = params.get('date_type') || 0; // Default to 0 if not found
// const issuer = params.get('issuer') || 0; // Default to 0 if not found
// const status = params.get('status') || 0; // Default to 0 if not found
hideDateField(date_type)
// hideDateField(date_type)
// console.log('startDate', startDate)
// console.log('endDate', endDate)
// console.log('client_id', client_id)
// console.log('insurer_id', insurer_id)
// console.log('policy_type_id', policy_type_id)
// console.log('date_type', date_type)
// console.log('issuer', issuer)
// console.log('status', status)
// // console.log('startDate', startDate)
// // console.log('endDate', endDate)
// // console.log('client_id', client_id)
// // console.log('insurer_id', insurer_id)
// // console.log('policy_type_id', policy_type_id)
// // console.log('date_type', date_type)
// // console.log('issuer', issuer)
// // console.log('status', status)
// Log the values or use them as needed
// console.log('Start Date:', startDate);
// console.log('End Date:', endDate);
// // Log the values or use them as needed
// // console.log('Start Date:', startDate);
// // console.log('End Date:', endDate);
if (startDate != 0 && endDate != 0) {
setTimeout(function(){
$('#start_date').val(startDate)
$('#end_date').val(endDate)
$('#client_id_for_search').val(client_id).change()
$('#insurer_id_for_search').val(insurer_id).change()
$('#policy_type_for_search').val(policy_type_id).change()
$('#date_type').val(date_type)
$('#issuer_for_search').val(issuer)
$('#policy_status_for_search').val(status)
},1000)
// if (startDate != 0 && endDate != 0) {
// setTimeout(function(){
// $('#start_date').val(startDate)
// $('#end_date').val(endDate)
// $('#client_id_for_search').val(client_id).change()
// $('#insurer_id_for_search').val(insurer_id).change()
// $('#policy_type_for_search').val(policy_type_id).change()
// $('#date_type').val(date_type)
// $('#issuer_for_search').val(issuer)
// $('#policy_status_for_search').val(status)
// },1000)
}
// }
}
// }
$(function() {