diff --git a/app/Views/ticket_form_gmc.php b/app/Views/ticket_form_gmc.php index 94a90e64..e79389c2 100644 --- a/app/Views/ticket_form_gmc.php +++ b/app/Views/ticket_form_gmc.php @@ -563,7 +563,46 @@ } }); - $('.' + 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; + + $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); + + // ✅ 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(' *'); + } + console.log("input from if ",$inputs); + // $inputs.attr('required', true); + $('.' + thirdClass).find('input, textarea,select').attr('required', true); + } else { + $label.find('.text-danger').remove(); + console.log("input ",$inputs); + // $inputs.prop('required', false); + $('.' + thirdClass).find('input, textarea,select').attr('required', false); + } + }); } @@ -585,7 +624,7 @@ if ($parentDiv.length) { let thirdClass = $parentDiv.attr("class").split(" ")[2] || ""; console.log('thirdClass', thirdClass); - addRequiredFieldSymbolByClass(thirdClass); + // addRequiredFieldSymbolByClass(thirdClass); // addRequiredFieldSymbol(targetId); if (thirdClass) { // console.log("fields",fields); @@ -606,64 +645,97 @@ } }); -function addRequiredFieldSymbol(field_name) { - // Find the field with the given name - var $field = $(`[name="${field_name}"]`); +// function addRequiredFieldSymbol(field_name) { +// // Find the field with the given name +// var $field = $(`[name="${field_name}"]`); - if ($field.length) { - // Find the parent div of this field - var $parentDiv = $field.closest('div'); +// if ($field.length) { +// // Find the parent div of this field +// var $parentDiv = $field.closest('div'); - if ($parentDiv.length) { - // Get the classes as an array - var classes = $parentDiv.attr('class') ? $parentDiv.attr('class').split(/\s+/) : []; +// if ($parentDiv.length) { +// // Get the classes as an array +// var classes = $parentDiv.attr('class') ? $parentDiv.attr('class').split(/\s+/) : []; - if (classes.length > 0) { - // Get the last class in the array - var lastClass = classes[classes.length - 1]; +// if (classes.length > 0) { +// // Get the last class in the array +// var lastClass = classes[classes.length - 1]; - // Find all divs with this last class - var $allDivsWithClass = $(`.${lastClass}`); +// // Find all divs with this last class +// var $allDivsWithClass = $(`.${lastClass}`); - // Add asterisk to all labels within these divs - $allDivsWithClass.each(function() { - var $label = $(this).find('label'); - if ($label.length && !$label.find('.text-danger').length) { - $label.append(' *'); - } - }); +// // Add asterisk to all labels within these divs +// $allDivsWithClass.each(function() { +// var $label = $(this).find('label'); +// if ($label.length && !$label.find('.text-danger').length) { +// $label.append(' *'); +// } +// }); - console.log(`Added required symbol to ${$allDivsWithClass.length} labels with class "${lastClass}"`); - } else { - console.warn(`Parent div for field "${field_name}" has no classes`); - } - } else { - console.warn(`No parent div found for field name="${field_name}"`); - } - } else { - console.warn(`No field found with name="${field_name}"`); - } -} +// console.log(`Added required symbol to ${$allDivsWithClass.length} labels with class "${lastClass}"`); +// } else { +// console.warn(`Parent div for field "${field_name}" has no classes`); +// } +// } else { +// console.warn(`No parent div found for field name="${field_name}"`); +// } +// } else { +// console.warn(`No field found with name="${field_name}"`); +// } +// } 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(' *'); - } - }); - - console.log(`Added required symbol to ${$divsWithClass.length} labels with class "${className}"`); + 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(); + console.log("Selected claim status ID:", selectedClaimStatus); + console.log("Extra Field Array:", extrafieldsArray[selectedClaimStatus]); + + // ✅ Check if at least one field inside the class has a value + // var hasValue = $divsWithClass.find('input, textarea, select').filter(function () { + // return $(this).val().trim() !== ''; // Check if at least one field is not empty + // }).length > 0; + + // $divsWithClass.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); + + // // ✅ 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(' *'); + // } + // console.log("input from if ",$inputs); + // $inputs.attr('required', true); + // } else { + // $label.find('.text-danger').remove(); + // console.log("input ",$inputs); + // $inputs.prop('required', false); + // } + // }); + + console.log(`Processed ${$divsWithClass.length} labels with class "${className}"`); } else { console.warn(`No divs found with class="${className}"`); } } + $('#mode_of_intimation').change(function(){ console.log("function called"); var mode_of_intimation = $('#mode_of_intimation').val();