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">
|
value="<?= isset($ticket_data['approved_date']) ? $ticket_data['approved_date'] : '' ?>" name="approved_date">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group col-md-6 approved" style="display: none;">
|
<div class="form-group col-md-3 approved" style="display: none;">
|
||||||
<label class="label-font-size" for="approved_letter">Approved Letter</label>
|
<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"
|
<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">
|
value="<?= isset($ticket_data['approved_letter']) ? $ticket_data['approved_letter'] : '' ?>" name="approved_letter">
|
||||||
</div>
|
</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;">
|
<div class="form-group col-md-6 approved" style="display: none;">
|
||||||
<label class="label-font-size" for="approved_description">Approved Description</label>
|
<label class="label-font-size" for="approved_description">Approved Description</label>
|
||||||
<input type="text" class="form-control" id="approved_description" placeholder="Enter Approved Description"
|
<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">
|
value="<?= isset($ticket_data['settled_date']) ? $ticket_data['settled_date'] : '' ?>" name="settled_date">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group col-md-6 settled" style="display: none;">
|
<div class="form-group col-md-3 settled" style="display: none;">
|
||||||
<label class="label-font-size" for="settle_letter">Settle Letter</label>
|
<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"
|
<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">
|
value="<?= isset($ticket_data['settle_letter']) ? $ticket_data['settle_letter'] : '' ?>" name="settle_letter">
|
||||||
</div>
|
</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;">
|
<div class="form-group col-md-3 canceled" style="display: none;">
|
||||||
<label class="label-font-size" for="cancel_remark">Cancel Remark</label>
|
<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>
|
<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;
|
GlobelExtraFields = extraFields;
|
||||||
console.log("extraFields", extraFields);
|
console.log("extraFields", extraFields);
|
||||||
claimStatusFieldChanges(extraFields);
|
claimStatusFieldChanges(extraFields);
|
||||||
|
// syncApprovedLetterInputs();
|
||||||
|
// syncSettleLetterInputs();
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -458,6 +482,7 @@
|
|||||||
$field.prop('required', false);
|
$field.prop('required', false);
|
||||||
var $parentDiv = $field.closest("div");
|
var $parentDiv = $field.closest("div");
|
||||||
$parentDiv.find("label[for='approved_description'] .text-danger").remove();
|
$parentDiv.find("label[for='approved_description'] .text-danger").remove();
|
||||||
|
enforceLetterPairRules();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -465,6 +490,72 @@
|
|||||||
updateClaimStatusDisplay($(this).val());
|
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) {
|
function claimStatusFieldChanges(fields) {
|
||||||
console.log('fields', fields);
|
console.log('fields', fields);
|
||||||
fields.forEach(function(fieldId) {
|
fields.forEach(function(fieldId) {
|
||||||
@ -480,6 +571,13 @@
|
|||||||
if ($label.length && !$label.find(".text-danger").length) {
|
if ($label.length && !$label.find(".text-danger").length) {
|
||||||
// $label.append(' <span class="text-danger">*</span>');
|
// $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('targetId', targetId);
|
||||||
console.log('fields.includes(targetId)', fields.includes(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);
|
let $field = $("#" + targetId);
|
||||||
console.log('$field id', $field);
|
console.log('$field id', $field);
|
||||||
@ -593,8 +694,31 @@
|
|||||||
$field.prop('required', false);
|
$field.prop('required', false);
|
||||||
var $parentDiv = $field.closest("div");
|
var $parentDiv = $field.closest("div");
|
||||||
$parentDiv.find("label[for='approved_description'] .text-danger").remove();
|
$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) {
|
// function addRequiredFieldSymbol(field_name) {
|
||||||
// // Find the field with the given name
|
// // Find the field with the given name
|
||||||
// var $field = $(`[name="${field_name}"]`);
|
// var $field = $(`[name="${field_name}"]`);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user