Cours Apps Script : les boîtes de dialogue
Les boîtes de dialogue permettent d'afficher une information, de demander une confirmation à l'utilisateur ou de lui demander d'entrer une information.
Alert
La méthode alert permet d'afficher une boîte de dialogue avec différents paramètres possibles.
Avec un seul argument, vous affichez simplement un message avec un bouton OK :
SpreadsheetApp.getUi().alert('Suppression confirmée');

Si vous entrez un second argument, celui-ci définit quels sont les boutons à afficher.
Les choix possibles sont :
Constante | Boutons |
---|---|
OK | OK |
OK_CANCEL | OK, Annuler |
YES_NO | Oui, Non |
YES_NO_CANCEL | Oui, Non, Annuler |
Par exemple :
const ui = SpreadsheetApp.getUi();
ui.alert('Confirmer la suppression ?', ui.ButtonSet.YES_NO);

Si vous entrez trois arguments, le premier sera le titre, le second le texte et le troisième les boutons :
const ui = SpreadsheetApp.getUi();
ui.alert('Demande de confirmation', 'Confirmer la suppression ?', ui.ButtonSet.YES_NO_CANCEL);

Pour connaître le choix de l'utilisateur et effectuer ou non une action, il faut récupérer la valeur retournée par alert :
const ui = SpreadsheetApp.getUi();
const choix = ui.alert('Confirmer la suppression ?', ui.ButtonSet.YES_NO);
Puis comparer la valeur retournée :
Constante | Choix de l'utilisateur |
---|---|
OK | Bouton OK |
CANCEL | Bouton Annuler |
YES | Bouton Oui |
NO | Bouton Non |
CLOSE | Bouton de fermeture de la boîte de dialogue |
Par exemple :
const ui = SpreadsheetApp.getUi();
const choix = ui.alert('Confirmer la suppression ?', ui.ButtonSet.YES_NO);
// Si l'utilisateur clique sur Oui
if (choix == ui.Button.YES) {
// Affichage d'une autre boîte de dialogue
ui.alert('Suppression confirmée !');
}
Ou :
const ui = SpreadsheetApp.getUi();
// Si l'utilisateur clique sur Oui
if (ui.alert('Confirmer la suppression ?', ui.ButtonSet.YES_NO) == ui.Button.YES) {
// Affichage d'une autre boîte de dialogue
ui.alert('Suppression confirmée !');
}
Toast
La méthode toast affiche une petite fenêtre en bas à droite de la feuille qui disparaît au bout de quelques secondes.
Elle peut être utilisée par exemple pour afficher une confirmation (qui ne nécessite aucune action de la part de l'utilisateur pour être fermée) :
SpreadsheetApp.getActive().toast('Suppression confirmée !');

Il est possible d'ajouter un titre en second argument :
SpreadsheetApp.getActive().toast('Toutes les données ont bien été supprimées.', 'Suppression confirmée');

Vous pouvez également préciser la durée (en secondes) en troisième argument :
SpreadsheetApp.getActive().toast('OK', null, 1.5);
Prompt
La méthode prompt permet d'afficher une boîte de dialogue où l'utilisateur est invité à entrer une information.
Tout comme la méthode alert vous pouvez entrer de 1 à 3 arguments.
Exemple avec un seul argument :
const reponse = SpreadsheetApp.getUi().prompt('Entrez votre nom :');

Un second argument permet de choisir les boutons (vous disposez des mêmes choix de boutons qu'avec alert) :
const ui = SpreadsheetApp.getUi();
const reponse = ui.prompt('Entrez votre nom et cliquez sur OK :', ui.ButtonSet.OK_CANCEL);

Et pour terminer, un exemple avec 3 arguments (titre, texte, boutons) :
const ui = SpreadsheetApp.getUi();
const reponse = ui.prompt('Inscription', 'Entrez votre nom et cliquez sur OK :', ui.ButtonSet.OK_CANCEL);

A partir de la valeur retournée par prompt, vous pouvez récupérer à la fois la valeur entrée et le bouton cliqué :
const ui = SpreadsheetApp.getUi();
const reponse = ui.prompt('Inscription', 'Entrez votre nom et cliquez sur OK :', ui.ButtonSet.OK_CANCEL);
if (reponse.getSelectedButton() == ui.Button.OK) {
ui.alert('Merci ' + reponse.getResponseText());
}