[RISOLTO] Personalizzazione di una finestra di dialogo waptguihelper.message_dialog

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
regis.lemonnier
Messaggi: 10
Registrazione: 15 ottobre 2022 - 16:41

6 luglio 2023 - 14:01

Salve,

è possibile formattare una finestra di dialogo utilizzando il comando `waptguihelper.message_dialog` o un altro comando?
In caso affermativo, dove posso trovare le opzioni disponibili?
Versione WAPT installata: 2.2.1.11957
Sistema operativo del server: Red Hat Enterprise Linux 8.6
Sistema operativo della macchina di amministrazione: Windows 10
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

6 luglio 2023 - 16:27

waptguihelper non offre alcuna reale opzione di personalizzazione...
Una domanda alla volta.
A parte waptguihelper.grid_dialog(..) che consente l'input in una griglia

Codice: Seleziona tutto

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
In alternativa, puoi usare waptmessage con un modulo HTML

Esempio:


setup.py

Codice: Seleziona tutto

# -*- 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))
Tranquillo IT
regis.lemonnier
Messaggi: 10
Registrazione: 15 ottobre 2022 - 16:41

17 luglio 2023 - 13:40

L'utilizzo di waptmessage con HTML soddisfa le mie esigenze di visualizzazione, ma quando utilizzo la parte di codice fornita come esempio, il "risultato if" restituisce 'False' anche se i campi del modulo sono compilati e convalidati (pulsanti "Convalida" + Ok).
Hai idea di cosa abbia causato il fallimento?



htouvet ha scritto: 6 luglio 2023 - 16:27 waptguihelper non offre alcuna reale opzione di personalizzazione...
Una domanda alla volta.
A parte waptguihelper.grid_dialog(..) che consente l'input in una griglia

Codice: Seleziona tutto

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
In alternativa, puoi usare waptmessage con un modulo HTML

Esempio:


setup.py

Codice: Seleziona tutto

# -*- 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))
Versione WAPT installata: 2.2.1.11957
Sistema operativo del server: Red Hat Enterprise Linux 8.6
Sistema operativo della macchina di amministrazione: Windows 10
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

17 luglio 2023 - 15:02

Questo potrebbe essere dovuto alla differenza di versione. Ho testato il frammento di codice con la mia versione di sviluppo di Wapt.
A quanto pare tu stai usando la versione 2.2.
Puoi provare a eseguirlo manualmente in un prompt dei comandi per vedere l'output (o la sua assenza, nel tuo caso).
Tranquillo IT
Avatar utente
jpele
Messaggi: 156
Registrazione: 4 marzo 2019 - 12:01
Posizione: Nantes

14 settembre 2023 - 17:40

Funziona con ensure_unicode

Codice: Seleziona tutto

    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--"}}  
Bloccato