Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Hide filters in related list

Abinash
Kilo Contributor

I have default filters defined in my affected ci's related list but i dont want those filters to be visible to my users. How can i achieve that??

find_real_file.png

I want this filter to be hidden. Kindly help me to achieve this

Thanks in advance

1 ACCEPTED SOLUTION

Ok. I don't think there is any OOB method available for hiding that filter. I achieved this by using DOM, Please write a UI Script as mentioned below:



Scenario:



For example on the Change form we have the Problem Related List, so I am hiding the filter on the Problem Related List only present on the Change form for all the Users except the Admins.



Script:



try {


  var loc = window.location.href;


  if((loc.indexOf('sys_target=problem')>0) && loc.indexOf('sysparm_collection=change_request')>0)   //this would only hide for Problem & Change combo


  {


  setTimeout(setMyFilter, 1000);


  function setMyFilter()


  {


  if(!g_user.hasRole('admin'))                                 //This will allow to hide for all except Admins


  {


  document.getElementsByClassName('col-sm-offset-2 col-sm-8 m2m_filter_container')[0].style.display='none';


  }


  }


  }


}


catch (e) {



}



find_real_file.png



Make Sure "Global" checkbox on the UI Script form is marked as True as highlighted above.



Result:



find_real_file.png


Hope this helps.Mark the answer as correct/helpful based on impact.



Regards,


Shloke


Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

View solution in original post

18 REPLIES 18

Abinash
Kilo Contributor

yes shloke exactly dat one only!!!


Ok. I don't think there is any OOB method available for hiding that filter. I achieved this by using DOM, Please write a UI Script as mentioned below:



Scenario:



For example on the Change form we have the Problem Related List, so I am hiding the filter on the Problem Related List only present on the Change form for all the Users except the Admins.



Script:



try {


  var loc = window.location.href;


  if((loc.indexOf('sys_target=problem')>0) && loc.indexOf('sysparm_collection=change_request')>0)   //this would only hide for Problem & Change combo


  {


  setTimeout(setMyFilter, 1000);


  function setMyFilter()


  {


  if(!g_user.hasRole('admin'))                                 //This will allow to hide for all except Admins


  {


  document.getElementsByClassName('col-sm-offset-2 col-sm-8 m2m_filter_container')[0].style.display='none';


  }


  }


  }


}


catch (e) {



}



find_real_file.png



Make Sure "Global" checkbox on the UI Script form is marked as True as highlighted above.



Result:



find_real_file.png


Hope this helps.Mark the answer as correct/helpful based on impact.



Regards,


Shloke


Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Abinash
Kilo Contributor

Hi Shloke,


can u plz make me explain what does these lines actually do ?? How does this line hides the filter


document.getElementsByClassName('col-sm-offset-2 col-sm-8 m2m_filter_container')[0].style.display='none';


Hi,



Basically, this is a DOM Method by which we are retrieving all the Elements for the particular Class mentioned in the bracket (col-sm-offset-2 col-sm-8 m2m_filter_container) of the filter which is getting displayed above the slush bucket after click on the Edit button and style.display='none' is a CSS property to hide those elements.



Please refer the link below for more Details on DOM for ClassName method:



HTML DOM getElementsByClassName() Method



Hope this helps.Mark the answer as correct/helpful based on impact.



Regards,


Shloke




Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Abinash
Kilo Contributor

Thanks sloke...it was spot on..