Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Line breaks not coming over into UI Pages

aj_becker
Tera Guru

We have a bit of customization built into our incident module to help with Major incidents notifications.  We have a UI action that opens a UI page.  On the UI page, we have a field that copies the values from a field on the incident form(u_mi_email_body).  The problem that we are having is that the value is coming over, but its not picking up line breaks. 

If the incident form says
Line 1
Line 2

It will come over as Line1Line 2   

Below is the line of code that copies that value
<j:set var="jvar_email_body" value="${RP.getWindowProperties().get('u_mi_email_body')}" />
<g:ui_multiline_input_field label="Email Body" name="email_body" value='${jvar_email_body}' size="50" />

 

How do I add a line break within this code to allow the UI page to pick up the line breaks from the incident form?

Please let me know if I need to share more code.

Thank you

 

6 REPLIES 6

Vishakha
Mega Guru

Hi aj_becker,

Try this:-

<tr>

 

          <td style="white-space:pre-line">

 

                  ${jvar_street}

 

          </td>

 

      </tr>

For more information go through following link:

https://community.servicenow.com/community?id=community_question&sys_id=dfb64f65db1cdbc01dcaf3231f96...

 

Mark Correct & Helpful if this solves your issue.

Thanks,

Vishakha Pradhan  

This is just bring over the value of the field.  Still not correctly.  Where should I put this in my code?

this worked for me, thank YOU!

aj_becker
Tera Guru

To provide more information.  

UI Action that calls the UI Page Script: 

//Client-side 'onclick' function
function sendEmail(){
var dialog = new GlideDialogWindow("notify_major_inc_popup");
dialog.setSize(400,200);
dialog.setTitle("Send Major Incident Notification?");
dialog.setPreference("short_description", g_form.getValue("short_description"));
dialog.setPreference("incident_number", g_form.getValue("number"));
dialog.setPreference("u_major_incident_state", g_form.getValue("u_major_incident_state"));
dialog.setPreference("u_mi_work_performed", g_form.getValue("u_mi_work_performed"));
dialog.setPreference("u_mi_email_body", g_form.getValue("u_mi_email_body"));
dialog.setPreference("u_business_services", g_form.getValue("u_business_services"));
dialog.setPreference("sys_id", g_form.getUniqueValue());
dialog.render();
//action.setRedirectURL(current);
}

 

UI Page HTML

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

<!-- Get values from dialog preferences passed in -->
<j:set var="jvar_incident_number" value="${RP.getWindowProperties().get('incident_number')}" />
<j:set var="jvar_sys_id" value="${RP.getWindowProperties().get('sys_id')}" />
<j:set var="jvar_u_business_services" value="${RP.getWindowProperties().get('u_business_services')}" />

<g:ui_form>

<j:set var="jvar_mi_state" value="${RP.getWindowProperties().get('u_major_incident_state')}" />
<g:ui_multiline_input_field label='Email Subject' name="mi_state" value ='${jvar_mi_state}' table='incident' field='u_major_incident_state' />

<center>

<input type="hidden" name="cancel_or_send" id="cancel_or_send" value=""/>
<input type="hidden" name="incident_sys_id" value="${jvar_sys_id}"/>
<input type="hidden" name="u_business_services_form_input" value="${jvar_u_business_services}"/>

<j:set var="jvar_email_body" value="${RP.getWindowProperties().get('u_mi_email_body')}" />
<g:ui_multiline_input_field label="Email Body" name="email_body" value='${jvar_email_body}' field='u_mi_email_body' size="50" />

<g:dialog_buttons_ok_cancel ok_text="Send" ok="return send();" cancel="return cancel();"/>
</center>

</g:ui_form>
</j:jelly>

Client Script

function cancel() {
var c = gel('cancel_or_send');
c.value = "cancel";
//GlideDialogWindow.get().destroy();
return true;
}

function send() {
var c = gel('cancel_or_send');
c.value = "send";
g_form.save();
return true;
}

Processing Script

if(cancel_or_send == "cancel") {
gs.addErrorMessage('Notification cancelled');
}

var log = [];
log.push("RDS\n");

if(cancel_or_send == "send") {
var gr = new GlideRecord('incident');
gr.get(incident_sys_id);

log.push("BEFORE setValue -> " + gr.getValue('u_business_services'));
gr.setValue('u_business_services', u_business_services_form_input);
gr.update();
log.push("AFTER setValue -> " + gr.getValue('u_business_services'));

// look up the email addresses for the app services
var gr_app_svcs = new GlideRecord('cmdb_ci_service');
gr_app_svcs.addQuery('service_classification','=','Application Service');
var support_groups_arr = [];

// for each app service referenced on the Incident, get them into their own GR
var str_array = gr.u_business_services.toString().split(',');
for(var i = 0; i < str_array.length; i++) {
if (i == 0) {
var qc = gr_app_svcs.addQuery('sys_id', str_array[i]);
} else {
qc.addOrCondition('sys_id', str_array[i]);
}
}
gr_app_svcs.query();

// put the support group sys_ids into an array
while (gr_app_svcs.next()) {
support_groups_arr.push(gr_app_svcs.support_group.toString());
}

// for each sys_id, fire an event to sent a notification
for(var i = 0; i < support_groups_arr.length; i++) {
gs.eventQueue('incident.notification.major', gr, support_groups_arr[i]);
}

gs.addInfoMessage('Major Incident Notification Sent');
gr.setValue('u_major_incident_state', mi_state);
gr.setValue('u_mi_email_body', email_body);
gr.update();
}

// Redirect user back to Incident form
response.sendRedirect('incident.do?sys_id='+incident_sys_id);

Image below shows the line break (on the right) coming from the incident vs the UI page and it not recognizing the line break