This solution will remove the "Recent" node from the Quick Launch for SharePoint 2013 both on-prem or online.



Why is this needed or desired?
Each time a new list or library is created on your SharePoint site a new node called "Recent" is updated or added to the Quick Launch. If you manually delete it, it will re-add itself every time a new list or library is created. This can be undesirable for many people trying to maintain control over the Quick Launch navigation.

This is a sandbox solution composed of two components:

1) RemoveRecent.js - JavaScript Client Object Model code which removes the "Recent" node from the quick launch if detected on page refresh.
2) HideRecent.js - jQuery code to hide the "Recent" node

Why are you hiding and removing?
Since the RemoveRecent.js runs client side there is a case where you may see the "Recent" node. For example you just finished creating a new list and the page refresh. The code to remove the node in RemoveRecent.js is called asynchronously. The list or library is removed from the back end but on the client side is not updated. This could be handled with a refresh but that causes a double refresh once you create a new list and there is a delay between the refreshes. I felt that this created a bad user experience. The answer to that was to also hide the node using HideRecent.js

Why not just hide the "Recent" node?
This is a perfectly fine option as well but it's never actually removed from the navigation. So when you go to the navigation settings you will see Recent items that are not showing up on the navigation. This may cause confusion for some who are unaware that you've chose to hide it on the client side.

Known Issues
1) By using this you cannot have a navigation node called "Recent" in the Quick Launch. It will be removed by this code on page load.

Last edited Jan 9, 2014 at 2:54 AM by _tomdaly_, version 10