PortiBlog

Reactiemogelijkheid per document in een SharePoint bibliotheek

11 december 2018

Mijn opdrachtgever heeft de wens om een extra kolom toe te voegen aan een SharePoint documentenbibliotheek. Deze kolom moet de mogelijkheid bieden om een reactie te geven op elk kwaliteitsdocument van de organisatie. Als je op de link in deze kolom klikt, opent een pop-up met daarin een tekstveld voor de reactie. De documenteigenaar krijgt vervolgens een email met deze reactie, de persoon die deze reactie heeft geplaatst en een link naar het betreffende document.

JS-Link

Ik heb dit gerealiseerd met behulp van een JS-Link in de documentenbibliotheek.
Deze mogelijkheid vind je in de eigenschappen van het webonderdeel, onder ‘Diversen’.

js-link

Hierin plaats je een link naar het js-bestand, bijvoorbeeld:
~site/SiteAssets/scripts/JSLinkRenderAsHyperlink.js

 

Script

Dit script ziet er als volgt uit:

(function () {
var nameFiledContext = {};
nameFiledContext.Templates = {};
nameFiledContext.Templates.Fields = {
"ID": { "View": nameFiledTemplate }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(nameFiledContext);
})();

// The pop-up
function openReactieDialog(pageUrl) {
var options = {
url: pageUrl,
title: 'Geef een reactie',
allowMaximize: false,
showClose: true,
width: 700,
height: 400
};
SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}

// This function applies the rendering logic
function nameFiledTemplate(ctx) {
return "<a href='#' onclick='openReactieDialog(\"https://*.sharepoint.com/sites/Kwaliteitshandboek/Lists/Reacties/newform.aspx?DocID=" + ctx.CurrentItem.ID + "\"); return false;'>Geef reactie</a>";
}

Ik gebruik de ID-kolom en plaats daar de link naar de ‘newform.aspx’ van een reactielijst in. Deze link opent als een pop-up door de functie ‘openReactieDialog’. De reactie zelf wordt opgeslagen in een standaard SharePointlijstje.

SharePoint Designer Workflow

Wat nu alleen nog nodig is: de email naar de documenteigenaar. Dit heb ik gerealiseerd met een eenvoudige good-old SharePoint Designer workflow op de reactielijst.

spd workflow

Ik definieer een aantal variabelen en verstuur vervolgens een email naar de documenteigenaar.
De plaatser van de reactie krijgt een CC van deze email.

"Beste document eigenaar,

[%Huidig item:Gemaakt door%] heeft de volgende reactie geplaatst op het kwaliteitshandboekdocument "[%Variabele: docnaam%]":

*************** Reactie ***************
[%Huidig item:Reactie%]
****************************************"

Mocht je hier meer over willen weten neem dan contact op met mij.

Submit a comment