Widget template de configuration

Bonjour,
Je fais des test pour créer un widget sur la v4.2, et j’ai remarqué une balise sur certains widgets, je ne crois pas que c’était présent en v4.1 … C’est du texte que l’on peut afficher dans la popup de configuration de la commande / widget, donc on peut mettre de l’aide à la configuration. Peut-on aller plus loin et proposer un formulaire pour la saisie des paramètres optionnels ?

J’ai fait un test, pour mon widget j’ai un paramètre pour l’alignement (horizontal ou vertical) donc j’ai fait le formulaire :


J’ai donc ce simple code:

  <template>
    <p>Appliquer ce widget sur un équipement du plugin mode. Masquer les commandes, ne laisser visible que celle d'info.</p>
    <fieldset><legend>Position :</legend>
      <input type="radio" name="position#id#" id="posv#id#" value="horizontal"/><label for="posv#id#">Horizontal</label>
      <input type="radio" name="position#id#" id="posh#id#" value="vertical"/><label for="posh#id#">Vertical</label>
    </fieldset>
    <script>
      $('input[name="position#id#"]').on('click', function(value){console.log(value)})
    </script>
  </template>
  • 1ère remarque, ici les #id# ne sont pas remplacés. C’est sans doute normal, on est sur la configuration d’une commande, on doit bien savoir laquelle.
  • maintenant, comment faire pour ajouter / modifier le paramètre position en fonction de la sélection ?

merci, je n’ai trouvé aucune info dans la doc sur cette nouvelle fonctionnalité.

Bonjour,

Ce n’est absolument pas fait pour mettre du code ! C’est une aide textuel sur les paramètres optionnels disponibles sur le widget.

Doc dev https://doc.jeedom.com/fr_FR/dev/core4.2

Hello :slight_smile:

Ce n’était peut-être pas prévu pour ça… Mais ça marche plutôt bien!

Je met un script pour ajouter la ligne dans le tableau des paramètres, je peux mettre le formulaire que je veux, par exemple 2 boutons radio pour un booleen, et ça marche: l’enregistrement prend en compte mon paramètre.
Je dois gérer les doublons, car à l’affichage du tableau il remet le paramètre (normal) donc je l’enlève pur laisser juste le mien.

  <template>
    <p>Appliquer ce widget sur un équipement du plugin mode. Masquer les commandes, ne laisser visible que celle d'info.</p>
    <script>
      <!-- // script du template pour l'aide au paramétrage: -->
      $(function(){

        // remove any duplicate ?
        $('#table_widgetParametersCmd tr input:first').filter(function () {
           return this.value === 'position';
        }).closest('tr').remove();

     // add custom parameter configuration:  boolean
     var tr = `<tr>
  <td>
    <input class="form-control key" value="position" enabled="false">
  </td><td>
    <input class="form-control value" enabled="false" id="positionValue" style="display:none">
    <fieldset>
      <input type="radio" name="position" id="posv" value="1"/><label for="posv">Horizontal</label>
      <input type="radio" name="position" id="posh" value="0"/><label for="posh">Vertical</label>
    </fieldset>
  </td><td>
    <a class="btn btn-danger btn-xs removeWidgetParameter pull-right"><i class="fas fa-times"></i> Supprimer</a>
  </td>
</tr>`;
  $('#table_widgetParametersCmd tbody').append(tr);
  $('input[name="position"]').on('click', {position: 'test'}, function(event){$("#positionValue").val( $(this).val())})
        
    });
    </script>
  </template>

et le résultat:

C’est tellement pratique, et pas si compliqué, ça serait dommage de s’en priver :wink: