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

Gestion des kmultiselect dans les card

XMLWordImprimable

    • Icon: Bug Bug
    • Résolution: Résolu
    • Icon: Mineur Mineur
    • 6.02.28
    • 6.02.27
    • Aucune
    • Aucune

      Bonjour,

      le fichier jquery.layout-manager-fieldHandlers-0.1.0.js contient des erreurs sur la gestion du kmultiselect (au niveau de la méthode edit).

      En effet, le code actuel :

      edit: function (field, card) {
                      if (field) {
                          var $component = $(field),
                              $compositionList = $('.kmultiselect-composition-list', $component),
                              $libelles = $('input[name^="LIBELLE_"]', $component),
                              name = $libelles.attr('name').replace('LIBELLE_', ''),
                              $input = $('#' + name, $component);
                          $input.val('');
                          if (card.model[name]) {
                              $compositionList.empty();
                              $.each(card.model[name].split(';'), function (index, value) {
                                  var splitedValues = value.split(','),
                                      ignore = splitedValues[0].lastIndexOf('#AUTO#', 0) === 0;
                                  $libelles.val($libelles.val() + splitedValues[3]);
                                  $input.val($input.val() + splitedValues[0]);
                                  $('<li>').addClass(ignore ? 'ignore' : '').html(splitedValues[3]).attr('data-value', splitedValues[0]).attr('title', splitedValues[3]).appendTo($compositionList);
                              });
                              $component.kMultiSelect().update();
                              return true;
                          }
                      }
                      return false;
                  },
      
      • se base du des index "incertains" (ex: splitedValues [ 3 ])
      • concatène les libellés et les valeurs sans séparateur (ex: $libelles.val($libelles.val() + splitedValues [ 3 ]); $input.val($input.val() + splitedValues [ 0 ]); )

      Le code pourrait être corrigé et amélioré. Il est bien sûr admis que gérer tous les cas semble difficiles, mais on peut gérer au moins les fiches de manières assez clair et propre.

      Un exemple de code qui demande à être amélioré :

       $.each(card.model[name].split(';'), function (index, value) {
                                  var splitedValues = value.split(','),
                                      ignore = splitedValues[0].lastIndexOf('#AUTO#', 0) === 0;
                                  var lastIndex = splitedValues.length - 1 ;
                                  $libelles.val($libelles.val() + splitedValues[lastIndex]+";");
                                  var type = '';
                                  if(lastIndex > 2){
                                  	splitedValues[2] = splitedValues[2].split('TYPE=').join('');
                                  	type = ',TYPE=' +  splitedValues[2];
                                  }
                              	splitedValues[1] = splitedValues[1].split('LANGUE=').join('');
                                  var langue = ",LANGUE=" + splitedValues[1];
                                  $input.val($input.val() + splitedValues[0] + langue+ type+";");
                                  $('<li>').addClass(ignore ? 'ignore' : '').html(splitedValues[3]).attr('data-value', splitedValues[0]).attr('title', splitedValues[3]).appendTo($compositionList);
                              });
      

            alexandre.baillif Alexandre BAILLIF [X] (Inactif)
            alexandre.baillif Alexandre BAILLIF [X] (Inactif)
            Votes:
            0 Voter pour ce ticket
            Gérer les observateurs:
            2 Démarre l'observation de ce ticket

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