personnaliser l'affichage de vos colonnes avec sharepoint ... · #spsmontreal sharepoint...

34
SharePoint Saturday Montreal #SPSMontreal SharePoint Saturday Montreal 2018 Le 2 juin 2018 Personnaliser l'affichage de vos colonnes avec la mise en forme et les extensions du SPFx Samuel Lévesque

Upload: others

Post on 16-Sep-2019

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

SharePoint Saturday

Montreal 2018

Le 2 juin 2018

Personnaliser l'affichage de vos colonnes avec la mise en forme et les extensions du SPFx

Samuel Lévesque

Page 2: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Personnaliser l'affichage de vos colonnes avec la

mise en forme et les extensions du SPFx

Dans le passé, plusieurs techniques pouvaient êtres utilisées pour personnaliser l'affichage de vos colonnes : JSLink, JavaScript dans une

WebPart Éditeur de contenu, code serveur, etc...Ces façons de faire ne sont plus supportées dans les sites modernes.

Samuel Lévesque

Architecte SharePoint

@sharepointerie http://sharepointerie.com

Page 3: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

16h00

3435 St Laurent

Page 4: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Go

ld

Bro

nze

Thanks to our sponsors !

Page 5: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Objectifs

• Présenter différents scénarios de personnalisation supporté dans l’environnement moderne de SharePoint Online;

• Présenter les avantages et inconvénients.

Public cible : Développeur / Super-utilisateurs

Niveau : 200

Page 6: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Sommaire de la présentation

Pourquoi ?Comment ? Recommandations

Page 7: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Historique – Personnaliser l'affichage de colonnes

SP2010 : XSL/XSLT

JavaScript incorporée (WebParts éditeur de contenu)

Balises HTML dans les champs calculé

SP2013 : Client side rendering (CSR) JSLINK

SPO : 2016 → Site d’équipe moderne → Fin de la prise en charge du JavaScript incorporée

Juin 2017 → Fin de la prise en charge des balises HTML dans les champs calculés

Septembre 2017 → SPFx Extension → Field Customizer

Page 8: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Comparatif HTML dans un

champ calculé

JavaScript

incorporée

Client side

rendering (JSLINK)

Mise en forme

(JSON)

Field Customizer

(SPFx Extension)

Déploiement

simple et rapide

Supporté dans

l’experience

moderne

Code

personnalisé ?

Limitation sur le

type de colonne

Flexibilité

Mise en forme

conditionnelle

Liens d'action*

Page 9: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Scénarios possibles

• Afficher un tableau de bord exécutif (KPI)

• Afficher des indicateurs de gestion de projet

• Afficher différentes compagnies avec un lien vers le symbole boursier

• Afficher vos contacts avec un lien pour envoyer un courriel (mailto)

• etc.

Page 10: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple mise en forme

Page 11: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple Field Customizer

Page 12: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Sommaire de la présentation

Pourquoi ?Comment ? Recommandations

Page 13: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Mise en forme / Comment ?

• Consiste à construire un objet JSON qui décrit les éléments affichés lorsqu’un champ est inclus

dans une vue de liste, ainsi que les styles à appliquer à ces éléments.

• La mise en forme de la colonne ne modifie pas les données dans l’élément de liste ou le fichier;

elle change uniquement la façon dont elles apparaissent lorsque les utilisateurs parcourent la

liste.

• Toute personne pouvant créer et gérer des vues dans une liste peut utiliser la mise en forme

pour configurer l’affichage des champs;

• Nécessite des connaissances en JSON + HTML + CSS;

Page 14: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Syntaxe détaillé en JSON

• elmType – Spécifie le type d'élément : div, span, a, img, svg, path, button

• txtContent - Propriété facultative qui spécifie le contenu du texte de l'élément

spécifié par elmType. @currentField permet d’évaluer la valeur du champ actuel.

• style - Propriété facultative qui spécifie les attributs de style à appliquer à

l'élément spécifié par elmType. Attributs de style limité.

• attributes - Propriété facultative qui spécifie des attributs supplémentaires à

ajouter à l'élément : href, rel, src, class, target, title, role, iconName, d, aria

• children - Propriété facultative qui spécifie les éléments enfants de l'élément

spécifié par elmType

• class – Spécifie la classe prédéfinie pour le style et l'action

• operator - Spécifie le type d'opération à effectuer comme =, -, +, <, >, <=, etc…

• operands - Spécifie les paramètres ou les opérations d'une expression

Page 15: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple JSON

{

"elmType": "div",

"txtContent": "@currentField"

}

Le format de colonne le plus simple est celui qui place la valeur du champ dans un élément <div />

JSON

Page 16: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple JSON Cet exemple applique la couleur rouge du champ en cours lorsque la valeur à l'intérieur de la

colonne DueDate (Nom interne) d'un élément est antérieure à la date / heure actuelle.

{

"elmType": "div",

"txtContent": "@currentField",

"style": {

"color": {

"operator": "?",

"operands": [

{

"operator": "<=",

"operands": [

"[$DueDate]",

"@now"

]

},

"#ff0000",

""

]

}

}

}

JSONRésultat

Page 17: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple JSON

Le format de colonne le plus simple est celui qui place la valeur du champ dans un élément <div />

{

"elmType": "a",

"txtContent": "@currentField",

"attributes": {

"target": "_blank",

"href": {

"operator": "+",

"operands": [

"http://finance.yahoo.com/quote/",

"@currentField"

]

}

}

}

JSONRésultat

Page 18: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Mise en forme / Comment?

• Lors de la création d’une colonne

• En modifiant une colonne existante

Page 19: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Plusieurs modèles disponibles

https://github.com/SharePoint/sp-dev-column-formatting/tree/master/samples

https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting

Page 20: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Column formatter 1.2• Gratuit sur GitHub;

• Rend la personnalisation de colonne plus facile pour un utilisateur sans connaissances JSON + HTML + CSS;

Page 21: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Column formatter 1.2

Page 22: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Démonstration

Page 23: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Field Customizer / Comment ?

• Consiste à personnaliser le rendu d'un champ en utilisant des éléments

HTML personnalisés et du code côté client. Les extensions peuvent être

déployées dans SharePoint Online, et pour les créer vous pouvez utiliser les

outils JavaScript modernes.

SPFx Extension

• Application Customizer

• Command Set

• Field Customizer

• Nécessite des connaissances en TypeScript/JavaScript + HTML + CSS

• Toolchain node.js, npm, and Gulp

Page 24: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Tutoriel Field Customizer

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/get-started/building-simple-field-customizer

Page 25: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Exemple Field Customizer

@override

public onRenderCell(event:

IFieldCustomizerCellEventParameters): void {

event.domElement.classList.add(styles.cell);

event.domElement.innerHTML = `

<div class='${styles.HelloWorld}'>

<div class='${styles.full}'>

<div style='width: ${event.fieldValue}px;

background:#0094ff; color:#c0c0c0'>

&nbsp; ${event.fieldValue}

</div>

</div>

</div>`;

}

Page 26: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Quelques exemples disponibles

https://github.com/SharePoint/sp-dev-fx-extensions/tree/master/samples

Page 27: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Migrer de JSLink vers Field Customizer

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/guidance/migrate-

from-jslink-to-spfx-extensions

Page 28: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Sommaire de la présentation

Pourquoi ?Comment ? Recommandations

Page 29: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Recommandation

1. Penser à convertir vos solutions « Legacy »

• JavaScript incorporée (WebParts éditeur de contenu)

• Balises HTML dans les champs calculé

• JSLINK

afin d’être supporté dans l’expérience moderne

2. Penser à adresser la personnalisation de champ dans votre gouvernance

Page 30: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Conclusion

Page 31: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Avantages

• JSON est un format standard pour plusieurs développeurs;

• Supporté par plusieurs outils et éditeurs;

• Permet d’effectuer de la personnalisation tout en conservant SharePoint Out of the box;

• Fonctionne avec les listes et bibliothèques modernes.

Inconvénients

Conclusion / Mise en forme

• Pas de code personnalisé;

• Possible problème de gouvernance similaire aux Script Editor WebPart;

• JSON + HTML + CSS pas si "conviviaux" pour un utilisateur moyen;

• Ne fonctionne pas en mode "classique".

Page 32: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Avantages• Fonctionne avec les listes et bibliothèques modernes.

• Code personnalisé permettant d’exécuter du JavaScript;

• Facilité à interroger SharePoint REST API & Microsoft Graph;

• Accès à TypeScript et aux nouveaux outils.

Inconvénients

Conclusion / Field Customizer

• Déploiement;

• Courbe d’apprentissage.

Page 33: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

Questions ?

Page 34: Personnaliser l'affichage de vos colonnes avec SharePoint ... · #SPSMontreal SharePoint Saturday Montreal Objectifs •Présenter différents scénarios de personnalisation supporté

SharePoint Saturday Montreal#SPSMontreal

• Gestion des balises HTML dans les champs calculé de SharePoint

• Column formatter (Solution)

• Personnalisation des pages du site « modernes »

• https://github.com/SharePoint/sp-dev-column-formatting/tree/master/samples

• https://github.com/SharePoint/sp-dev-fx-extensions/tree/master/samples

Références