E 'possibile aggiungere azioni personalizzate a una versione?
-
16-10-2019 - |
Domanda
Ho bisogno di aggiungere un'azione personalizzata per versioni di un file. In modo ottimale, lo voglio nella pagina Cronologia delle versioni:
A secondo miglior sarebbe la forma di visualizzazione di versione (il risultato di clic su Visualizza nel menu precedente):
Gli utenti stanno già lavorando con la cronologia delle versioni, e vogliono copiare facilmente alcuni dettagli da una versione specifica. Mi piacerebbe evitare di farli scegliere di nuovo la versione nella mia finestra.
Soluzione
Il menu è costruito in JavaScript nel file Core.js.. Se è necessario aggiungere una nuova voce di menu, si sta andando ad avere per le sostituzioni questo file ... Non raffreddare.
Un approccio migliore è quello di utilizzare Javascript per ignorare la funzione che crea il menu in Core.js. Appena sarà necessario fare riferimento il file dopo il file Core.js e stare attenti con il rinviare di carico.
A proposito di forma visualizzazione della versione, il modello è definito in DefaultTemplates.ascx
con l'DocLibDisplayFormVersionToolBar
id.
Credo che si potrebbe sostituisce il rendering predefinito da soli.
Altri suggerimenti
Sono stato in grado di aggiungere una voce di menu, come Gilloux suggerito nel commento. Ecco come è fatto, sovrascrivendo il metodo da Core.js:
// keep original version
var original_AddVersionMenuItemsCore;
// override the function from Core.js
function Kobi_AddVersionMenuItemsCore(m, ctx) {
// first, add the original menu items:
original_AddVersionMenuItemsCore(m, ctx);
// add my menu item:
var menuOption = CAMOpt(m, "Add Version to My Project",
"javascript:alert('This one');",
"/_layouts/images/mewa_gotoNamedItems.gif");
menuOption.id = "ID_Kobi_AddVersionToProject";
}
function Kobi_AddVersionActionsOnLoad(){
original_AddVersionMenuItemsCore = AddVersionMenuItemsCore;
AddVersionMenuItemsCore = Kobi_AddVersionMenuItemsCore;
}
// run the method at window load event
_spBodyOnLoadFunctionNames.push("Kobi_AddVersionActionsOnLoad");
Risultato:
Un aiuto è venuto da Google e questi posti: