CHANGE_HANDLE_GPA_POLICY_TYPE_FOR_FILE_UPLOAD_FOR_APP_SET_LETTER
This commit is contained in:
parent
2fe6ad70af
commit
3908daef4f
@ -281,12 +281,23 @@
|
||||
value="<?= isset($ticket_data['approved_date']) ? $ticket_data['approved_date'] : '' ?>" name="approved_date">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6 approved" style="display: none;">
|
||||
<label class="label-font-size" for="approved_letter">Approved Letter</label>
|
||||
<input type="text" class="form-control" id="approved_letter" placeholder="Enter Approved Letter"
|
||||
<div class="form-group col-md-3 approved" style="display: none;">
|
||||
<label class="label-font-size" for="approved_letter">Approved Letter URL</label>
|
||||
<input type="text" class="form-control" id="approved_letter" placeholder="Enter Approved Letter URL"
|
||||
value="<?= isset($ticket_data['approved_letter']) ? $ticket_data['approved_letter'] : '' ?>" name="approved_letter">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3 approved" style="display: none;">
|
||||
<label class="label-font-size" for="approved_letter_file">Approved Letter PDF</label>
|
||||
<input
|
||||
type="file"
|
||||
class="form-control"
|
||||
id="approved_letter_file"
|
||||
name="approved_letter_file"
|
||||
accept=".pdf,application/pdf">
|
||||
<small class="text-muted">Only PDF allowed.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6 approved" style="display: none;">
|
||||
<label class="label-font-size" for="approved_description">Approved Description</label>
|
||||
<input type="text" class="form-control" id="approved_description" placeholder="Enter Approved Description"
|
||||
@ -305,12 +316,23 @@
|
||||
value="<?= isset($ticket_data['settled_date']) ? $ticket_data['settled_date'] : '' ?>" name="settled_date">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6 settled" style="display: none;">
|
||||
<label class="label-font-size" for="settle_letter">Settle Letter</label>
|
||||
<input type="text" class="form-control" id="settle_letter" placeholder="Enter Settle Letter"
|
||||
<div class="form-group col-md-3 settled" style="display: none;">
|
||||
<label class="label-font-size" for="settle_letter">Settle Letter URL</label>
|
||||
<input type="text" class="form-control" id="settle_letter" placeholder="Enter Settle Letter URL"
|
||||
value="<?= isset($ticket_data['settle_letter']) ? $ticket_data['settle_letter'] : '' ?>" name="settle_letter">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3 settled" style="display: none;">
|
||||
<label class="label-font-size" for="settle_letter_file">Settle Letter PDF</label>
|
||||
<input
|
||||
type="file"
|
||||
class="form-control"
|
||||
id="settle_letter_file"
|
||||
name="settle_letter_file"
|
||||
accept=".pdf,application/pdf">
|
||||
<small class="text-muted">Only PDF allowed.</small>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3 canceled" style="display: none;">
|
||||
<label class="label-font-size" for="cancel_remark">Cancel Remark</label>
|
||||
<textarea class="form-control" id="cancel_remark" rows="1" placeholder="Enter Cancel Remark" name="cancel_remark"><?= isset($ticket_data['cancel_remark']) ? $ticket_data['cancel_remark'] : '' ?></textarea>
|
||||
@ -432,6 +454,8 @@
|
||||
GlobelExtraFields = extraFields;
|
||||
console.log("extraFields", extraFields);
|
||||
claimStatusFieldChanges(extraFields);
|
||||
// syncApprovedLetterInputs();
|
||||
// syncSettleLetterInputs();
|
||||
|
||||
|
||||
})
|
||||
@ -458,6 +482,7 @@
|
||||
$field.prop('required', false);
|
||||
var $parentDiv = $field.closest("div");
|
||||
$parentDiv.find("label[for='approved_description'] .text-danger").remove();
|
||||
enforceLetterPairRules();
|
||||
|
||||
}
|
||||
|
||||
@ -465,6 +490,72 @@
|
||||
updateClaimStatusDisplay($(this).val());
|
||||
});
|
||||
|
||||
function validateApprovedLetterPdf(fileInput) {
|
||||
const file = fileInput.files && fileInput.files[0] ? fileInput.files[0] : null;
|
||||
if (!file) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const fileName = (file.name || '').toLowerCase();
|
||||
const isPdfByName = fileName.endsWith('.pdf');
|
||||
const mimeType = (file.type || '').toLowerCase();
|
||||
const isPdfByType = mimeType === '' || mimeType === 'application/pdf' || mimeType === 'application/x-pdf';
|
||||
const fieldLabel = fileInput.id === 'settle_letter_file' ? 'Settle Letter' : 'Approved Letter';
|
||||
|
||||
if (!isPdfByName || !isPdfByType) {
|
||||
fileInput.value = '';
|
||||
toastr.warning('Only PDF files are allowed for ' + fieldLabel + '.', 'Warning');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function syncApprovedLetterInputs() {
|
||||
const $urlInput = $('#approved_letter');
|
||||
const $fileInput = $('#approved_letter_file');
|
||||
|
||||
if (!$urlInput.length || !$fileInput.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const hasUrl = $.trim($urlInput.val()) !== '';
|
||||
const hasFile = $fileInput[0].files && $fileInput[0].files.length > 0;
|
||||
const isApprovedSectionVisible = $urlInput.closest('.approved').is(':visible');
|
||||
|
||||
$fileInput.prop('disabled', hasUrl);
|
||||
$urlInput.prop('disabled', hasFile);
|
||||
|
||||
$fileInput.prop('required', false);
|
||||
$urlInput.prop('required', isApprovedSectionVisible && !hasFile);
|
||||
}
|
||||
|
||||
function syncSettleLetterInputs() {
|
||||
const $urlInput = $('#settle_letter');
|
||||
const $fileInput = $('#settle_letter_file');
|
||||
|
||||
if (!$urlInput.length || !$fileInput.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const hasUrl = $.trim($urlInput.val()) !== '';
|
||||
const hasFile = $fileInput[0].files && $fileInput[0].files.length > 0;
|
||||
|
||||
$fileInput.prop('disabled', hasUrl);
|
||||
$urlInput.prop('disabled', hasFile);
|
||||
|
||||
// Settled Letter should remain optional by default.
|
||||
$fileInput.prop('required', false);
|
||||
$urlInput.prop('required', false);
|
||||
$("label[for='settle_letter'] .text-danger").remove();
|
||||
$("label[for='settle_letter_file'] .text-danger").remove();
|
||||
}
|
||||
|
||||
function enforceLetterPairRules() {
|
||||
syncApprovedLetterInputs();
|
||||
syncSettleLetterInputs();
|
||||
}
|
||||
|
||||
function claimStatusFieldChanges(fields) {
|
||||
console.log('fields', fields);
|
||||
fields.forEach(function(fieldId) {
|
||||
@ -480,6 +571,13 @@
|
||||
if ($label.length && !$label.find(".text-danger").length) {
|
||||
// $label.append(' <span class="text-danger">*</span>');
|
||||
}
|
||||
|
||||
// Keep paired PDF upload visibility in sync with URL field visibility.
|
||||
if (fieldId === 'approved_letter') {
|
||||
$('#approved_letter_file').closest('div').show();
|
||||
} else if (fieldId === 'settle_letter') {
|
||||
$('#settle_letter_file').closest('div').show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -554,6 +652,9 @@
|
||||
}
|
||||
});
|
||||
|
||||
// Re-apply URL/file pair rules after bulk required toggles.
|
||||
enforceLetterPairRules();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -565,7 +666,7 @@
|
||||
console.log('targetId', targetId);
|
||||
console.log('fields.includes(targetId)', fields.includes(targetId));
|
||||
|
||||
if (fields.includes(targetId)) {
|
||||
if (fields.includes(targetId) || targetId == "approved_letter_file" || targetId == "settle_letter_file") {
|
||||
|
||||
let $field = $("#" + targetId);
|
||||
console.log('$field id', $field);
|
||||
@ -593,8 +694,31 @@
|
||||
$field.prop('required', false);
|
||||
var $parentDiv = $field.closest("div");
|
||||
$parentDiv.find("label[for='approved_description'] .text-danger").remove();
|
||||
enforceLetterPairRules();
|
||||
|
||||
});
|
||||
|
||||
$('#approved_letter').on('input blur', function () {
|
||||
enforceLetterPairRules();
|
||||
});
|
||||
|
||||
$('#approved_letter_file').on('change', function () {
|
||||
validateApprovedLetterPdf(this);
|
||||
enforceLetterPairRules();
|
||||
});
|
||||
|
||||
$('#settle_letter').on('input blur', function () {
|
||||
enforceLetterPairRules();
|
||||
});
|
||||
|
||||
$('#settle_letter_file').on('change', function () {
|
||||
validateApprovedLetterPdf(this);
|
||||
enforceLetterPairRules();
|
||||
});
|
||||
|
||||
$('#ticket_form_data').on('submit', function() {
|
||||
enforceLetterPairRules();
|
||||
});
|
||||
// function addRequiredFieldSymbol(field_name) {
|
||||
// // Find the field with the given name
|
||||
// var $field = $(`[name="${field_name}"]`);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user