Hello ,
I need my pop-up (UI page) to update the Closing Response Field when I click on Close Case (UI Action) and then have the case closed.
The issue that I am getting is that when I click on my UI Action the pop-up is appearing but then a few seconds later it closes and doesn't go back to my record page.
Note that my UI Action is already executing another script to close the case using a script include.
I am not able to see what my error is.
Action Name : closeCase
Onclick : validateReason()
Condition : (new global.StateFlow().validFlow(current, '81fa1d32dba688d06f1a325f9d9619d0', 'manual'));
Script :
function validateReason() {
var case_id = g_form.getUniqueValue();
var dialog = new GlideDialogWindow("sn_customerservice_ci_close_case");
dialog.setTitle("Close Case");
dialog.setSize(600,300);
dialog.render();
// Call the UI action and skip the 'onclick' function
gsftSubmit(null, g_form.getFormElement(), 'closeCase'); //MUST call the 'Action name' set in this UI Action
}
// Code that runs without 'onclick'
// Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
serverResolve();
// Server-side function
function serverResolve() {
new global.StateFlow().processFlow(current, '81fa1d32dba688d06f1a325f9d9619d0', 'manual');
}
____________________________________________________________________
UI Page :
HTML :
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:ui_form>
<!-- Get the values from dialog preferences -->
<!-- Set up form fields and labels -->
<g:evaluate jelly="true">
var sysId = jelly.sysparm_sys_id;
var warningMsg1 = gs.getMessage('Please ensure code Closing response is validated below. Modify message if needed');
</g:evaluate>
<div style="line-height: 23px;">
<div>${warningMsg1}</div>
<div class="ta-wrapper">
<label for="closing_response">Closing Response</label>
<textarea id= "closing_response" name= "closing_response" label = "Closing Response" onkeyup="" rows="20" size="" style="width: 100%;" wrap="soft"> Thank you for bringing this matter to our attention. This matter has been investigated. Due to privacy reasons, we cannot disclose the details of the investigation.</textarea>
</div>
</div>
<!--div align="right">
<input type="hidden" name="case_sys_id" value="${jvar_case_id}" />
<g:dialog_buttons_ok_cancel ok="return validateValue();" ok_type="submit" cancel_type="button" />
</div> -->
<div id = "dialog_buttons">
<div align="right">
<g:dialog_buttons_ok_cancel ok="return validateComments();" ok_type= "submit" cancel_type="button"/>
</div>
</div>
</g:ui_form>
</j:jelly>
Client Script :
//Validating that field is not empty in dialog
function validateComments() {
var comments = gel("closing_response").value;
comments = trim(comments);
if (comments == "") {
alert("Please provide Closing response to close case.");
return false;
}
GlideDialogWindow.get().destroy();
return true;
}
Processing script :
var notes = request.getparameter('notes');
var grCase = new GlideRecord('sn_customerservice_corporate_investigation');
grCase.u_closing_response = closing_response;
grCase.get('u_closing_reponse');
grCase.update();
var urlOnStack = gs.getSession().getUrlOnStack();
response.sendRedirect(urlOnStack);