How to render a dialog box based on a condition

saranyadevic
Kilo Contributor

Hi all,

I have created a glide dialog window which will get input and update the record,

Now i need to show the input field when another field of a table is holding a particular value else it should throw error,

client checked

UI action   :

function updateIncidentDetails() {

var sysId = typeof rowSysId == 'undefined' ? gel('sys_uniqueValue').value : rowSysId;

//Initialize and open the dialog

var gDialog = new GlideDialogWindow("alert_incident_window");//Instantiate the dialog containing the UI Page 'alert_incident_window'

gDialog.setTitle("Enter incident details");

gDialog.setPreference('sysparm_sysID', sysId);

gDialog.setPreference('sysparm_table', "em_alert");

gDialog.render();//Open the dialog

}

The above Ui action will get the incident id value in a text box and update it in the remote task id,     along with the UI page

I need to display the dialogue box only if the   another field has desired value

consider u_fieldname == 1

if i add in the condition of UI action   alert is shown   as 'Security does not allow the execution of that action against the specified record'

Instead i need a custom alert message to be populated

Can this be achieved ?

26 REPLIES 26

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Saranya,



Add the another field on the form layout. Don't put that in condition field.


Update your script as follows:



if(g_form.getValue('u_fieldname') == 1){


var sysId = typeof rowSysId == 'undefined' ? gel('sys_uniqueValue').value : rowSysId;


//Initialize and open the dialog


var gDialog = new GlideDialogWindow("alert_incident_window");//Instantiate the dialog containing the UI Page 'alert_incident_window'


gDialog.setTitle("Enter incident details");


gDialog.setPreference('sysparm_sysID', sysId);


gDialog.setPreference('sysparm_table', "em_alert");


gDialog.render();//Open the dialog


}



Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.


Thanks


Ankur


Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi Ankur



i added the filed to form layout and changed as you said,   i gave alert in else part,   when i clicked on ui action nothing happens,


window is not populated   and alert is not shown as well


Hi Saranya,



Can you check whether you are getting inside the if condition.


just before the if add alert to show the value of u_fieldname and check what it is giving.



Mark Correct if this solves your issue and also hit Like and Helpful if you find my response worthy based on the impact.


Thanks


Ankur


Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

function updateSmitStatus() {


alert('alert');


if(g_form.getValue('u_fieldname') == 1){


alert('iam in');


}


else {


var sysId = typeof rowSysId == 'undefined' ? gel('sys_uniqueValue').value : rowSysId;


//Initialize and open the dialog


var gDialog = new GlideDialogWindow("alert_smit_window");//Instantiate the dialog containing the UI Page 'alert_smit_window'


gDialog.setTitle("Transmission Incident Exist");


gDialog.setPreference('sysparm_sysID', sysId);


gDialog.setPreference('sysparm_table', "em_alert");


gDialog.render();//Open the dialog


}



}




its not getting in, im getting first alert only