Rimuovere il menu "Recenti" in SharePoint 2016
In SharePoint, quando si aggiunge una nuova lista o document library, viene aggiunta una nuova voce di menu chiamata Recent (in inglese) o Recenti (in italiano), con all'interno le voci aggiunte:a quanto pare non c'è modo di disabilitare questo comportamento.
Andando a vedere l'html generato, la voce aggiunta è identica ad ogni altra voce di menu, senza nessuna discriminante:
L'unico modo che ho trovato per nascondere la voce di menu è quella di inserire un JavaScript con JQuery nella master page che parte dopo il load della pagina.
Lo scopo è cercare la voce di menu tramite il testo contenuto Recenti / Recent e la nasconderla agli utenti normali:
Nel caso l'utente è un site collection administrator, il testo del menu sarà rosso in modo da evidenziarlo per eventualmente procedere, manualmente, alla sua cancellazione definitiva.
Andando a vedere l'html generato, la voce aggiunta è identica ad ogni altra voce di menu, senza nessuna discriminante:
HTML
<div class="ms-displayInline msys-quicklaunch">
<div id="ctl00_QuickLaunchNavigationManager">
<div id="zz13_V4QuickLaunchMenu" class=" noindex ms-core-listMenu-horizontalBox">
<ul id="zz14_RootAspMenu" class="root ms-core-listMenu-root static">
<!-- voci normali di menu -->
<li class="static dynamic-children">
<span class="static dynamic-children menu-item ms-core-listMenu-item ms-displayInline ms-navedit-linkNode">
<span aria-haspopup="true" class="additional-background ms-navedit-flyoutArrow dynamic-children">
<span class="menu-item-text">Report</span>
</span>
</span>
<ul class="dynamic" style="z-index: 1100;">
...
</ul>
</li>
...
<!-- voce recent/recenti -->
<li class="static dynamic-children">
<span class="static dynamic-children menu-item ms-core-listMenu-item ms-displayInline ms-navedit-linkNode">
<span aria-haspopup="true" class="additional-background ms-navedit-flyoutArrow dynamic-children">
<span class="menu-item-text">Recenti</span>
</span>
</span>
<ul class="dynamic">
<li class="dynamic">
<a class="dynamic menu-item ms-core-listMenu-item ms-displayInline ms-navedit-linkNode" href="/Documenti/AllItems.aspx">
<span class="additional-background ms-navedit-flyoutArrow">
<span class="menu-item-text">Documenti</span>
</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
Lo scopo è cercare la voce di menu tramite il testo contenuto Recenti / Recent e la nasconderla agli utenti normali:
JavaScript
$(function () {
if (_spPageContextInfo.isSiteAdmin === true) {
// la evidenzio in rosso ai site collection admin
$(".msys-quicklaunch span.menu-item-text:contains('Recenti')").css("color","red")
$(".msys-quicklaunch span.menu-item-text:contains('Recent')").css("color","red")
} else {
// la nascondo agli utenti normali
$(".msys-quicklaunch span.menu-item-text:contains('Recenti')").parents("li").remove()
$(".msys-quicklaunch span.menu-item-text:contains('Recent')").parents("li").remove()
}
});