Widget : Multi-action-Default en V4 sur des Commandes Info

Bonjour

je suis en V4 migré de V3
J’ai installé depuis Github JAG Github
les fichiers MasterV4 de Multi-action-Defaut
dans le répertoire Jeedom : html/data/customTemplates/dashboard/

Cela fonctionne très bien dans les widgets avec des commandes Action :
dans Configuration / Affichage / Widget, le menu déroulant montre dans la section Widget le choix Widget/Multi-action-Default

Comment faire sur les commandes de type Info, pour avoir acces au widget Multi-action-Default ?

Je sais que le code s’appelle Multi-action, mais les stores bannes, les batteries : C’est bien des icones pour des commandes info, non ?

Merci @JAG

Multi-action est fait pour des actions

si tu veux pour une info, il faut utiliser multi-binaire.

Les images sont celle utiliser dans le multi action (ces images sont communes a tous mes widgets)

https://jealg.github.io/documentation/widget/fr_FR/dashboard

Je ne connaissais pas Multi_info-Binaire : je regarde

Merci pour cette réponse rapide :grinning:

PS : avec Widgets core, au moment de choisir des images, y a t-il un moyen de parcourir l’arborescence des répertoires d’images du répertoire : html/data/img/ ?
On ne voit que les images importées avec Widgets core dans la racine et les répertoires qui s’y trouvent (ceux @Salvialf par exemple : IconInfo ou IconAction) ne se « clique » / « navigue » pas.

1 « J'aime »

j’ai prévu de déplacer les photos dans les prochaines mises à jour

mais malheureusement je n’ai que 2 mains

Il faut modifier le lien de l’image sur tous les widgets

J’ai mis à jour rapidement l’ensemble de mes widgets pour déplacer les images dans le dossier
html/data/img/
Il faut déplacer les images dans ce nouveau dossier et mettre à jour l’ensemble des codes des widgets

il faudra sûrement aussi vider le cache des widgets pour que cela fonctionne

Bonjour, concernant c’est images il faut toutes les mettre à la barbare dans /html/data/img sans classement ou on peut conserver l’arborescence par dossier que tu as créé pour stocker tes images ?

Tu peux garder l arborescence que j’ai faite
C’est moins le bordel

Merci beaucoup je viens de finir enfin par comprendre au bout d’une semaine de recherche…
Par contre le widget luminosité qui pourtant remonte une info numérique me fait des erreurs de script, ainsi que des bugs d’affichage sur toute l’interface jeedom
Ce sont bien les images placées dans divers ?
Je vais essayer de le recréer via le menu widget du core (j’ai réussi pour les stores :grin:)

tu as pris le dernier code car je m’en sers tous les jours

Oui téléchargé hier et encore ce matin. Ce n’est pas grave je l’ai recrée avec le widget de Jeedom et cela fonctionne parfaitement.
Je suis parti d’une installation vierge de la V4 sur une Debian 10. Et j’y ai repoussé mon backup.
Desinstallé l’ancien widget obsolète et utilisé ton multi-action et multi info sans problème (bon le temps que je comprenne hein :wink:) et le luminosité mini m’a posé problème.
Je m’en suis inspiré pour les seuils auxquels je fais changer l’icône.
Je ne prétends pas connaître et comprendre tout le html mais ton code me paraît clair et précis, je ne vois pas trop l’on plus pourquoi cela ne marche pas

J’ai le même souci avec le point de rosée…
Dashboard Nomal

Dashboard anormal

Et pour le widget rosee normal
rosee normal

Et anormal
rosee anormal

Pourtant je sélectionne correctement le custom widget et je pointe correctement le dossier où sont les images

Je remarque également la même chose avec le multiinfo mobile qui bugge l’affichage mobile, la où la version dashboard ne pose aucun problème :flushed:

Je pense comprendre
Tu as bien télécharger le fichier html ?
Car là je vois un lien vers GitHub

Oui

J’ai également vu le lien avec github

tu l’as mis dans quel dossier ?
peut-tu me montrer le code d’un fichier
car là c’est bizarre

Dossiers html/data/customTemplates/dashboard et html/data/customTemplates/mobile
Images dans data/img et je pointe le dossier dans j’ai besoin en option par la commande dossier

Le multi info binaire

<div style="min-width:90px;min-height:62px;" class="cmd #history# tooltips cursor cmd-widget" data-type="info" data-subtype="binary" data-cmd_id="#id#" data-cmd_uid="#uid#" data-eqLogic_id="#eqLogic_id#" data-eqLogic_id="#eqLogic_id#" title="#collectDate#">
    <!-- Info Widget
        Widget de           : JAG
        Widget pour le Core : V4
        Mise à jour         : JAG 20201220 => Update suite changement localisation image
	-->
    <div class="title #hide_name#">
        <div class="cmdName" style="#hideCmdName#">#name_display#</div>
    </div>
    <div class="content-sm ">
        <span class="iconCmd#uid#"></span>
    </div>
    <div class="value">
        <span style="min-width:100px" class="timeCmd#id# timeCmd label label-default value"></span>
    </div>
    <script>
        jeedom.cmd.update['#id#'] = function(_options) {
            // Paramètrage du logo
            // Valeur du logo
            var srcImglogo = ('#logo#' != '#' + 'logo#') ? "#logo#" : "";
            var srcImglogo_T = ('#logo_type#' != '#' + 'logo_type#') ? "#logo_type#" : "png";
            // Paramétrage des images
            if (srcImglogo == "") {
                // Variable Image pour Valeur : ON ou 1
                var srcImglogoON = ('#logoON#' != '#' + 'logoON#') ? "#logoON#" : "fi_wh_off";
                var srcImglogoON_T = ('#logoON_type#' != '#' + 'logoON_type#') ? "#logoON_type#" : "png";
                // Variable Image pour Valeur : OFF ou 0
                var srcImglogoOFF = ('#logoOFF#' != '#' + 'logoOFF#') ? "#logoOFF#" : "fi_bu_on";
                var srcImglogoOFF_T = ('#logoOFF_type#' != '#' + 'logoOFF_type#') ? "#logoOFF_type#" : "png";
            } else {
                // Variable Image pour Valeur : ON ou 1
                var srcImglogoON = srcImglogo + '_on';
                var srcImglogoON_T = srcImglogo_T;
                // VVariable Image pour Valeur : OFF ou 0
                var srcImglogoOFF = srcImglogo + '_off';
                var srcImglogoOFF_T = srcImglogo_T;
            };

            // Paramètrage du logo pour Erreur
            var srcImglogoER = ('#logoER#' != '#' + 'logoER#') ? "#logoER#" : "er_oups4_or";
            var srcImglogoER_T = ('#logoER_type#' != '#' + 'logoER_type#') ? "#logoER_type#" : "png";
            var srcImgValueER = ('#para_ER#' != '#' + 'para_ER#') ? "#para_ER#" : "";
            // Paramètre "sizeh" & "sizew"
            var srcImgHeight = is_numeric('#sizeh#') ? parseFloat('#sizeh#') : 80;
            var srcImgWidth = is_numeric('#sizew#') ? parseFloat('#sizew#') : 80;
            // Type de taille
            var srcImgpourcent = ('#Pourcentage#' != '#' + 'Pourcentage#') ? "#Pourcentage#" : "NO";
            if (srcImgpourcent == "NO") {
                var srcImgSize = 'height=' + srcImgHeight + 'px width=' + srcImgWidth + 'px';
            } else if (srcImgpourcent == "YES") {
                var srcImgSize = 'height=' + srcImgHeight + '% width=' + srcImgWidth + '%';
            };

            // Paramétrage des dossiers
            var srcFolder = ('#dossier#' != '#' + 'dossier#') ? "#dossier#" : "fibarooeil";
            if (srcFolder == 'NULL') {
                var srcImgURL = "data/img/";
            } else {
                var srcImgURL = "data/img/" + srcFolder + '/';
            };

            // Gestion Erreur
            var srcFolderErreur = ('#dossierER#' != '#' + 'dossierER#') ? "#dossierER#" : "error";
            if (srcImgValueER == "logoON") {
                var srcImgURL_ER = srcImgURL;
                var srcImglogoER = srcImglogoON;
                var srcImglogoER_T = srcImglogoON_T;
            } else if (srcImgValueER == "logoOFF") {
                var srcImgURL_ER = srcImgURL;
                var srcImglogoER = srcImglogoOFF;
                var srcImglogoER_T = srcImglogoOFF_T;
            } else {
                var srcImgURL_ER = "data/img/" + srcFolderErreur + '/';
            };

            // Affichage durée changement dernier etat
            var srcImglogoTime = '#logoTime#';

            if (_options.display_value == '1') {
                $('.cmd[data-cmd_id=#id#] .iconCmd#uid#').empty().append('<img src="' + srcImgURL + srcImglogoON + '.' + srcImglogoON_T + '" ' + srcImgSize + '>');
            } else if (_options.display_value == '0') {
                $('.cmd[data-cmd_id=#id#] .iconCmd#uid#').empty().append('<img src="' + srcImgURL + srcImglogoOFF + '.' + srcImglogoOFF_T + '" ' + srcImgSize + '>');
            } else {
                $('.cmd[data-cmd_id=#id#] .iconCmd#uid#').empty().append('<img src="' + srcImgURL_ER + srcImglogoER + '.' + srcImglogoER_T + '" ' + srcImgSize + '>');
            }

            // Derniere durée changement dernier etat
            //Merci @Salvialf pour le code
            if (srcImglogoTime == "duree"|| srcImglogoTime == "durée") {
                jeedom.cmd.displayDuration(_options.valueDate, $('.cmd[data-cmd_id=#id#] .timeCmd#id#'));
            } else if (srcImglogoTime == "date") {
                var srcdate = new Date(_options.valueDate);
                var srcformat = $.datepicker.formatDate('D dd/mm', srcdate);
                var srctime = "à " + srcdate.getHours() + ":" + (srcdate.getMinutes() < 10 ? '0' : '') + srcdate.getMinutes();
                $('.cmd[data-cmd_id=#id#] .timeCmd#id#').empty().html(srcformat + ' ' + srctime);
            } else if (srcImglogoTime == "heure") {
                var srcdate = new Date(_options.valueDate);
                var srctime = "à " + srcdate.getHours() + ":" + (srcdate.getMinutes() < 10 ? '0' : '') + srcdate.getMinutes() + ":" + (srcdate.getSeconds() < 10 ? '0' : '') + srcdate.getSeconds() + "";
                $('.cmd[data-cmd_id=#id#] .timeCmd#id#').empty().html(srctime);
            };
            $('.cmd[data-cmd_id=#id#]').attr('title', 'Valeur du ' + _options.valueDate + ', collectée le ' + _options.collectDate);
        }
        jeedom.cmd.update['#id#']({
            display_value: '#state#',
            valueDate: '#valueDate#',
            collectDate: '#collectDate#',
            alertLevel: '#alertLevel#'
        });

    </script>
</div>

Le multi action default

<div class="cmd cmd-widget cursor" data-type="action" data-subtype="other" data-template="tmplimg" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
    <!-- Info Widget
        Widget de           : JAG
        Widget pour le Core : V4
        Mise à jour         : JAG 20201220 => Update suite changement localisation image
	-->
    <div class="title #hide_name#">
        <div class="cmdName">#valueName#</div>
    </div>
    <div class="content-sm ">
        <span id="multiaction" class="imgCmd imgCmd#id# cursor tooltips"></span>
    </div>
    <div class="value">
        <span class="timeCmd label label-default #value_history# value" data-type="info" data-cmd_id="#value_id#"></span>
    </div>

    <script>
        jeedom.cmd.update['#id#'] = function(_options) {
            var cmd = $('.cmd[data-cmd_id=#id#]');
            var srcImglogo = ('#logo#' != '#' + 'logo#') ? "#logo#" : "";
            var srcImglogo_T = ('#logo_type#' != '#' + 'logo_type#') ? "#logo_type#" : "png";
            if (srcImglogo == "") {
                // Variable Image pour Valeur : ON ou 1
                var srcImglogoON = ('#logoON#' != '#' + 'logoON#') ? "#logoON#" : "di_day";
                var srcImglogoON_T = ('#logoON_type#' != '#' + 'logoON_type#') ? "#logoON_type#" : "png";
                // Variable Image pour Valeur : OFF ou 0
                var srcImglogoOFF = ('#logoOFF#' != '#' + 'logoOFF#') ? "#logoOFF#" : "di_night";
                var srcImglogoOFF_T = ('#logoOFF_type#' != '#' + 'logoOFF_type#') ? "#logoOFF_type#" : "png";
            } else {
                // Variable Image pour Valeur : ON ou 1
                var srcImglogoON = srcImglogo + '_on';
                var srcImglogoON_T = srcImglogo_T;
                // Variable Image pour Valeur : OFF ou 0
                var srcImglogoOFF = srcImglogo + '_off';
                var srcImglogoOFF_T = srcImglogo_T;
            };

            var srcImgHeight = is_numeric('#sizeh#') ? parseFloat('#sizeh#') : 80;
            var srcImgWidth = is_numeric('#sizew#') ? parseFloat('#sizew#') : 80;
            // Type de taille
            var srcImgpourcent = ('#Pourcentage#' != '#' + 'Pourcentage#') ? "#Pourcentage#" : "NO";
            if (srcImgpourcent == "NO") {
                var srcImgSize = 'height=' + srcImgHeight + 'px width=' + srcImgWidth + 'px';
            } else if (srcImgpourcent == "YES") {
                var srcImgSize = 'height=' + srcImgHeight + '% width=' + srcImgWidth + '%';
            }

            // Paramétrage des images
            var srcFolder = ('#dossier#' != '#' + 'dossier#') ? "#dossier#" : "divers";
            if (srcFolder == 'NULL') {
                var srcImgURL = "data/img/";
            } else {
                var srcImgURL = "data/img/" + srcFolder + '/';
            };

            // Affichage durée changement dernier etat
            var srcImglogoTime = '#logoTime#';
            //Update
            if (_options.display_value == '1' || _options.display_value >= 1 || _options.display_value == '99' || _options.display_value == 99 || _options.display_value == 'on') {
                cmd.attr('data-state', 'on')
                if (jeedom.cmd.normalizeName('#name#') == 'on') {
                    cmd.hide();
                } else {
                    cmd.show().find('#multiaction').empty().append('<img src="' + srcImgURL + srcImglogoON + '.' + srcImglogoON_T + '"' + srcImgSize + '>');
                }
            } else if (_options.display_value == '0' || _options.display_value == 0 || _options.display_value == 'off') {
                cmd.attr('data-state', 'off');
                if (jeedom.cmd.normalizeName('#name#') == 'off') {
                    cmd.hide();
                } else {
                    cmd.show().find('#multiaction').empty().append('<img src="' + srcImgURL + srcImglogoOFF + '.' + srcImglogoOFF_T + '"' + srcImgSize + '>');
                }
            }

            // Affichage durée changement dernier etat - Derniere durée changement dernier etat
            //Merci @Salvialf pour le code
            if (srcImglogoTime == "duree" || srcImglogoTime == "durée") {
                jeedom.cmd.displayDuration(_options.valueDate, cmd.find('.timeCmd'));
            } else if (srcImglogoTime == "date") {
                var srcweek = ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'];
                var srcdate = new Date(_options.valueDate.replace(' ', 'T'));
                var srcT = _options.valueDate.split(/[- :]/);
                var srcformat = srcweek[srcdate.getDay()] + " " + srcT[2] + "/" + srcT[1];
                var srctime = "à " + srcT[3] + ":" + srcT[4];
                cmd.find('.timeCmd').html(srcformat + '<br>' + srctime);

            } else if (srcImglogoTime == "heure") {
                var srcdate = new Date(_options.valueDate.replace(' ', 'T'));
                var srcT = _options.valueDate.split(/[- :]/);
                var srctime = "à " + srcT[3] + ":" + srcT[4] + ":" + srcT[5];
                cmd.find('.timeCmd').html(srctime);

            };
        }
        jeedom.cmd.update['#id#']({
            display_value: '#state#',
            valueDate: '#valueDate#',
            collectDate: '#collectDate#',
            alertLevel: '#alertLevel#'
        });
        $('.cmd[data-cmd_uid=#uid#] #multiaction').off().on('click', function() {
            jeedom.cmd.execute({
                id: '#id#'
            });
        });

    </script>
</div>

C’est bizarre dans le luminosité multi j’avais un fichier de 144ko alors que le tient n’en fait que 7
J’ai fait un copier coller à la place et j’attribue le widget et la ca fonctionne…

c’est bien ce que je me doutais
tu n’avais pas télécharger correctement le fichier

Effectivement la version mobile est du même acabi
Je re vérifie tout ca

Edit:

En corrigeant tous les fichiers c’est ok merci encore

C’est tout de suite plus joli :grinning:

2 « J'aime »