GlideModalNext Experience() : client
L’API GlideModal fournit des méthodes d’affichage d’une superposition de contenu, appelée modal. Les fenêtres modales sont des fenêtres interactives qui s’affichent au-dessus d’une page et se ferment lorsqu’un utilisateur effectue une action. Vous pouvez utiliser un modal pour afficher des informations, poser des questions ou effectuer des actions.
Utilisez les méthodes GlideModal dans les scripts partout où vous pouvez utiliser du JavaScript côté client. Ces méthodes sont le plus souvent appelées à partir d’une action d’interface utilisateur avec la case Client cochée.
- Texte statique
- Texte dynamique
- Formulaires
- Images
- Boutons
- Récupérer un modal existant.
- Créez du contenu modal à partir d’une page d’interface utilisateur ou du code HTML transmis.
- Définissez le titre dans le modal.
- Définissez la largeur du modal.
- Obtenir et définir des préférences.
- Changer les vues modales.
var dialog = new nowapi.GlideModal("UI_dialog_name");
//Set the dialog title
dialog.setTitle('Show title');
//Set the dialog width
dialog.setWidth(550);
//Display the modal
dialog.render();GlideModalNext Experience() : GlideModal(ID de chaîne, booléen en lecture seule, largeur de nombre/chaîne)
Crée une instance de la classe GlideModal .
| Nom | Type | Description |
|---|---|---|
| id | Chaîne | Nom de lapage d’interface utilisateur à charger dans le modal. Vous pouvez également spécifier les modaux Table : Page de l’interface utilisateur [sys_ui_page] |
| readOnly | Booléen | Facultatif. Marqueur indiquant si le contenu du modal est en lecture seule. Valeurs valides :
Valeur par défaut : false |
| largeur | Numéro ou chaîne | Facultatif. Largeur du modal en pixels ou de la classe CSS du modal. Si une largeur de pixel est dépassée, elle aligne la largeur spécifiée sur la classe CSS correspondante. Classes CSS modales possibles :
Par défaut : modal-md Largeur maximale : 900 pixels Remarque : Vous pouvez également définir la largeur du modal à l’aide de la méthode setWidth( ). |
L’exemple de code suivant montre comment créer un objet GlideModal à l’aide d’une page d’interface utilisateur existante.
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Set the dialog title
dialog.setTitle('Show title');
//Set the desired preferences
dialog.setPreference('table', 'task');
dialog.setPreference('name', 'value');
//Opens the dialog
dialog.render();
L’exemple de code suivant montre comment créer un objet GlideModal à l’aide du fichier glide_modal_confirm .
var dialog = new nowapi.GlideModal('glide_modal_confirm', true, 300);
dialog.setTitle(new GwtMessage().getMessage('Confirmation'));
dialog.setPreference('body', new GwtMessage().format("This will complete all update sets in the batch. Continue changing state to complete?"));
dialog.setPreference('focusTrap', true);
dialog.setPreference('onPromptComplete', doComplete);
dialog.setPreference('onPromptCancel', doCancel);
dialog.render();
function doComplete() {
callback(true);
}
function doCancel() {
callback(false);
}
GlideModalNext Experience() - destroy()
Ferme la fenêtre modale actuelle.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre comment utiliser la méthode destroy() pour fermer un modal.
function cancelDialog(){
var dialog = new nowapi.GlideModal('cancelTask');
// Sets the dialog title
dialog.setTitle('Cancel Task');
// Set up valid custom HTML to display
dialog.renderWithContent('<div style="padding:15px">
<p>What action do you want to take?</p>
<p><select name="cancellation" id="taskCancellation" class="form-control">
<option value="cancelOnly" role="option">Cancel task but keep requested item open
</option>
<option value="cancelAll" role="option">Cancel this and all other tasks, closing the
requested item</option></select></p><div style="padding:5px;float:right"><button style="padding:5px;margin-right:10px onclick="window.changeTaskAction(this.innerHTML, jQuery(\'#taskCancellation\').val())" class="btn btn-default">Abort</button>
<button style="padding:5px" class="btn btn-primary" onclick="window.changeTaskAction(this.innerHTML,jQuery(\'#taskCancellation\').val())">
Cancel Task</button></div></div>');
// Use the windows object to ensure the code is accessible from the modal dialog
window.changeTaskAction = function(thisButton, thisAction){
// Close the GlideModal dialog window
dialog.destroy();
// Submit to the back-end
if(thisButton=='Cancel Task'){
if(thisAction=="cancelAll"){
// Closed Incomplete -- will close the Requested Item and all other open tasks
g_form.setValue('state',4);
}else{
// Closed Skipped -- will only close this task
g_form.setValue('state',7);
}
//Regular ServiceNow form submission
gsftSubmit(null, g_form.getFormElement(), 'cancel_sc_task');
}
};
// Prevents the form from submitting when the dialog first loads
return false;
}
L’exemple de code suivant montre comment utiliser GlideModal.get().destroy() pour fermer un modal dans un script client. Le bouton suivant doit être déclaré dans la page d’interface utilisateur HTML : <button onclick="closeMe()">fermer</button>.
function closeGlideModal() {
try {
nowapi.GlideModal.get().destroy();
} catch (err) {
console.warn("closeGlideModal ERROR: " + err.message);
var x = document.getElementById('THE_NAME_OF_YOUR_UI_PAGE' + '_closemodal');
if (x) {
x.click();
} else {
console.warn("No 'X' close button found!");
}
}
}
function closeMe() {
setTimeout(function() {
closeGlideModal();
}, 100);
}
GlideModalNext Experience() : get(ID de chaîne)
Renvoie l’objet GlideModal identifié par le nom de page d’interface utilisateur spécifié.
Utilisez cette méthode pour obtenir l’objet GlideModal à utiliser dans d’autres opérations GlideModal telles que GlideModal.get().destroy().
| Nom | Type | Description |
|---|---|---|
| id | Chaîne | Nom de lapage d’interface utilisateur associée au modal. Vous pouvez également spécifier les modaux Table : Page de l’interface utilisateur [sys_ui_page] |
| Type | Description |
|---|---|
| Modal GlideModal | Objet GlideModal demandé. |
Cet exemple montre comment utiliser la méthode get() pour obtenir le modal que vous souhaitez fermer à l’aide de la méthode destroy( ).
// If the modal was initially created like this:
var dialog = new nowapi.GlideModal("glide_modal_confirm");
dialog.render();
// Code using the modal
...
// Now use the get() and destroy() methods to close the modal
var glideModal = new nowapi.GlideModal().get("glide_modal_confirm");
glideModal.destroy();
// You could also code it like this:
// GlideModal.prototype.get('glide_modal_confirm').destroy();
GlideModalNext Experience() - getID()
Renvoie l’ID GlideModal.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Chaîne | ID du GlideModal. |
L’exemple suivant montre comment obtenir l’ID GlideModal sur l’instance.
var id = modal.getID();
console.log('modal id', id);
GlideModalNext Experience() : getPreference(nom de chaîne, valeur de chaîne)
Renvoie la valeur de la préférence spécifiée (propriété).
L’invocation des actions qui créent le modal crée généralement également les préférences nécessaires pour le modal à l’aide de la GlideModalNext Experience() : setPreference(nom de chaîne, valeur de chaîne) méthode. Le script client de page d’interface utilisateur peut ensuite utiliser ces préférences à l’aide de cette méthode.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de la valeur de préférence à récupérer. Cette valeur doit avoir été préalablement définie sur le modal à l’aide de la méthode setPreference( ). |
| valide | Chaîne | Valeur de la préférence à récupérer. Cette valeur doit avoir été préalablement définie sur le modal à l’aide de la méthode setPreference( ). |
| Type | Description |
|---|---|
| Chaîne | Valeur de préférence spécifiée. |
Cet exemple montre un cas simple de définition d’une préférence, puis de récupération de cette préférence à partir d’une fenêtre modale spécifiée.
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Sets the dialog title
dialog.setTitle('Modal title');
//Sets the value of the preference table
dialog.setPreference('table', 'incident');
//Gets the value of the preference table
var title = dialog.getPreference('table');
GlideModal(Next Experience) – getPreferences()
Renvoie toutes les préférences et valeurs associées au modal.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Chaîne | Valeur de préférence spécifiée. |
Cet exemple montre un cas simple de définition d’une préférence, puis de récupération de cette préférence à partir d’une fenêtre modale spécifiée.
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Sets the dialog title
dialog.setTitle('Modal title');
//Sets the value of the preference table
dialog.setPreference('table', 'incident');
//Gets the value of the preference table
var title = dialog.getPreference('table');
GlideModalNext Experience() - render()
Affiche la page d’interface utilisateur spécifiée lorsque l’API a été instanciée dans le modal. Vous devez appeler cette méthode après avoir défini le modal pour qu’il apparaisse dans l’interface utilisateur.
Appelez cette méthode lorsque vous utilisez une page d’interface utilisateur pour générer le contenu dans votre fenêtre modale. Si vous souhaitez afficher du HTML dans un modal, appelez renderWithContent(String html) pour afficher le modal.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment instancier un objet GlideModal à l’aide de la page d’interface utilisateur « UI_dialog_name », définir le titre et la largeur du modal, puis afficher le modal dans l’interface utilisateur (rendu).
var dialog = new nowapi.GlideModal("UI_dialog_name");
//Set the dialog title and width
dialog.setTitle('Show title');
dialog.setWidth(550);
//Display the dialog
dialog.render();
GlideModalNext Experience() : renderWithContent(String html)
Affiche un modal avec le contenu HTML basé sur une chaîne spécifié.
Utilisez la méthode renderWithContent() au lieu de la méthode render() lors de la dérivation du contenu modal à partir de HTML.
| Nom | Type | Description |
|---|---|---|
| HTML | Chaîne | Contenu HTML à afficher dans le modal. |
| Type | Description |
|---|---|
| Aucun |
Cet exemple de code montre comment afficher un modal construit à l’aide de la chaîne HTML transmise qui contient une liste de choix que l’utilisateur peut sélectionner.
function cancelDialog(){
var dialog = new nowapi.GlideModal('cancelTask');
// Sets the dialog title
dialog.setTitle('Cancel Task');
// Set up valid custom HTML to display
dialog.renderWithContent('<div style="padding:15px">
<p>What action do you want to take?</p>
<p><select name="cancellation" id="taskCancellation" class="form-control">
<option value="cancelOnly" role="option">Cancel task but keep requested item open
</option>
<option value="cancelAll" role="option">Cancel this and all other tasks, closing the
requested item</option></select></p><div style="padding:5px;float:right"><button style="padding:5px;margin-right:10px onclick="window.changeTaskAction(this.innerHTML, jQuery(\'#taskCancellation\').val())" class="btn btn-default">Abort</button>
<button style="padding:5px" class="btn btn-primary" onclick="window.changeTaskAction(this.innerHTML,jQuery(\'#taskCancellation\').val())">
Cancel Task</button></div></div>');
// Use the windows object to ensure the code is accessible from the modal dialog
window.changeTaskAction = function(thisButton, thisAction){
// Close the GlideModal dialog window
dialog.destroy();
// Submit to the back-end
if(thisButton=='Cancel Task'){
if(thisAction=="cancelAll"){
// Closed Incomplete -- will close the Requested Item and all other open tasks
g_form.setValue('state',4);
}else{
// Closed Skipped -- will only close this task
g_form.setValue('state',7);
}
//Regular ServiceNow form submission
gsftSubmit(null, g_form.getFormElement(), 'cancel_sc_task');
}
};
// Prevents the form from submitting when the dialog first loads
return false;
}
GlideModalNext Experience() - setDialog(String dialogName)
Définit le nom de la boîte de dialogue en tant que préférence de table pour GlideModal.
| Nom | Type | Description |
|---|---|---|
| dialogName | Chaîne | Nom de la boîte de dialogue modale à utiliser comme nom de boîte de dialogue et table de préférences correspondante. Voir aussi : |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment définir un nom de boîte de dialogue modale en tant que préférence de table.
var dialog = new nowapi.GlideModal('change_confirm_reason', false, 648, 250);
dialog.setTitle(new GwtMessage().getMessage('Cancel Change Request'));
dialog.setPreference('focusTrap', true);
dialog.setDialog('onPromptComplete');
dialog.setPreference('onPromptCancel', onPromptCancel);
dialog.on('closeconfirm', onPromptCancel);
dialog.setPreference('buttonLabelComplete', new GwtMessage().getMessage('OK'));
dialog.setPreference('buttonLabelCancel', new GwtMessage().getMessage('Cancel'));
dialog.render();
GlideModal (Next Experience) : setPreferenceAndReload (propriétés de l’objet)
Définit les préférences spécifiées, puis recharge le modal.
| Nom | Type | Description |
|---|---|---|
| Propriétés de | Objet | Paires nom-valeur à définir en tant que préférences au format. |
| Type | Description |
|---|---|
| Néant |
Dans cet exemple, la fonction setPreferenceAndReload() définit les préférences et recharge le modal avec les préférences mises à jour. Le modal s’affiche avec les préférences initiales, et après 5 secondes, setPreferenceAndReload() est appelé et recharge le modal avec les préférences mises à jour.
// UI Page to render in the GlideModal is 'glide_modal_confirm'
var glideModal = new nowapi.GlideModal("glide_modal_confirm", false, 600);
glideModal.setTitle(getMessage("Confirmation"));
glideModal.setPreference("body", getMessage("Are you sure you want to reject this deal registration? This action cannot be undone."));
glideModal.setPreference('buttonLabelComplete', getMessage("Reject"));
glideModal.setPreference('buttonLabelCancel', getMessage("Cancel"));
glideModal.render();
var preferences = {
"body": "THIS IS THE UPDATED BODY PREFERENCE",
"buttonLabelComplete": "NEW REJECT",
"buttonLabelCancel": "NEW CANCEL"
};
setTimeout(function() {
glideModal.setPreferenceAndReload(preferences);
}, 5000); GlideModalNext Experience() : setPreference(nom de chaîne, valeur de chaîne)
Définit le champ spécifié sur le formulaire actuel sur la valeur spécifiée.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ de formulaire à mettre à jour. Si ce champ n’existe pas sur le formulaire actuel, la demande est ignorée. |
| valide | Chaîne | Valeur à stocker dans le champ de formulaire spécifié. |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment définir la table préférence sur « tâche » et la name préférence sur « valeur ».
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Set the dialog title
dialog.setTitle('Show title');
//Set the desired preferences
dialog.setPreference('table', 'task');
dialog.setPreference('name', 'value');
//Opens the dialog
dialog.render();
GlideModalNext Experience() - setTitle(titre de chaîne)
Définit le titre du modal.
| Nom | Type | Description |
|---|---|---|
| Titre | Chaîne | Texte à afficher dans le titre du modal. |
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre comment définir le titre du modal sur Table à mettre à jour.
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Sets the dialog title
dialog.setTitle('Table to update');
dialog.setPreference('table', 'task');
dialog.setWidth(550);
//Opens the dialog
dialog.render();
GlideModalNext Experience() : setWidth(largeur du numéro/de la chaîne)
Définit la largeur du modal.
Vous pouvez également définir la largeur d’un modal lorsque vous instanciez l’API pour la première fois à l’aide du constructeur GlideModal( ).
| Nom | Type | Description |
|---|---|---|
| largeur | Numéro ou chaîne | Largeur du modal en pixels ou de la classe CSS du modal. Si une largeur de pixel est dépassée, elle aligne la largeur spécifiée sur la classe CSS correspondante. Classes CSS modales possibles :
Largeur maximale : 900 pixels |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment définir la largeur de la fenêtre modale sur 550 pixels.
var dialog = new nowapi.GlideModal('UI_dialog_name');
//Sets the dialog title
dialog.setTitle('Show title');
dialog.setPreference('name', 'value');
dialog.setWidth(550);
//Opens the dialog
dialog.render();
GlideModalNext Experience() : switchView(Chaîne newView)
Changez la vue et rechargez le modal.
| Nom | Type | Description |
|---|---|---|
| newView | Chaîne | Vue à utiliser. |
| Type | Description |
|---|---|
| Néant |
GlideModal(Next Experience) - type()
Renvoie le type en tant que GlideModal.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Chaîne | Renvoie une chaîne indiquant que le type est GlideModal. |
GlideModal(Next Experience) - updateTitle()
Met à jour le titre spécifié à l’aide de la méthode GlideModal setTitle().
Vous devez toujours d’abord appeler GlideModalNext Experience() - setTitle(titre de chaîne) pour spécifier le titre du modal à l’aide de updateTitle() afin de valider le changement.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| Aucun |
L’exemple suivant montre comment utiliser set et mettre à jour le titre d’un modal en appelant setTitle() et updateTitle() respectivement.
var modal = new nowapi.GlideModal();
modal.renderWithContent('TEST CONTENT');
setTimeout(function() {
modal.setTitle("TEST setTitle() AND updateTitle() METHODS"); // will only update the `title` prop, updateTitle() must be called to see change
modal.updateTitle();
}, 3000);