This script achieves the following:
- display a user friendly modal
- return false if cancel clicked, without saving the form
- return true if OK clicked, and save the form
- return true if the conditions for displaying the dialog message are false
it's a little more tricky with onsubmit due to asynchronous transactions not being possible! [See related post for onchange client script which is asynch friendly: dialog with callback]
var _canSubmit = false;
var _dialog;
function onSubmit() {
if (_canSubmit) {
return true;
}
/* */
//Check for Assignment Group
if (g_form.getValue('assignment_group') == g_scratchpad.assignmentGroup && g_scratchpad.serviceOfferingABC == true) {
var wNote = g_form.getValue('work_notes');
//If Work note updated
if (wNote != '' && wNote != null) {
//Alert user to remove any Sensitive data
/*replace JS confirm with nicer dialog*/
g_form.setMandatory('work_notes', false); //--don't block form submission
g_form.clearMessages();
_canSubmit = false;
var sMsg = new GwtMessage().getMessage('inc.work_notes_sesitive_data');
var dialog = new GlideModal('glide_modal_confirm', true, 500);
dialog.setTitle('test RDS');
dialog.setPreference('body', new GwtMessage().format(sMsg));
dialog.setPreference('focusTrap', true);
dialog.setPreference('onPromptComplete', doComplete);
dialog.setPreference('onPromptCancel', doCancel);
dialog.setPreference('buttonLabelComplete', 'OK');
dialog.setPreference('buttonLabelCancel', 'Cancel');
dialog.render();
return false;
//return confirm(new GwtMessage().getMessage('inc.hoth.work_notes_sesitive_data'));
}else{
g_form.setMandatory('work_notes', true);
return false;
}
return true;
}
function doComplete() {
canSubmit = true;
g_form.submit();
g_form.setMandatory('work_notes', false);
_canSubmit = true;
var action = g_form.getActionName();
if(action == 'sysverb_update_and_stay')
g_form.save();
else if(action=='sysverb_update_bottom')
g_form.submit('sysverb_update_bottom');
else
g_form.submit();
/*if (action) {
gsftSubmit(action);
} else {
g_form.submit();
}*/
}
function doCancel() {
g_form.setMandatory('work_notes', true);
if (_dialog)
_dialog.destroy();
return false;
}
Comments
Post a Comment