Hide 'Close Incident' button based on 'State' == Resolved

Pierre5
Kilo Expert

Dear Community,

I was wondering if someone could help with the following…

We need to hide the ‘Close Incident’ button (affect all users) when the ticket is in a ‘State’ of Resolved. It currently serves no purpose at present, and that confuses some people. incident.[incident]

I’m a novice, so any instructions or advice would need to be perfectly clear. Baby steps would be nice. 🙂

find_real_file.png

 

Your help will be much appreciated.

Kind regards,

 

Pierre

1 ACCEPTED SOLUTION

You will have to put that in the condition as well. 

 

(current.incident_state != '1' && current.incident_state != '7' && current.incident_state != '6') && (gs.hasRole("itil") || gs.hasRole("itil_admin") || current.caller_id == gs.getUserID() || gs.hasRole("admin"))

 

Hope you got the resolution with my help.

Can you mark correct answer to close this thread?

 

Regards,

Omkar Mone

View solution in original post

24 REPLIES 24

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

update the condition of that UI action as below; the below is out of the box condition

existing condition: new global.IncidentUtils().canCloseIncident(current)

added new as per your case

new condition: new global.IncidentUtils().canCloseIncident(current) && current.state != '6'

Mark Correct if this solves your issue and also mark 👍 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 already have this in the condition. How and where to I add this please.

Onclick: resolveIncident();

 

Condition:

(current.incident_state != IncidentState.NEW && current.incident_state != IncidentState.CLOSED && current.incident_state != IncidentState.RESOLVED) && (gs.hasRole("itil") || gs.hasRole("itil_admin") || current.caller_id == gs.getUserID())

 

This is the script

function resolveIncident(){
	//Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
	g_form.setValue('incident_state', 6);
	g_form.setValue('state', 6);
	g_form.setValue('resolved_by', g_user.userID);
	
	gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //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();

function serverResolve(){
	current.incident_state = IncidentState.RESOLVED;
	current.state = IncidentState.RESOLVED;
	current.update();
	current.resolved_by = gs.getUserID();
}

 

Regards,

 

Pierre

Hi,

update condition as below

(current.incident_state != IncidentState.NEW && current.incident_state != IncidentState.CLOSED && current.incident_state != IncidentState.RESOLVED && current.state != '6') && (gs.hasRole("itil") || gs.hasRole("itil_admin") || current.caller_id == gs.getUserID())

Mark Correct if this solves your issue and also mark 👍 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 tried this but it was too long and got cut off at the end.

(current.incident_state != IncidentState.NEW && current.incident_state != IncidentState.CLOSED && current.incident_state != IncidentState.RESOLVED && current.state != '6') && (gs.hasRole("itil") || gs.hasRole("itil_admin") || current.caller_id == gs.getUserID())

 

find_real_file.png

I though I was almost there... damn length has always been my problem