Monday, December 9, 2013

Office365 / SharePoint 2013 - Nascondere link del menu contestuale (ECB)

Utilizzando jQuery ho inserito in un javascript un comando per sostituire le funzioni richiamate dal clic sul Menu dell'item (i "...").

$("div.ms-list-itemLink").click(function(){
  CoreInvoke('ShowECBMenuForTr', this, event);GestioneMenuItem(); return false;
 });

 $("a.ms-lstItmLinkAnchor").click(function(){
  CoreInvoke('ShowECBMenuForTr', this, event);GestioneMenuItem(); return false;
 });


Questi comandi aggiungono una funzione al metodo standard richiamato dal clic e che genera il menu contestuale dell'item.

La funzione "iniettata" esegue un secondo comando dopo qualche ms, attendendo la creazione del menu.

function GestioneMenuItem(){
 setTimeout("DoGestioneMenuItem()",300);
}


La funzione responsabile della modifica del menu è la seguente e cerca gli elementi da nascondere tramite il titolo del link:

function DoGestioneMenuItem(){
 $("a[title='Elimina elemento']").parent().hide();
}


Il risultato è che, dopo il clic ed un leggero intervallo, verrà nascosta la voce di menu.

Prima:
 
Dopo: