Documentation e-ASY

Documentation e-ASY

  • API
  • XML Projet
  • État BI
  • Administration

›Doc Technique

Doc Technique

  • API Publique
  • XML Projet
  • Etat BI

Doc Administrateur

  • Admin projet
  • Publipostage
  • Notifications
  • WBS
  • Filtres de page
  • Règles e-Asy
  • RGPD

Structure XML d'un projet

Ce document décrit la grammaire utilisée pour construire le fichier XML d'un projet.

Structure générale d'un projet

graph TD; project-->menu; project-->langs; langs-->lang; menu-->item; item-->items; items-->item; item-->page; page-->form; form-->row; row-->col; col-->row; col-->label; col-->field; field-->triggers; triggers-->trigger; page-->descriptor; descriptor-->column*; page-->lists; lists-->list; list-->column; page-->view; page-->calendar view-->orderby; orderby-->column**; view-->joins; joins-->join; view-->groupby; groupby-->column***; page-->hooks; hooks-->hook;

Exemple de projet vierge


<project>
    <menu>
        <item name="produits" icon="leaf" title="TIT_TITLE" subtitle="SUB_SUBTITLE" description="DESC_DESCRIPTION">
            <page name="produits" table="produits" type="standard">
                <form>
                    <row>
                        <col lg="6" sm="12" xs="12">
                            <label lg="12" align="left">REFERENCE</label>
                            <field lg="12" type="text" unique="true" wbsLang="PRODUIT" length="255" name="reference"/>
                        </col>
                        <col lg="6" sm="12" xs="12">
                            <label lg="8" align="left">PRIX</label>
                            <field lg="4" type="number" required="true" unique="true" length="255" name="prix"/>
                        </col>
                    </row>
                    <row>
                        <col lg="12" sm="12" xs="12">
                            <label lg="12" align="left">STOCK</label>
                            <field lg="12" name="in_out_stock" type="link" table="in_out" column="stock"
                                   readonly="true"/>
                        </col>
                    </row>
                </form>
                <descriptor separator="">
                    <column order="1">reference</column>
                </descriptor>
                <lists>
                    <list type="lg">
                        <column sortable="true" searchable="true" size="4" lang="REFERENCE">reference</column>
                        <column sortable="true" searchable="true" size="4" lang="PRIX">prix</column>
                        <column sortable="true" searchable="true" size="4" table="in_out" lang="STOCK">stock</column>
                    </list>
                    <list type="sm">
                        <column sortable="true" searchable="true" size="8" lang="REFERENCE">reference</column>
                        <column sortable="true" searchable="true" size="4" table="in_out" lang="STOCK">stock</column>
                    </list>
                    <list type="xs">
                        <column sortable="true" searchable="true" size="8" lang="REFERENCE">reference</column>
                        <column sortable="true" searchable="true" size="4" table="in_out" lang="STOCK">stock</column>
                    </list>
                </lists>
                <view>
                    <orderby>
                        <column order="asc">prix</column>
                    </orderby>
                    <joins>
                        <join table="produits" otherTable="in_out" column="id" otherColumn="produits_id"/>
                    </joins>
                    <groupby>
                        <column table="produits">id</column>
                    </groupby>
                </view>
            </page>
        </item>
        <item name="in_out" icon="leaf" title="TIT_TITLE2" subtitle="SUB_SUBTITLE2" description="DESC_DESCRIPTION2">
            <page name="in_out" table="in_out" type="standard">
                <form>
                    <row>
                        <col lg="6" sm="12" xs="12">
                            <label lg="12" align="left">STOCK</label>
                            <field lg="12" type="number" name="stock"/>
                        </col>
                        <col lg="6" sm="12" xs="12">
                            <label lg="12" align="left">PRODUIT</label>
                            <field lg="12" name="produits_id" type="relation" table="produits" required="true"/>
                        </col>
                    </row>
                </form>
                <descriptor separator="">
                    <column order="1">updated_at</column>
                </descriptor>
                <lists>
                    <list type="lg">
                        <column sortable="true" searchable="true" size="12" table="produits" lang="REFERENCE">
                            reference
                        </column>
                        <column sortable="true" searchable="true" size="12" lang="STOCK">stock</column>
                    </list>
                </lists>
            </page>
        </item>
    </menu>
    <langs>
        <lang fr="Mes produits">TIT_TITLE</lang>
        <lang fr="Gestion de mes produits">SUB_SUBTITLE</lang>
        <lang fr="Gérer mes produits.">DESC_DESCRIPTION</lang>
        <lang fr="Mon stock">TIT_TITLE2</lang>
        <lang fr="Gestion de mon stock">SUB_SUBTITLE2</lang>
        <lang fr="Gérer le stock de mes produits.">DESC_DESCRIPTION2</lang>
        <lang fr="Référence du produit">Référence du produit</lang>
        <lang fr="Prix du produit">Prix du produit</lang>
        <lang fr="Mon stock">Mon stock</lang>
        <lang fr="Mon produit">Mon produit</lang>
    </langs>
</project>

Menu

Balise : menu

Chaque projet possède un menu principal composé d'items de menu et de sous items de menu.

Item de menu

Balise : item

Un item de menu correspond à une page de l'application ou bien à définit d'autres items de menu récursivement. Les items de menu de premier niveau sont affichés dans le menu du haut et dans le panneau latéral gauche.

AttributObligatoireCommentaireValeur
nameOuiNom du menuchaîne de 45 caractères max
iconOuiIcône du menu et de la pagehttps://ant.design/components/icon/
titleOuiTitre du menu et de la pagevariable de langue
subtitleNonSous-titre du menu et de la pagevariable de langue
descriptionNonDescription du menuvariable de langue
hiddenNonMasquage de la pagebooléen
deviceNonType de client"mobile" / "web"
  • Le titre et sous-titre d'un item de menu définissent aussi le titre et le sous-titre de la page vers laquelle il est associé.
  • Un item de menu et sa page peuvent être cachés avec l'attribut hidden (utile pour les pages d'association des relations de type N-N).
  • Un item de menu peut définir d'autres items de menu grâce à la balise items.
  • Si aucun device n'est spécifié, l'affichage se fait par défaut sur tous les clients.

Exemple :


<item name="produits" icon="TagOutlined" title="TITLE" subtitle="SUBTITLE" description="DESCRIPTION"/>
<item name="produits" icon="TagOutlined" title="TITLE" subtitle="SUBTITLE" description="DESCRIPTION" device="web"/>

Page

Balise : page

Une page permet de visualiser les données d'une table sous forme de liste ou d'éditer les données grâce à un formulaire.

AttributObligatoireCommentaireValeur
typeOuiType de la pagestandard ou multi
nameOuiNom de la pagechaîne de 45 caractères max
tableOuiTable MySQL associéechaîne de 45 caractères max
defaultViewNonvue par défautlist ou calendar
  • Le titre de la page est le titre du menu parent.
  • C'est la page de type standard qui crée la table en base données.
  • Une page qui affiche des informations de plusieurs tables à la fois est une table de type multi.

Spécificité d'une page standard

  • La page standard DOIT porter le même nom que la table sous-jacente
  • Toutes les tables dans la base de données sont créées à partir de la définition de leur page standard.
  • On ne PEUT PAS avoir de champ link éditables dans une page standard.
  • Chaque table ne peut avoir qu'une page standard associée.

Calendrier

Balise : calendar

Définit la structure du calendrier d'une page. Les événements du calendrier sont caractérisés par une date de début, une date de fin, une couleur et un libellé. La légende du calendrier est calculée à partir du descripteur de la page standard du champ couleur.

AttributObligatoireCommentaireValeur par défaut
minTimeNonHeure minimale de la plage horaire du calendrier00:00
maxTimeNonHeure maximale de la plage horaire du calendrier23:59
startTimeNonHeure à partir de laquelle la plage est affichée07:00
dayNonPermet l'affichage du mode jourtrue
weekNonPermet l'affichage du mode semainetrue
workWeekNonPermet l'affichage du mode semaine ouvréefalse
monthNonPermet l'affichage du mode moistrue
agendaNonPermet l'affichage du mode agendafalse
defaultViewNonday / week / workWeek / month / agenda-
legendShowNonPermet l'affichage ouvert/fermé de la légendetrue

Date de début

Balise : start

Colonne qui définit la date de début de l'événement. Note : on peut utiliser une colonne étrangère en précisant l'attribut table.

Important: cette colonne doit être présente dans le formulaire (éventuellement cachée) pour fonctionnement en mobile

Date de fin

Balise : end

Colonne qui définit la date de fin de l'événement. Note : on peut utiliser une colonne étrangère en précisant l'attribut table.

Important : cette colonne doit être présente dans le formulaire (éventuellement cachée) pour fonctionnement en mobile

Couleur

Balise : color

Colonne qui définit la couleur de la ressource associée à l'événement. Note : on peut utiliser une colonne étrangère en précisant l'attribut table.

Important : cette colonne doit être présente dans le formulaire (éventuellement cachée) pour fonctionnement en mobile

Libellé de l'événement

Balise : label

Définit le libellé de l'événement en concaténant différentes colonnes. Note : on peut utiliser des colonnes étrangères en précisant l'attribut table.

Important : les colonnes utilisées doivent être présentes dans le formulaire (éventuellement cachée) pour fonctionnement en mobile

Exemple :


<calendar startTime="07:00" minTime="05:00" maxTime="22:00" day="true" workWeek="true">
    <start>debut_transport</start>
    <end>fin_transport</end>
    <color table="grues">couleur</color>
    <label>
        <column table="chantiers">nom</column>
    </label>
</calendar>

Note : si la colonne qui définit la couleur de la ressource n'est pas directement sur la table de la page où est défini le calendrier, il faut l'ajouter sous forme de champ lié dans le formulaire.

Formulaire

Balise : form

Définit la structure du formulaire d'une page. Le formulaire permet d'éditer les données de la(des) table(s) associée(s) à la page.

AttributObligatoireCommentaireValeur
redirectNonRedirection vers la liste après une sauvegarde (création ou édition)booléen
layoutNonLayout du formulairevertical ou horizontal
  • La déclaration du formulaire est aussi la déclaration de la structure de la table MySQL si la page est de type standard.
  • L'attribut redirect est pris en compte uniquement en mobile.
  • La valeur par défaut de l'attribut redirect est true.
  • La valeur par défaut de l'attribut layout est vertical.

Le layout d'un formulaire définit le placement des champs et des labels, il peut être vertical (libellé au dessus du champ) ou horizontal (libellé à côté du champ).

Ligne

Balise : row

Permet de créer une ligne dans le formulaire d'une page. Une ligne contient obligatoirement des colonnes.

AttributObligatoireCommentaireValeur
tabsNonAffiche les colonnes de la ligne sous forme d'ongletsbooléen
groupNonNom du groupe de champchaîne de caractères
  • L'attribut group permet de définir un groupe de champ pouvant être caché par un déclencheur de formulaire.

Colonne

Balise : col

Permet de créer une colonne dans le formulaire d'une page. Une colonne est toujours enfant d'une ligne.

AttributObligatoireCommentaireValeur
tabNonNom de l'ongletvariable de langue
actionsNonAfficher la colonne selon le mode du formulairechaîne de caractères
groupNonNom du groupe de champschaîne de caractères
lgOuiLargeur de la colonne pour le webnombre compris entre 1 et 12
smOuiLargeur de la colonne pour les tablettesnombre compris entre 1 et 12
xsOuiLargeur de la colonne pour les téléphonesnombre compris entre 1 et 12
  • La somme des largeurs des colonnes d'une ligne doit être égale à 12.
  • Le nom de l'onglet est pris en compte uniquement lorsque la ligne s'affiche en mode "onglets".
  • Une colonne peut contenir une ligne, il s'agit d'un système récursif.
  • Par défaut l'onglet est toujours affiché, quel que soit le mode du formulaire.
  • L'attribut group permet de définir un groupe de champ pouvant être caché par un déclencheur de formulaire.
  • L'attribut actions permet d'afficher la colonne selon le mode du formulaire. 3 actions ('create' 'update' 'view') peuvent être définies et se cumuler avec le séparateur , (sans espaces). Exemple : la valeur (par défaut)
  • create,update,view affichera la colonne dans tous les modes, et si vous définissez la valeur sur update, la colonne ne s'affichera qu'en mode mise à jour du formulaire.

Libellé de champ

Balise : label

Permet de définir le libellé d'un champ de type field dans le formulaire d'une page.

AttributObligatoireCommentaireValeur
lgNonLargeur du libellé en webnombre compris entre 1 et 12
smNonLargeur du libellé sur une tablettenombre compris entre 1 et 12
xsNonLargeur du libellé sur un téléphonenombre compris entre 1 et 12
alignNonAlignement du libelléleft / right / center
  • Si la somme de la largeur du libellé et du champ dépasse 12, ils sont affichés l'un en dessous de l'autre.
  • Le contenu d'un libellé correspond à une variable de langue.
  • La largeur par défaut est 4.

Champs de formulaire

Balise : field

Permet de définir un champ dans le formulaire d'une page.

Il existe trois types de champs :

  • les champs simples
  • les champs liés
  • les champs complexes

Champs simples

Un champ simple correspond à une colonne qui existe en base de données et appartient à la table de la page.

Un champ simple possède un type de données:

TypeDescription
textChamp texte limité à 255 caractères
longtextChamp texte illimité en caractères
emailChamp texte représentant un email
passwordChamp texte masqué par des astérisques
numberNombre entier
numericNombre décimal
currencyNombre décimal avec préfixe ou suffixe (par ex. monétaire)
phoneNombre représentant un numéro de téléphone
addressChamp texte représentant une adresse
datetimeDate et heure
dateDate
timeHeure
authorNom prénom de l'auteur de l'enregistrement
autoincrementEntier auto-incrémenté
radiogroupGroupe de radio boutons
checkboxgroupGroupe de cases à cocher
upload_multiPermet d'uploader un ou plusieurs fichiers
uploadPermet d'uploader un seul fichier
urlSaisie d'une URL et navigation
relationClé étrangère sous forme de liste déroulante
barcode_1dCode barre 1D (magasin)
qrcodeQR Code
nfc_tagTag NFC
colorpickerSélecteur de couleur
imageeditorImage éditable
userChamp utilisateur (relation vers un utilisateur du projet)
switch_buttonChamp interrupteur / switch
checkboxChamp case à cocher
timestampDate de création et date de modification

Attributs d'un champ simple:

AttributObligatoireCommentaireValeur
nameOuiNom du champchaîne de 45 caractères max
typeOuiType du champvoir tableau
uniqueNonChamp uniquebooléen
requiredNonChamp requisbooléen
readonlyNonChamp en lecture seulebooléen
hiddenNonVisibilité du champbooléen
defaultNonValeur par défaut du champchaîne, nombre ou date
lengthNonTaille maximale du champnombre compris entre 1 et 255
lgNonLargeur du champ en webnombre compris entre 1 et 12
smNonLargeur du champ sur tablettenombre compris entre 1 et 12
xsNonLargeur du champ sur mobilenombre compris entre 1 et 12
uniqueConstraintNameNonNom de la contrainte d'unicitéchaîne de caractères
wbsLangNonLe champ est une valeur WBSchaîne de caractères
presetNonNom du champ de pré-remplissagechaîne de caractères
  • L'attribut preset doit contenir le nom d'un champ du même type.
  • Le pré-remplissage se déclenche lors d'une modification du champ du preset.
  • Lorsqu'on vide le champ du preset, on ne vide pas les champs dont dépendent le preset.
Text

Type : text

Ce champ affiche un texte.

AttributObligatoireCommentaireValeur
lengthNonLongueur maximale1 < nombre < 255

Attention, la longueur définie dans une page multi doit être égale ou inférieur à celle définie dans la page standard.

ex : Si le lenght défini sur la page standard est de 10 et sur la page multi de 30, on pourra taper 30 caractères sur la page multi, mais tous les caractères au-delà des 6 premiers disparaitrons à l'enregistrement.

Exemple:

<field type="text" length="7" required="true" name="code_postal"/>
Longtext

Type : longtext

Ce champ affiche un texte long.

AttributObligatoireCommentaireValeur
lengthNonLongueur maximalenombre

Attention, la longueur définie dans une page multi doit être égale ou inférieur à celle définie dans la page standard.

ex : Si le lenght défini sur la page standard est de 10 et sur la page multi de 30, on pourra taper 30 caractères sur la page multi, mais tous les caractères au-delà des 6 premiers disparaitrons à l'enregistrement.

Exemple:

<field type="longtext" length="1000" required="true" name="description"/>
Email

Type : email

Ce champ affiche et gère la saisie et l'affichage d'un email.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_EMAIL</label>
    <field type="email" name="email"/>
</col>
Password

Type : password

Ce champ affiche et gère la saisie et l'affichage d'un mot de passe.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_PASSWORD</label>
    <field type="password" name="password"/>
</col>
Entier

Type : number

Ce champ affiche un entier positif.

AttributObligatoireCommentaireValeur
separatorNonSéparateur de milliercaractère
minNonValeur minimalenombre
maxNonValeur maximalenombre
valueButtonsNonPrésence (ou non) de boutonstrue / falsefalse
buttonsStepNonPas (valeur décimale) des boutonsnombre décimalend
buttonsSizeNonTaille des boutonssmall / default / largefalse
placeholderNonTaille des boutonschaîne de caractères""

Exemple:


<field type="number" seperator="," max="50" required="true" name="entrees"/>
  • Pour l'attribut separator, il ne faut pas mettre de "." un message d'erreur apparaîtra dans le traitement du xml.
Numérique

Type : numeric

Ce champ affiche une valeur numérique à plusieurs décimales.

AttributObligatoireCommentaireValeurValeur par défaut
separatorNonSéparateur de millierscaractère" "
lengthNonLongueur du nombre (décimales comprises)nombre10
precisionNonNombre de décimalesnombre2
maxNonValeur minimalenombre99999999.99
minNonValeur maximalenombre-99999999.99
valueButtonsNonPrésence (ou non) de boutonstrue / falsefalse
buttonsStepNonPas (valeur décimale) des boutonsnombre décimalend
buttonsSizeNonTaille des boutonssmall / default / largefalse
placeholderNonTaille des boutonschaîne de caractères""

Exemple:

<field type="numeric" seperator="," min="10" max="50" precision="2" length="10" required="true" name="hauteur"/>
  • Pour l'attribut separator, il ne faut pas mettre de "." un message d'erreur apparaîtra dans le traitement du xml.
  • Des boutons - et + avec un pas de 0,5 :
<field type="numeric" precision="3" required="true" name="hauteur" valueButtons="true" buttonsStep="0.5" placeholder="Distance..." />
Devise

Type : currency

Ce champ affiche un nombre avec des décimales suivi ou précédé d'un symbole représentant l'unité. Il est utilisable pour représenter, entre autres des valeurs monétaires, des distances, des poids, ...

AttributObligatoireCommentaireValeurValeur par défaut
lengthNonLongueur du nombre (décimales comprises)nombre10
precisionNonNombre de décimalesnombre2
symbolOuiSymbole monétairechaîne de caractèresaucune
symbolPositionNonPréfixe ou suffixestart / endend
separatorNonSéparateur de millierschaîne de caractères" "
maxNonValeur maximalenombre décimal99999999.99
minNonValeur minimalenombre décimal-99999999.99
valueButtonsNonPrésence (ou non) de boutonstrue / falsefalse
buttonsStepNonPas (valeur décimale) des boutonsnombre décimalend
buttonsSizeNonTaille des boutonssmall / default / largefalse
placeholderNonTaille des boutonschaîne de caractères""

Exemples :

  • Un prix en euros avec une précision de deux chiffres (€ en suffixe) :
<field type="currency" symbol="€" required="true" name="price" />
  • Un prix en dollars avec une précision de deux chiffres ($ en préfixe) :
<field type="currency" symbol="$" symbolPosition="start" required="true" name="price" />
  • Une distance en mètres avec une précision de trois chiffres (m en suffixe). Des boutons - et + avec un pas de 0,5 mètres :
<field type="currency" symbol="m" symbolPosition="end" precision="3" required="true" name="distance" valueButtons="true" buttonsStep="0.5" placeholder="Distance..." />
  • Pour l'attribut separator, il ne faut pas mettre de "." un message d'erreur apparaîtra dans le traitement du xml.
Phone

Type : phone

Ce champ affiche et gère la saisie et l'affichage d'un numéro de téléphone.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_PHONE</label>
    <field type="phone" name="phone"/>
</col>
Address

Type : address

Ce champ affiche et gère la saisie et l'affichage d'une adresse.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_ADDRESS</label>
    <field type="address" name="address"/>
</col>
Date-time

Type : datetime

Ce champ affiche une date et heure.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_DATETIME</label>
    <field type="datetime" required="true" name="datetime_emission"/>
</col>
Date

Type : date

Ce champ affiche une date (sans la gestion de l'heure).

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_DATE</label>
    <field type="date" name="date_emission"/>
</col>
Time

Type : time

Ce champ affiche une heure.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">TEST_TIME</label>
    <field type="time" required="true" name="time_emission"/>
</col>
Author

Type : author

Ce champ correspond à un utilisateur du projet qui a modifié ou créé une donnée sur la page.

AttributObligatoireCommentaireValeur
nameOuiNom champ en base de donnéeupdated_by / created_by
  • Si le nom de champ est created_by il s'agit de l'utilisateur qui a créé la donnée
  • Si le nom de champ est updated_by il s'agit de l'utilisateur qui a modifié la donnée en dernier

Exemple:

<field type="author" name="updated_by"/>
<field type="author" name="created_by"/>
Auto-incrément

Type : autoincrement

Ce champ affiche un entier auto-incrémenté dont le nombre de caractères peut être fixe.

AttributObligatoireCommentaireValeur
zerofillNonNombre de caractères du format d'affichageentier positif
  • Ce champ ne peut pas être requis puisqu'il est rempli automatiquement.

Exemple:

<field type="autoincrement" zerofill="3" name="num_auto"/>
Radio group

Type : radiogroup

Ce champ affiche un ou plusieurs bouton(s) radio.

AttributObligatoireCommentaireValeur
blindModeNonActive le mode "aveugle"booléen
inlineNonAffiche les cases à cocher sur une lignebooléen
columnsNonAffiche les cases à cocher sur un nombre de colonne défininombre
  • La valeur par défaut de l'attribut blindMode est false.
  • La valeur par défaut de l'attribut inline est false (les boutons radio s'affichent les uns en dessous des autres).
  • La valeur par défaut de l'attribut columns est 1.
  • Si l'attribut columns est utilisé, l'attribut inline ne sera pas pris en compte.

Exemple:

<field type="radiogroup" name="travaux_marche" inline="false" blindMode="true" required="true">
    <radio value="oui" checked="true">OUI</radio>
    <radio value="non">NON</radio>
</field>
Cases à cocher

Type : checkboxgroup

Ce champ affiche une ou plusieurs case(s) à cocher.

AttributObligatoireCommentaireValeur
blindModeNonActive le mode "aveugle"booléen
inlineNonAffiche les cases à cocher sur une lignebooléen
columnsNonAffiche les cases à cocher sur le nombre de colonne défininombre
  • La valeur par défaut de l'attribut blindMode est false.
  • La valeur par défaut de l'attribut inline est false (les cases à cocher s'affichent les uns en dessous des autres).
  • La valeur par défaut de l'attribut columns est 1.
  • Si l'attribut columns est utilisé, l'attribut inline ne sera pas pris en compte.

Exemple:

<field type="checkboxgroup" required="true" inline="true" blindMode="false" name="categorie">
    <checkbox value="fruit">CAT_FRUIT</checkbox>
    <checkbox value="legume">CAT_LEGUME</checkbox>
    <checkbox value="autre">CAT_AUTRE</checkbox>
</field>
Upload de fichier

Type : upload ou upload_multi

Ce champ permet de téléverser et télécharger un ou plusieurs fichiers.

AttributObligatoireCommentaireValeur
autosyncNonTéléchargement automatique des fichiers lors d'une synchronisation mobilebooléen
filetypesNonTypes de fichiers autorisés (séparés par des espaces)chaîne
  • La valeur par défaut de l'attribut autosync est false.
  • La valeur par défaut de l'attribut filetypes est * (tous types de fichiers autorisés).
  • Attention, une fois activé, le téléchargement de plusieurs fichiers volumineux peut alourdir le processus de synchronisation mobile.
  • Taille maximale pour un seul fichier - 40 Mo
  • Taille maximale de tous les fichiers dans un champ "upload_multi" - 80 Mo
  • Attention, sur téléphone et tablette, le bouton pour prendre une photo sera disponible uniquement si filetypes contient image, jpg ou la valeur par défaut.
  • Liste des valeurs possibles pour filetypes :
    • Il y a 5 groupes de types : application, image, text, video, audio
    • Pour accepter tous les types d'un groupe, il suffit de mettre le nom du groupe.
    • Pour accepter un type spécifique, il faut préciser le nom du type.
    • Pour accepter plusieurs types ou groupes, il faut les séparer par des espaces.
      • Groupes : application,
        • Types : pdf (.pdf), doc (.doc, .docx), xls (.xls, .xlsx), ppt (.ppt, .pptx), odt (.odt), ods (.ods), odp (.odp), xml (.xml)
      • Groupes : image,
        • Types : png (.png), jpg (.jpg, .jpeg), svg (.svg), webp (.webp)
      • Groupes : text,
        • Types : txt (.txt), csv (.csv), xml (.xml)
      • Groupes : video,
        • Types : mp4 (.mp4), mov (.mov)
      • Groupes : audio,
        • Types : mp3 (.mp3), wav (.wav)

Exemples:

<field type="upload_multi" autosync="false" name="pj"/>
<field type="upload" autosync="true" required="true" name="pj"/>
<field type="upload" filetypes="image" name="pj"/>
<field type="upload" filetypes="png pdf" name="pj"/>
<field type="upload" filetypes="text pdf" name="pj"/>
URL / lien

Type : url

Ce champ affiche un input avec un bouton pour naviguer vers le lien.

En mode liste, le lien est affiché avec un lien hypertexte sur le label du champ.

Ce champ n'est pas pris en compte en mobile dans un premier temps

Exemple:

<col lg="6" sm="12" xs="12">
    <label lg="5" align="right">URL_TEST</label>
    <field type="url" name="url_test"/>
</col>
Relation simple

Type : relation

Ce champ affiche une liste déroulante qui permet de définir une relation simple, c'est-à-dire remplir une clé étrangère.

AttributObligatoireCommentaireValeur
tableOuiNom de la table étrangèrechaîne de caractères
pageNonNom de la page étrangèrechaîne de caractères
dependsOnNonNom d'un autre champ de relationchaîne de caractères
radiogroupNonAffiche la relation sous forme de cases à cocherbooléen
nfcCreationNonActive le mode création à partir d'un scanbooléen
barcodeCreationNonActive le mode création à partir d'un scanbooléen
  • Ce champ génère une clé étrangère si la page est de type standard.
  • La page étrangère par défaut est la page standard de la table étrangère.
  • Les options affichées correspondent aux descripteurs des données de la page étrangère.
  • Définissez un champ de relation dependsOn pour filtrer les options de ce champ.
    • Le champ dependsOn doit être de type "relation"
    • La "table" définie doit définir une relation vers le champ "dependsOn"
    • Exemple :
      le champ de relation "ville" ("table" = "villes") peut dépendre du champ de relation "pays".
      La table "villes" doit définir une relation vers la table "pays".
  • La valeur par défaut de l'attribut radiogroup est false.
  • Lorsque l'attribut nfcCreation est activé et qu'une occurrence est trouvée, l'utilisateur est redirigé vers un formulaire de création avec le champ relation pré-rempli.
  • Lorsque l'attribut barcodeCreation est activé et qu'une occurrence est trouvée, l'utilisateur est redirigé vers un formulaire de création avec le champ relation pré-rempli.

Exemple:

<field type="relation" name="dps" radiogroup="true" required="true" table="dps"/>
Code barre

Type : barcode_1d

Ce champ affiche un code barre 1D (qui peut être rempli par un scan avec l’appareil photo du téléphone).

AttributObligatoireCommentaireValeur
barcodeTypeNonFormat de barcode ('ean8' / 'ean13')chaîne de caractères
  • La valeur par défaut de l'attribut barcodeType est ean13.

Exemples:

<field type="barcode_1d" required="true" name="repere"/>
Code qr

Type : qrcode

Ce champ affiche un QR code (qui peut être rempli par un scan avec l’appareil photo du téléphone).

Exemple :

<field type="qrcode" required="true" name="repere"/>
Tag NFC

Type : nfc_tag

Ce champ affiche la valeur d'un tag NFC (qui peut être rempli grâce un scan NFC si le téléphone est compatible).

Exemple:

<field type="nfc_tag" required="true" name="montag"/>
Colorpicker

Type : colorpicker

Ce champ affiche un outil de sélection de couleur et l'enregistre au format hexadécimal.

Exemple:

<col lg="4" sm="6" xs="12">
    <label lg="4" align="right">COLOR</label>
    <field type="colorpicker" name="macouleur"/>
</col>
Image Editable

Type : imageeditor

Ce champ affiche une image éditable à partir d'un fond de couleur uni, d'un champ upload, d'une image statique.

AttributObligatoireCommentaireValeur
srcOui*Nom du fichierchaîne de caractères
uploadOui*Nom du champ uploadchaîne de caractères
backgroundColorOui*Couleur du fond (#HEX)chaîne de caractères
widthNonLargeur du champnombre
heightNonHauteur du champnombre

*choisir un seul attribut par champ image

  • Les images statiques pour l'attribut src doivent être déposées depuis le backend dans le répertoire media.
  • Attention, si l'attribut upload est choisi, il faut que le champ upload existe et qu'il ne soit pas vide.
  • Si l'attribut src est défini, il doit faire référence à un fichier déposé dans le dossier /media du backend.
  • La valeur par défaut de l'attribut width est 400.
  • La valeur par défaut de l'attribut height est 300.
  • définition des couleursen hexa (ex: #FFFFFF = blanc)

Exemple:

<field type="imageeditor" name="fond" readonly="false" src="fond.png"/>
<field type="imageeditor" name="upload" readonly="false" upload="pj_simple"/>
<field type="imageeditor" name="color" readonly="false" backgroundColor="#FFFFFF" width="400" height="300"/>
Utilisateur

Type : user

Ce champ est une relation vers la table des utilisateurs du projet.

  • Ce champ ne possède pas d'attribut spécifique à son fonctionnement.
  • Le descripteur de cette relation est le nom et prénom.
  • Ce champ est utilisable dans les notifications comme destinataire ou placeholder dans le corps de la notification.

Exemple:

<field type="user" name="utilisateur"/>
<field type="user" name="utilisateur" required="true"/>
Switch

Type : switch_button

Ce champ affiche un bouton switch (intérupteur).

AttributObligatoireCommentaireValeur
blindModenonZoom sur le composant en mobilebooléen

Exemple:

<field type="switch_button" name="activation" default="true"/>
Checkbox

Type : checkbox

Ce champ affiche une case à cocher.

Exemple:

<field type="checkbox" name="activation" default="true"/>
Timestamp

Type : timestamp

Ce champ correspond à la date qui a été modifié ou créé sur une donnée de la page.

AttributObligatoireCommentaireValeur
nameNonNom champ en base de donnéeupdated_at / created_at
  • Si le nom de champ est created_at il s'agit de la date de création de la donnée
  • Si le nom de champ est updated_at il s'agit de la dernière date de modification de la donnée

Exemple:

<field type="timestamp" name="updated_at"/>
<field type="timestamp" name="created_at"/>

Champs complexes

Les champs complexes ont des fonctionnements particuliers et ne correspondent pas forcément à une colonne en base de données en base.

TypeDescription
LinkChamp d'une autre table liée
ImageAffiche une image statique
AgrégatAffiche l’agrégation d'une colonne
LibelléAffiche un texte statique
SéparateurAffiche un séparateur horizontal
MenuAffiche un lien vers un autre menu
Relation 1-nAffiche un gestionnaire de relation simple
Relation n-nAffiche un gestionnaire de relation multiple
EtatUn bouton de téléchargement d'état
GéolocalisationAjoute à la page un gestionnaire de Géolocalisation
Champ lié

Type : link

Un champ lié correspond à une colonne qui existe en base de données mais qui n'appartient pas à la table principale de la page.

AttributObligatoireCommentaireValeur
tableOuiNom de la table en base de donnéeschaîne de caractères
columnOuiNom de la colonne en base de donnéeschaîne de caractères
  • Attention, la table du champ doit appartenir à une des tables jointes de la page.
  • Le champ possède le même type de donnée que le champ d'origine.
  • Le champ permet d'éditer les données d'une table jointe si l'attribut readonly est égale à false.
  • Un champ link éditable NE DOIT PAS être caché.
  • On ne PEUT PAS avoir de champ link éditables dans une page standard.

Exemple:

<field type="link" required="true" readonly="false" table="etapes" column="ref_etape" name="etapes_ref"/>
Image

Type : image

Ce champ affiche une image statique uploadée dans le backend du projet.

AttributObligatoireCommentaireValeur
srcOuiNom du fichierchaîne de caractères
  • Les images statiques doivent être déposées depuis le backend dans le répertoire media.

Exemple :

<field type="image" name="logo" src="total.jpg"/>
Agrégat

Type : aggregate

Un champ de type agrégat est un champ non éditable qui affiche l’agrégation d'une colonne.

AttributObligatoireCommentaireValeur
aggregateOuiNom de la fonction d'agrégagtionavg / count / max / min / sum
columnOuiNom qualifié de la colonne d'agrégationtable.colonne

Exemple:

<field type="aggregate" aggregate="sum" column="in_out.qte_entree_sortie" name="total_produit"/>
Libellé

Type : label

Champ vide qui affiche un libellé.

Exemple :

<label lg="12" align="left">REFERENCE</label>
<field type="label"/>
Séparateur

Type : separator

Champ vide qui affiche un séparateur (ligne horizontale).

Exemple :

<field type="separator"/>
Menu

Type : menu

Affiche un bouton permettant de naviguer vers une page dont la table est jointe.

Ce champ n'est pas pris en compte en mobile.

AttributObligatoireCommentaireValeur
pageOuiNom de la page ciblechaîne de caractères

Exemple :

<field type="menu" page="projets-lls"/>
Relation manager simple

Type : relation_1n

Ce champ affiche un gestionnaire de relation permettant de gérer des éléments associés à l'enregistrement par une relation simple.

AttributObligatoireCommentaireValeur
pageOuiNom de la table étrangèrechaîne de caractères
nameOuiNom du relation managerchaîne de caractères
originNonNom de la page d'originechaîne de caractères
buttonsNonBoutons actifs du relation managerchaîne de caractères
  • Attention, la page doit définir une relation vers la page d'origine.
  • Si relation est obligatoire, la désassociation d'un élément provoque sa suppression.
  • Il est possible de définir un relation manager à travers une relation indirecte via l'attribut origin.
classDiagram unites <|-- dps class dps dps : -unites_id class unites unites : -id

Liste des boutons: create,delete,attach,detach

Exemple:

<field type="relation_1n" origin="unites" page="dps" buttons="create,delete"/>
<field type="relation_1n" origin="unites" page="dps" buttons="attach,detach"/>
<field type="relation_1n" origin="unites" page="dps" buttons="create,delete,attach,detach"/>

Note : ce champ affiche un gestionnaire de relation qui permet de gérer les dps associées à une unité.

Relation manager multiple

Type : relation_multi

Ce champ affiche un gestionnaire de relation permettant de gérer des éléments associés à l'enregistrement à travers une page pivot.

AttributObligatoireCommentaireValeur
pageOuiNom de la page étrangèrechaîne de caractères
pivotOuiNom de la page standard pivotchaîne de caractères
dependsOnOuiNom de contrainte de cléchaîne de caractères
nameOuiNom du relation managerchaîne de caractères
originNonNom de la page d'originechaîne de caractères
checkboxgroupNonAffiche la relation sous forme de cases à cocherbooléen
  • La valeur par défaut de l'attribut checkboxgroup est false.
  • Si l'attribut checkboxgroup est active, le champ possède aussi les attributs du champ checkboxgroup.
  • Attention, la page pivot doit définir une relation vers la page d'origine et la page étrangère.
  • Il est possible de définir un relation manager à travers une relation indirecte via l'attribut origin.
  • Une contrainte de clé sert à filtrer les données de la page étrangère par rapport à une relation simple.
classDiagram dps <|-- prestations prestataires <|-- prestations class dps dps : -id dps : -entreprises_id class prestations prestations : -dps_id prestations : -prestataires_id prestations : -entreprises_id prestations : -heures class prestataires prestataires : -id prestataires : -entreprises_id

Exemple:

<field type="relation_multi" pivot="prestations" page="prestataires"/>
<field type="relation_multi" pivot="prestations" page="prestataires" dependsOn="entreprises"/>

Note : ce champ affiche un gestionnaire de relation qui permet de gérer les prestataires associés à une dps.

État

Type : etat

Bouton qui permet de générer un état avec le module de Business Intelligence à partir des données de la page.

AttributObligatoireCommentaireValeur
pathOuiNom de l'état ou de la requête dans le module BIchaîne de caractères
paramsOuiParamètres de l'état ou de la requêtetableau d'objets JSON
  • Attention, l'état doit exister dans le module BI.
  • L'attribut param permet de lier des champs de la page avec des alias de l'état BI.
  • L'alias est celui du champ condition déclarée dans la requête en BI.
  • Le champ est celui de la page qui sert de condition à la requête BI.

Exemple:

<field type="etat" path="état dps link" params="[{'alias':'dps.num_auto', 'field':'num_auto'}]" name="monetat"/>
Géolocalisation

Type : geolocation

Un champ géolocalisation permet de stocker une position ainsi que les informations correspondantes.

AttributObligatoireCommentaireValeur
mapNonAffiche sur le formulaire un lien vers l'affichage de la position sur une carteBooléen
coordinatesNonAffiche sur le formulaire web les coordonnéesBooléen
messageNonAffiche sur le formulaire le message en cas d'erreur d'acquisitionBooléen
datetimeNonAffiche sur le formulaire web la date/heure de la positionBooléen
buttonNonAffiche un bouton sur le l'application mobile pour récupérer la positionBooléen
  • Attention, sur la partie mobile uniquement le bouton d'acquisition est affiché
  • Ce champ est représenté en base de données par quatre colonnes longitude, latitude, message et datetime
  • L'attribut requis n'est pas pris en compte pour ce type de champ
  • Il n'est pas possible de mettre une condition d'un déclencheur sur ce type de champ

Exemple:

<field type="geolocation" name="test_geolocalisation" map="true" coordinates="true" message="true" datetime="true"/>

Déclencheurs

Balise : triggers

Un champ de formulaire peut modifier les attributs d'autres champs en définissant un ou plusieurs déclencheur(s) défini(s) par une action et une condition (simple ou complexe).

Déclencheur

Balise : trigger

Permet de définir une action sur un champ ciblé en fonction d'une condition.

AttributObligatoireCommentaireValeur
targetOuiNom du champ ou groupe de champ ciblé par l'actionchaîne de caractères
actionOuiAction à effectuer sur la cible si la condition est validévoir tableau ci-dessous
conditionOuiType de conditionvoir tableau ci-dessous
operatorNonOpérateur de la condition complexevoir tableau ci-dessous
valueNonValeur brute de la condition complexechaîne de caractères
valueFromNonNom du champ à utilisé par la condition complexechaîne de caractères
  • Si l'attribut condition vaut custom, l'attribut operator et value ou valueFrom sont obligatoires.
Actions
NomDescription
showAffiche un champ caché
hideCache un champ ou un groupe de champs
enableRend éditable un champ en lecture seule
disableDésactive un champ éditable
requireRend un champ requis
saveSauvegarde le formulaire
geolocationEnregistre une position
  • On ne peut pas cacher ou désactiver un champ requis en base de données.
  • Seule l'action hide est utilisable sur un groupe de champs.
  • L'action save n'a pas de cible spécifique.

Exemple :

<trigger action="save" condition="checked"/>
Condition
NomDescription
checkedSwitch ou case à cocher activé
uncheckedSwitch ou case à cocher non activé
emptyChamp videchamp
filledChamp non vide
customCondition complexe
Opérateurs
NomDescription
eqégale
nedifférent
ltstrictement inférieur
gtstrictement supérieur
leinférieur ou égale
gesupérieur ou égale
beforeavant une date
afteraprès une date
sameégale à une date
inappartient à un ensemble de valeurs

Exemple:

Déclencheur sur une case à cocher qui permet d'afficher un champ selon si la case est cocher ou pas

<col sm="12" md="12" lg="12">
    <label>MON_LABEL</label>
    <field type="checkbox" name="macheckbox"/>
    <triggers>
        <trigger target="champ2" action="show" condition="checked"/>
    </triggers>
</col>
<col sm="12" md="12" lg="12">
<label>MON_LABEL</label>
<field type="text" name="champ2" hidden="true"/>
</col>

Déclencheur sur un radio groupe permettant de rendre un champ obligatoire ou pas selon la valeur sélectionnée

<col lg="4" sm="6" xs="12" actions="view,update">
    <label lg="12" align="left">COMPLETE</label>
    <field lg="12" type="radiogroup" name="complete" inline="true">
        <radio value="oui">OUI</radio>
        <radio value="non">NON</radio>
    </field>
    <triggers>
        <trigger target="objet" action="require" condition="custom" operator="eq" value="non"/>
    </triggers>
</col>
<col lg="12" sm="12" xs="12">
<label lg="12" align="left">OBJET</label>
<field lg="12" type="longtext" name="objet"/>
</col>

Déclencheur sur des cases à cocher permettant de cacher un groupe de champ selon la valeur sélectionnée

<col lg="4" sm="6" xs="12">
    <label lg="12" align="left">CLIENT</label>
    <field lg="12" type="checkbox" name="pro">
        <checkbox value="pro">PRO</checkbox>
        <checkbox value="particulier">PARTICULIER</checkbox>
    </field>
    <triggers>
        <trigger target="market" action="hide" condition="custom" operator="in" value="particulier"/>
    </triggers>
</col>
<row group="market">
<col lg="6" sm="6" xs="12">
    <label lg="12" align="left">V_REF</label>
    <field lg="12" type="text" length="150" name="v_ref"/>
</col>
<col lg="6" sm="6" xs="12">
    <label lg="12" align="left">N_REF</label>
    <field lg="12" type="text" length="150" name="n_ref"/>
</col>
</row>

Déclencheur sur un champ date permettant de rendre un champ en lecture seule selon la valeur d'un autre champ

<col lg="4" sm="6" xs="12">
    <label lg="12" align="left">DATE_TRAVAUX</label>
    <field lg="12" type="date" name="date_travaux" required="true"/>
</col>
<col lg="4" sm="6" xs="12">
<label lg="12" align="left">DATE_FINP</label>
<field lg="12" type="date" name="date_fin_prevue"/>
<triggers>
    <trigger target="date_fin" action="disable" condition="custom" operator="eq" valueFrom="date_travaux"/>
</triggers>
</col>
<col lg="4" sm="6" xs="12">
<label lg="12" align="left">DATE_FIN</label>
<field lg="12" type="date" name="date_fin"/>
</col>

Déclencheur sur un champ case à cocher permettant de lancer une sauvegarde du formulaire si la case est cochée

<col lg="4" sm="6" xs="12" actions="update">
    <label lg="12" align="left">VALIDATE</label>
    <field lg="12" type="checkbox" name="validate">
        <checkbox value="OK">OK</checkbox>
    </field>
    <triggers>
        <trigger action="save" condition="checked"/>
    </triggers>
</col>

Descripteur de page

Balise : descriptor

Le descripteur décrit comment une donnée est représentée dans les champs de type relation. Il est construit à partir de la concaténation de plusieurs colonnes séparées par un séparateur défini.

AttributObligatoireCommentaireValeur
separatorOuiSéparateur de la concaténationchaîne de caractères
  • On peut définir une chaîne vide comme séparateur.

Attention : on ne peut pas utiliser un champ lié comme descripteur.

Colonne de descripteur

Balise : column

Colonne de concaténation du descripteur.

AttributObligatoireCommentaireValeur
orderNonOrdre dans la concaténation du descripteurentier positif

Listes

Balise : lists

Définit les différentes listes d'affichage d'une page : lg pour le web, sm pour les tablettes et xs pour les mobiles.

Liste

Balise : list

Définit une liste qui affiche les données de la ou les table(s) de la page pour une taille d'écran donnée.

AttributObligatoireCommentaireValeur
typeOuiType d'affichagelg / sm / xs
  • Si la liste sm ou xs n'est pas définie, la liste lg est affichée par défaut sur tablette et mobile.
Colonne de liste

Balise : column

Définit la colonne d'une liste de page.

AttributObligatoireCommentaireValeur
sortableNonColonne sur laquelle on peut effectuer un tritrue / false
searchableNonColonne sur laquelle on peut effectuer une recherchetrue / false
sizeOuiLargeur de la colonnenombre compris entre 1 et 12
langOuiLibellé du titre de la colonnelg / sm / xsvariable de langue
tableNonTable de la colonne en base de donnéechaîne de caractère
  • La valeur dans la balise est le nom de la colonne en base de données à afficher.
  • Par défaut on est sur la table de la page mais on peut préciser une autre table jointe.
  • La somme de la largeur des colonnes d'une liste doit être égale à 12.
  • Une colonne avec une largeur à 0 n'est pas affichée mais peut être utile pour la recherche.

Vue

Balise : view

Définit la vue associée à une page, c'est-à-dire l'ordre, le groupement et le filtrage des données dans les listes et le formulaire d'une page.

Ordre de tri

Balise : orderby

Définit l'ordre d'affichage des données d'une page.

Attention : l'utilisation d'un champ lié peut avoir un gros impact de performance.

Colonne de tri

Balise : column

Définit un ordre de tri sur une colonne.

AttributObligatoireCommentaireValeur
tableNonTable de la colonne en base de donnéeschaîne de caractères
orderOuiOrdre du tri : ascendant ou descendantasc / desc
positionNonPosition dans l'ordre de trientier positif
  • La valeur de la balise correspond au nom de la colonne de tri en base.
  • Pour trier les données d'une page sur une colonne d'une table jointe, il faut préciser l'attribut table.

Jointures

Balise : joins

Permet de joindre des tables à la page pour pouvoir utiliser leurs données dans la liste, le calendrier et le formulaire.

Jointure

Balise : join

Définit une jointure avec une table existante.

AttributObligatoireCommentaireValeur
tableOuiNom de la table avec la clé étrangèrechaîne de caractères
otherTableOuiNom de la table avec la clé primairechaîne de caractères
  • Attention, dans une page avec plusieurs tables, les jointures doivent être déclarées dans l'ordre.
  • Les jointures de premier niveau sont implicites (inutile de les déclarer explicitement).
  • Il est impossible de joindre deux fois la même table.

Exemple sur la page DPS :

graph LR dps --> unites; unites --> entreprises; taches --> dps;
<join table="taches" otherTable="dps"/>
<join table="dps" otherTable="unites"/>
<join table="unites" otherTable="entreprises"/>

Groupement

Balise : groupby

Permet de grouper les données des listes d'une page sur une ou plusieurs colonne(s).

Colonne de groupement

Balise : column

Colonne sur laquelle grouper les données des listes d'une page.

AttributObligatoireCommentaireValeur
tableNonNom de la table de la colonne en basechaîne de caractères
positionNonPosition dans le groupement si plusieurs champsentier positif
  • La valeur de la balise correspond au nom de la colonne sur laquelle regrouper les données.

Variables de langue

Balise : langs

Définition des variables de langues de l'application.

AttributObligatoireCommentaireValeur
frOuiTraduction en françaischaîne de caractères
enNonTraduction en anglaischaîne de caractères
  • Le contenu de la balise est le nom de la variable à appeler dans l'application.
  • Ces variables sont utilisables dans les menus, les champs de formulaire et les listes.
  • Attention pour afficher les caractères spéciaux il faut utiliser les code HTML décimaux (entity number) : https://www.freeformatter.com/html-entities.html

Exemple:

<lang fr="Référence du produit">Référence du produit</lang>

Changelog

Historique de la grammaire XML.

Version 1 (25/01/2017)

  • Ajout de la balise menu pour définir le menu principal d'un projet.
    • Ajout de la balise item pour définir des items de menu.
  • Ajout de la balise page pour décrire le fonctionnement d'une page.
    • Ajout de la balise form pour définir un formulaire (avec grille).
      • Ajout de la balise label pour créer des libellés de champ.
      • Ajout de la balise field et des types "standard".
    • Ajout des balises lists, list et column pour créer des listes.

Version 2

  • Ajout des champs de type link pour afficher des colonnes étrangères.
  • Ajout de la balise descriptor pour décrire les données d'une page.

Version 3

  • Ajout de l'attribut type sur les pages pour les modes "multi-tables".
    • Ajout de la balise view pour paramétrer la vue d'une page.
      • Ajout des balises joins et join pour définir des jointures.
      • Ajout de la balise orderby pour définir un ordre de tri.
      • Ajout de la balise groupby pour permettre le regroupement sur une ou plusieurs colonne(s).
      • Ajout des balises conditions et where pour filtrer les données d'une page.

Version 4 (12/01/2018)

  • Ajout des champs de type link_etat et link_req pour créer des boutons de génération d'états ou requêtes BI.
  • Ajout de l'attribut autosync sur les champs upload pour activer le téléchargement automatique.
  • Ajout des balise api_clients et api_client pour définir des client d'API.
  • Ajout du champ spécial de type api_button pour gérer l'état d'un appel API avec un service tiers.

Version 5 (07/07/2019)

  • Ajout des champs de type qrcode pour gérer l'affichage et l'acquisition de QR codes.
  • Ajout des champs de type barcode_1d pour gérer l'affichage et l'acquisition de codes barre 1D.
  • Ajout des champs de type nfc_tag pour gérer l'affichage et l'acquisition de tags NFC.

Version 6 (13/03/2019)

  • Ajout de nouveaux attributs sur les labels et les champs pour personnaliser l'alignement.

Version 7 (29/08/2019)

  • Ajout des champs spéciaux relation_multi et relation_1n pour gérer les relations complexes.

Version 8 (03/10/2019)

  • Ajout du champ spécial de type export_button pour exporter les données d'une page sous forme de publipostage.

Version 9 (31/10/2019)

  • Ajout de nouveaux attributs sur les col et les row pour afficher des onglets dans les formulaires.

Version 10 (06/12/2019)

  • Ajout d'options d'affichage sur les champs de type cases à cocher ou boutons radio.

Version 11 (21/02/2020)

  • Ajout de trois nouveaux types de champ : label, separator et switch_button.
  • Suppression d'un type de champ existant : api_button (remplacé par les hooks).
  • Ajout d'une nouvelle balise hooks permettant de définir rappels HTTP.
  • Ajout de nouveaux attributs sur la balise api_client pour gérer l'authentification avec OAuth2.

Version 12 (07/08/2020)

  • Ajout de la balise calendar dans les pages
  • Ajout d'un nouveau type de champ colorpicker dans les formulaires

Version 13 (26/10/2020)

  • Ajout du champ url dans le formulaire
  • Suppression du champ export_button
  • Ajout de liens dans le tableau récap des champs
  • Ajout de la description des champs manquants du tableau des champs standards
  • Tableau récap des champs spéciaux de form avec liens

Version 14 (14/01/2021)

  • Ajout d'un nouveau type de champ imageeditor dans le formulaire

Version 15 (15/02/2021)

  • Ajout d'un nouvel attribut buttons pour le champ relation_1n dans le formulaire

Version 16 (15/07/2021)

  • Modification de l'attribut hide_when en context pour définir le context d'une colonne dans le formulaire

Version 17 (09/08/2021)

  • Ajout d'un nouvel attribut device pour afficher une page selon le support client
  • Ajout d'un nouvel attribut redirect pour rediriger vers la liste après une sauvegarde du formulaire

Version 18 (22/09/2021)

  • Ajout de l'attribut order aux webhooks + explication dans doc administrateur

Version 19 (12/10/2021)

  • Ajout d'un nouveau type de champ address dans le formulaire

Version 20 (19/10/2021)

  • Ajout d'un nouvel attribut hidden pour afficher ou cacher un champ dans le formulaire
  • Ajout d'un nouvel attribut group pour regrouper des lignes du formulaire sous le même libelé
  • Ajout d'un nouvel attribut group pour regrouper des colonnes du formulaire sous le même libelé

Version 21 (09/11/2021)

  • Ajout d'un nouvel attribut columns pour le champ radiogroup pour afficher les radios sur plusieurs colonnes
  • Ajout d'un nouvel attribut columns pour le champ checkboxgroup pour afficher les cases à cocher sur plusieurs colonnes
  • Ajout d'un nouvel attribut radiogroup pour le champ relation pour afficher sous forme de radiogroup
  • Ajout d'un nouvel attribut checkboxgroup pour le champ Relation n-n pour afficher sous forme de checkboxgroup

Version 22 (10/11/2021)

  • Ajout d'un nouveau type de champ checkbox dans le formulaire
  • Ajout d'un nouvel attribut preset pour pré remplir le champ d'un formulaire en fonction d'un autre champ
  • Ajout des triggers pour les champs de formulaire

Version 23 (01/12/2021)

  • Ajout d'une nouvelle action save pour les déclencheurs de formulaire

Version 24 (31/03/2022)

  • Modification de l'attribut context pour les colonnes de formulaire (renommer en actions + prise en charge de plusieurs valeurs)

Version 25 (30/12/2022)

  • Ajout d'un nouvel attribut defaultView au calendar

Version 26 (25/04/2023)

  • Ajout d'un nouveau type de champ geolocation dans le formulaire
  • Ajout d'une nouvelle action geolocation pour les déclencheurs de formulaire

Version 27 (10/04/2024)

  • Ajout des attributs buttonsStep, buttonsSize, valueButtons dans les champs de type number, numeric, currency .
  • Ajout de l'attribut symbolPosition dans le champs de type currency
← API PubliqueEtat BI →
  • Structure générale d'un projet
  • Exemple de projet vierge
  • Menu
    • Item de menu
  • Page
    • Spécificité d'une page standard
    • Calendrier
    • Formulaire
    • Champs simples
    • Champs complexes
    • Déclencheurs
    • Descripteur de page
    • Listes
  • Vue
    • Ordre de tri
    • Jointures
    • Groupement
  • Variables de langue
  • Changelog
Documentation e-ASY
Docs Techniques
API PubliqueXML ProjetÉtats BI
Docs Admin
Admin projetNotificationsPublipostageMise en forme condionnelleWBSFiltres de pageRGPD
e-ASY
Présentation e-ASYQui sommes nous ?
Copyright © 2026 ELIPCE Informatique