Table of Contents

Dialog Service API

The following APIs can be used in any Execute Expression Actions or Form Schema functions.

showConfirm({string, string, string, string})

showConfirm(string)

Displays a confirm dialog to the user, with the options to accept or reject. If the user accepts, true is returned, otherwise false. Note that the API is asynchronous and must be awaited like shown in the example below.

API Definition
this.app.ui.dialogs.showConfirm({title: string, message: string, positiveButtonText?: string, negativeButtonText?: string }) : Promise<boolean>
this.app.ui.dialogs.showConfirm(text: string): Promise<boolean>
Example

This example shows how to ask a user to confirm that they want to delete a customer and then displays whether the customer was successfully deleted.

const result = await this.app.ui.dialogs.showConfirm({
    title: 'Delete customer', 
    text: 'Are you sure you want to delete this customer?'
});

if(result){
    const success = await this.app.services.flow.execute("Delete Customer", {
        data: {
            customerId: this.app.variables._state.customerId
        }
    });
    
    this.app.ui.dialogs.showMessage(`The customer was ${!success ? 'NOT' : ''} deleted!`)    
}

img



showMessage({string, string, number})

showMessage(string)

Displays a message box to the user.

API Definition
this.app.ui.dialogs.showMessage({title: string, message: string, width?: number}) : void
this.app.ui.dialogs.showMessage(text: string): void
Example
this.app.ui.dialogs.showMessage({title: 'Delete customer', text: 'The customer was deleted.'});


showChoice({string, string, number, number, array})

Displays a popup to the user with multiple buttons and returns the option selected by the user. Note that the API is asynchronous and must be awaited.

API Definition
this.app.ui.dialogs.showChoice({title: string, text: string, width: number, height: number, options: { text: string; value: any }[]}) : Promise<any>
Example

The example below shows how to display a popup that lets the user answer one of the most important and debated questions in human history.

const response = await this.app.ui.dialogs.showChoice({
    title: 'Pizza preferences', 
    text: 'Is pineapple on pizza ok?', 
    options: [{
        text: 'Yes',
        value: 1
    },{
        text: 'No',
        value: 2
    },{
        text: 'Maybe',
        value: 3
    }]
});

if(response === 3){
    this.app.ui.dialogs.showMessage(`Yup, it all depends on the other ingredients.`);
}else{
    this.app.ui.dialogs.showMessage(`You are ${response === 2 ? 'NOT' : ''} a pineapple lover.`);
}

img