https://tracker.silverpeas.org/https://tracker.silverpeas.org/favicon.ico?17095821032017-07-10T09:09:23ZSilverpeas Issues TrackerSilverpeas Core - Feature #8912: Sélectionner rapidement des utilisateurs et des groupes de la plate-formehttps://tracker.silverpeas.org/issues/8912?journal_id=449072017-07-10T09:09:23ZYohann Chastagnieryohann.chastagnier@silverpeas.com
<ul><li><strong>Statut</strong> changé de <i>Assigned</i> à <i>In progress...</i></li></ul> Silverpeas Core - Feature #8912: Sélectionner rapidement des utilisateurs et des groupes de la plate-formehttps://tracker.silverpeas.org/issues/8912?journal_id=450422017-07-17T15:06:36ZYohann Chastagnieryohann.chastagnier@silverpeas.com
<ul><li><strong>Fichier</strong> <a href="/attachments/6501">admin_extra_infos.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6501/admin_extra_infos.png">admin_extra_infos.png</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/6502">admin_extra_infos_write_mode.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6502/admin_extra_infos_write_mode.png">admin_extra_infos_write_mode.png</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/6503">sendNotification.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6503/sendNotification.png">sendNotification.png</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/6504">sendNotificationToAdmins.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6504/sendNotificationToAdmins.png">sendNotificationToAdmins.png</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/6505">formUserGroupSelects.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6505/formUserGroupSelects.png">formUserGroupSelects.png</a> ajouté</li><li><strong>Fichier</strong> <a href="/attachments/6506">sendNotificationLimit.png</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/6506/sendNotificationLimit.png">sendNotificationLimit.png</a> ajouté</li><li><strong>Statut</strong> changé de <i>In progress...</i> à <i>Resolved</i></li><li><strong>% réalisé</strong> changé de <i>0</i> à <i>100</i></li></ul><p>Une nouvelle manière de sélectionner des utilisateurs et des groupes a été réalisée.</p>
<a name="Son-utilisation"></a>
<h2 >Son utilisation<a href="#Son-utilisation" class="wiki-anchor">¶</a></h2>
Ce dernier a été utilisé dans les fonctionnalités suivantes :
<ul>
<li>affichage des données complémentaires d'un utilisateur (responsable), au niveau de l'onglet <strong>Profil</strong> de <strong>Mon profil</strong> de l'espace personnel ou au niveau de la fiche d'un utilisateur de la partie administration<br /><em><strong>mode lecture</strong></em> <br /><img src="https://tracker.silverpeas.org/attachments/download/6501/admin_extra_infos.png" alt="" loading="lazy" /><br /><em><strong>mode modification</strong></em> <br /><img src="https://tracker.silverpeas.org/attachments/download/6502/admin_extra_infos_write_mode.png" alt="" loading="lazy" /></li>
</ul>
<ul>
<li><strong>Envoyer une notification</strong> présentée au niveau de la <strong>Boîte de notifications</strong> de l'utilisateur connecté (Espace personnel / Mes notifications)<br /><img src="https://tracker.silverpeas.org/attachments/download/6503/sendNotification.png" alt="" loading="lazy" /><br />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.<br />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.<br /><img src="https://tracker.silverpeas.org/attachments/download/6506/sendNotificationLimit.png" alt="" loading="lazy" /></li>
</ul>
<ul>
<li><strong>Ecrire aux administrateurs</strong> depuis le menu de l'espace personnel<br /><img src="https://tracker.silverpeas.org/attachments/download/6504/sendNotificationToAdmins.png" alt="" loading="lazy" /></li>
</ul>
<ul>
<li>Champs <strong>utilisateur</strong>, <strong>utilisateurs</strong> et <strong>groupe</strong> des formulaires Silverpeas<br /><img src="https://tracker.silverpeas.org/attachments/download/6505/formUserGroupSelects.png" alt="" loading="lazy" /></li>
</ul>
<a name="Son-comportement-dans-les-grandes-lignes"></a>
<h2 >Son comportement dans les grandes lignes<a href="#Son-comportement-dans-les-grandes-lignes" class="wiki-anchor">¶</a></h2>
<p>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 <strong>panneau utilisateur</strong> pour l'un et de retirer tous les utilisateurs et groupes de la sélection pour l'autre.</p>
<p>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.<br />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.<br />Par exemple, les caractères <code>hcn</code> renseignés peuvent remonter dans le résultat l'utilisateur <code>Yohann Chastagnier</code>.<br />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).<br />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 <code>entrée</code> pour sélectionner, ou directement par la souris.<br />Une fois sélectionné, l'utilisateur ou le groupe est ajouté dans le champs de saisie.<br />Il est possible de le (ou les) désélectionner en mettant le curseur dans le champs de saisie et en utilisant la touche <code>backspace</code>. 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 <code>suppr</code> ou <code>backspace</code>.</p>
<p>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 <code>Valider</code>.</p>
<hr />
<a name="Quelques-éléments-techniques"></a>
<h2 >Quelques éléments techniques<a href="#Quelques-éléments-techniques" class="wiki-anchor">¶</a></h2>
<p>Il existe aujourd'hui 3 possibilités pour mettre en oeuvre le plugin dans une page Silverpeas.</p>
<a name="selectUsersAndGroupstag"></a>
<h3 >selectUsersAndGroups.tag<a href="#selectUsersAndGroupstag" class="wiki-anchor">¶</a></h3>
<p>Ce TAG JSTL est utilisable directement depuis les pages JSP.<br /><pre><code class="html syntaxhl" data-language="html"><span class="c"><!--Déclaration de la bibliothèque--></span>
<span class="nt"><</span><span class="err">%@</span> <span class="na">taglib</span> <span class="na">tagdir=</span><span class="s">"/WEB-INF/tags/silverpeas/util"</span> <span class="na">prefix=</span><span class="s">"viewTags"</span> <span class="err">%</span><span class="nt">></span>
<span class="nt"><html></span>
...
<span class="nt"><body></span>
...
<span class="c"><!--Intégration automatique d'un TAG HTML div suivie de l'initialisation du composant de sélection --></span>
<span class="nt"><viewTags:selectUsersAndGroups</span> <span class="na">domainIdFilter=</span><span class="s">"..."</span>
<span class="na">componentIdFilter=</span><span class="s">"..."</span>
<span class="na">role...</span> <span class="nt">/></span>
...
<span class="nt"></body></span>
<span class="nt"></html></span>
</code></pre></p>
<a name="UserGroupSelectProducer"></a>
<h3 >UserGroupSelectProducer<a href="#UserGroupSelectProducer" class="wiki-anchor">¶</a></h3>
<p>Implémentation Java de l'abstraction <code>AbstractPluginInitializationProducer</code> dont le but est de fournir l'intégralité des éléments JavaScript nécessaires à la bonne initialisation d'un composant.<br />Le TAG HTML qui contiendra le composant doit exister. Il est en principe représenté par une simple <code>div</code> avec l'attribut <code>id</code> renseigné.<br /><pre><code class="java syntaxhl" data-language="java"><span class="kd">final</span> <span class="nc">String</span> <span class="n">containerId</span> <span class="o">=</span> <span class="s">"[l'identifiant du TAG HTML qui contiendra le composant]"</span><span class="o">;</span>
<span class="kd">final</span> <span class="nc">String</span> <span class="n">selectUserComponent</span> <span class="o">=</span> <span class="nc">UserGroupSelectProducer</span><span class="o">.</span><span class="na">withContainerId</span><span class="o">(</span><span class="n">containerId</span><span class="o">)</span>
<span class="o">.</span><span class="na">withUserInputName</span><span class="o">(...)</span>
<span class="o">.</span><span class="na">selectionOf</span><span class="o">(...)</span>
<span class="o">.</span><span class="na">multiple</span><span class="o">(...)</span>
<span class="o">...</span>
<span class="o">.</span><span class="na">produce</span><span class="o">();</span>
<span class="n">jsp</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="k">new</span> <span class="n">div</span><span class="o">().</span><span class="na">setID</span><span class="o">(</span><span class="n">rootContainerId</span><span class="o">));</span>
<span class="n">jsp</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">selectUserComponent</span><span class="o">);</span>
</code></pre></p>
<a name="Le-plugin-JavaScript-directement"></a>
<h3 >Le plugin JavaScript directement<a href="#Le-plugin-JavaScript-directement" class="wiki-anchor">¶</a></h3>
<p>Utilisable directement depuis une page HTML ou JSP.<br /><pre><code class="html syntaxhl" data-language="html"><span class="c"><!--Le conteneur du composant--></span>
<span class="nt"><div</span> <span class="na">id=</span><span class="s">"anId"</span><span class="nt">></div></span>
<span class="c"><!--Son initialisation--></span>
<span class="nt"><script </span><span class="na">type=</span><span class="s">"text/javascript"</span><span class="nt">></span>
<span class="nf">whenSilverpeasReady</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="k">new</span> <span class="nc">UserGroupSelect</span><span class="p">({</span>
<span class="na">rootContainerId</span> <span class="p">:</span> <span class="dl">"</span><span class="s2">anId</span><span class="dl">"</span><span class="p">,</span>
<span class="p">...</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="nt"></script></span>
</code></pre></p>
<hr />
<p>PR : <a class="external" href="https://github.com/Silverpeas/Silverpeas-Core/pull/828">https://github.com/Silverpeas/Silverpeas-Core/pull/828</a></p> Silverpeas Core - Feature #8912: Sélectionner rapidement des utilisateurs et des groupes de la plate-formehttps://tracker.silverpeas.org/issues/8912?journal_id=450492017-07-18T19:16:28ZNicolas Eysseric
<ul><li><strong>Statut</strong> changé de <i>Resolved</i> à <i>Integration in progress...</i></li></ul> Silverpeas Core - Feature #8912: Sélectionner rapidement des utilisateurs et des groupes de la plate-formehttps://tracker.silverpeas.org/issues/8912?journal_id=450542017-07-19T10:19:53ZNicolas Eysseric
<ul><li><strong>Statut</strong> changé de <i>Integration in progress...</i> à <i>Closed</i></li></ul><p>Validé et intégré après quelques petits ajustements...</p>