Make fields read only on form level for incident

Yugandhar1
Tera Contributor

Hi All,

 

Recently we have one requirement, For incident, set read only fields on from level when below condition:-

1) Incident is active.
2)  User is not member of assignment group
3) Do not apply for users with admin role

 

I achieved by using ACL but client need on form level i know using client script we can achieve but i am not with coding any help in coding much appreciated.

1 REPLY 1

Community Alums
Not applicable

Hi Yugandhar,

 

Here is the Script. Please don't forget the Script Include name and function name as per yours. (Read the comment)

 

Client Script:

 

var ga = new GlideAjax('ScriptIncludeName'); //Script include name
    ga.addParam('sysparm_name', 'makeReadOnly');  //Script include function name
    ga.addParam('sysparm_incident_sys_id', g_form.getUniqueValue());
    ga.getXML(getResponse);
   
    function getResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
       
        if(answer == true) {
            g_form.setReadOnly("short_description",true); //Field name to make read only
        }
    }

 

Script Include function:

 

makeReadOnly: function() {
        var inc = new GlideRecord("incident");
        inc.addQuery("sys_id", this.getParameter("sysparm_incident_sys_id"));
        inc.query();
        if (inc.next()) {
            if (inc.active == true && gs.getUser().isMemberOf(inc.assignment_group) && !gs.hasRole("admin"))
                return true;
        }
        return false;
    }