Page 1 sur 1

[RESOLU] Customiser une boite de dialogue waptguihelper.message_dialog

Publié : 06 juil. 2023 - 14:01
par regis.lemonnier
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 ?

Re: Customiser une boite de dialogue waptguihelper.message_dialog

Publié : 06 juil. 2023 - 16:27
par htouvet
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))

Re: Customiser une boite de dialogue waptguihelper.message_dialog

Publié : 17 juil. 2023 - 13:40
par regis.lemonnier
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))

Re: Customiser une boite de dialogue waptguihelper.message_dialog

Publié : 17 juil. 2023 - 15:02
par htouvet
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)

Re: [RESOLU] Customiser une boite de dialogue waptguihelper.message_dialog

Publié : 14 sept. 2023 - 17:40
par jpele
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--"}}