docs/versioned_docs/version-2.25.0/how-to/run-action-from-runjs.md
ToolJet allows you to execute various actions within RunJS queries. This guide outlines the syntax and examples for each action.
<div style={{paddingTop:'24px', paddingBottom:'24px'}}>Syntax:
queries.queryName.run();
or
await actions.runQuery('queryName');
Example:
In the following screenshot, we demonstrate triggering two different queries, getCustomers and updateCustomers, using the two available syntax options for the Run Query action.
Syntax:
actions.setVariable(variableName, variableValue);
Example:
In this example, we set two variables, test and test2. Note that test contains a numerical value, so it is not wrapped in quotes, while test2 is a string and is wrapped in quotes.
Syntax:
actions.unSetVariable(variableName);
Example:
In the following screenshot, we unset the variable test2 that was created in the previous step.
Syntax:
actions.logout();
Example:
Executing actions.logout() will log out the current user from ToolJet and redirect to the sign-in page.
Syntax:
actions.showModal('modalName');
Example:
In this example, a modal named formModal is present on the canvas, and we use a RunJS query to show the modal.
Syntax:
actions.closeModal('modalName');
Example:
Here, we use a RunJS query to close the modal that was shown in the previous step.
<div style={{textAlign: 'center'}}> </div> </div> <div style={{paddingTop:'24px', paddingBottom:'24px'}}>Syntax:
actions.setLocalStorage('key', 'value');
Syntax:
actions.copyToClipboard('contentToCopy');
Syntax:
actions.generateFile('fileName', 'fileType', 'data');
Example for generating a CSV file:
actions.generateFile('csvfile1', 'csv', '{{components.table1.currentPageData}}')
Example for generating a Text file:
actions.generateFile('textfile1', 'plaintext', '{{JSON.stringify(components.table1.currentPageData)}}');
Example for generating a PDF file:
actions.generateFile('Pdffile1', 'pdf', '{{components.table1.currentPageData}}');
Syntax:
actions.goToApp('slug', queryparams)
slug can be found in the URL of the released app after the application/, or in the Share modal. You can also set a custom slug for the app in the Share modal or from the global settings in the app builder.queryparams can be provided like this [ ['key1','value1' ], ['key2','value2'] ].Syntax:
actions.showAlert(alertType, message); // alert types are info, success, warning, and error
Example:
actions.showAlert('error', 'This is an error')
To run multiple actions from a RunJS query, use async-await in the function. Here's an example code snippet for running queries and showing an alert at specific intervals:
actions.setVariable('interval', setInterval(countdown, 5000));
async function countdown() {
await queries.restapi1.run();
await queries.restapi2.run();
await actions.showAlert('info', 'This is an information');
}
To switch to a page from the JavaScript query, use the following syntax:
await actions.switchPage('<page-handle>')
Query parameters can be passed through action such as Switch Page. The parameters are appended to the end of the application URL and are preceded by a question mark (?). Multiple parameters are separated by an ampersand (&).
To switch to a page with query parameters from the JavaScript query, use the following syntax:
actions.switchPage('<pageHandle>', [['param1', 'value1'], ['param2', 'value2']])
Page variables are restricted to the page where they are created and cannot be accessed throughout the entire application like regular variables.
To set a page variable from the JavaScript query, use the following syntax:
await actions.setPageVariable('<variablekey>',<variablevalue>)
This enhanced guide provides a detailed walkthrough of executing various ToolJet actions from RunJS queries.