Monday, December 9, 2013

Office365 / SharePoint 2013 - Modificare l'ordine dei link del menu contestuale (ECB)

Se vi è capitato di utilizzare, da SharePoint Designer 2013, una Custom Action per aggiungere nel menu contestuale di un item un nuovo link (ad esempio verso una funzionalità custom o una form personalizzata), vi sarete accorti anche voi della difficoltà di inserire questo nuovo link in una posizione definita.

Al contrario dei bottoni sul Ribbon, non possiamo utilizzare schemi per la posizione e il sequence numerico sembra non avere nessun effetto.

Utilizzando la stessa funzione del mio post Office365 / SharePoint 2013 - Nascondere link del menu contestuale (ECB), ho inserito un comando aggiuntivo per invertire ad esempio il link per Eliminare un Articolo, posizionandolo al terzo posto dell'item




La funzione per la sostituzione è la seguente:

function ExchangePositionWith(firstselector, secondselector) {
    var other = $(secondselector);
    var first = $(firstselector).after(other.clone());
    other.after(first).remove();
}


In cui richiamo il primo elemento (firstselector) e lo metto al posto del secondo (secondselector).
Nel mio caso, Elimina Articolo, visualizzato per primo, mi interessa al terzo posto, quindi ho eseguito due volte la funzione:

ExchangePositionWith($("a[title='Elimina Articolo']").parent(), $("a[title='Modifica elemento']").parent());
  ExchangePositionWith($("a[title='Modifica elemento']").parent(), $("a[title='Visualizza elemento']").parent());

Et voilà: