SharePoint

Een upload knop in een Document Set

13 november 2013

Een tijd terug kreeg ik via mijn blog de vraag of het mogelijk is om op de welkomst pagina van een Documenten Set een upload-knop te maken in SharePoint 2010. Omdat ik het leuk vind om te spelen ging ik met de vraag aan de slag en kwam met een antwoord. Rond Document Sets krijg ik steeds meer vragen. In deze blog post deel ik de code en beantwoord die vragen.

DocSet

Wat is een Document Set in SharePoint?

Een Document Set is niet een ander woord voor een map of weergave in een bibliotheek. Het nut van een Document Set wordt vaak uitgelegd met de metafoor dossier. Een Document Set is een inhoudstype waarmee je een groep bestanden beheert. Je kunt je eigen Document Set inhoudstype maken.

Een Document Set kun je zo inrichten dat er bij het aanmaken van de container een groep standaarddocumenten (templates) worden klaar gezet. Een ander voordeel van een Document Set is dat de documenten in de set de metadata overerft, kleine kanttekening hierbij: overerfden is alleen van set naar document, niet anders om.

De container heeft een welkomstpagina die informatie toont over de set. Als je meer over de Documenten-set zelf wilt weten vind je meer informatie op de pagina’s:

Een nieuw inhoudstype voor een Documenten-set  maken en configureren

Documenten-set s maken en beheren

Zijn Document Sets een feature?

Om Document Set te gebruiken moet je de feature Document Sets aanzetten. De feature zet je aan op het sitecollectie niveau. Hiervoor heb je de rechten nodig van  een Site Collection Administrator. Voer de volgende handelingen uit voor het activeren van de feature:

[listdot]

  • Ga naar de site op het hoogste niveau van de sitecollectie;
  • Ga naar Site Settings;
  • Onder Site Collection Administration klik je op Site collection features;
  • Activeer de feature Document Sets.

[/listdot]

In SharePoint Online is de feature alleen beschikbaar in Enterprise plans.

Wat is er verbetert met SharePoint 2013?

De afbeelding hieronder geeft aan wat er met de komst van SharePoint 2013 voor de Document Set is veranderd.

DocSetUploadKnop1

Bron: SharePoint 2013: Presentation: IT pro training slide uit de presentatie Ig15_SP_IT_M09V1_ecm.pptx

Antwoord op de uploadknop vraag

Hoe was het ook alweer in SharePoint 2010? Op de welkomstpagina van de Document Set in SharePoint 2010 kun je een document in de container plaatsen door via de menubalk de Document-uploaden-knop te gebruiken. Op de welkomstpagina zelf is geen knop:

DocSetUploadKnop2

DocSetUploadKnop3

Hoe is het in SharePoint 2013?

DocSetUploadKnop4

Documenten toevoegen is in SharePoint 2013 instinctiever. In een bibliotheek kun je documenten uploaden door ze simpel erop te slepen. Naast de drag-and-drop-functie is er een upload-knop in de bibliotheek. Op de pagina van een Document Set  is de knop aanwezig. Documenten die via de welkomstpagina worden toegevoegd landen in de Document Set. Het toevoegen van documenten via de welkomstpagina van een ‘set’ is in SharePoint 2013 standaard functionaliteit. In SharePoint 2010 is de upload-knop niet standaard aanwezig.

Wat waren voor mij de eisen?

Als niet-ontwikkelaar dacht ik dat het wel moest lukken om een knop te maken met jQuery erachter. JQeury is toegankelijk waarmee je als niet-developer leuke dingen kunt doen. Voor als je niet weet wat jQuery is raad ik aan om het basisartikel: Introduction te lezen. Het artikel jQuery wat moet ik ermee? is zeker de moeite waard om te lezen.

jQuery kwam bij mij als idee op omdat:

[listdot]

  • Ik had al wel eens gespeeld met jQeury;
  • In het Documenten-centrum is een upload knop op de site, die html kan ik hergebruiken;
  • Op de welkomstpagina kun je standaard web parts toevoegen.

[/listdot]

Om het serieus aan te pakken bedacht ik waar een upload-knop aan moet voldoen.

[listdot]

  • Het scherm moet een refresh krijgen na de upload;
  • De knop moet dynamisch zijn;
  • De knop zelf zo simpel mogelijk;
  • Geen eigen schermen; alleen standaard SharePoint;
  • Ik moet het kunnen maken (dus geen Visual Studio);
  • De knop mag niet in de weg zitten bij een upgrade naar 2013.

[/listdot]

Waar kwam de inspiratie vandaan

De oplosrichting had ik al gekozen:

Op de welkomstpagina een Inhoudseditor web part waar een script aan is gelinkt; Het script opent een scherm waarmee een document in de set kan worden ge-upload. Op basis van mijn requirements ben ik gaan zoeken op internet naar code-voorbeelden die ik kon gebruiken. Een goede bron voor snippets is snipplr.

Eindresultaat in SharePoint 2010

DocSetUploadKnop5

De code bestaat uit een paar brokken:

[listdot]

  • Vanuit de url worden de variabelen gehaald;
  • De knop opent een scherm; De basis-code voor het ‘ModalDialog’ lees je in het artikel: SP.UI.ModalDialog [msdn];
  • De pagina krijgt een refresh zodat je na het uploaden direct het document in de set ziet;
  • De html die de knop weergeeft.

[/listdot]

Hoe te gebruiken

De welkomstpagina kun je aanpassen in de instellingen van het inhoudstype van de Documenten-set. Op de welkomstpagina plaats je een inhoudseditor web part waarin je verwijst naar het script.

Stappen als voorbereiding:

[listdot]

  • DocSetUploadKnop6
  • Plaats het script ergens op de root van de site, in een map via SharePoint Designer of in de stijlbibliotheek.

[/listdot]

Aanpassen Documenten-set:

[listdot]

  • Op site collectie niveau, ga naar Site Settings;
  • Klik op Site content types;
  • Klik op de naam van je eigen Documenten set;
  • Klik op de link Document Set settings;
  • Onderaan de pagina klik op Customize the Welcome Page en plaats een vinkje bij Update the welcome page.

[/listdot]

In de url zie je dat je op de pagina ….\docsethomepage.aspx bent.

[listdot]

  • Zet de pagina in bewerking;
  • Plaats een inhoudseditor web part;
  • Ga naar de instellingen van het web part;
  • Plaats de link naar het script in het vak Content link;
  • DocSetUploadKnop8
  • Klik op Ok knop;
  • Sla de pagina op door in de ribbon te klikken op Stop Editing.

[/listdot]

Op dit punt heeft het geen zin om op de upload-button te klikken. Dit is dan ook niet de plek waar de documenten worden ge-upload.

Aanpassen bibliotheek:

[listdot]

  • Ga naar de site waar je het wilt gebruiken;
  • Ga naar de bibliotheek en voegje eigen Documenten set aan de bibliotheek.

[/listdot]

Zie het artikel Een inhoudstype toevoegen aan een lijst of bibliotheek

Tot slot

Bedankt voor de vele vragen. Het upload-knop-idee was leuk om mee aan de slag te zijn. En laat zien dat met weinig middelen de functionaliteit van SharePoint is uit te breiden. De knop werkt eenvoudig. Als de omgeving naar SharePoint 2013 wordt ge-upgraded zit de knop niet in de weg; Je haalt dan het web part weg op inhoudstype niveau.

Het script heb ik ook gedeeld op het MSDN-forum. Voel je vrij om daar het script aan te passen en uit te breiden met eigen ideeën.

You Might Also Like

1 reactie

  • avatar
    Reply SharePointKate 20 november 2013 at 22:23

    Hi,
    leuk artikel, ik heb laatst de zelfde functie geschreven.

    Wat ik nog heb toegevoegd is een check of de huidige gebruiker überhaupt document mag toevoegen.
    Hiervoor heb ik het DocumentSet List Item opgevraagd, en in specifiek de “EffectiveBasePermissions”

    ctx.load(this._myItem, ‘EffectiveBasePermissions’);

    Dit geeft jou een Enumeratie terug waarin je de controle kunt uitvoeren:
    if (this._myItem.get_effectiveBasePermissions().has(SP.PermissionKind.addListItems)){
    //show
    else
    //hide

    de mogelijke waardes voor de Enumeration kun je hier vinden: http://msdn.microsoft.com/en-us/library/ee556747(v=office.14).aspx

  • Plaats een reactie