Utilisation du code client et serveur dans une action d’interface utilisateur

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 1 minute de lecture
  • Vous pouvez utiliser un script pour valider une entrée lors d’un clic sur une action d’interface utilisateur côté client avant de mettre à jour l’enregistrement côté serveur. L’utilisateur n’aura pas besoin de cliquer deux fois sur le bouton pour valider les champs obligatoires et mettre à jour l’enregistrement.

    Le script appelle la fonction client pour la validation côté client, et l’action d’interface utilisateur termine la tâche si elle réussit. Le code qui s’exécute sans instruction onclick garantit que la fonction côté serveur ne s’exécute pas tant que la fonction cliente n’est pas exécutée. En cas de réussite, la fonction côté serveur s’exécute et met à jour l’enregistrement.

    // Client-side onclick function
    function resolveIncident() {
      // Set the 'Incident state' and 'State' values to 'Resolved', and display mandatory fields
      g_form.setValue('incident_state', 6);
      g_form.setValue('state', 6);
      g_form.setValue('resolved_by', g_user.userID);
    
      // Call the UI action and skip the 'onclick' function
      gsftSubmit(null, g_form.getFormElement(), 'resolve_incident'); //MUST call the 'Action name' set in this UI Action
    }
    
    // Code that runs without 'onclick'
    // Ensure call to server-side function with no browser errors
    if (typeof window == 'undefined')
      serverResolve();
    
    // Server-side function
    function serverResolve() {
      current.incident_state = IncidentState.RESOLVED;
      current.state = IncidentState.RESOLVED;
      current.resolved_by = gs.getUserID();
      current.update();
    }

    gsftSubmit(contrôle de chaîne, formulaire d’objet, chaîne action_name)

    Soumet un formulaire comme si l’utilisateur avait cliqué sur une action d’interface utilisateur après avoir vérifié les champs obligatoires et exécuté les scripts clients onSubmit( ). Permet d’appeler le code côté client et le code côté serveur dans une seule action d’interface utilisateur.

    Tableau 1. Paramètres
    Nom Type Description
    control Chaîne Nom d’un bouton de formulaire sur lequel vous souhaitez simuler un clic utilisateur. Utilisez null sinon.
    formulaire Objet Facultatif. Élément de formulaire qui contient l’entrée soumise. Vous pouvez récupérer cette valeur en appelant la méthode g_form.getFormElement().
    action_name Chaîne Nom de l’action. Cette valeur est fournie dans l’enregistrement répertorié dans la table Actions d’interface utilisateur [sys_ui_action].

    Par exemple, « resolve_incident » est le nom de l’action du bouton Résoudre dans la table Incident [incident].