Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-6081

Garder l'ordre des éléments du kmultiselect

XMLWordImprimable

    • Icon: Demande d'amélioration Demande d'amélioration
    • Résolution: Résolu
    • Icon: Mineur Mineur
    • branche 6.7, 7.0.0-ALPHA-18
    • master, 6.07.61
    • Aucune
    • Sprint 2022 S34, K-Sup 6.7 - Sprint

      Dans un kmultiselect, on doit mettre dans l'infoBean une map contenant l'ensemble des valeurs possibles avec clé = code de l'item et valeur = libellé qu'on voit à l'écran.

      Exemple :

       

      <components:kmultiselect extension="${ePrivacyExt}" fieldName="EPRIVACY.SAISIE.CONFIGURATION.SITES_CONCERNED" label="EPRIVACY.BO.SAISIE.SITES_CONCERNES"
       editOption="<%=UnivFmt.getModeSaisieZone(infoBean, \"EPRIVACY.BO.SAISIE.SITES_CONCERNES\")%>"
       context="<%=KselectContext.CONTEXT_DEFAULT%>" dataSource="EPRIVACY.SAISIE.CONFIGURATION.LISTE_SITES_CONCERNES"
       type="<%=MultiSelectMode.ltl%>"/>

      Ici, EPRIVACY.SAISIE.CONFIGURATION.LISTE_SITES_CONCERNES est une map contenant(par exemple)

       

      Element 0 : unssdomaine, Fac de philo
      Element 1 : kdev, Site principal
      

       

      L'ordre est bien celui-ci. En effet on fait :

       infoBean.set("EPRIVACY.SAISIE.CONFIGURATION.LISTE_SITES_CONCERNES", new ArrayList<>(serviceInfosSite.getListeInfosSitesActifs()).stream().sorted(Comparator.comparing(InfosSite::getIntitule)).map(InfosSiteImpl.class::cast).collect(Collectors.toMap(InfosSite::getAlias, InfosSite::getIntitule)));

      On force exprès l'ordre par celui du libellé côté projet/extension.

      Problème : le composant kmultiselect force l'affichage par ordre de code et devient donc visuellement :

       

      Element 0 : kdev, Site principal
      Element 1 : unssdomaine, Fac de philo
      

       

      L'ordre est forcé par le kmultiselect ici :

      https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/core/src/main/java/com/kosmos/components/kselect/utils/KmultiSelectUtils.java#84

      Solution :

      • On peut ajouter un attribut dans le kmultiselect "keepOrder" qui permet de garder l'ordre de la map au départ si c'est à true. Si false ou non défini, le composant fait le tri comme actuellement.

       

        Il n'y a aucune sous-tâche pour ce ticket.

            gabriel.boursier Gabriel BOURSIER [X] (Inactif)
            gabriel.boursier Gabriel BOURSIER [X] (Inactif)
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            4 Démarre l'observation de ce ticket

              Création:
              Mise à jour:
              Résolue: