How to get particular field name in confirm box used in list view ui action

prit022s
Tera Contributor

I have written below code in ui action which performs deactivation of selected record.
the requirement was to get one confirm box containg message "Do you want to deactivate ticket <ticket name>?" and after we click ok selected records should get deactivate, So how can i get selected record's names(which is stored in name field ticket) in confirm box ?

 

UI action code:

 

function onClick() {
    var usrResponse = confirm('You are about to deactivateticket  <ticket_name>. Proceed?');

    if (usrResponse.toString() == 'false') {
        return false;
    } else {

        var listProcesses = g_list.getChecked().toString();
              deactivateProcesses(listProcesses);
   }
}

function deactivateProcesses(listProcesses) {
    var processOn = new GlideAjax('AjaxUtils');
    processOn.addParam('sysparm_name', 'ticket');
    processOn.addParam('sysparm_processList', listProcesses);
    processOn.getXML(Parse);
}
function Parse(response) {
    GlideList2.get('x_tsigh_ts_ticket').refresh();
}

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@prit022s 

it's list UI action so you will select multiple records

So you should get the display value using Ajax and then show in confirm box

Something like this

function onClick() {

    var listProcesses = g_list.getChecked().toString();

    // make GlideAjax call here and get the ticket number as array from script include

    var ga = new GlideAjax('AjaxUtils');
    ga.addParam('sysparm_name', 'getDisplayName');
    ga.addParam('sysparm_processList', listProcesses);
    ga.getXMLAnswer(function(answer) {
        var usrResponse = confirm('You are about to deactivateticket  " + answer.toString() + " . Proceed?');
        if (usrResponse.toString() == 'false') {
            return false;
        } else {
            deactivateProcesses(listProcesses);
        }
    });

}

function deactivateProcesses(listProcesses) {
    var processOn = new GlideAjax('AjaxUtils');
    processOn.addParam('sysparm_name', 'ticket');
    processOn.addParam('sysparm_processList', listProcesses);
    processOn.getXML(Parse);
}

function Parse(response) {
    GlideList2.get('x_tsigh_ts_ticket').refresh();
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

1 REPLY 1

Ankur Bawiskar
Tera Patron
Tera Patron

@prit022s 

it's list UI action so you will select multiple records

So you should get the display value using Ajax and then show in confirm box

Something like this

function onClick() {

    var listProcesses = g_list.getChecked().toString();

    // make GlideAjax call here and get the ticket number as array from script include

    var ga = new GlideAjax('AjaxUtils');
    ga.addParam('sysparm_name', 'getDisplayName');
    ga.addParam('sysparm_processList', listProcesses);
    ga.getXMLAnswer(function(answer) {
        var usrResponse = confirm('You are about to deactivateticket  " + answer.toString() + " . Proceed?');
        if (usrResponse.toString() == 'false') {
            return false;
        } else {
            deactivateProcesses(listProcesses);
        }
    });

}

function deactivateProcesses(listProcesses) {
    var processOn = new GlideAjax('AjaxUtils');
    processOn.addParam('sysparm_name', 'ticket');
    processOn.addParam('sysparm_processList', listProcesses);
    processOn.getXML(Parse);
}

function Parse(response) {
    GlideList2.get('x_tsigh_ts_ticket').refresh();
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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