[RESOLU] Customiser une boite de dialogue waptguihelper.message_dialog

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
regis.lemonnier
Messages : 10
Inscription : 15 oct. 2022 - 16:41

06 juil. 2023 - 14:01

Bonjour,

Est il possible de mettre en forme une boite de dialogue en utilisant la commende : waptguihelper.message_dialog ou une autre commande ?
Si oui où puis je trouver les options disponibles ?
Version de WAPT installée : 2.2.1.11957
OS du serveur : Red Hat Enterprise Linux 8.6
OS de la machine d'administration : Windows 10
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

06 juil. 2023 - 16:27

waptguihelper n'a pas de possibilité de customisation réelle....
une seule question à la fois.
A part waptguihelper.grid_dialog(..) qui permet la saise dans une grille

Code : Tout sélectionner

Parameters:
- Title: the title for the dialog
- Data: a list or JSON string
Optional: 
- ResultType: GRT_ALL or GRT_SELECTED - default is GRT_ALL
- MetaData: it can be used to change columns data type
  - it must be a JSON
  - all types: String, Date, Time, DateTime, Integer, Float, Boolean, Memo
  - example: {"columns":[{"propertyname":"id","datatype":"Integer"}]}
- Text: the label above search box - default is "Search"
- StayOnTop: indicates if the form will always stay on top - default is False
Sinon, vous pouvez utiliser waptmessage avec un formulaire en HTML

Exemple:


setup.py

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import base64
import json

form = """\
<html encoding="utf8">
    <form method="STDOUT">
        <h2>Formulaire</h2>
        Votre machine :
        <input type="text" name="machine" value="%(machine)s"><br>
        Votre nom:
        <input type="text" name="nom" value="%(nom)s"><br>
        Votre prénom:
        <input type="text" name="prenom" value="%(prenom)s"><br>
        <label for="pet-select">Choose a pet:</label>

        <select name="pets" id="pet-select">
            <option value="">--Please choose an option--</option>
            <option value="dog">Dog</option>
            <option value="cat">Cat</option>
            <option value="hamster">Hamster</option>
            <option value="parrot">Parrot</option>
            <option value="spider">Spider</option>
            <option value="goldfish">Goldfish</option>
        </select>
        <input type="submit" value="Valider">
    </form>
</html>
"""

def install():
    pass

def update_package():
    nom = ''
    prenom = ''
    machine = get_computername()
    pets=''

    s = base64.b64encode((form % locals()).encode('utf8'))
    result = run(['waptmessage','-c','-b',s])
    if result:
        data = json.loads(result)
        nom = data['result']['nom']
        prenom = data['result']['prenom']
        machine = data['result']['machine']
        pets = data['result']['pets']
        print("""\
Nom: %s
Prénom: %s
Machine: %s
Animal: %s
""" % (nom,prenom,machine,pets))
Tranquil IT
regis.lemonnier
Messages : 10
Inscription : 15 oct. 2022 - 16:41

17 juil. 2023 - 13:40

L'utilisation de waptmessage avec du HTML réponds a mon besoin d'affichage mais lorsque j’utilise la portion de code fournie en exemple, le "if result" renvoie 'False' alors que les champs du formulaire sont complétés et validés (boutons "Valider" + Ok).
Une idée de cause de l'échec ?



htouvet a écrit : 06 juil. 2023 - 16:27 waptguihelper n'a pas de possibilité de customisation réelle....
une seule question à la fois.
A part waptguihelper.grid_dialog(..) qui permet la saise dans une grille

Code : Tout sélectionner

Parameters:
- Title: the title for the dialog
- Data: a list or JSON string
Optional: 
- ResultType: GRT_ALL or GRT_SELECTED - default is GRT_ALL
- MetaData: it can be used to change columns data type
  - it must be a JSON
  - all types: String, Date, Time, DateTime, Integer, Float, Boolean, Memo
  - example: {"columns":[{"propertyname":"id","datatype":"Integer"}]}
- Text: the label above search box - default is "Search"
- StayOnTop: indicates if the form will always stay on top - default is False
Sinon, vous pouvez utiliser waptmessage avec un formulaire en HTML

Exemple:


setup.py

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import base64
import json

form = """\
<html encoding="utf8">
    <form method="STDOUT">
        <h2>Formulaire</h2>
        Votre machine :
        <input type="text" name="machine" value="%(machine)s"><br>
        Votre nom:
        <input type="text" name="nom" value="%(nom)s"><br>
        Votre prénom:
        <input type="text" name="prenom" value="%(prenom)s"><br>
        <label for="pet-select">Choose a pet:</label>

        <select name="pets" id="pet-select">
            <option value="">--Please choose an option--</option>
            <option value="dog">Dog</option>
            <option value="cat">Cat</option>
            <option value="hamster">Hamster</option>
            <option value="parrot">Parrot</option>
            <option value="spider">Spider</option>
            <option value="goldfish">Goldfish</option>
        </select>
        <input type="submit" value="Valider">
    </form>
</html>
"""

def install():
    pass

def update_package():
    nom = ''
    prenom = ''
    machine = get_computername()
    pets=''

    s = base64.b64encode((form % locals()).encode('utf8'))
    result = run(['waptmessage','-c','-b',s])
    if result:
        data = json.loads(result)
        nom = data['result']['nom']
        prenom = data['result']['prenom']
        machine = data['result']['machine']
        pets = data['result']['pets']
        print("""\
Nom: %s
Prénom: %s
Machine: %s
Animal: %s
""" % (nom,prenom,machine,pets))
Version de WAPT installée : 2.2.1.11957
OS du serveur : Red Hat Enterprise Linux 8.6
OS de la machine d'administration : Windows 10
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

17 juil. 2023 - 15:02

C'est peut être dû à l'écart de version. J'ai testé le bout de code avec ma version de dev de wapt.
Vous êtes en 2.2 apparemment.
Vous pouvez essayer de lancer dans un cmd manuellement pour voir le retour (ou l'absence de retour dans votre cas)
Tranquil IT
Avatar de l’utilisateur
jpele
Messages : 153
Inscription : 04 mars 2019 - 12:01
Localisation : Nantes

14 sept. 2023 - 17:40

Cela fonctionne avec ensure_unicode

Code : Tout sélectionner

    s = ensure_unicode(base64.b64encode((form % locals()).encode("utf8")))
 {"method":"STDOUT","action":"","target":"","enctype":"","result":{"machine":"jpe-clt-win11","nom":"jghjgj","prenom":"","pets":"--Please choose an option--"}}  
Verrouillé