id | title |
---|---|
run-actions-from-runjs |
Run Actions from RunJS query |
Now you can trigger all the actions
available in ToolJet from within the RunJS
query. This guide includes the syntax for each action along with the example.
Syntax:
queries.queryName.run()
or
await actions.runQuery('queryName')
Example: In the screenshot below, we are triggering the two different queries customers
and getData
using the two different syntax available for Run Query
action.
Syntax:
actions.setVariable(variableName, variableValue)
Example: In the screenshot below, we are setting the two variables test
and test2
. test
variable includes a numerical value so we haven't wrapped it inside the quotes but the variable test2
is a string so we have wrapped it in quotes.
Syntax:
actions.unSetVariable(variableName)
Example: In the screenshot below, we are unsetting the variable test2
that we created in the previous step.
Syntax:
actions.logout()
Example: Triggering actions.logout()
will log out the current logged in user from the ToolJet and will redirect to sign in page.
Syntax:
actions.showModal('modalName')
Example: In the screenshot below, there is a modal on the canvas (renamed it to formModal
from modal1
) and we are using RunJS query to show the modal.
Syntax:
actions.closeModal('modalName')
Example: In the screenshot below, we have used RunJS query to close the modal that we showed up in previous step.
Syntax:
actions.setLocalStorage('key','value')
Syntax:
actions.copyToClipboard('contentToCopy')
Syntax:
actions.generateFile('fileName', 'fileType', 'data')
fileName
is the name that you want to give the file(string), fileType
can be csv
, plaintext
, or pdf
and the data
is the data that you want to store in the file.
Example for generating CSV file:
actions.generateFile('csvfile1', 'csv', '{{components.table1.currentPageData}}') // generate a csv file named csvfile1 with the data from the current page of table
Example for generating Text file:
actions.generateFile('textfile1', 'plaintext', '{{JSON.stringify(components.table1.currentPageData)}}') // generate a text file named textfile1 with the data from the current page of table (stringified)
Example for generating PDF file:
actions.generateFile('Pdffile1', 'pdf', '{{components.table1.currentPageData}}') // generate a text file named Pdffile1 with the data from the current page of table
Syntax:
actions.goToApp('slug',queryparams)
slug
can be found in URL of the released app after theapplication/
, or in theShare
modalqueryparams
can be provided like this[{"key":"value"}, {"key2":"value2"}]
Syntax:
actions.showAlert(alert type , message ) // alert types are info, success, warning, and danger
ex:
actions.showAlert('error' , 'This is an error' )
To run multiple actions from a runjs query, you'll have to use async-await in the function.
Here is a example code snippet for running the queries and showing alert after specific intervals. Check the complete guide on running queries at specified intervals here.
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')
}