Construisez votre intranet avec microsoft office 365 sans code a os canadia...
Personnaliser l'affichage de vos colonnes avec la mise en forme
1. 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
2. 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
4. 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
5. SharePoint Saturday Montreal#SPSMontreal
Comparatif
HTML dans un
champ calculé
JavaScript
incorporée
Client side
rendering (JSLINK)
Mise en forme
(JSON)
Personnalisateur de
champ (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
*
6. 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.
9. SharePoint Saturday Montreal#SPSMontreal
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;
10. 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
11. 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
12. 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",
""
]
}
}
}
JSON
Résultat
13. 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"
]
}
}
}
JSON
Résultat
15. 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
16. 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;
20. 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
22. 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
• 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".
24. 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