Personnalisation de la fenêtre de sélection d'une commande

Helloo,

Je vous propose un remplacement de la fenêtre actuelle permettant de sélectionner une commande Jeedom (Info ou action).
Pour cela, j’ai remplacé le code de cette modale au niveau du Core de Jeedom et ajouté un nouveau fichier ajax.
Testé sur Jeedom 4.6.1 et develop.

:warning: Avant de détailler l’installation, je précise que celle-ci modifie directement des fichiers du Core Jeedom. Un mécanisme de sauvegarde, de vérification et de rollback est intégré afin de permettre un retour à l’état original. Mais, toute mauvaise manipulation pouvant entrainer un mauvais fonctionnement de votre Jeedom tient de votre responsabilité. Je vous engage donc à faire une sauvegarde avant installation.

:play_button: Actuellement, on a cette modale pour sélectionner une commande Jeedom :

:play_button: Après l’installation de cette modification, vous aurez cette modale :

:play_button: Fonctionnalités intéressantes :

  • navigation plus facile et visuelle
  • filtres immédiats
  • libellé de la sélection en cours
  • recherche générale par libellé d’objet, équipement ou commande
  • recherche par id de commande
  • visualisation des sous-types par icône
  • …

:play_button: Installation par scénario :

:play_button: Plus de détails sur l’installation ici :

:play_button: Installation manuelle :
Vous avez aussi la possibilité de faire l’installation manuellement de la façon suivante :

19 « J'aime »

Bonjour,

Top je trouve, surtout la recherche par mot clé. Mais donc à chaque maj du core on perd tes modifs du coup non ? ca serait pas mal de le proposer a l’equipe Jeedom pour qu’e cela soit directement intégrer

1 « J'aime »

Bonjour,

Merci pour cette amélioration de la sélection des commandes.
C’est quand même plus confortable de choisir une commande dans une liste triée par ordre alphabétique et en pouvant filtrer sans avoir à relire toute une liste.

Je me demandais si la liste des objets avec leurs icônes ne devrait pas être représentée par son arborescence.

Autre amélioration possible:
Entre 2 sélections de commande, conserver l’objet précédemment sélectionné comme dans la modale de base.

Et bien sûr, faire une PR à Jeedom.

3 « J'aime »

Salut,

Merci de ton retour.

Bonne idée, en cours de test :

A voir, je me demande si actuellement, ce n’est pas un effet de bord au chargement. Je regarderai.

3 « J'aime »

Salut,

Nouvelle version avec arborescence par arbre pour les objets en beta sur le github.

4 « J'aime »

Hello, merci, ce patch semble apporter beaucoup.
As-tu proposé une PR au core de Jeedom ?
Merci beaucoup !

Whaouu, ça a de la gueule comme on dit !

Merci pour ce boulot !! Je trouve le dialogue beaucoup plus agréable et fonctionnel de la sorte

:top_hat:

2 « J'aime »

Bonjour,

Merci pour la liste des objets en arborescence.

Pour les équipements, j’aurais bien vu une couleur d’icône différente selon l’état de l’équipement (enable ou pas) ainsi que l’ID/nom du plugin qui « s’occupe » de l’équipement:

Bonjour,

Compliqué de caser l’id ou nom du plugin.
Par contre, avec le logo, ça peut suffire comme information visuelle.

Sinon, pour l’état inactif, une pastille blanche (actif) ou grise (inactif)

Edit : j’ai ajouté l’id du plugin en infobulle du logo

2 « J'aime »

Il y aurait aussi la possibilité d’afficher l’image de l’équipement lui-même à la place de l’icône du plugin. À voir.

Bonjour,

Validé et adopté pour ma part sur mon Jeedom de prod (RAS avec mon Jeedom de test) !
Merci pour ces améliorations qui, au delà de l’aspect purement cosmétique, restent très utiles !

En attendant une intégration définitive, il suffira au pire juste de relancer le scénario d’installation après chaque mise à jour du core de Jeedom (soit un investissement de +/- 5 secondes… :wink:).

:+1: :+1: :+1:

1 « J'aime »

Je préférerais verte et rouge à cause des fonds light ou dark. ( Les nuances de gris bof )
Avec l’icône du plugin et dans son info bulle son ID, ca irait.

Beaucoup de mes équipements n’ont pas d’ image, tous les thermostats ont la même …
Le plugin est important. La plupart du temps, je ne sais pas dans quel objet/équipement est la commande que je veux sélectionner.

  • j’appréciais l’affichage plus discret des pastilles blanche et grise et je trouvais l’affichage rouge et vert plus « agressif » et coloré,
    mais, c’est sans doute plus direct comme visuel. Du coup, j’ai coupé la poire en deux : rouge et vert avec une opacité à 50% :wink:

  • pour les icônes, j’étais plutôt déjà convaincu de laisser les icônes du plugin associé (même si pour les équipements sans image, il y avait moyen d’afficher le plugin, et une icône par défaut si aucun des 2 n’est dispos)

J’arrive donc à ce résultat actuellement :play_button: Dispos sur mon Github en beta.

1 « J'aime »

Salut,

Techniquement qu’est-ce qui est appelé ? Quelle méthode ?
Parce qu’en fait ce n’est pas une question qui devrait se poser.
Si on veut afficher une image, l faut « juste » appeler la méthode du core et le plugin et/ou le core décidera quelle image renvoyer.
Parce qu’il faut aussi prendre en compte les images personnalisées (core 4.5 et plugin qui le gère)

Donc pas besoin de code custom à faire qui choisi lui même ce qu’il faut faire à priori.

Je dis cela dans l’optique d’intégrer ce concept au core qui serait une valeur ajoutée, mais pour ca faut rester sur du standard core, cohérent et facile à maintenir.

3 « J'aime »

Salut,

Alors, la réponse est simple, je ne dois pas utiliser la bonne méthode :

const pluginId = String(eqLogic.eqType_name || '');
const pluginIcon = pluginId ? `/plugins/${pluginId}/plugin_info/${pluginId}_icon.png` : '';

Par contre, du coup, j’ai parcouru rapidement le core et j’ai l’impression qu’il serait intéressant d’ajouter une requête Ajax pour récupérer la liste des plugins avec leur image associée (ou une requête Ajax avec le pluginId en paramètre, mais je crains que ça soit coûteux dans cette utilisation)
Fort possible aussi que je passe à côté d’une bonne utilisation du core pour ce besoin :slight_smile:

Pour info.

J’ai poussé une version beta qui récupère les icônes de tous les plugins au chargement avec plugin::listPlugin et plugin::getPathImgIcon

Et je suis sur une version avec getImage()
mais du coup, j’ai modifié getEqLogic (de mémoire) pour retourner l’icône mais j’ai quelques icônes en échec (pas encore regardé lesquels et pourquoi). Ou sinon, sans modifications, ça voudrait dire requêtes à chaque nouvel icone d’équipement au chargement d’une liste pour un objet.

Bonjour,

Le code pour l’icône est nettement plus compliqué maintenant !

Pour l’icône du plugin, tu ajoutes un / au début du chemin


Ca ne va plus fonctionner quand Jeedom n’est pas installé à son emplacement par défaut.
J’ai eu le cas ICI

Quelques détails:

  • Peut être augmenter la taille des icônes. 18px est très petit. → 24px ?
  • Réduire la hauteur des listes pour éviter l’ascenseur général ou dimensionner la fenêtre plus haute.
2 « J'aime »

Salut

Lors d’un sujet précédent qui concernait la sélection d’une commande , j’avais posté des screens

Aujourd’hui ca donne ca

Juste une modification du fichier cmd.human.insert.php . pas besoin de toucher a autre chose.

Pour étendre à jeedom pour toutes les modales, il faut modifier les 4 fichiers du core

  1. desktop/modal/cmd.human.insert.php — sélecteur commande
  2. desktop/modal/eqLogic.human.insert.php — sélecteur équipement
  3. desktop/modal/scenario.human.insert.php — sélecteur scénario
  4. desktop/modal/dataStore.human.insert.php — sélecteur variable

Pas besoin de modifier d’autres fichiers

Un autre visuel , c’est une question de goût

1 « J'aime »

Hello, je teste à l’instant le patch d’amélioration, merci beaucoup pour cette contribution.
J’ai installé le patch beta. Je vous partage mes retours et suggestions qui se veulent constructives et appellent vos critiques.

1- Personnellement j’adorerais parfois pouvoir filtrer aussi sur le plugin : que si je cherche une commande d’un virtuel, je sélectionne le plugin virtuel et ça me vire les objet/équipements et commandes qui n’en font pas parite… ensuite, soit en navigant dans les objets restants, les équipement, ou avec la super fonction de recherche, j’arrive très vite sur ma commande.

2- Un retour de pinaillage :
Quand on arrive sur la fenêtre un a le deuxième champs qui indique le premier objet de la liste puisqu’il est sélectionné par défaut, c’est “Aucun” chez moi)


Mais dès qu’on commence à taper qqch dans le champ de recherche, alors potentiellement il n’y pas de commande dans l’objet “Aucun” et pourtant cet objet reste sélectionné.
On pourrait soit ne rien afficher du tout dès le début, et pendant la recherche jusqu’à ce qu’on clique sur une commande, rien n’est affiché.
Ou alors on laisse au début le premier objet par défaut sélectionné, mais quand on bascule en recherche on peut automatiquement sélectionner et donc afficher dans ce champ le premier élément de la liste.
Ci-dessous un exemple chez moi qui ne fait pas trop de sens :

Perso j’aime bien l’idée de sélectionner automatiquement le premier élément de la liste, comme ça si on a taper parfaitement notre recherche, on n’a plus qu’à valider et on gagne un clic !

3- Autre idée qui est peut-être pas visuellement jolie : les objets ont des couleurs dédiées, on pourrait retrouver ces couleurs dans la liste de choixdes objets, ça pourrait permettre d’identifier plus vite notre objet si on en connait sa couleur.

4- les points verts et rouges sur les équipements en fonction de s’il sont activés ou non… A mes yeux pas forcément intuitif : si on espère que ça se retrouve dans une version officielle, je pense qu’il faut coller à l’affichage existant ailleurs, malgré les difficultés d’affichage en light ou dark. Et selon moi c’est une opacité à 0.6.

5- Je suggère aussi que quand on double clique sur la commande choisie, ça la valide automatiquement (comme c’est le cas pour les blocs !)

6- Sur un grand écran, je trouve dommage que la fenêtre de sélection ne s’affiche pas en plus grand, afin notamment d’y montrer plus d’objets, d’équipements ou de commande d’un coup et de parfois s’épargner un coup de molette.

7- Enfin, il y a je trouve une régression par rapport à la version officielle de sélection des commandes :
Dans la version officielle, quand on sélectionne plusieurs commandes d’affilées, le sélecteur retient l’objet précédemment sélectionné. J’ai d’ailleurs souvent pesté parce qu’il ne retenait pas le dernier équipement sélectionné !
Dans la version améliorée, il ne se souvient pas du dernier objet. Serait-il possible de réparer cette régression, et si c’est possible ajouter la mémoire du précédent équipement ? En effet quand on est dans un scenario, il n’est pas rare de devoir aller de nombreuse fois jouer avec le même équipement, on gagnerait du temps !

Encore une fois merci beaucoup !

1 « J'aime »

Merci @noodom c’est top là aussi :wink: