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..