Personalisation de listes et librairies facile

Easy lists and libraries customizations

Le formatage de colonnes et de vues est un moyen de modifier la façon dont une liste ou une bibliothèque affiche ses données dans SharePoint Online. Cette fonctionnalité ne modifie pas les données, elle n’affecte que le rendu visuel des données.

Une autre option serait de créer une solution de de type field customized SharePoint Framework. Cette option est plus puissante parce que vous pouvez écrire n’importe quel code pour contrôler comment le champ est rendu. Par contre il vous faudra des compétences en codage JavaScript/TypeScript

Le formatage de colonne et de vue est une solution « no code », ce qui est vrai dans un sens, mais vous devrez quand même en manipuler un peu.
Dans cet article, vous trouverez des informations sur le fonctionnement de cette fonctionnalité, quelques exemples et une ressource communautaire d’exemples que vous pouvez copier/coller dans votre environnement (sans coder)

.

Parlons d’abord du formatage de vue :

Pour vous donner un peu de visibilité, nous allons commencer par un exemple où vous voulez mettre en évidence une ligne de liste, basée sur la valeur d’une colonne Status. Dans notre cas, nous avons quelques items et une colonnes de Status contenant les valeurs : « Not Started », « Blocked » et « Completed ».


formatage de vue status colonne

Pour formater notre vue, nous allons cliquer sur vue, puis formater la vue actuelle :

formatage de vue menu

Une fois que vous l’aurez fait, vous verrez un panneau de configuration avec quelques informations, un lien vers la documentation et un éditeur de texte.
Nous allons d’abord mettre en évidence toutes les lignes de cette liste, nous fournissons donc le code Json suivant :

{
  "schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
  "additionalRowClass": "sp-field-severity--good"
}

Et appuyons sur Aperçu :

Formatage de vue simple

Super ! tout est vert !

Donc dans ce code Json, nous avons d’abord fourni le schéma de formatage de vue (Vous ne changez jamais cela pour tous vos formats de vue). Et fourni un attribut « additionalRowClass » : « sp-field-severity–good ». Cela signifie que nous voulons appliquer cette classe sur toutes les lignes.
Vous pouvez trouver les classes supportées Ici

Pour aller un peu plus loin, nous allons maintenant appliquer une classe conditionnelle pour formater notre vue

{
  "schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",
  "additionalRowClass": "=if([$Status] == 'Done', 'sp-field-severity--good', if([$Status] == 'Not started', 'sp-field-severity--low' , if([$Status] == 'Blocked','sp-field-severity--blocked', '')))"
}

Cette fois, nous fournissons une instruction if pour l’attribut « additionalRowClass ». Pour baser la condition sur le champ Statut , nous utilisons
if([$Status] ==’la valeur de la colonne statut’,’la classe à appliquer si c’est le cas’,’la classe à appliquer sinon’
Et nous déclarons d’autres if dans ‘la classe à appliquer sinon’.

Ce code peut être effrayant au début, mais vous savez, je ne l’ai pas écrit moi même :). Je l’ai trouvé dans la base de ressources communautaires sur github, vous pouvez la trouver Ici. J’ai juste changé la valeur ‘Not started’ et supprimé ‘In review’ pour correspondre à mon exemple.
Voici le résultat :

formatage de vue conditionnel

Voyons maintenant le formatage des colonnes

.

Le formatage de colonne est assez similaire, mais dans ce cas nous voulons changer l’affichage d’une valeur de colonne. Quelques cas d’utilisation pratiques seraient ceux où vous voulez mettre en évidence une ligne basée sur une valeur, afficher des images, ajouter un « lien e-mail » dans une colonne de personnes ou même déclencher un flux <3.
C’est le bon moment pour vous donner un nom…. Chris Kent.
Oui, l’utilisation de ces fonctionnalités améliorera considérablement l’expérience SharePoint Online. Cela fera passer vos collègues d’Excel aux listes SharePoint Online. On vous appellera le nouveau Super Man

superman

Oui, cette personne existe vraiment, et il a fournit des exemples, des vidéos et une visibilité étonnante à ces fonctionnalités. Je vous recommande fortement de visiter son site web Ici

Prenons donc un exemple, similaire au précédent.
Nous allons formater une colonne en fonction de sa valeur, nous allons fournir une classe ainsi qu’une icône provenant de l’Office ui fabric.

Prenons une bibliothèque de document cette fois ci, et créons une colonne de choix Status avec les valeurs « Not Started », « Blocked » et « Completed » :

bibliothèque statut

Pour formater notre colonne, nous allons cliquer sur la colonne Statut, paramètres de la colonne, Mettre en forme cette colonne :

formatage de colonne menu

Dans ce cas, Microsoft vous fournit un template où vous pouvez changer la couleur de cette colonne en fonction d’une valeur. Ce modèle est contextuel, il vous fournira différentes options en fonction du type de colonne. Dans le futur nous verrons plus de ces modèles 🙂
Pour personnaliser notre colonne, nous allons cliquer sur mode avancé :

formatage de colonne mode avancé

A partir de la, nous allons coller le code Json suivant :

{
    "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
    "elmType": "div",
    "attributes": {
        "class": {
            "operator": "+",
            "operands": [
                {
                    "operator": "?",
                    "operands": [
                        {
                            "operator": "==",
                            "operands": [
                                "@currentField",
                                "Completed"
                            ]
                        },
                        "sp-field-severity--good",
                        {
                            "operator": "?",
                            "operands": [
                                {
                                    "operator": "==",
                                    "operands": [
                                        "@currentField",
                                        "Not Started"
                                    ]
                                },
                                "sp-field-severity--low",
                                {
                                    "operator": "?",
                                    "operands": [
                                        {
                                            "operator": "==",
                                            "operands": [
                                                "@currentField",
                                                "Blocked"
                                            ]
                                        },
                                        "sp-field-severity--severeWarning",
                                        "sp-field-severity--blocked"
                                    ]
                                }
                            ]
                        }
                    ]
                },
                " ms-fontColor-neutralSecondary"
            ]
        }
    },
    "children": [
        {
            "elmType": "span",
            "style": {
                "display": "inline-block",
                "padding": "0 4px"
            },
            "attributes": {
                "iconName": {
                    "operator": "?",
                    "operands": [
                        {
                            "operator": "==",
                            "operands": [
                                "@currentField",
                                "Completed"
                            ]
                        },
                        "CheckMark",
                        {
                            "operator": "?",
                            "operands": [
                                {
                                    "operator": "==",
                                    "operands": [
                                        "@currentField",
                                        "Not started"
                                    ]
                                },
                                "Forward",
                                {
                                    "operator": "?",
                                    "operands": [
                                        {
                                            "operator": "==",
                                            "operands": [
                                                "@currentField",
                                                "Blocked"
                                            ]
                                        },
                                        "Warning",
                                        "ErrorBadge"
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        },
        {
            "elmType": "span",
            "txtContent": "@currentField"
        }
    ]
}
omg


Ok, celui-ci est plutôt massif 🙂 C’est la façon d’écrire la personnalisation pour SharePoint Online et On Premise (AST).

Dans cet exemple vous pouvez voir que nous voulons rendre notre colonne comme une Div (« elmType » : « div » à la ligne 3), alors nous lui donnons un attribut de type classe (« attributes » : {« class » : {à la ligne 4/5) et donnons des Operators and Operands (ceci représente notre déclaration if). Il s’agit en fait d’opérateurs JavaScript ( ? pour if et == pour égal). Cette partie correspond à la classe que nous fournissons cette colonne pour rendre une couleur basée sur la valeur Status. Exactement comme l’exemple de formatage de vue, mais écrit d’une autre manière.
Après cette assez grande déclaration, nous fournissons un autre attribut qui est « Children » à la ligne 52. Cette partie représente l’icône que nous voulons afficher. Nous fournissons ici un nom d’icône que vous pouvez trouver dans l’Office ui fabric icons.
Enfin, nous aimerions que la valeur du champ soit affichée, donc nous fournissons un autre attribut {« elmType » : « span », « txtContent » : « @currentField » } à la ligne 103/104. Ceci affichera la valeur actuelle du champ.

Voici le résultat :

formatage de colonne conditionnel

Vous pouvez trouver l’exemple Ici dans la base de ressources communautaire

Cet exemple illustre comment formater des colonnes dans SharePoint Online et On Premise, vous pouvez aussi faire le même personnalisation avec le code (beaucoup plus court) ci-dessous seulement dans SharePoint Online :

{
    "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
    "elmType": "div",
    "attributes": {
      "class": "=if(@currentField == 'Completed', 'sp-field-severity--good', if(@currentField == 'Not Started', 'sp-field-severity--low', if(@currentField == 'Blocked', 'sp-field-severity--blocked', 'sp-field-severity--blocked'))) + ' ms-fontColor-neutralSecondary'"
    },
    "children": [
      {
        "elmType": "span",
        "style": {
          "display": "inline-block",
          "padding": "0 4px"
        },
        "attributes": {
          "iconName": "=if(@currentField == 'Completed', 'CheckMark', if(@currentField == 'Not Started', 'Forward', if(@currentField == 'Blocked', 'Error', 'ErrorBadge')))"
        }
      },
      {
        "elmType": "span",
        "txtContent": "@currentField"
      }
    ]
  }

La base de ressources communautaire

Tous les exemples communautaires contiendront un fichier readme, quelques png pour l’illustration et un fichier.json où vous trouverez le code à copier/coller. Dans certains cas, vous verrez deux fichiers.json, un pour SharePoint Online et un (AST) pour SharePoint On Premise et Online. En effet, comme vous pouvez l’apprécier dans le dernier exemple, SharePoint Online permet l’usage d’expressions plus simples.

Vous pouvez trouver tous les exemples de formatage de vue et de colonne à cette adresse, il vous faudra choisir entre view sample et column sample.

J’ai trouvé une très bonne vidéo sur cette base de ressource :

Il y a une autre vidéo pour démarrer avec le formatage des colonnes :

Voici une dernière vidéo sur l’usage de la base d’exemples communautaires :


Il y a aussi un plugin pour google chrome, j’ai trouvé un article très interessant à ce sujet ici


Bonus : Utiliser le formatage de colonne pour lancer un flow

En prime à cet article, je voudrais vous montrer un autre exemple très intéressant. Cet exemple a été montré dans cette vidéo par Chris Kent :

Vous pouvez trouver le code Json à coller dans votre bibliothèque ou liste de documents Ici. J’ai utilisé cette exemple dans une bibliothèque de documents pour déclencher un flux d’approbation 😉

J’espère que vous avez trouvé cet article intéressant, vous pouvez trouver du contenu associé dans les Ateliers SharePoint Online

A bientôt dans sur le blog !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.