Aller au contenu
SurfaceDocs
ENCommencer
DocsConstruire vos apps

Forms et paramètres

Demander les bonnes informations au moment de l’Action.

Une Form répond à une opération

Une Form recueille les informations nécessaires pour exécuter une Action. Elle sert à créer un client, modifier des paramètres ou préparer un lancement. Elle ne remplace pas la fiche, qui reste une Surface lisible et éditable.

Le Model relie la Form à l’opération et aux Fields concernés. La définition du Field possède son type et ses contraintes; la Form choisit son contrôle, son libellé et son ordre. La vérification côté service reste l’autorité même lorsque l’interface a déjà validé la saisie.

Choix de présentation Valeur attendue Usage
Field Référence à un Field déclaré Réutiliser la donnée canonique
Contrôle Texte, texte long, choix, nombre, date, booléen ou référence Respecter le type et les options
Valeur initiale Défaut déclaré ou contexte autorisé Éviter les saisies inutiles
Requis à la création Information nécessaire à l’opération Créer une fiche valide
Description Aide courte et métier Expliquer ce que l’usager doit fournir

Création et édition

Dans Nouveau client, demandez Entreprise et État; préremplissez État avec Prospect. Après création, ouvrez la fiche plutôt qu’une seconde Form exhaustive. Les notes, coordonnées et liens s’enrichissent dans la Surface.

Si l’app demande où ajouter un élément, choisissez une référence dans la liste proposée avant de remplir la Form, par exemple le livre qui recevra un chapitre. Le premier résultat n’est pas choisi automatiquement. Avant confirmation, si cette référence change ou devient indisponible, actualisez votre choix avant de continuer. Si la réponse à une confirmation est perdue, sa reprise conserve le choix de la demande d’origine.

Depuis une fiche ouverte, une Action comme Ajouter un chapitre peut reprendre directement ce livre comme parent. Vérifiez la cible présentée avant confirmation : créer l’enfant ne transforme pas la fiche du parent et ne choisit pas un autre livre. Cette Action reste indisponible en lecture seule ou si la référence n’est plus autorisée.

Pour un Field lié, conservez la référence enregistrée ou recherchez et choisissez une autre fiche dans la liste proposée. Le retrait n’apparaît que lorsqu’il est autorisé pour ce Field. La recherche et le choix ne modifient pas encore la relation : ils sont vérifiés et enregistrés avec la confirmation du formulaire. Si sa réponse est perdue, reprenez cette même confirmation plutôt que choisir à nouveau une cible.

Dans Paramètres, regroupez les réglages qui ne méritent pas d’occuper le contenu principal. Un même Field garde sa valeur quand il est utilisé par une Form et une section de Surface.

Si la création demande un contenu riche, celui-ci utilise le même éditeur de document, à la place de la fiche précédente, avec les autres valeurs de la Form. Il n’existe pas une seconde copie du corps dans les paramètres. Après confirmation, Surface ouvre la fiche réellement créée.

Préserver une saisie

Quand une Action demande des preuves, la revue présente les critères, les résultats et les sources à vérifier avant confirmation. Ouvrir une source ne confirme pas l’Action; vos valeurs restent dans le formulaire. Les points bloquants restent distincts des informations encore incomplètes.

La mention « Revue humaine enregistrée » décrit une revue déjà conservée; elle ne déclenche aucune nouvelle exécution.

Quand le Model relie une Form au contenu d’une Surface, le contenu riche reste dans l’éditeur de la Surface. Les Fields et les réglages utilisent les mêmes contrôles déclarés; Paramètres ne contient pas une seconde copie du corps. Le corps et les valeurs concernés sont confirmés dans la même opération, sans demander une seconde sauvegarde du document. Le formatage, les liens et les attributs du document ne passent pas par une conversion en texte Markdown. Les objets conservent leur identité et leurs protections; un titre Hx ne constitue pas un binding métier.

Avant de confirmer une modification documentaire native, examinez son contenu réel avant/après dans la même vue documentaire en lecture seule. Si cette vue ne peut pas admettre le document ou ses images exacts, la confirmation reste indisponible et votre saisie originale est conservée. Les images PNG/JPEG embarquées sont vérifiées à partir de leurs vrais octets; une référence d’image vivante ou non épinglée n’est pas remplacée par une image courante devinée.

Une Action documentaire proposée dans une carte de clavardage conserve exactement cette proposition pour la revue; elle ne la remplace pas par un autre brouillon d’édition ouvert. La confirmation retient les mêmes documents et la même clé d’opération. La reprise d’une réponse incertaine vérifie cette opération originale, sans présenter un ancien document comme un aperçu courant ni écraser un travail plus récent non soumis.

Quand le Model déclare explicitement un contexte AI pour une Form de lancement, sa proposition préparée et relue peut inclure les valeurs saisies et le contenu riche relié au corps exact du document déclaré. Ce contenu reste proposé : il n’est ni un document enregistré ni un Flow lancé. Toute modification de cette proposition retire son contexte AI jusqu’à la préparation et à la revue d’une nouvelle proposition valide. Si le contexte obligatoire complet dépasse ses limites, Surface refuse la demande plutôt que de tronquer le document ou d’omettre des sources obligatoires.

Une Form possède un brouillon jusqu’à confirmation. Fermer, revenir ou recevoir une mise à jour distante doit respecter ce brouillon. Un refus de droits, une erreur de validation ou une réponse incertaine indique clairement ce qui reste à corriger ou à vérifier. Une nouvelle tentative ne doit pas créer deux clients lorsque la première opération a déjà été acceptée.

Si le document change pendant la revue, Surface conserve la saisie et demande de vérifier la version concernée; il ne fusionne pas silencieusement les modifications. Une réponse perdue reprend la même confirmation et ses mêmes valeurs. Après confirmation de l’enregistrement, un échec d’ouverture de la fiche se résout en rouvrant celle-ci, sans répéter l’Action.

Annuler explicitement une nouvelle création abandonne sa saisie non confirmée. Changer de vue ne vaut pas annulation. Avant de recharger l’application, terminez ou annulez la création en cours; Surface ne présente pas sa retenue dans la session comme une sauvegarde du nouveau document.

Exemple : la création d’Atelier Nord échoue parce qu’Entreprise est vide. L’erreur se rattache à ce Field; le courriel déjà saisi reste présent.

Exemples appliqués : Une création courte, une fiche complète

La création demande Entreprise et État. Les notes facultatives s’enrichissent ensuite dans la Surface.

Configuration

Fragment à placer dans forms[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceForm@2",
  "key": "new-client",
  "label": "Nouveau client",
  "actionKey": "create-client",
  "targetDefinitionPath": "workspace/clients/surface/client",
  "mode": "create",
  "fields": [
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "company",
      "label": "Entreprise",
      "input": "text",
      "binding": {
        "kind": "field",
        "fieldKey": "company"
      },
      "required": true,
      "ruleKeys": [],
      "options": []
    },
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "status",
      "label": "État",
      "input": "choice",
      "binding": {
        "kind": "field",
        "fieldKey": "status"
      },
      "required": true,
      "ruleKeys": [],
      "options": [
        "prospect",
        "active"
      ]
    }
  ],
  "ruleKeys": []
}

Variante et raccordement

Fragment à placer dans forms[].fields[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "notes",
  "label": "Notes",
  "input": "multiline",
  "binding": {
    "kind": "field",
    "fieldKey": "notes"
  },
  "required": false,
  "ruleKeys": [],
  "options": []
}

Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

  1. Entreprise *
  2. État *
  3. Notes
  4. Créer le client
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
Forms et paramètresUne création courte, une fiche complète
Clients
Nouveau client
Entreprise *Atelier Nord
État *Prospect

Les notes s’enrichissent dans la fiche après création.

AnnulerCréer le client
Recherchez un concept, un champ ou une action.Esc