Projet

Général

Profil

Actions

Feature #8912

fermé

Sélectionner rapidement des utilisateurs et des groupes de la plate-forme

Ajouté par Yohann Chastagnier il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Panneau utilisateurs
Début:
10/07/2017
Echéance:
% réalisé:

100%

Temps estimé:
Livraison en TEST:
Livraison en PROD:

Description

Silverpeas est doté de la fonctionnalité centralisée de panneau utilisateur pour sélectionner des utilisateurs et des groupes facilement.

Cependant, dans certains cas d'utilisation, comme le renseignement d'un champ utilisateur dans un formulaire par exemple, il peut s'avérer contraignant d'ouvrir ce panneau d'utilisateur pour cibler les utilisateurs et/ou groupes. Notamment quand cette sélection n'est pas multiple.

Une nouvelle manière de sélectionner/cibler des utilisateurs et/ou groupes doit être mise en place, non pas pour remplacer le panneau utilisateur actuel qui reste très pratique, mais pour accélérer/fluidifier selon les fonctionnalités et les contextes de l'utilisateur cette sélection.
L'accès au panneau utilisateur devra toujours être proposé.


Fichiers

admin_extra_infos.png (25,6 ko) admin_extra_infos.png Yohann Chastagnier, 17/07/2017 15:24
admin_extra_infos_write_mode.png (30,6 ko) admin_extra_infos_write_mode.png Yohann Chastagnier, 17/07/2017 15:24
sendNotification.png (22,1 ko) sendNotification.png Yohann Chastagnier, 17/07/2017 15:53
sendNotificationToAdmins.png (26,7 ko) sendNotificationToAdmins.png Yohann Chastagnier, 17/07/2017 15:53
formUserGroupSelects.png (16,5 ko) formUserGroupSelects.png Yohann Chastagnier, 17/07/2017 15:54
sendNotificationLimit.png (28,6 ko) sendNotificationLimit.png Yohann Chastagnier, 17/07/2017 15:54

Mis à jour par Yohann Chastagnier il y a plus de 7 ans

  • Statut changé de Assigned à In progress...

Mis à jour par Yohann Chastagnier il y a plus de 7 ans

Une nouvelle manière de sélectionner des utilisateurs et des groupes a été réalisée.

Son utilisation

Ce dernier a été utilisé dans les fonctionnalités suivantes :
  • affichage des données complémentaires d'un utilisateur (responsable), au niveau de l'onglet Profil de Mon profil de l'espace personnel ou au niveau de la fiche d'un utilisateur de la partie administration
    mode lecture

    mode modification
  • Envoyer une notification présentée au niveau de la Boîte de notifications de l'utilisateur connecté (Espace personnel / Mes notifications)

    Lorsque le nombre de destinataires est limité pour un utilisateur, comme pour le panneau utilisateur, un message d'avertissement s'affiche pour le rappeler à l'utilisateur.
    Le message est présenté à l'utilisateur dès lors que sa recherche cible des groupes composés de plus d'utilisateurs que de destinataires possibles ou s'il sélectionne trop d'utilisateurs ou de groupes dans le résultat courant.
  • Ecrire aux administrateurs depuis le menu de l'espace personnel
  • Champs utilisateur, utilisateurs et groupe des formulaires Silverpeas

Son comportement dans les grandes lignes

Le composant de sélection d'utilisateurs et groupes se présente comme un champs de saisie dans lequel sont accessibles deux boutons, ces derniers permettant d'accéder au panneau utilisateur pour l'un et de retirer tous les utilisateurs et groupes de la sélection pour l'autre.

A partir du champs de saisie, l'utilisateur peut effectuer une recherche. Seuls les lettres (avec accents également) et les chiffres sont pris en compte. La recherche n'est pas sensible à la casse.
A partir de trois lettres ou chiffres renseignés, une recherche est effectuée sur le serveur Silverpeas pour retrouver tous les utilisateurs et groupes qui contiennent dans leur nom (prénom nom pour les utilisateurs) les caractères saisis.
Par exemple, les caractères hcn renseignés peuvent remonter dans le résultat l'utilisateur Yohann Chastagnier.
Chaque lettre, ou chaque chiffre, ajoutés ou retirés engendre une recherche sur le serveur Silverpeas (tant qu'il existe toujours au moins trois lettres ou chiffres renseignés).
Le résultat de la recherche s'affiche automatiquement dans une liste et les items de cette dernière sont accessibles directement via les flèches du clavier, puis la touche entrée pour sélectionner, ou directement par la souris.
Une fois sélectionné, l'utilisateur ou le groupe est ajouté dans le champs de saisie.
Il est possible de le (ou les) désélectionner en mettant le curseur dans le champs de saisie et en utilisant la touche backspace. Dans le cas d'une sélection multiple il est également possible de retirer des utilisateurs ou groupes en sélectionnant le ou les blocs avec la souris et en utilisant la touche suppr ou backspace.

Si l'utilisateur choisit de cliquer sur le bouton permettant d'afficher le panneau utilisateur, ce dernier présente les utilisateurs et groupes en cours sélectionnés. Les changements effectués depuis le panneau utilisateur sont reportés automatiquement dès lors que l'utilisateur clique sur le bouton Valider.


Quelques éléments techniques

Il existe aujourd'hui 3 possibilités pour mettre en oeuvre le plugin dans une page Silverpeas.

selectUsersAndGroups.tag

Ce TAG JSTL est utilisable directement depuis les pages JSP.

<!--Déclaration de la bibliothèque-->
<%@ taglib tagdir="/WEB-INF/tags/silverpeas/util" prefix="viewTags" %>
<html>
...
<body>
...
<!--Intégration automatique d'un TAG HTML div suivie de l'initialisation du composant de sélection -->
<viewTags:selectUsersAndGroups domainIdFilter="..." 
                               componentIdFilter="..." 
                               role... />
...
</body>
</html>

UserGroupSelectProducer

Implémentation Java de l'abstraction AbstractPluginInitializationProducer dont le but est de fournir l'intégralité des éléments JavaScript nécessaires à la bonne initialisation d'un composant.
Le TAG HTML qui contiendra le composant doit exister. Il est en principe représenté par une simple div avec l'attribut id renseigné.

final String containerId = "[l'identifiant du TAG HTML qui contiendra le composant]";
final String selectUserComponent = UserGroupSelectProducer.withContainerId(containerId)
    .withUserInputName(...)
    .selectionOf(...)
    .multiple(...)
    ...
    .produce();
jsp.println(new div().setID(rootContainerId));
jsp.println(selectUserComponent);

Le plugin JavaScript directement

Utilisable directement depuis une page HTML ou JSP.

<!--Le conteneur du composant-->
<div id="anId"></div>

<!--Son initialisation-->
<script type="text/javascript">
  whenSilverpeasReady(function() {
    new UserGroupSelect({
      rootContainerId : "anId",
        ...
    });
  });
</script>


PR : https://github.com/Silverpeas/Silverpeas-Core/pull/828

Mis à jour par Nicolas Eysseric il y a plus de 7 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Nicolas Eysseric il y a plus de 7 ans

  • Statut changé de Integration in progress... à Closed

Validé et intégré après quelques petits ajustements...

Actions

Formats disponibles : Atom PDF