Affichage conditionné en #KnockoutJS et #JSOM

Poursuivons sur l’exemple de la création de session dans SharePoint, maintenant je vous propose de gérer l’inscription. Nous restons avec KnockoutJS et allons définir un composant dont l’affichage est déterminé par l’état des sessions et de l’utilisateur courant.

  • Utilisateur déjà inscrit;
  • Aucune session disponible;
  • Toutes les sessions sont pleines;
  • Inscription possible.

Afin de déterminer l’état du composant, JSOM sera utilisé avec CamlJS. La gestion des SPUserCollectionField réserve quelques surprises, comme vous le verrez plus loin dans l’article.

RegisterToSession

Actuce 1:  définir une énumération référençant tous les états du composant et lier le modèle à la vue en utilisant l’énumération.

Astuce 2: quand on requête un élément de type Utilisateur multi-valué, l’objet renvoyé par SharePoint possède la forme suivante :

[{« $b_1″: » »</span>,« $M_1 »:</span>}].

Par contre  SharePoint attend un object sous le format suivant:

[{« $M_1 »:</span>, « $b_1″: » »</span>}].

Le message d’erreur aide énormément à comprendre : **args.get_message() : Unknown Error args.get_stackTrace() : undefined**

Astuce 3: KO tente de faire le binding de tous les éléments même s’ils ne sont pas affichés. Par conséquent pour éviter une erreur de data binding, il faut mettre une condition au traitement d’un bloc HTML

Astuce 4: dans SharePoint 2010, CamlJS nécessite d’être encapsulé dans «  » sinon cela ne fonctionne pas.

Ci-dessous l’intégralité du code HTML et JavaScript:

Related Post

Logger des événements client avec JSNLog Continuons l'exploration des solutions de log et voyons comment logger des événements client dans une application web. Prenons une application web Ang...
Débuter avec NodeJS, Express et MongoDB Un collègue m’a parlé de différents projets personnels orientés web et de son dilemne sur le choix des techologies. Curieux j’ai voulu essayer NodeJS,...
Créer un formulaire InfoPath avec PowerShell La reprise des données est souvent problématique quand on remplace un process papier par un formulaire InfoPath dans SharePoint. La saisie manuelle é...
SSIS et SharePoint SharePoint permet de structurer et stocker des informations. Ces informations vivent dans SharePoint et sont consultables par plusieurs biais (site, w...

Laisser un commentaire

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