MediaWiki:Gadget-FormCheck.js: Difference between revisions
From Tsadra Foundation Advanced Contemplative Scholarships
((by SublimeText.Mediawiker)) |
((by SublimeText.Mediawiker)) |
||
Line 29: | Line 29: | ||
} else if( $('select[name="retreattype[]"]').val() === 'Solitary hermitage') { | } else if( $('select[name="retreattype[]"]').val() === 'Solitary hermitage') { | ||
var mustFields = $('.MustField, .SolMustField'); | var mustFields = $('.MustField, .SolMustField'); | ||
} | } | ||
var retreatType = $('select[name="retreattype[]"]').val(); | |||
var status = $('input[name="status"]').val(); | |||
function checkFields(classes) { | function checkFields(classes) { | ||
if( classes.filter(function() { return this.value === ''; }).length === 0 ) { | if( classes.filter(function() { return this.value === ''; }).length === 0 ) { | ||
if( status === 'Complete' ) { | if( status === 'Complete' ) { | ||
$('.form-status').addClass('alert-danger').html("Current status: <b>COMPLETE</b>. It looks like you've completed your application. Please revise carefully all the fields in the form and verify that your information is correct. You can then click 'Submit your final application' at the bottom."); | $('.form-status').addClass('alert-danger').html("Current status: <b>COMPLETE</b>. It looks like you've completed your application. Please revise carefully all the fields in the form and verify that your information is correct. You can then click 'Submit your final application' at the bottom."); | ||
Line 64: | Line 65: | ||
checkFields(mustFields); | checkFields(mustFields); | ||
} else { | } else { | ||
console.log("Retreat type not set." | console.log("Retreat type not set."); | ||
$('.form-status').addClass('alert-primary').html('Current status: <b>SAVED</b>. Retreat type not set.' ); | $('.form-status').addClass('alert-primary').html('Current status: <b>SAVED</b>. Retreat type not set.' ); | ||
} | } | ||
Line 70: | Line 71: | ||
function checkTables() { | function checkTables() { | ||
if( | if( retreatType === 'Three-year retreat') { | ||
$('table.mw-made-collapsible').each(function(index, elem) { | $('table.mw-made-collapsible').each(function(index, elem) { | ||
if( $(this).find('.MustField, .ThreeMustField').filter(function() { return this.value === ''; }).length === 0 ) { | if( $(this).find('.MustField, .ThreeMustField').filter(function() { return this.value === ''; }).length === 0 ) { | ||
Line 76: | Line 77: | ||
} | } | ||
}); | }); | ||
} else if( | } else if( retreatType === 'Solitary hermitage') { | ||
$('table.mw-made-collapsible').each(function(index, elem) { | $('table.mw-made-collapsible').each(function(index, elem) { | ||
if( $(this).find('.MustField, .SolMustField').filter(function() { return this.value === ''; }).length === 0 ) { | if( $(this).find('.MustField, .SolMustField').filter(function() { return this.value === ''; }).length === 0 ) { | ||
Line 85: | Line 86: | ||
} | } | ||
if( ( | if( (status === 'Saved') || (status === 'Complete') ) { | ||
$(checkForm()); | $(checkForm()); | ||
} else { | } else { |
Revision as of 07:48, 28 June 2024
$('#TfacsSubmission').ready( function() {
$('.section-nav-toggles').click( function(event) {
setTimeout( function() {
var activeTable = $('.mw-collapsible:not(.mw-collapsed)')
var atOffset = $(activeTable).offset().top
var navBarHeight = $('#mw-navigation').outerHeight()
$([document.documentElement, document.body]).animate({
scrollTop: atOffset - ( navBarHeight * 2 ) - 7
}, 0);
}, "1");
$(this).next().next('.section-nav-toggles').toggle();
$(this).prev().prev('.section-nav-toggles').toggle();
var nextText = 'Next section <i class="fa-duotone fa-diagram-next pl-1"></i>'
var prevText = 'Previous section <i class="fa-duotone fa-diagram-previous pl-1"></i>'
if ( $(this).html() == nextText ) {
$(this).html(prevText);
} else {
$(this).html(nextText);
}
});
var allInputs = $('#TfacsSubmission input, #TfacsSubmission select, #TfacsSubmission textarea');
if( $('select[name="retreattype[]"]').val() === 'Three-year retreat') {
var mustFields = $('.MustField, .ThreeMustField');
} else if( $('select[name="retreattype[]"]').val() === 'Solitary hermitage') {
var mustFields = $('.MustField, .SolMustField');
}
var retreatType = $('select[name="retreattype[]"]').val();
var status = $('input[name="status"]').val();
function checkFields(classes) {
if( classes.filter(function() { return this.value === ''; }).length === 0 ) {
if( status === 'Complete' ) {
$('.form-status').addClass('alert-danger').html("Current status: <b>COMPLETE</b>. It looks like you've completed your application. Please revise carefully all the fields in the form and verify that your information is correct. You can then click 'Submit your final application' at the bottom.");
} else if( status === 'Saved' ){
$('.form-status').addClass('alert-success').html('Current status: <b>SAVED</b>. All filled! Status will change to complete upon next save.');
console.log('Setting STATUS to "Complete".');
$('input[name="status"]').val("Complete");
}
} else {
console.log("Fields still missing.");
var fieldsMissing = ''
classes.each( function(index, val) {
if( !$(this).val() ){
var name = $(this).attr("name");
console.log( index + ': ' + name );
fieldsMissing = fieldsMissing + '<div>' + index + ': ' + name + '</div>'
}
});
$('input[name="status"]').val("Saved");
$('.form-status').addClass('alert-primary').html('Current status: <b>SAVED</b>. Some fields are still missing.' );
}
$(checkTables());
allInputs.on( "keyup", checkTables() );
}
function checkForm() {
allInputs.prop('disabled', false);
if (mustFields) {
checkFields(mustFields);
} else {
console.log("Retreat type not set.");
$('.form-status').addClass('alert-primary').html('Current status: <b>SAVED</b>. Retreat type not set.' );
}
}
function checkTables() {
if( retreatType === 'Three-year retreat') {
$('table.mw-made-collapsible').each(function(index, elem) {
if( $(this).find('.MustField, .ThreeMustField').filter(function() { return this.value === ''; }).length === 0 ) {
$(this).children('caption').children('.checkMrk').show();
}
});
} else if( retreatType === 'Solitary hermitage') {
$('table.mw-made-collapsible').each(function(index, elem) {
if( $(this).find('.MustField, .SolMustField').filter(function() { return this.value === ''; }).length === 0 ) {
$(this).children('caption').children('.checkMrk').show();
}
});
}
}
if( (status === 'Saved') || (status === 'Complete') ) {
$(checkForm());
} else {
allInputs.not('#DummyField, #TfacsSubmitApplication').prop('disabled', true);
$('.form-status').addClass('alert-dark').html('Current status: <b>SUBMITTED</b>. <br> Your application has been submitted. The contemplative scholarship administrator will contact you shortly.' );
}
})