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

Informations

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

    Description

      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.

       

      Pièces jointes

        Liens des tickets

          Activité

            Personnes

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

              Dates

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