Aller au contenu
SurfaceDocs
ENCommencer
DocsTravailler avec Surface

Recherche et navigation

Retrouver un contenu et comprendre pourquoi il apparaît.

Rechercher dans le bon contexte

La recherche retrouve les objets autorisés et leur contexte. Un résultat doit permettre d’identifier l’objet, son Workspace et le contenu utile avant de l’ouvrir. Dans une collection, les contrôles de recherche s’appliquent au périmètre déclaré par sa Query.

Contrôle Valeur attendue Effet
Recherche Texte saisi par l’usager Restreindre les objets du périmètre
Filtre Valeur admise pour le Field ou paramètre Limiter la collection
Tri Colonne autorisée et direction Organiser les résultats
Pagination Page ou continuation disponible Accéder aux résultats suivants

Exemple

Dans Soumissions, recherchez Atelier Nord et filtrez sur À approuver. Le résultat doit conserver le lien vers le client et permettre d’ouvrir chaque proposition. Dans le sélecteur Client d’une nouvelle soumission, recherchez le même nom : vous sélectionnez cette fois une identité cible plutôt qu’une soumission.

Résultats vides ou incomplets

Vérifiez le Workspace courant, les filtres et les droits avant de conclure qu’un objet n’existe pas. Une absence d’accès ne doit pas être contournée par une autre vue. Un chargement incomplet ne doit pas être présenté comme une collection vide.

Pour définir une recherche dans votre app, consultez les Queries; pour rechercher cette documentation, utilisez le bouton en haut de la page ou Ctrl/⌘ K.

Exemples appliqués : Rechercher et filtrer les soumissions

Le contrôle État fournit un paramètre déclaré; la Query conserve ses limites et les droits.

Configuration

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

{
  "contract": "WorkspaceQueryControls@1",
  "filters": [
    {
      "parameterKey": "status",
      "label": "État",
      "input": "choice",
      "options": [
        {
          "value": "draft",
          "label": "Brouillon"
        },
        {
          "value": "approved",
          "label": "Approuvée"
        }
      ]
    }
  ],
  "sort": null
}

Variante et raccordement

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

{
  "contract": "WorkspaceQuery@1",
  "key": "client-quotes",
  "label": "Soumissions du client",
  "spaceKeys": [
    "quotes"
  ],
  "definitionPaths": [
    "workspace/quotes/surface/quote"
  ],
  "parameters": [
    {
      "key": "clientId",
      "type": "node-id",
      "required": true
    },
    {
      "key": "status",
      "type": "text",
      "required": false
    }
  ],
  "predicates": [
    {
      "fieldKey": "status",
      "operator": "eq",
      "parameterKey": "status",
      "value": null
    }
  ],
  "relations": [
    {
      "linkTypePath": "application/client",
      "direction": "outgoing",
      "parameterKey": "clientId",
      "distinct": true
    }
  ],
  "orderBy": [
    {
      "fieldKey": "updatedAt",
      "direction": "descending"
    }
  ],
  "aggregate": "none",
  "pageSize": 25,
  "maximumDepth": 1
}

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. Numéro
  2. État
  3. Montant
  4. Dernière mise à jour
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
Recherche et navigationRechercher et filtrer les soumissions
Clients
Client : Atelier NordÉtat : Tous ⌄Rechercher…
NuméroÉtatMontantOuvrir
S-1042Brouillon12 500↗
S-1041Approuvée8 200↗
S-1040Envoyée4 750↗
Résultats de la Query du clientPage suivante →
Recherchez un concept, un champ ou une action.Esc