Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev

This commit is contained in:
VENKATESHWARAN 2025-02-28 15:11:35 +05:30
commit 3da1a18178

View File

@ -291,7 +291,6 @@
</div>
<script>
let GlobelExtraFields = [];
$(document).ready(function() {
@ -326,8 +325,14 @@ $(document).ready(function() {
allowInput: false
});
flatpickr("#approved_date", { dateFormat: "d/m/Y", allowInput: false });
flatpickr("#settled_date", { dateFormat: "d/m/Y", allowInput: false });
flatpickr("#approved_date", {
dateFormat: "d/m/Y",
allowInput: false
});
flatpickr("#settled_date", {
dateFormat: "d/m/Y",
allowInput: false
});
// updateClaimStatusDisplay("<?= isset($ticket_data['claim_status_id']) ? $ticket_data['claim_status_id'] : 0 ?>")
var extraFields = <?= json_encode(isset($extra_fields) ? $extra_fields : []); ?>;
@ -374,7 +379,7 @@ function claimStatusFieldChanges(fields) {
var $label = $parentDiv.find("label[for='" + fieldId + "']");
if ($label.length && !$label.find(".text-danger").length) {
$label.append(' <span class="text-danger">*</span>');
// $label.append(' <span class="text-danger">*</span>');
}
}
});
@ -406,7 +411,50 @@ fields.forEach(function(fieldId) {
}
});
$('.'+thirdClass).find('input, textarea').attr('required', true);
// $('.'+thirdClass).find('input, textarea').attr('required', true);
let extrafieldsArray = $('#extra_fields_array_for_validate').val();
try {
extrafieldsArray = JSON.parse(extrafieldsArray); // Convert string to object
} catch (error) {
console.error("Invalid JSON format in extra_fields_array_for_validate:", error);
return;
}
var selectedClaimStatus = $('#claim_status_id').val();
var $thirdClass = $(`.${thirdClass}`);
var hasValue = $thirdClass.find('input, textarea, select').filter(function() {
return $(this).val().trim() !== ''; // Check if at least one field is not empty
}).length > 0;
console.log ("has value ",hasValue);
$thirdClass.each(function() {
var id = $(this).find('[id]').first().attr('id');
var $label = $(this).find('label');
var $thisDiv = $(this);
var $inputs = $thisDiv.find('input, textarea, select');
// ✅ Condition 1: Check if this ID is in extraFieldsArray (required by status)
var shouldAddRequired = extrafieldsArray[selectedClaimStatus] && extrafieldsArray[selectedClaimStatus].includes(id);
console.log ("shouldAddRequired ",shouldAddRequired);
// ✅ Condition 2: If any field in the class has a value, make all required
if (shouldAddRequired || hasValue) {
if ($label.length && !$label.find('.text-danger').length) {
$label.append(' <span class="text-danger">*</span>');
}
// console.log("input from if ", $inputs);
// $inputs.attr('required', true);
$('.' + thirdClass).find('input, textarea,select').attr('required', true);
console.log(`class ${thirdClass} added required label and added required field`);
} else {
$label.find('.text-danger').remove();
console.log("input ", $inputs);
// $inputs.prop('required', false);
$('.' + thirdClass).find('input, textarea,select').attr('required', false);
console.log(`class ${thirdClass} removed required label and removed required field`);
}
});
}
@ -427,7 +475,7 @@ console.log('fields', fields);
// addRequiredFieldSymbol(targetId);
if ($parentDiv.length) {
let thirdClass = $parentDiv.attr("class").split(" ")[2] || "";
addRequiredFieldSymbolByClass(thirdClass);
// addRequiredFieldSymbolByClass(thirdClass);
console.log('thirdClass', thirdClass);
if (thirdClass) {
@ -480,23 +528,22 @@ console.log('fields', fields);
// console.warn(`No field found with name="${field_name}"`);
// }
// }
function addRequiredFieldSymbolByClass(className) {
// Find all divs with the specified class
var $divsWithClass = $(`.${className}`);
// function addRequiredFieldSymbolByClass(className) {
// // Find all divs with the specified class
// var $divsWithClass = $(`.${className}`);
if ($divsWithClass.length) {
// Add asterisk to all labels within these divs
$divsWithClass.each(function() {
var $label = $(this).find('label');
if ($label.length && !$label.find('.text-danger').length) {
$label.append(' <span class="text-danger">*</span>');
}
});
console.log(`Added required symbol to ${$divsWithClass.length} labels with class "${className}"`);
} else {
console.warn(`No divs found with class="${className}"`);
}
}
// if ($divsWithClass.length) {
// // Add asterisk to all labels within these divs
// $divsWithClass.each(function() {
// var $label = $(this).find('label');
// if ($label.length && !$label.find('.text-danger').length) {
// $label.append(' <span class="text-danger">*</span>');
// }
// });
// console.log(`Added required symbol to ${$divsWithClass.length} labels with class "${className}"`);
// } else {
// console.warn(`No divs found with class="${className}"`);
// }
// }
</script>