chore: Upgrade Docusaurus from v2 to v3 (#52)

* chore: Upgrade Docusaurus from v2 to v3

* chore: Update "Test build" GH workflow

* fix: build

All markdown is processed as MDX

* fix: Broken links
This commit is contained in:
Eric Tuvesson
2024-01-12 16:53:22 +01:00
committed by GitHub
parent 65b0cf0417
commit 656e5fc8d2
156 changed files with 4854 additions and 10445 deletions

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup node env 🏗
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
- name: Install dependencies 🏗
run: npm install

View File

@@ -8,7 +8,9 @@ hide_title: true
Cloud functions play an important role when creating different log in and sign up flows. Using the nodes [Sign Up](/nodes/data/user/sign-up), [Log In](/nodes/data/user/log-in) and [Log Out](/nodes/data/user/log-out) you can create the most basic flow that will have the user sign up with a username, optionally email, and password and log in with username and password.
:::note
It's common to use email for both **username** and **email** when signing up, so you only ask the user for email and password, one less thing to remeber right.
:::
Once logged in you can use the [Access Control](/docs/guides/cloud-data/access-control) functions of the cloud database to control what a user has access to and not. The built in role system will allow you to create features like teams/groups of users.
@@ -77,11 +79,11 @@ The **Format Email** action takes as input the verification token and the email
As you can see it creates an email containing an HTML link, this link uses some fancy template syntax.
- **$Domain** This will be replaced by the format email node to the domain where your application is deployed, so that the link will take you back to the app. More on this later.
- **{Token}** This is the generated token from before.
- **{Email}** This is the email for the user, it will be used to fetch the user and marked the email as verified in the next step.
- `$Domain` This will be replaced by the format email node to the domain where your application is deployed, so that the link will take you back to the app. More on this later.
- `{Token}` This is the generated token from before.
- `{Email}` This is the email for the user, it will be used to fetch the user and marked the email as verified in the next step.
The **Format Email** node outputs the final email with the correct values for the above placeholders insterted. This email content is then sent to the **Send Email** node that actually sends the email to the user.
The **Format Email** node outputs the final email with the correct values for the above placeholders insterted. This email content is then sent to the **Send Email** node that actually sends the email to the user.
<div className="ndl-image-with-background l">
@@ -135,7 +137,7 @@ Resetting a user password when it's been lost follows the same pattern as sendin
</div>
There is a function called **Sign Up / Request Password Reset** that simply accepts an **Email** and it can be called without the user being logged in.
There is a function called **Sign Up / Request Password Reset** that simply accepts an **Email** and it can be called without the user being logged in.
<div className="ndl-image-with-background xl">
@@ -143,7 +145,6 @@ There is a function called **Sign Up / Request Password Reset** that simply acce
</div>
The cloud function follow pretty much the same pattern as when sending email verifications. It will send an email to the user with a link containing a secret token just like when veryfing the email address.
<div className="ndl-image-with-background xl">
@@ -183,17 +184,3 @@ When the user hits the reset button we will call the **Sign Up / Reset Password*
Provided that the secret token is correct and have not expired (tokens are valid for 24 hours) the password will be updated. You can then send the user back to the **Log In** page.
That's it, this is how you use cloud functions to create an email verification and password reset flow. You will use cloud functions for a lot of user management tasks that need to be performed on the backend with full database access.

View File

@@ -2,6 +2,7 @@
title: Using Variables
hide_title: true
---
import ImportButton from '../../../src/components/importbutton'
# Using Variables
@@ -47,7 +48,7 @@ Now we are going to do two things. 1. We want to store the value of the TextFiel
Let's start with the capitalization. Add a [Function](/nodes/javascript/function) node. Edit the script and paste the following:
```javascript
```js
if (Inputs.name !== undefined) {
Outputs.capitalizedName =
Inputs.name.substr(0, 1).toUpperCase() + Inputs.name.substr(1)
@@ -118,7 +119,7 @@ So, connect the **onEnter** output on the **TextField** to the **Do** input sign
### Reading a Variable
Ok, now we want to use the value we just stored. We want to include the name in the `Hello World` greeting. So lets first add a [String Format](/nodes/string-manipulation/string-format/) node. Make sure the text in the node is "Hello World {name}".
Ok, now we want to use the value we just stored. We want to include the name in the `Hello World` greeting. So lets first add a [String Format](/nodes/string-manipulation/string-format/) node. Make sure the text in the node is "Hello World `{name}`".
<div className="ndl-image-with-background xl">
@@ -156,7 +157,9 @@ Now test your app. Start writing a name in the **Text Input**, press _Enter_ and
Now let's change the structure a little. We will create a **Popup** and present the "Hello World" message in it only after the user have pressed _Enter_.
:::note
If you want to learn more about popups, take a look at the [Popups](/docs/guides/navigation/popups) guide.
:::
Start by creating a new visual component, call it "Hello Popup".
@@ -263,7 +266,7 @@ Connect the **value** output from the **Variable** `userName` to the a **String*
Then create an **Expression** node. We want to check that the length of the name is 6 characters or more. So edit the expression and write
```
```js
length >= 6
```

View File

@@ -4,6 +4,7 @@ hide_title: true
---
import ImportButton from '/src/components/importbutton';
import CopyToClipboardButton from '/src/components/copytoclipboardbutton';
import ReactPlayer from 'react-player';
# Component Stack Guide

View File

@@ -21,7 +21,7 @@ The properties of the object will be that of the supplied data. A special case i
the id attribute that will become the id of the object and not part of the object properties.
E.g. the code below will create an object with two properties and the id set to 'A'.
```javascript
```js
Noodl.Object.create({
id: "A",
myProp1: 10,
@@ -50,7 +50,7 @@ Supported events:
Example usage:
```javascript
```js
myObject.on("change", function (args) {
// property with name args.name was changed
// new value in args.value
@@ -138,7 +138,7 @@ Noodl.Objects["unique"].fill(5);
Returns the value of the property with the specified name.
As in the set function the dot notation can be used if the object has another object as a property,
if the options {resolve:true} is supplied.
if the options `{resolve:true}` is supplied.
`myObject.get('myProp3.anotherProp',{resolve:true})`

View File

@@ -3,7 +3,7 @@ title: Bar Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Bar Chart
@@ -17,7 +17,7 @@ This visual node adds a bar chart to the visual tree.
[Here](../charts/bar) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Bubble Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Bubble Chart
@@ -17,7 +17,7 @@ This visual node adds a bubble chart to the visual tree.
[Here](../charts/bubble) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Doughnut Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Doughnut Chart
@@ -17,7 +17,7 @@ This visual node adds a doughnut chart to the visual tree.
[Here](../charts/doughnut) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Line Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Line Chart
@@ -17,7 +17,7 @@ This visual node adds a line chart to the visual tree.
[Here](../charts/line) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Pie Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Pie Chart
@@ -17,7 +17,7 @@ This visual node adds a pie chart to the visual tree.
[Here](../charts/pie) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Polar Area Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Polar Area Chart
@@ -17,7 +17,7 @@ This visual node adds a polar area chart to the visual tree.
[Here](../charts/polar-area) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Radar Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Radar Chart
@@ -17,7 +17,7 @@ This visual node adds a radar chart to the visual tree.
[Here](../charts/radar) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Scatter Chart
hide_title: true
---
<##head##>
{/*##head##*/}
# Scatter Chart
@@ -17,7 +17,7 @@ This visual node adds a scatter chart to the visual tree.
[Here](../charts/scatter) is an example how to use used the node.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Custom HTML
hide_title: true
---
<##head##>
{/*##head##*/}
# Custom HTML
@@ -27,7 +27,7 @@ You can pass dynamic values to your markup by using template strings. `{{ FillCo
This node also allows you to add script tags to your app. For security reasons all script tags are deactivated, but if you need to run a script (required for some embeds) you can turn off that fail safe. <strong>Please note that passing user input to your template string variables can be a security risk for you and your users, leaving you vulnerable to [XSS Attacks](https://en.wikipedia.org/wiki/Cross-site_scripting).</strong>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,13 +3,13 @@ title: Geospatial Turf API
hide_title: true
---
<##head##>
{/*##head##*/}
# Turf.js API
Returns the Turf.js API object, allowing to use other Turf.js functions that doesn't have nodes yet.
<##head##>
{/*##head##*/}
## Outputs

View File

@@ -3,13 +3,13 @@ title: Geospatial Area
hide_title: true
---
<##head##>
{/*##head##*/}
# Geospatial Area
Takes an array of coordinates and returns their area in different formats.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,13 +3,13 @@ title: Geospatial Center Of Mass
hide_title: true
---
<##head##>
{/*##head##*/}
# Geospatial Center Of Mass
Takes an array of coordinates and returns its center of mass using this formula: Centroid of Polygon.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,13 +3,13 @@ title: Geospatial Center
hide_title: true
---
<##head##>
{/*##head##*/}
# Geospatial Center
Takes a GeoJSON feature and returns the absolute center point.
<##head##>
{/*##head##*/}
Here is an example of how to use it.

View File

@@ -3,7 +3,7 @@ title: Google Analytics Root
hide_title: true
---
<##head##>
{/*##head##*/}
# Google Analytics Root
@@ -17,7 +17,7 @@ This node loads Google Analytics in your Noodl app. It _must_ be placed in your
This node uses [Google Analytics 4](https://developers.google.com/analytics/devguides/collection/ga4) and requires a [Google Analytics Measurement ID](https://support.google.com/analytics/answer/9539598#find-G-ID).
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Send Google Analytics Data
hide_title: true
---
<##head##>
{/*##head##*/}
# Send Google Analytics Data
@@ -15,7 +15,7 @@ This node is used to send custom data to Google Analytics. It works similarily t
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,14 +3,14 @@ title: GraphQL Query
hide_title: true
---
<##head##>
{/*##head##*/}
# GraphQL Query
This node enables you to connect to GraphQL based API:s in a quick and easy way.
![](/library/modules/graphql/graphql-guide-img/graphql-query-node.png)
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -10,7 +10,10 @@ This guide will look at how we can apply filters to our Google Sheets data and u
## Overview
If you haven't already followed the previous guides for the Google Sheets Module, it's recommended to do that before starting this guide. You can find them [part 1 here](library/modules/gsheets/guides/setting-up/) and [part 2 here](/library/modules/gsheets/guides/park-details).
If you haven't already followed the previous guides for the Google Sheets Module,
it's recommended to do that before starting this guide.
You can find them [part 1 here](/library/modules/gsheets/guides/setting-up/)
and [part 2 here](/library/modules/gsheets/guides/park-details).
<div className="ndl-image-with-background l">

View File

@@ -3,7 +3,7 @@ title: Query Sheet Aggregate
hide_title: true
---
<##head##>
{/*##head##*/}
# Query Sheet Aggregate
@@ -21,7 +21,7 @@ This node is used do aggregate data queries on a column from a public Google She
> Note that the Google Sheet need to be made public for Noodl to be able to access it.
<##head##>
{/*##head##*/}
## Results from the Aggregate Query

View File

@@ -3,7 +3,7 @@ title: Query Sheet
hide_title: true
---
<##head##>
{/*##head##*/}
# Query Sheet
@@ -25,7 +25,7 @@ The node works in a similar way as the [Query Records](/nodes/data/cloud-data/qu
> Note that the Google Sheet need to be made public for Noodl to be able to access it.
<##head##>
{/*##head##*/}
## Document Id and Sheet Name

View File

@@ -3,7 +3,7 @@ title: Sheet Row
hide_title: true
---
<##head##>
{/*##head##*/}
# Sheet Row
@@ -25,7 +25,7 @@ By setting the `Row Id` of the **Sheet Row**, and selecting the **Sheet** (if yo
> Note that the Google Sheet need to be made public for Noodl to be able to access it.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,11 +3,11 @@ title: i18next
hide_title: true
---
<##head##>
{/*##head##*/}
# i18next
This is used to register bundles and to set and get the current language.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: LanguageBundle
hide_title: true
---
<##head##>
{/*##head##*/}
# LanguageBundle
The language bundle contains the translations for a language. If you have multiple languages you will have one LanguageBundle for each language and they generally should contain the same strings, translated to the respective language.
@@ -27,7 +27,7 @@ In this example the key `loginpage.confirm_button.hover_text` would identify the
Note that i18next supports various dynamic features in the texts, e.g. plurals, date formats, etc. These are generally supported when used in Noodl.
There are typically two ways to use Language Bundles. For static texts, for example UI texts, you edit the bundle object directly in Noodl (pressing the "Edit" button on the property panel). As you build the UI you add new texts to the bundle. You have one bundle per language. For dynamic texts, for example loaded during execution from a database, you programatically create bundle objects and load them into the **LanguageBundle** when available and using the AddBundleObject input.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Translation
hide_title: true
---
<##head##>
{/*##head##*/}
# Translation
This is the node where the translation happens. You typically connect these to your **Text** nodes and **Text Input** nodes. Translation nodes automatically change their output if language changes, if the bundle is changing, and when it becomes available.
@@ -13,7 +13,7 @@ There are two dynamic features in the Translation node:
- If your translation includes some of i18next dynamic features, for example having a `{{count}}` variable deciding between a plural string or not, or by inserting variables in the middle of the string, any variables used can be added as inputs on the Translation node, and be connected to other nodes in Noodl. For example if a translation uses the variable `{{count}}` adding an input named "count" and connecting it to a Number node, the translation will change when the Number node is updated.
- The name of the key can be dynamic. In most cases the key of a translation is known when building the app, but there are cases when the name of the key is only known during runtime. For example, in a database with thousands of products and related texts translated to multiple languages, the translations are generated when needed. The name of the keys are also generated dynamically. A product with an id `xyz123abc` may have its translations stored in an object named `xyz123abc`, `{"xyz123abc":{"label":"Product A", "desc":"A great product"}}`. By using dynamic naming of the key in a Translation node, using the {}-pattern, the actual key can be resolved at runtime. In this scenario naming the Key in the translation node `{product_id}.label`, will expose a new input to the Translation node called "product_id" that can be connected to a Model node in Noodl.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,11 +3,11 @@ title: Lottie
hide_title: true
---
<##head##>
{/*##head##*/}
# Lottie
The documentation for this node will be coming soon.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -27,7 +27,7 @@ When in the project, open the "Module" tab in the Node Picker. Find the "Mapbox"
</div>
After the module is imported, you should now be able to find the [Mapbox Map](library/modules/mapbox/nodes/v2/mapbox-map) node in the node picker. Right click in the node editor area to bring up the node picker. Look under "External libraries" to find the **Mapbox Map** node.
After the module is imported, you should now be able to find the [Mapbox Map](/library/modules/mapbox/nodes/v2/mapbox-map) node in the node picker. Right click in the node editor area to bring up the node picker. Look under "External libraries" to find the **Mapbox Map** node.
<div className="ndl-image-with-background s">

View File

@@ -3,7 +3,7 @@ title: Mapbox Map
hide_title: true
---
<##head##>
{/*##head##*/}
# Mapbox Map
@@ -23,7 +23,7 @@ Markers can be placed on the map by sending an <span className="ndl-data">array<
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Mapbox Map
hide_title: true
---
<##head##>
{/*##head##*/}
# Mapbox Map
@@ -15,7 +15,7 @@ This node adds a map to the visual tree, using [Mapbox](https://www.mapbox.com/)
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Mapbox Marker
hide_title: true
---
<##head##>
{/*##head##*/}
# Mapbox Marker
@@ -15,7 +15,7 @@ This node should be placed as a child in the Mapbox Map node, it can be used in
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Mapbox Polygon
hide_title: true
---
<##head##>
{/*##head##*/}
# Mapbox Polygon
@@ -29,7 +29,7 @@ Outputs.Coordinates = [
];
```
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,13 +3,13 @@ title: Markdown
hide_title: true
---
<##head##>
{/*##head##*/}
# Markdown
This node enables you to use Markdown in Noodl.
![](/library/modules/markdown/markdown-nodes.png)
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Marquee
hide_title: true
---
<##head##>
{/*##head##*/}
# Marquee
@@ -15,7 +15,7 @@ This visual node adds a marquee container to the visual tree.
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Receive Message
hide_title: true
---
<##head##>
{/*##head##*/}
# Receive Message
@@ -11,7 +11,8 @@ hide_title: true
be used for inter-device communication and IoT. The **Receive Message** node subscribes to an MQTT topic and receives any message and payload published to that topic.
![](/library/modules/mqtt/receive-message.png)
<##head##>
{/*##head##*/}
<div class = "node-inputs">
@@ -20,9 +21,9 @@ be used for inter-device communication and IoT. The **Receive Message** node sub
### Other
**Topic**
The topic name can be any identifier and is used by the **Receive Message** nodes to connect sender and receiver nodes, or publishers and subscribers in MQTT. Most commonly the topics are specified as a hierarchy with **/** as delimiters, e.g. _/Foo/Bar/1_. Sometimes the topics need to be dynamic, this can be achieved by encapsulating a topic component with curly brackets, e.g. _/Foo/{Bar}/1_. In this case a port called _Bar_ will show up.
Topics on _Receive Message_ can also be specified with wildcards, so for instance _/Foo/+/Bar_ will subscribe to both _/Foo/Hello/Bar_ and _/Foo/Goodbye/Bar_.
The exact topic component used when sending the message can be retrieved in a similar way to dynamic topics, by specifying _/Foo/+X+/Bar_ an output port called _X_ will
The topic name can be any identifier and is used by the **Receive Message** nodes to connect sender and receiver nodes, or publishers and subscribers in MQTT. Most commonly the topics are specified as a hierarchy with **/** as delimiters, e.g. `/Foo/Bar/1`. Sometimes the topics need to be dynamic, this can be achieved by encapsulating a topic component with curly brackets, e.g. `/Foo/{Bar}/1`. In this case a port called _Bar_ will show up.
Topics on _Receive Message_ can also be specified with wildcards, so for instance `/Foo/+/Bar` will subscribe to both `/Foo/Hello/Bar` and `/Foo/Goodbye/Bar`.
The exact topic component used when sending the message can be retrieved in a similar way to dynamic topics, by specifying `/Foo/+X+/Bar` an output port called _X_ will
be created that will hold the value of the topic component when the message is received.
**Enabled**

View File

@@ -3,16 +3,16 @@ title: Send Message
hide_title: true
---
<##head##>
# Send Message
{/*##head##*/}
# Send Message
**Send Message** nodes are used to send a message over MQTT, to another device for example. All devices that connect to the editor will
use the same MQTT broker and thus messages can be sent across devices. The **Send Message** node uses topics to specify which receivers should get the messages.
![](/library/modules/mqtt/send-message.gif)
<##head##>
{/*##head##*/}
<div class = "node-inputs">
@@ -20,8 +20,8 @@ use the same MQTT broker and thus messages can be sent across devices. The **Sen
### General
**Topic**
The MQTT topic this **Send Message** will publish messages to. Most commonly the topics are specified as a hierarchy with **/** as delimiters, e.g. _/Foo/Bar/1_. Sometimes the topic needs to be dynamic, this can be achieved by encapsulating a topic component with curly brackets, e.g. _/Foo/{Bar}/1_. In this case a port called _Bar_ will show up.
**Topic**
The MQTT topic this **Send Message** will publish messages to. Most commonly the topics are specified as a hierarchy with **/** as delimiters, e.g. `/Foo/Bar/1`. Sometimes the topic needs to be dynamic, this can be achieved by encapsulating a topic component with curly brackets, e.g. `/Foo/{Bar}/1`. In this case a port called _Bar_ will show up.
**Format**
This input sets the format the payload will be sent in, either as JSON or as a CSV.

View File

@@ -3,7 +3,7 @@ title: Parse Cloud Function
hide_title: true
---
<##head##>
{/*##head##*/}
# Parse Cloud Function
@@ -33,26 +33,26 @@ You can also provide parameters that you want to be passed to the cloud function
The cloud function returns the result of the cloud function on the **Result** output.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Function Name</span> | <##input:functionName##>The name of the cloud function to call.<##input##> |
| <span className="ndl-data">Custom Parameters</span> | <##input:pm-*##>A parameter that will be passed to the function. Any parameters you add will become available as inputs on the node.<##input##> |
| <span className="ndl-data">Function Name</span> | {/*##input:functionName##*/}The name of the cloud function to call.{/*##input##*/} |
| <span className="ndl-data">Custom Parameters</span> | {/*##input:pm-*##*/}A parameter that will be passed to the function. Any parameters you add will become available as inputs on the node.{/*##input##*/} |
| Signal | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Call</span> | <##input:call##>Send a signal on this input to issue the request to the backend.<##input##> |
| <span className="ndl-signal">Call</span> | {/*##input:call##*/}Send a signal on this input to issue the request to the backend.{/*##input##*/} |
## Outputs
| Data | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Result</span> | <##output:result##>This output will contain the result that the **Cloud Function** returns upon completion. <##output##> |
| <span className="ndl-data">Result</span> | {/*##output:result##*/}This output will contain the result that the **Cloud Function** returns upon completion. {/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This is sent if the function returns a success code and a result object.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This is sent if the function returns a failure code.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This is sent if the function returns a success code and a result object.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This is sent if the function returns a failure code.{/*##output##*/} |

View File

@@ -3,7 +3,7 @@ title: Camera QR Scanner
hide_title: true
---
<##head##>
{/*##head##*/}
# Camera QR Scanner
@@ -16,7 +16,7 @@ The **Camera QR Scanner** node is used to open the camera view finder and scan f
</div>
When a QR code has been successfully identified, the node will send a <span className="ndl-signal">Scan Successful</span> event and the decoded string, otherwise <span className="ndl-signal">Scan Failed</span>.
In this node, the decoding happens in real time, meaning if the QR code is not visible anymore the node will send an event to indicate that the scanning failed.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Image QR Scanner
hide_title: true
---
<##head##>
{/*##head##*/}
# Image QR Scanner
@@ -16,7 +16,7 @@ The **Image QR Scanner** node is used to scane an image for a QR code. It's typi
</div>
When a QR code has been successfully identified, the node will send a <span className="ndl-signal">Scan Successful</span> event and the decoded string, otherwise <span className="ndl-signal">Scan Failed</span>.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Show Tooltip
hide_title: true
---
<##head##>
{/*##head##*/}
# Show Tooltip
@@ -15,7 +15,7 @@ This logic node adds a tooltip to the visual tree.
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,7 +3,7 @@ title: Tooltip
hide_title: true
---
<##head##>
{/*##head##*/}
# Tooltip
@@ -15,7 +15,7 @@ This visual node adds a tooltip to the visual tree.
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -3,14 +3,14 @@ title: Validate
hide_title: true
---
<##head##>
{/*##head##*/}
# Validate
The **Validate** node is used to validate data provided as inputs to the node based on a specified _schema_. This is most commonly used to validate input forms, learn more in the [guide](/library/modules/validation).
![](/library/modules/validation/simple-validate.png ':class=img-size-l')
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -2,7 +2,7 @@
hide_title: true
---
<##head##>
{/*##head##*/}
# Webcamera
!> The documentation for this node will be coming soon.
@@ -14,4 +14,4 @@ The **Web Camera** node gets the video stream of a target devices camera (mob
It will work inside of Noodl without problems, but to make it work on a phone, or on a website, the project needs to be hosted on a secure server (https). If you use the Noodl Cloud Deploy functionality your project will be hosted on a secure server so this is a great way to test the Web Camera on a phone.
Note that iOS sometimes can be tricky, but try setting the Video node to mute and autoplay to get the Web Camera stream.
<##head##>
{/*##head##*/}

View File

@@ -12,7 +12,7 @@ This prefab only works on Noodl hosted cloud services.
It's recommended that you have a grasp of the following concepts before diving into this prefab:
* [Page Navigation](/docs/guides/navigation/basic-navigation) - How to create pages and navigate between them.
* [Cloud Functions](/docs/guides//cloud-logic/introduction) - How to create cloud functions and run logic on the backend.
* [Cloud Functions](/docs/guides/cloud-logic/introduction) - How to create cloud functions and run logic on the backend.
Here is a nifty prefab for exporting / generating PDFs. Exporting a PDF involves two components:

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Circle node
---
<##head##>
{/*##head##*/}
# Circle
@@ -16,7 +16,7 @@ This node places a circle (or a circle segment) in the visual tree. It features
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Columns node
---
<##head##>
{/*##head##*/}
# Columns
@@ -28,7 +28,7 @@ A layout string is simply a string of numbers with spaces between them. Every nu
</div>
<##head##>
{/*##head##*/}
## Responsive layouts

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Group node
---
<##head##>
{/*##head##*/}
# Group
@@ -24,7 +24,7 @@ The <span className="ndl-node">Group</span> is the most essential node when it c
</div>
<##head##>
{/*##head##*/}
**Group** nodes are typically used to layout children by stacking (the default), but can also be used to simply provide margins and padding to a group of visual nodes. To learn more about **Group** nodes check out the [Layouting guide](/docs/guides/user-interfaces/layout).

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Icon node
---
<##head##>
{/*##head##*/}
# Icon
@@ -17,7 +17,7 @@ This node places an icon in the visual tree.
</div>
You can use an icon from the built in library, or provide your own image source.
<##head##>
{/*##head##*/}
## Dynamic icons

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Image node
---
<##head##>
{/*##head##*/}
# Image
@@ -12,7 +12,7 @@ This node places an image in the visual tree. It features a wide range of design
The <span className="ndl-data">source</span> can be set from a URL or a file. You can drag images from your computer and drop them into Noodl to add them to the project folder. This will make them selectable as the <span className="ndl-data">source</span> in the <span className="ndl-node">Image</span> nodes Property Panel.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Text node
---
<##head##>
{/*##head##*/}
# Text
@@ -24,7 +24,7 @@ The <span className="ndl-node">Text</span> node can be styled with font family,
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Video node
---
<##head##>
{/*##head##*/}
# Video
@@ -12,7 +12,7 @@ This node places a video surface in the visual tree. It features a wide range of
The <span className="ndl-data">source</span> can be set from a URL or a file. You can drag videos from your computer and drop them into Noodl to add them to the project folder. This will make them selectable as the <span className="ndl-data">source</span> in the <span className="ndl-node">Video</span> node Property Panel.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Aggregate Records node
---
<##head##>
{/*##head##*/}
# Aggregate Records
@@ -32,7 +32,7 @@ Then for each aggregate name you created you choose the property to aggregate ov
</div>
<##head##>
{/*##head##*/}
You can also specify filters to limit the aggretate to a select set of recrods. This is done in the same way as with the [Query Records](/nodes/data/cloud-data/query-records) node, please see those reference docs for more details.
@@ -52,8 +52,8 @@ You can do aggregates over two types of properties **String** and **Number**, th
| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | Select the **Class** for the types of records this node should do aggregate over. When the **Class** is selected you can create filters and aggregates of the **Class**. |
| <span className="ndl-data">Filter</span> | This specifies the type of filter, you can choose from:<br/><br/>`Visual`: Specify your filter using the visual filter editor.<br/>`JavaScript`: Specify your filter using JavaScript (this is more flexible and you can create more dynamic queyries but it's also more complex) |
| <span className="ndl-data">Query Parameters</span> | <##input:qp-\*##>The input for specifying the value of a query parameter.<##input##> Each paramteter used in your query will get an input where you can provide a value through a connection.<##input##> |
| <span className="ndl-data">Aggregates</span> | <##input:aggregates##>This a list of the aggregates you want to perform. You must provide the names of the outputs that will contain the aggregates here.<##input##> |
| <span className="ndl-data">Query Parameters</span> | {/*##input:qp-\*##*/}The input for specifying the value of a query parameter.{/*##input##*/} Each paramteter used in your query will get an input where you can provide a value through a connection.{/*##input##*/} |
| <span className="ndl-data">Aggregates</span> | {/*##input:aggregates##*/}This a list of the aggregates you want to perform. You must provide the names of the outputs that will contain the aggregates here.{/*##input##*/} |
### Aggregate property and operation
@@ -67,16 +67,16 @@ For each aggregate you create you also need to provide the property if should ag
| Signal | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal here to perform the aggregate.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal here to perform the aggregate.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Error</span> | <##output:error##>This output contains the error message incase something when wrong when executing the aggregate.<##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output contains the error message incase something when wrong when executing the aggregate.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent here if the aggregate was successful and the result is ready.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent here if something went wrong with the aggregate. You can find the error message via the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent here if the aggregate was successful and the result is ready.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent here if something went wrong with the aggregate. You can find the error message via the **Error** output.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Request node
---
<##head##>
{/*##head##*/}
# Request
@@ -26,7 +26,7 @@ You specify what parameters the cloud function accepts in the properties of the
</div>
<##head##>
{/*##head##*/}
By default the user must be logged in on the client, and if thats not the case the cloud function call will automatically fail with an error indication an invalid session.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Response node
---
<##head##>
{/*##head##*/}
# Response
@@ -24,7 +24,7 @@ The response is sent when a signal is received on the **Send** input. You can sp
</div>
<##head##>
{/*##head##*/}
If the status is **Failure** you can provide an error message that will be returned to the calling [Cloud Function](/nodes/data/cloud-data/cloud-function) node.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Component Stack node
---
<##head##>
{/*##head##*/}
# Component Stack
@@ -32,25 +32,25 @@ With the **clip** property set to <span className="ndl-data">false</span>, the *
If you want to control the size of the **Component Stack** beyond that, you should put it as a child in a [Group](/nodes/basic-elements/group/README.md) node.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Name</span> | <##input:name##>This is the name of the **Component Stack**. If you have multiple **Component Stacks** in your project you use the name to identify it in the [Push Component To Stack](/nodes/component-stack/push-component) and [Pop Component Stack](/nodes/component-stack/pop-component) nodes. <##input##> |
| <span className="ndl-data">Name</span> | {/*##input:name##*/}This is the name of the **Component Stack**. If you have multiple **Component Stacks** in your project you use the name to identify it in the [Push Component To Stack](/nodes/component-stack/push-component) and [Pop Component Stack](/nodes/component-stack/pop-component) nodes. {/*##input##*/} |
| <span className="ndl-data">Start Page</span> | The Component which will be shown by **Component Stack** at the start. |
| <span className="ndl-data">Clip Content</span> | <##input:clip##>If this property is set to `true` the **Component Stack** will clip any component that is extending beyond its size. If set to `false` the size of the **Component Stack** will grow if needed to fit its component.<##input##> |
| <span className="ndl-data">Background Color</span> | <##input:backgroundColor##>The color that will be shown when there is no component covering the **Component Stack** or when the component is transparent.<##input##> |
| <span className="ndl-data">Mounted</span> | <##input:mounted##>This property is used to completely remove the node from the DOM. If this property is set to false the node is removed from the DOM. It differs from the _Visible_ property where the node is still part of the DOM but invisible.<##input##> |
| <span className="ndl-data">Clip Content</span> | {/*##input:clip##*/}If this property is set to `true` the **Component Stack** will clip any component that is extending beyond its size. If set to `false` the size of the **Component Stack** will grow if needed to fit its component.{/*##input##*/} |
| <span className="ndl-data">Background Color</span> | {/*##input:backgroundColor##*/}The color that will be shown when there is no component covering the **Component Stack** or when the component is transparent.{/*##input##*/} |
| <span className="ndl-data">Mounted</span> | {/*##input:mounted##*/}This property is used to completely remove the node from the DOM. If this property is set to false the node is removed from the DOM. It differs from the _Visible_ property where the node is still part of the DOM but invisible.{/*##input##*/} |
| Signal | Description |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Reset</span> | <##input:reset##>Triggering this action resets the **Component Stack** meaning all components on the stack will be removed and only the **Start Page** will be on the stack.<##input##> |
| <span className="ndl-signal">Reset</span> | {/*##input:reset##*/}Triggering this action resets the **Component Stack** meaning all components on the stack will be removed and only the **Start Page** will be on the stack.{/*##input##*/} |
| Deprecated | Description |
| -------------------------------------------------- | --------------------------------------------------------------------------------------- |
| <span className="ndl-deprecated">Use Routes</span> | <##input:useRoutes##>**This Property is deprecated and should not be used.**<##input##> |
| <span className="ndl-deprecated">Use Routes</span> | {/*##input:useRoutes##*/}**This Property is deprecated and should not be used.**{/*##input##*/} |
### Visual
@@ -62,8 +62,8 @@ This node supports the following [Visual Input Properties](/nodes/shared-props/i
| Data | Description |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Top Component Name</span> | <##output:topPageName##>This property holds the name of the current component that is on the top of the stack.<##output##> |
| <span className="ndl-data">Stack Depth</span> | <##output:stackDepth##>This property equals to the number of components that are currently on the **Component Stack**.<##output##> |
| <span className="ndl-data">Top Component Name</span> | {/*##output:topPageName##*/}This property holds the name of the current component that is on the top of the stack.{/*##output##*/} |
| <span className="ndl-data">Stack Depth</span> | {/*##output:stackDepth##*/}This property equals to the number of components that are currently on the **Component Stack**.{/*##output##*/} |
### Visual

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Pop Component node
---
<##head##>
{/*##head##*/}
# Pop Component Stack
@@ -16,15 +16,15 @@ The **Pop Component Stack** node is used together with a [Component Stack](/node
</div>
?> Note that you have to use the **Pop Component Stack** node from within a component in the **Component Stack**.
> Note that you have to use the **Pop Component Stack** node from within a component in the **Component Stack**.
<##head##>
{/*##head##*/}
## Inputs
| Signal | Description |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Navigate</span> | <##input:navigate##>Triggering this action will pop the topmost component from the stack. If there is a component under the popped component, it will be now be visible.<##input##> |
| <span className="ndl-signal">Navigate</span> | {/*##input:navigate##*/}Triggering this action will pop the topmost component from the stack. If there is a component under the popped component, it will be now be visible.{/*##input##*/} |
### Back Actions and Results
@@ -34,6 +34,6 @@ When popping a component from the stack you can also trigger a **Back Action** a
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Back Actions, Results** | You can add any number of **Back Actions** and **Result** inputs to the **Pop Component Stack** node. These will show up as outputs on any [Push To Component Stack](/nodes/component-stack/push-component) node pointing to the component with this **Pop Component Stack** node. |
<span className="hidden-props-for-editor"><##input:backAction-\*##>A **Back Action** signal. Triggering this will pop from the **Component Stack** and send a signal to the [Push To Component Stack](/nodes/component-stack/push-component) node used to push the component.<##input##></span>
<span className="hidden-props-for-editor">{/*##input:backAction-\*##*/}A **Back Action** signal. Triggering this will pop from the **Component Stack** and send a signal to the [Push To Component Stack](/nodes/component-stack/push-component) node used to push the component.{/*##input##*/}</span>
<span className="hidden-props-for-editor"><##input:result-\*##>A **Result** input. Any data sent to this input will be forwarded to the [Push To Component Stack](/nodes/component-stack/push-component) node when the component is popped.<##input##></span>
<span className="hidden-props-for-editor">{/*##input:result-\*##*/}A **Result** input. Any data sent to this input will be forwarded to the [Push To Component Stack](/nodes/component-stack/push-component) node when the component is popped.{/*##input##*/}</span>

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Push Component node
---
<##head##>
{/*##head##*/}
# Push Component To Stack
@@ -16,39 +16,39 @@ The **Push Component To Stack** node is used together with a [Component Stack](/
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Stack</span> | <##input:stack##>This property defines which **Component Stack** that the push will act on. The **Component Stack** is referred to by its name. <##input##> |
| <span className="ndl-data">Mode</span> | <##input:mode##>This property selects whether the previous components will be kept in the stack, beneath the new top component, (**Push**) or if all components will be replaced by the new top component (**Replace**), in which case the new component will be the only one on the stack.<##input##> |
| <span className="ndl-data">Target Page</span> | <##input:target##>Here you select the target component to push on the **Component Stack**. The component need to be one of the component entries defined in the **Component Stack** to show up as an option here.<##input##> |
| <span className="ndl-data">Stack</span> | {/*##input:stack##*/}This property defines which **Component Stack** that the push will act on. The **Component Stack** is referred to by its name. {/*##input##*/} |
| <span className="ndl-data">Mode</span> | {/*##input:mode##*/}This property selects whether the previous components will be kept in the stack, beneath the new top component, (**Push**) or if all components will be replaced by the new top component (**Replace**), in which case the new component will be the only one on the stack.{/*##input##*/} |
| <span className="ndl-data">Target Page</span> | {/*##input:target##*/}Here you select the target component to push on the **Component Stack**. The component need to be one of the component entries defined in the **Component Stack** to show up as an option here.{/*##input##*/} |
| Signal | Description |
| -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Navigate</span> | <##input:navigate##>Sending a signal to this input will push the **Target Page** on the **Component Stack**.<##input##> |
| <span className="ndl-signal">Navigate</span> | {/*##input:navigate##*/}Sending a signal to this input will push the **Target Page** on the **Component Stack**.{/*##input##*/} |
| Mixed | Description |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Component Inputs** | Any **Component Inputs** that the target component have will be available as inputs on the **Push Component To Stack** node. |
<span className="hidden-props-for-editor"><##input:pm-\*##>A parameter input originating from a **Component Input** in the **Target** component. It's value will be forwarded to the component.<##input##></span>
<span className="hidden-props-for-editor">{/*##input:pm-\*##*/}A parameter input originating from a **Component Input** in the **Target** component. It's value will be forwarded to the component.{/*##input##*/}</span>
### Transition
| Data | Description |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Transition</span> | The type of transition. Can be any of:<br/><br/>`None`: No transition, the target component is immediately made visible.<br/>`Push`: The current top of the stack is "pushed away" while the new top enters.<br/>`Popup`: The current top is not changed. The new top enters with a transition on top of it.<br/><br/>Not all of the parameters below are available for all types of transitions. |
| <span className="ndl-data">Direction</span> | <##input:tr-direction##>This is the direction the new top component enters from, and also the direction the current top is pushed away in, if the transition is _Push_. It can be any of _Left_, _Right_, _Up_, _Down_ and _In_,_Out_. The latter zooms in vs out.<##input##> |
| <span className="ndl-data">Shift Distance</span> | <##input:tr-shift##>This is the distance of the transition in either _%_ or in _px_, i.e. the distance the component is moved in the specified direction.<##input##> |
| <span className="ndl-data">Zoom</span> | <##input:tr-zoom##>This is available if the _Direction_ is set to _In_ or _Out_ and specifies the amount of zoom the transition should apply.<##input##> |
| <span className="ndl-data">Crossfade</span> | <##input:tr-crossfade##>If enabled the target will fade in and the current top fade out. Only available for _Push_ transitions.<##input##> |
| <span className="ndl-data">Dark Overlay</span> | <##input:tr-darkoverlay##>Adds a overlay to the current top with the color #000000. Only available for _Push_ transitions.<##input##> |
| <span className="ndl-data">Dark Overlay Amount</span> | <##input:tr-darkoverlayamount##>The maximum opacity of the overlay. It starts at `0` and animates to this value. `0` disables it, and `1` makes the overlay animate to 100% opacity. Only available for _Push_ transitions.<##input##> |
| <span className="ndl-data">Fade In</span> | <##input:tr-fadein##>Available for _Popup_ transitions. This indicates if the new top component should fade in ou not during the transition.<##input##> |
| <span className="ndl-data">Timing</span> | <##input:tr-timing##>This is a timing curve that controls the delay, duration and animation ease of the transition.<##input##> |
| <span className="ndl-data">Direction</span> | {/*##input:tr-direction##*/}This is the direction the new top component enters from, and also the direction the current top is pushed away in, if the transition is _Push_. It can be any of _Left_, _Right_, _Up_, _Down_ and _In_,_Out_. The latter zooms in vs out.{/*##input##*/} |
| <span className="ndl-data">Shift Distance</span> | {/*##input:tr-shift##*/}This is the distance of the transition in either _%_ or in _px_, i.e. the distance the component is moved in the specified direction.{/*##input##*/} |
| <span className="ndl-data">Zoom</span> | {/*##input:tr-zoom##*/}This is available if the _Direction_ is set to _In_ or _Out_ and specifies the amount of zoom the transition should apply.{/*##input##*/} |
| <span className="ndl-data">Crossfade</span> | {/*##input:tr-crossfade##*/}If enabled the target will fade in and the current top fade out. Only available for _Push_ transitions.{/*##input##*/} |
| <span className="ndl-data">Dark Overlay</span> | {/*##input:tr-darkoverlay##*/}Adds a overlay to the current top with the color #000000. Only available for _Push_ transitions.{/*##input##*/} |
| <span className="ndl-data">Dark Overlay Amount</span> | {/*##input:tr-darkoverlayamount##*/}The maximum opacity of the overlay. It starts at `0` and animates to this value. `0` disables it, and `1` makes the overlay animate to 100% opacity. Only available for _Push_ transitions.{/*##input##*/} |
| <span className="ndl-data">Fade In</span> | {/*##input:tr-fadein##*/}Available for _Popup_ transitions. This indicates if the new top component should fade in ou not during the transition.{/*##input##*/} |
| <span className="ndl-data">Timing</span> | {/*##input:tr-timing##*/}This is a timing curve that controls the delay, duration and animation ease of the transition.{/*##input##*/} |
<div className="ndl-image-with-background l">
<img src="/guides/navigation/transition-params.png"></img>
@@ -56,13 +56,13 @@ The **Push Component To Stack** node is used together with a [Component Stack](/
<div className="hidden-props-for-editor">
<##input:transition##>The type of transition. Can be any of:
{/*##input:transition##*/}The type of transition. Can be any of:
- _None_ No transition, the target component is immediately made visible.
- _Push_ The current top of the stack is "pushed away" while the new top enters.
- _Popup_ The current top is not changed. The new top enters with a transition on top of it.
Not all of the parameters below are available for all types of transitions.<##input##>
Not all of the parameters below are available for all types of transitions.{/*##input##*/}
</div>
@@ -70,12 +70,12 @@ Not all of the parameters below are available for all types of transitions.<##in
| Signal | Description |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Navigated</span> | <##output:navigated##>This signal is triggered when the **Target Component** has been pushed on the **Component Stack**.<##output##> |
| <span className="ndl-signal">Navigated</span> | {/*##output:navigated##*/}This signal is triggered when the **Target Component** has been pushed on the **Component Stack**.{/*##output##*/} |
| Mixed | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Back Actions, Results** | If the **Target Component** contains a [Pop Component Stack](/nodes/component-stack/pop-component) with **Back Actions** and **Results** they will appear as outputs on the related **Push Component**. |
<span className="hidden-props-for-editor"><##output:backAction-\*##>An output signal originating from the **Back Actions** of the [Pop Component Stack](/nodes/component-stack/pop-component) node of the **Target Component**.<##output##></span>
<span className="hidden-props-for-editor">{/*##output:backAction-\*##*/}An output signal originating from the **Back Actions** of the [Pop Component Stack](/nodes/component-stack/pop-component) node of the **Target Component**.{/*##output##*/}</span>
<span className="hidden-props-for-editor"><##output:backResult-\*##>A result output originating from the **Result** of the [Pop Component Stack](/nodes/component-stack/pop-component) node of the **Target Component**.<##output##></span>
<span className="hidden-props-for-editor">{/*##output:backResult-\*##*/}A result output originating from the **Result** of the [Pop Component Stack](/nodes/component-stack/pop-component) node of the **Target Component**.{/*##output##*/}</span>

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Component Children node
---
<##head##>
{/*##head##*/}
# Component Children
@@ -20,7 +20,7 @@ the **Component Children** node.
</div>
<##head##>
{/*##head##*/}
To fully understand this concept it's important to understand node hierarchies.
Visual nodes can be placed in a hierarchy which will cause them to be layouted and drawn appropriately.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Component Inputs node
---
<##head##>
{/*##head##*/}
# Component Inputs
@@ -24,7 +24,7 @@ A <span className="ndl-node">Component Input</span> node can have multiple ports
</div>
<##head##>
{/*##head##*/}
A very powerful feature of Noodl is the ability to create **Components** that act as reusable nodes in your application.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Component Object node
---
<##head##>
{/*##head##*/}
# Component Object
@@ -18,7 +18,7 @@ This node is a shared set of properties that can be accessed from a component as
The <span className="ndl-node">Component Object</span> node works much like the <span className="ndl-node">[Object](/nodes/data/object/object-node)</span> node where you add properties that become inputs or outputs to the node.
<##head##>
{/*##head##*/}
<div className="ndl-image-with-background">
@@ -32,20 +32,20 @@ Unlike the <span className="ndl-node">[Object](/nodes/data/object/object-node)</
| Data | Description |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Property name</span> | <##input:value-\*##>The value of a specific property of the Component Object. A Component Object node can have any amount of properties. They must be named in the Property Panel. When this input is changed all other Component Object nodes in the same component are updated.<##input##> Each property will get one input and output to set/get their current value. See below for more details. |
| <span className="ndl-data">Property name</span> | {/*##input:value-\*##*/}The value of a specific property of the Component Object. A Component Object node can have any amount of properties. They must be named in the Property Panel. When this input is changed all other Component Object nodes in the same component are updated.{/*##input##*/} Each property will get one input and output to set/get their current value. See below for more details. |
| Signal | Description |
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Fetch</span> | <##input:fetch##>The fetch signal input can be used to explicitly signal when the data of a **Component Object** should be fetched. If a connection is made to this input the node will not automatically receive changes on it's properties, it will only get the new data when the fetch signal is triggered.<##input##> |
| <span className="ndl-signal">Fetch</span> | {/*##input:fetch##*/}The fetch signal input can be used to explicitly signal when the data of a **Component Object** should be fetched. If a connection is made to this input the node will not automatically receive changes on it's properties, it will only get the new data when the fetch signal is triggered.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Custom properties** | <##output:value-\*##>A Component Object node can have any amount of properties. Each property will get one output to get the current value.<##output##> |
| **Custom properties** | {/*##output:value-\*##*/}A Component Object node can have any amount of properties. Each property will get one output to get the current value.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Changed</span> | <##output:changed##>An event is triggered when any of the properties have changed.<##output##> |
| <span className="ndl-signal">Fetched</span> | <##output:fetched##>An event is triggered on this output when a fetch is completed as a result of a **Fetch** sent on to the node.<##output##> |
| <span className="ndl-signal">Changed Property Signals</span> | <##output:changed-\*##>One changed signal output will be created for every property. They will emit a signal when the property changes value when this or some other **Component Object** or [Parent Component Object](/nodes/component-utilities/parent-component-object) node triggers the _Set_ input.<##output##> |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}An event is triggered when any of the properties have changed.{/*##output##*/} |
| <span className="ndl-signal">Fetched</span> | {/*##output:fetched##*/}An event is triggered on this output when a fetch is completed as a result of a **Fetch** sent on to the node.{/*##output##*/} |
| <span className="ndl-signal">Changed Property Signals</span> | {/*##output:changed-\*##*/}One changed signal output will be created for every property. They will emit a signal when the property changes value when this or some other **Component Object** or [Parent Component Object](/nodes/component-utilities/parent-component-object) node triggers the _Set_ input.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Component Outputs node
---
<##head##>
{/*##head##*/}
# Component Outputs
@@ -24,7 +24,7 @@ A <span className="ndl-node">Component Output</span> node can have as many ports
</div>
<##head##>
{/*##head##*/}
A very powerful feature of Noodl is the ability to create **Components** that act as reusable nodes in your application. A core concept of components is that they can have inputs and outputs like any of the built in nodes.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Parent Component Object node
---
<##head##>
{/*##head##*/}
# Parent Component Object
@@ -17,7 +17,7 @@ title: Parent Component Object node
</div>
The node is used much like an [Object](/nodes/data/object/object-node) where you can output properties on the node. The node does not have an **Id** instead the data is shared with the parent component. This node is very useful in patterns such as radio groups where child components may need to access the **Component Object** of its parent.
<##head##>
{/*##head##*/}
## Inputs
@@ -25,11 +25,11 @@ The node is used much like an [Object](/nodes/data/object/object-node) where you
| Data | Description |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Properties</span> | <##input:value-\*##>The properties to set on the closest parent [Component Object](/nodes/component-utilities/component-object). When this input is changed via a connection the parent **Component Object** will be updated.<##input##> |
| <span className="ndl-data">Properties</span> | {/*##input:value-\*##*/}The properties to set on the closest parent [Component Object](/nodes/component-utilities/component-object). When this input is changed via a connection the parent **Component Object** will be updated.{/*##input##*/} |
| Signal | Description |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Fetch</span> | <##input:fetch##>Normally when a **Parent Component State** is created, the property outputs are immediately updated. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal to fetch the data.<##input##><br/><br/>With **Fetch** connected the output data won't change until **Fetch** is explicitly triggered again. |
| <span className="ndl-signal">Fetch</span> | {/*##input:fetch##*/}Normally when a **Parent Component State** is created, the property outputs are immediately updated. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal to fetch the data.{/*##input##*/}<br/><br/>With **Fetch** connected the output data won't change until **Fetch** is explicitly triggered again. |
## Outputs
@@ -37,10 +37,10 @@ The node is used much like an [Object](/nodes/data/object/object-node) where you
| Data | Description |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Parent Properties</span> | <##output:value-\*##>The values of the properties of the closest parent [Component Object](/nodes/component-utilities/component-object).<##output##> |
| <span className="ndl-data">Parent Properties</span> | {/*##output:value-\*##*/}The values of the properties of the closest parent [Component Object](/nodes/component-utilities/component-object).{/*##output##*/} |
| Signal | Description |
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Changed</span> | <##output:changed##>This event is triggered when any of the properties have changed.<##output##> |
| <span className="ndl-signal">Fetched</span> | <##output:fetched##>Signal when this node has bound itself to a [Component Object](/nodes/component-utilities/component-object). Triggers immediately if the **Fetch** inputs isn't connected, and will otherwise trigger when the **Fetch** input is signaled.<##output##> |
| <span className="ndl-signal">Changed Property Signals</span> | <##output:changed-\*##>One changed signal output will be created for every property. They will emit a signal when the property changes value.<##output##> |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}This event is triggered when any of the properties have changed.{/*##output##*/} |
| <span className="ndl-signal">Fetched</span> | {/*##output:fetched##*/}Signal when this node has bound itself to a [Component Object](/nodes/component-utilities/component-object). Triggers immediately if the **Fetch** inputs isn't connected, and will otherwise trigger when the **Fetch** input is signaled.{/*##output##*/} |
| <span className="ndl-signal">Changed Property Signals</span> | {/*##output:changed-\*##*/}One changed signal output will be created for every property. They will emit a signal when the property changes value.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Set Component Object Properties node
---
<##head##>
{/*##head##*/}
# Set Component Object Properties
@@ -16,20 +16,20 @@ title: Set Component Object Properties node
</div>
<##head##>
{/*##head##*/}
## Inputs
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Stores any properties that are typed in the property panel or connected. All **Component Object** nodes in the same component, as well as any [Parent Component Object](/nodes/component-utilities/parent-component-object) nodes, will be updated. <##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Stores any properties that are typed in the property panel or connected. All **Component Object** nodes in the same component, as well as any [Parent Component Object](/nodes/component-utilities/parent-component-object) nodes, will be updated. {/*##input##*/} |
| Data | Description |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Custom Properties</span> | <##input:prop-\*##>A property to set in the **Component Object**. You can list the properties you want to set in the property panel.<##input##> |
| <span className="ndl-data">Custom Properties</span> | {/*##input:prop-\*##*/}A property to set in the **Component Object**. You can list the properties you want to set in the property panel.{/*##input##*/} |
## Outputs
| Signal | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>An signal is sent on this output when the set action is completed.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}An signal is sent on this output when the set action is completed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Set Parent Component Object Properties node
---
<##head##>
{/*##head##*/}
# Set Parent Component Object Properties
@@ -16,20 +16,20 @@ With this node you can set properties on the closed parent **Component Object**.
</div>
<##head##>
{/*##head##*/}
## Inputs
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Stores any properties that are typed in the property panel or connected. All **Component Object** nodes in the same component, as well as any [Parent Component Object](/nodes/component-utilities/parent-component-object) nodes, will be updated. <##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Stores any properties that are typed in the property panel or connected. All **Component Object** nodes in the same component, as well as any [Parent Component Object](/nodes/component-utilities/parent-component-object) nodes, will be updated. {/*##input##*/} |
| Data | Description |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Custom Properties</span> | <##input:prop-\*##>A property to set in the **Component Object**. You can list the properties you want to set in the property panel.<##input##> |
| <span className="ndl-data">Custom Properties</span> | {/*##input:prop-\*##*/}A property to set in the **Component Object**. You can list the properties you want to set in the property panel.{/*##input##*/} |
## Outputs
| Signal | Description |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>A signal is sent on this output when the set action is completed.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}A signal is sent on this output when the set action is completed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Array Filter node
---
<##head##>
{/*##head##*/}
# Array Filter
@@ -16,7 +16,7 @@ This node will take an array of items as input and output a filtered version of
</div>
<##head##>
{/*##head##*/}
## Inputs
@@ -24,15 +24,15 @@ This node will take an array of items as input and output a filtered version of
| Data | Description |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Enabled</span> | <##input:enabled##>The filtering is enabled by default, if disabled the array will simply pass through unfiltered.<##input##> |
| <span className="ndl-data">Items</span> | <##input:items##>The array that should be filtered.<##input##> |
| <span className="ndl-data">Use Limit</span> | <##input:filterEnableLimit##>Enables or disables limiting the number of objects in the outputted items array.<##input##> |
| <span className="ndl-data">Limit</span> | <##input:filterLimit##>Specify the maximum number of objects in the filtered output.<##input##> |
| <span className="ndl-data">Skip</span> | <##input:filterSkip##>Specify the number of objects to skip from the beginning of the filtered output.<##input##> |
| <span className="ndl-data">Enabled</span> | {/*##input:enabled##*/}The filtering is enabled by default, if disabled the array will simply pass through unfiltered.{/*##input##*/} |
| <span className="ndl-data">Items</span> | {/*##input:items##*/}The array that should be filtered.{/*##input##*/} |
| <span className="ndl-data">Use Limit</span> | {/*##input:filterEnableLimit##*/}Enables or disables limiting the number of objects in the outputted items array.{/*##input##*/} |
| <span className="ndl-data">Limit</span> | {/*##input:filterLimit##*/}Specify the maximum number of objects in the filtered output.{/*##input##*/} |
| <span className="ndl-data">Skip</span> | {/*##input:filterSkip##*/}Specify the number of objects to skip from the beginning of the filtered output.{/*##input##*/} |
| Signal | Description |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Filter</span> | <##input:filter##>By default the node will filter as soon as there is a new array on the _Items_ input or if that array changes. But if there is a connection to the _Filter_ input it will wait until a signal is sent here to perform the filtering.<##input##> |
| <span className="ndl-signal">Filter</span> | {/*##input:filter##*/}By default the node will filter as soon as there is a new array on the _Items_ input or if that array changes. But if there is a connection to the _Filter_ input it will wait until a signal is sent here to perform the filtering.{/*##input##*/} |
### Filter
@@ -63,7 +63,7 @@ The available operations of the filter depend on the type that is set.
?> To perform a free text search on strings, use the _Matches Regexp_ operation and set the _Value_ to the partial string you want to search for.
**Value**
<##input:filterFilterValue-\*##>The value used to test against in the filter operation.<##input##>
{/*##input:filterFilterValue-\*##*/}The value used to test against in the filter operation.{/*##input##*/}
<div className="ndl-image-with-background">
@@ -88,10 +88,10 @@ For each property you can choose the sorting order.
| Data | Description |
| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##output:items##>The filtered and sorted array.<##output##> |
| <span className="ndl-data">Count</span> | <##output:count##>The number of objects in the filtered array.<##output##> |
| <span className="ndl-data">First Item Id</span> | <##output:firstItemId##>The _Id_ of the first object in the filtered array, or _undefined_ if there are no items in the filtered array.<##output##> |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}The filtered and sorted array.{/*##output##*/} |
| <span className="ndl-data">Count</span> | {/*##output:count##*/}The number of objects in the filtered array.{/*##output##*/} |
| <span className="ndl-data">First Item Id</span> | {/*##output:firstItemId##*/}The _Id_ of the first object in the filtered array, or _undefined_ if there are no items in the filtered array.{/*##output##*/} |
| Signal | Description |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Filtered</span> | <##output:filtered##>Signal emitted when the array has been filtered, either due to a _Filter_ signal sent or if the array has changed.<##output##> |
| <span className="ndl-signal">Filtered</span> | {/*##output:filtered##*/}Signal emitted when the array has been filtered, either due to a _Filter_ signal sent or if the array has changed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Array Map node
---
<##head##>
{/*##head##*/}
# Array Map
@@ -16,13 +16,13 @@ This node takes an input array, runs a small map script on each item, and output
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------- | ------------------------------------------------------------ |
| <span className="ndl-data">Items</span> | <##input:items##>The array that should be mapped.<##input##> |
| <span className="ndl-data">Items</span> | {/*##input:items##*/}The array that should be mapped.{/*##input##*/} |
### Script
@@ -54,9 +54,9 @@ Note that the objects that are created when mapping are new objects so they will
| Data | Description |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##output:items##>The mapped array.<##output##> |
| <span className="ndl-data">Count</span> | <##output:count##>The number of items in the mapped array (this will be the same as the input array)<##output##> |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}The mapped array.{/*##output##*/} |
| <span className="ndl-data">Count</span> | {/*##output:count##*/}The number of items in the mapped array (this will be the same as the input array){/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Changed</span> | <##output:changed##>A signal is emitted here when the input array has been modified which will trigger the _Array Map_ node to remap the input and produce a new output _Items_.<##output##> |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}A signal is emitted here when the input array has been modified which will trigger the _Array Map_ node to remap the input and produce a new output _Items_.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Array node
---
<##head##>
{/*##head##*/}
# Array
@@ -17,7 +17,7 @@ Arrays are ordered lists of [Object](/nodes/data/object/object-node)s. See the g
</div>
You can create and modify the array using the [Create new Array](/nodes/data/array/create-new-array), [Insert Object Into Array](/nodes/data/array/insert-into-array) and [Remove Object From Array](/nodes/data/array/remove-from-array).
<##head##>
{/*##head##*/}
## Inputs
@@ -25,22 +25,22 @@ You can create and modify the array using the [Create new Array](/nodes/data/arr
| Data | Description |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##input:items##>This input sets the source of the array.<##input##> You can for instance forward the content of a [Static Array](/nodes/data/array/static-array) node using this input. The content of the source array will be copied to this array by default and any changes to the source array will also be copied automatically. You can control this by making a signal connection to _Set_, in that case the items, i.e. content of the source array, will only be copied when a signal is received on _Set_. |
| <span className="ndl-data">Id</span> | <##input:id##>This is the _Id_ of the array, it works similair to objects and variables. It specifies the array that this node will act on via it's _Id_. All **Array** nodes with the same _Id_ will refer to the same array of objects.<##input##> |
| <span className="ndl-data">Items</span> | {/*##input:items##*/}This input sets the source of the array.{/*##input##*/} You can for instance forward the content of a [Static Array](/nodes/data/array/static-array) node using this input. The content of the source array will be copied to this array by default and any changes to the source array will also be copied automatically. You can control this by making a signal connection to _Set_, in that case the items, i.e. content of the source array, will only be copied when a signal is received on _Set_. |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}This is the _Id_ of the array, it works similair to objects and variables. It specifies the array that this node will act on via it's _Id_. All **Array** nodes with the same _Id_ will refer to the same array of objects.{/*##input##*/} |
| Signal | Description |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Fetch</span> | <##input:fetch##>Normally when _Id_ is set, the items and count outputs are immediately updated with the content of the array referenced by the _Id_. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal here for the **Array** node to fetch the data. Before an array have been fetched none of the modify and set operations or source items will have any affect.<##input##> |
| <span className="ndl-signal">Fetch</span> | {/*##input:fetch##*/}Normally when _Id_ is set, the items and count outputs are immediately updated with the content of the array referenced by the _Id_. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal here for the **Array** node to fetch the data. Before an array have been fetched none of the modify and set operations or source items will have any affect.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>The _Id_ for this **Array**.<##output##> |
| <span className="ndl-data">Items</span> | <##output:items##>This is an output that can be connected to others that can take **Array** inputs, such as the [Repeater](/nodes/ui-controls/repeater) node. It will hold an `Noodl.Array` type.<##output##> |
| <span className="ndl-data">Count</span> | <##output:count##>The number of items in the **Array**.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The _Id_ for this **Array**.{/*##output##*/} |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}This is an output that can be connected to others that can take **Array** inputs, such as the [Repeater](/nodes/ui-controls/repeater) node. It will hold an `Noodl.Array` type.{/*##output##*/} |
| <span className="ndl-data">Count</span> | {/*##output:count##*/}The number of items in the **Array**.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Changed</span> | <##output:changed##>This signal is triggered when the content of the array is changed, either by an action on this node or by some other node in the graph that operates on the same array Id.<##output##> |
| <span className="ndl-signal">Fetched</span> | <##output:fetched##>Triggered when a _Fetch_ action has been performed and the data is ready.<##output##> |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}This signal is triggered when the content of the array is changed, either by an action on this node or by some other node in the graph that operates on the same array Id.{/*##output##*/} |
| <span className="ndl-signal">Fetched</span> | {/*##output:fetched##*/}Triggered when a _Fetch_ action has been performed and the data is ready.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Clear Array node
---
<##head##>
{/*##head##*/}
# Clear Array
@@ -16,20 +16,20 @@ This node is used to remove all _Objects_ from an _Array_. The Array is referred
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------ | ------------------------------------------------------------------------------ |
| <span className="ndl-data">Array Id</span> | <##input:collectionId##>The _Id_ of the Array that will be cleared.<##input##> |
| <span className="ndl-data">Array Id</span> | {/*##input:collectionId##*/}The _Id_ of the Array that will be cleared.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>This actions removes all the Objects from the Array with the _Id_ set on the input _Array Id_.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}This actions removes all the Objects from the Array with the _Id_ set on the input _Array Id_.{/*##input##*/} |
## Outputs
| Signal | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>This event is sent when the removal is done, and the Array is empty.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}This event is sent when the removal is done, and the Array is empty.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Create New Array node
---
<##head##>
{/*##head##*/}
# Create New Array
@@ -16,24 +16,24 @@ Creates a new Array. The outgoing property _Id_ is the id of the newly created a
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##input:items##>An array containing initial items of the new array. It will be read when the _Do_ signal is triggered. In other words, the new Array will be a copy of the provided Array, containing the same Objects.<##input##> |
| <span className="ndl-data">Items</span> | {/*##input:items##*/}An array containing initial items of the new array. It will be read when the _Do_ signal is triggered. In other words, the new Array will be a copy of the provided Array, containing the same Objects.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Sending a signal to this input creates the new Array. The _Id_ of the newly created array will be set on the _Id_ output. Each triggering will create a new Array, hence changing the _Id_ output.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Sending a signal to this input creates the new Array. The _Id_ of the newly created array will be set on the _Id_ output. Each triggering will create a new Array, hence changing the _Id_ output.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>The Id of the newly created Array. You use this Id to refer to the Array.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The Id of the newly created Array. You use this Id to refer to the Array.{/*##output##*/} |
| Signal | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Done</span> | <##output:done##>This signal will be sent when the new Array has been created.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}This signal will be sent when the new Array has been created.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Insert Into Array node
---
<##head##>
{/*##head##*/}
# Insert Object Into Array
@@ -16,21 +16,21 @@ This node is used to insert an _Object_ into an _Array_. Both the Array and the
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------- | ----------------------------------------------------------------------------------- |
| <span className="ndl-data">Array Id</span> | <##input:collectionId##>The _Id_ of the Array to insert the Object into.<##input##> |
| <span className="ndl-data">Object Id</span> | <##input:modifyId##>The _Id_ of the Object to insert into the Array.<##input##> |
| <span className="ndl-data">Array Id</span> | {/*##input:collectionId##*/}The _Id_ of the Array to insert the Object into.{/*##input##*/} |
| <span className="ndl-data">Object Id</span> | {/*##input:modifyId##*/}The _Id_ of the Object to insert into the Array.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Sending a signal to this input inserts the Object with the _Id_ set on the input _Object Id_ into the Array with the _Id_ set on the input _Array Id_.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Sending a signal to this input inserts the Object with the _Id_ set on the input _Object Id_ into the Array with the _Id_ set on the input _Array Id_.{/*##input##*/} |
## Outputs
| Signal | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>This signal is sent when the insertion is ready.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}This signal is sent when the insertion is ready.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Remove From Array node
---
<##head##>
{/*##head##*/}
# Remove Object From Array
@@ -17,21 +17,21 @@ If the _Object_ to be removed is not in the array, nothing will happen.
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Array Id</span> | <##input:collectionId##>The _Id_ of the Array from which the Object will be removed.<##input##> |
| <span className="ndl-data">Object Id</span> | <##input:modifyId##>The _Id_ of the Object to remove from the Array.<##input##> |
| <span className="ndl-data">Array Id</span> | {/*##input:collectionId##*/}The _Id_ of the Array from which the Object will be removed.{/*##input##*/} |
| <span className="ndl-data">Object Id</span> | {/*##input:modifyId##*/}The _Id_ of the Object to remove from the Array.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>This actions removes the Object with the _Id_ set on the input _Object Id_ from the Array with the _Id_ set on the input _Array Id_.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}This actions removes the Object with the _Id_ set on the input _Object Id_ from the Array with the _Id_ set on the input _Array Id_.{/*##input##*/} |
## Outputs
| Signal | Description |
| ---------------------------------------- | -------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>This signal is sent when the removal is done.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}This signal is sent when the removal is done.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Static Array node
---
<##head##>
{/*##head##*/}
# Static Array
@@ -16,8 +16,10 @@ Store static data to populate an [Array](/nodes/data/array/array-node) with item
</div>
You can provide the data in either **CSV** format or, **JSON** format. The **items** output is of **Noodl.Array** format. The content of the array is reset whenever the application is refreshed.
<##head##>
You can provide the data in either **CSV** format or, **JSON** format. The **items** output is of **Noodl.Array** format.
The content of the array is reset whenever the application is refreshed.
{/*##head##*/}
## Inputs
@@ -30,33 +32,37 @@ You can provide the data in either **CSV** format or, **JSON** format. The **ite
The first row defines the name of all properties. Subsequent rows defines the data values.
Example:
lamp,topic
Kitchen Lamp,/lamps/1
Office Lamp,/lamps/2
Office Lamp 2,/lamps/4
```
lamp,topic
Kitchen Lamp,/lamps/1
Office Lamp,/lamps/2
Office Lamp 2,/lamps/4
```
### JSON
Define the name of the properties, and the data, using a JSON array.
Example:
[
{
"lamp": "Kitchen Lamp",
"topic": "/lamps/1"
},
{
"lamp": "Office Lamp",
"topic": "/lamps/2"
},
{
"lamp": "Office Lamp 2",
"topic": "/lamps/4"
}
]
```json
[
{
"lamp": "Kitchen Lamp",
"topic": "/lamps/1"
},
{
"lamp": "Office Lamp",
"topic": "/lamps/2"
},
{
"lamp": "Office Lamp 2",
"topic": "/lamps/4"
}
]
```
## Outputs
| Data | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##output:items##>A `Noodl.Array` object that can be connected to e.g. an [Array](/nodes/data/array/array-node), [JavaScript](/docs/guides/business-logic/javascript) or [Repeater](/nodes/ui-controls/repeater).<##output##> |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}A `Noodl.Array` object that can be connected to e.g. an [Array](/nodes/data/array/array-node), [JavaScript](/docs/guides/business-logic/javascript) or [Repeater](/nodes/ui-controls/repeater).{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Boolean node
---
<##head##>
{/*##head##*/}
# Boolean
@@ -24,7 +24,7 @@ You can connect the <span className="ndl-node">Boolean</span> node to a <span cl
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Add Record Relation node
---
<##head##>
{/*##head##*/}
# Add Record Relation
@@ -22,31 +22,31 @@ You need to provide the <span className="ndl-data">Id</span> of the owning recor
Finally, send a <span className="ndl-signal">signal</span> to <span className="ndl-signal">Do</span> to perform the action.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | The **Class** of the owning record where you want to add the related object to. |
| <span className="ndl-data">Id</span> | <##input:id##>Specify the **Id** of the record that you want to use as the owning record to add a relation to.<##input##> This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}Specify the **Id** of the record that you want to use as the owning record to add a relation to.{/*##input##*/} This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Relation</span> | You need to choose the **Relation** property of the owning class to use when creating the relation. |
| <span className="ndl-data">Target Record Id</span> | <##input:target record id##>This input should be connected to the **Id** of the target record of the new relation.<##input##> |
| <span className="ndl-data">Target Record Id</span> | {/*##input:target record id##*/}This input should be connected to the **Id** of the target record of the new relation.{/*##input##*/} |
@include "../_id-source.md"
| Signal | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>When a signal is received on this input the relation will be created in the backend.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}When a signal is received on this input the relation will be created in the backend.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>This is the **Id** of the owning record that have / will receive the new relation. It is simply a mirror of the **Id** input.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>The error message in case something went wrong when attempting to add the relation in the backend.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}This is the **Id** of the owning record that have / will receive the new relation. It is simply a mirror of the **Id** input.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}The error message in case something went wrong when attempting to add the relation in the backend.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent on this output when the relation has been added successfully in the backend.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if something went wrong when adding the relation in the backend. The error message will be outputed on the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent on this output when the relation has been added successfully in the backend.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if something went wrong when adding the relation in the backend. The error message will be outputed on the **Error** output.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Cloud File node
---
<##head##>
{/*##head##*/}
# Cloud File
@@ -23,17 +23,17 @@ Represents a file that has been uploaded to the Noodl Cloud Services and stored
![](/nodes/data/cloud-data/upload-file/upload-file.png)
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Cloud File</span> | <##input:cloud file##>A file that has been stored in the Noodl Cloud Services. Often used in combination with a **Record** to retrieve the **Name** and **URL** of a file.<##input##> |
| <span className="ndl-data">Cloud File</span> | {/*##input:cloud file##*/}A file that has been stored in the Noodl Cloud Services. Often used in combination with a **Record** to retrieve the **Name** and **URL** of a file.{/*##input##*/} |
## Outputs
| Data | Description |
| -------------------------------------- | -------------------------------------------------- |
| <span className="ndl-data">URL</span> | <##output:url##>The URL of the file.<##output##> |
| <span className="ndl-data">Name</span> | <##output:name##>The Name of the file.<##output##> |
| <span className="ndl-data">URL</span> | {/*##output:url##*/}The URL of the file.{/*##output##*/} |
| <span className="ndl-data">Name</span> | {/*##output:name##*/}The Name of the file.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Cloud Function node
---
<##head##>
{/*##head##*/}
# Cloud Function
@@ -38,7 +38,7 @@ If a **Failure** signal is emitted you can also use the **Error** output that wi
If a **Success** signal is sent the result parameters will be available as outputs on the **Cloud Function** node.
<##head##>
{/*##head##*/}
:::note
@@ -53,25 +53,25 @@ This does not happen when running Cloud Functions locally where there is no time
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Function</span> | <##input:functionName##>The cloud function component that this node will call.<##input##> |
| <span className="ndl-data">Function</span> | {/*##input:functionName##*/}The cloud function component that this node will call.{/*##input##*/} |
### Parameters
The **Cloud Function** node will receive all parameters specified in the [Request](/nodes/cloud-functions/request) node in the cloud function component as inputs. When the <span className="ndl-signal">Call</span> signal is received the values on the inputs will be sent to the cloud funciton.
| Signal | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Call</span> | <##input:call##>Send a signal on this input to issue the request to the cloud function.<##input##> |
| <span className="ndl-signal">Call</span> | {/*##input:call##*/}Send a signal on this input to issue the request to the cloud function.{/*##input##*/} |
## Outputs
| Data | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Error</span> | <##output:error##>If the cloud function results in an error status, this output will contain the error message. <##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}If the cloud function results in an error status, this output will contain the error message. {/*##output##*/} |
### Result
The **Cloud Function** node will receive all result parameters specified in any [Response](/nodes/cloud-functions/response) node in the cloud function component that is called. When the cloud function completes and retuns a **Sucess** status, any result parameters sent back will be available on these outputs.
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This is sent if the cloud function returns a **Success** status.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This is sent if the cloud function returns a **Failure** status.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This is sent if the cloud function returns a **Success** status.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This is sent if the cloud function returns a **Failure** status.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Config node
---
<##head##>
{/*##head##*/}
# Config
@@ -24,7 +24,7 @@ You pick a **Parameter** in the properties of the node. First you must specify t
</div>
<##head##>
{/*##head##*/}
When creating a parameter you can specify if it requires the **Master Key** or not. Requiring the master key means that you can only access these parameters in cloud functions, which is important for config parameters that needs to be kept secure.
@@ -58,20 +58,20 @@ For the node above we want a special config parameter for when running locally s
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Parameter</span> | <##input:configKey##>The config parameter to use for this node.<##input##> |
| <span className="ndl-data">Parameter</span> | {/*##input:configKey##*/}The config parameter to use for this node.{/*##input##*/} |
## Local Override
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Enable</span> | <##input:useDevValue##>Checking this will provide a special value for this node when running in the editor or from ```localhost```<##input##> |
| <span className="ndl-data">Value</span> | <##input:devValue##>The value to return from this node when running in the editor or on ```localhost```<##input##> |
| <span className="ndl-data">Enable</span> | {/*##input:useDevValue##*/}Checking this will provide a special value for this node when running in the editor or from ```localhost```{/*##input##*/} |
| <span className="ndl-data">Value</span> | {/*##input:devValue##*/}The value to return from this node when running in the editor or on ```localhost```{/*##input##*/} |
## Outputs
| Data | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Value</span> | <##output:value##>The value for this config parameter for the current active cloud service, or the local override. <##output##> |
| <span className="ndl-data">Value</span> | {/*##output:value##*/}The value for this config parameter for the current active cloud service, or the local override. {/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Create New Record node
---
<##head##>
{/*##head##*/}
# Create New Record
@@ -18,19 +18,19 @@ This node is used to create a new record of a given class. You specify the class
You can also provide values for the properties of the record either via connections or by typing the values in the property panel.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | Choose a class for the record that you want to create. |
| <span className="ndl-data">Source Object Id</span> | <##input:source object id##>This input can be used to provide an object whose properties will be used as the initial values of the newly created record. <##input##> |
| <span className="ndl-data">Property Inputs</span> | When the class of the record to be created is choosen, all properties of that class will be available as inputs. When the **Do** signal is received a new record will be created with the values of the properties either specified in the property panel or via connections. <##input:prop-\*##>The value of these inputs will become the properties of the newly created record.<##input##> |
| <span className="ndl-data">Source Object Id</span> | {/*##input:source object id##*/}This input can be used to provide an object whose properties will be used as the initial values of the newly created record. {/*##input##*/} |
| <span className="ndl-data">Property Inputs</span> | When the class of the record to be created is choosen, all properties of that class will be available as inputs. When the **Do** signal is received a new record will be created with the values of the properties either specified in the property panel or via connections. {/*##input:prop-\*##*/}The value of these inputs will become the properties of the newly created record.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ---------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal on this input to create a new record.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal on this input to create a new record.{/*##input##*/} |
@include "../_acl.md"
@@ -38,10 +38,10 @@ You can also provide values for the properties of the record either via connecti
| Data | Description |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>The **Id** of the new record that was created if the action was successful.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>The specific error message in case something went wrong when creating the record.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The **Id** of the new record that was created if the action was successful.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}The specific error message in case something went wrong when creating the record.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent here when the new record have been created successfully.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if something went wrong when creating the record.<##output##> You can find the specific error in the **Error** output. |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent here when the new record have been created successfully.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if something went wrong when creating the record.{/*##output##*/} You can find the specific error in the **Error** output. |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Delete Record node
---
<##head##>
{/*##head##*/}
# Delete Record
@@ -20,29 +20,29 @@ You will need to provide the **Id** of the record to be deleted, there are multi
Then send a signal on the **Do** input to perform the action.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | You need to select the **Class** of records that this node will act on. |
| <span className="ndl-data">Id</span> | <##input:id##>Specify the **Id** of the record that you want to delete.<##input##> This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}Specify the **Id** of the record that you want to delete.{/*##input##*/} This input is only valid if **Id Source** is set to **Specify explicitly**. |
@include "../_id-source.md"
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>When a signal is received on this input the record will be deleted on the backend.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}When a signal is received on this input the record will be deleted on the backend.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Id</span> | <##output:id##>The **Id** of the record that will be / was deleted by this node. Simply reflecting the **Id** input.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>If something went wrong when deleting the record in the backend, this output will contain the error message.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The **Id** of the record that will be / was deleted by this node. Simply reflecting the **Id** input.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}If something went wrong when deleting the record in the backend, this output will contain the error message.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent on this output when the record have been successfully deleted in the backend.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if something went wrong when attempting to delete the record in the backend.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent on this output when the record have been successfully deleted in the backend.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if something went wrong when attempting to delete the record in the backend.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Filter Record node
---
<##head##>
{/*##head##*/}
# Filter Record
@@ -23,32 +23,32 @@ You can specify both filter and sorting visually.
![](/nodes/data/cloud-data/filter-records/filter-records-visual.png)
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Enabled</span> | <##input:enabled##>If disabled the node will simply pass the input array through without change, if enabled the input array will be filtered and sorted.<##input##> |
| <span className="ndl-data">Enabled</span> | {/*##input:enabled##*/}If disabled the node will simply pass the input array through without change, if enabled the input array will be filtered and sorted.{/*##input##*/} |
| <span className="ndl-data">Class</span> | The **Class** of records that the input array is assumed to contain. |
| <span className="ndl-data">Use Limit</span> | <##input:use limit##>Enabled or disable limiting of the input array to a specific number of maximum records.<##input##> |
| <span className="ndl-data">Limit</span> | <##input:limit##>The number of maximum records to limit the output filtered array to contain.<##input##> |
| <span className="ndl-data">Skip</span> | <##input:skip##>The number of records in the beginning of the output filtered array to skip.<##input##> |
| <span className="ndl-data">Items</span> | <##input:items##>The input array of records that should be filtered by this node.<##input##> |
| <span className="ndl-data">Filter Parameter Inputs</span> | <##input:fp-\*##>Each filter parameter get an input where a connection can be made to provide the value for the paramter.<##input##> |
| <span className="ndl-data">Use Limit</span> | {/*##input:use limit##*/}Enabled or disable limiting of the input array to a specific number of maximum records.{/*##input##*/} |
| <span className="ndl-data">Limit</span> | {/*##input:limit##*/}The number of maximum records to limit the output filtered array to contain.{/*##input##*/} |
| <span className="ndl-data">Skip</span> | {/*##input:skip##*/}The number of records in the beginning of the output filtered array to skip.{/*##input##*/} |
| <span className="ndl-data">Items</span> | {/*##input:items##*/}The input array of records that should be filtered by this node.{/*##input##*/} |
| <span className="ndl-data">Filter Parameter Inputs</span> | {/*##input:fp-\*##*/}Each filter parameter get an input where a connection can be made to provide the value for the paramter.{/*##input##*/} |
| Signal | Description |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Filter</span> | <##input:filter##>Send a signal on this input to perform the filtering, this will produce a new filtered array on the **Items** output. If this input does not have a connection, the input array will be filtered every time it is updated.<##input##> |
| <span className="ndl-signal">Filter</span> | {/*##input:filter##*/}Send a signal on this input to perform the filtering, this will produce a new filtered array on the **Items** output. If this input does not have a connection, the input array will be filtered every time it is updated.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##output:items##>This output will contain the filtered array of records.<##output##> |
| <span className="ndl-data">Count</span> | <##output:count##>The number of records in the filtered output array.<##output##> |
| <span className="ndl-data">First Record Id</span> | <##output:first record id##>The **Id** of the first record in the filtered output array.<##output##> |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}This output will contain the filtered array of records.{/*##output##*/} |
| <span className="ndl-data">Count</span> | {/*##output:count##*/}The number of records in the filtered output array.{/*##output##*/} |
| <span className="ndl-data">First Record Id</span> | {/*##output:first record id##*/}The **Id** of the first record in the filtered output array.{/*##output##*/} |
| Signal | Description |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Filtered</span> | <##output:filtered##>A signal will be sent on this output when the input array have been successfully filtered.<##output##> |
| <span className="ndl-signal">Filtered</span> | {/*##output:filtered##*/}A signal will be sent on this output when the input array have been successfully filtered.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Query Records node
---
<##head##>
{/*##head##*/}
# Query Records
@@ -24,7 +24,7 @@ You can specify the query using filter, sorting and limit in the Property Panel.
</div>
<##head##>
{/*##head##*/}
## Filters
@@ -320,27 +320,27 @@ sort(["-Age", "createdAt"]);
| --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | Select the **Class** for the types of records this node should query. When the **Class** is selected you can create filters and sorting based on the properties of the **Class**. |
| <span className="ndl-data">Filter</span> | This specifies the type of filter, you can choose from:<br/><br/>`Visual`: Specify your filter using the visual filter editor.<br/>`JavaScript`: Specify your filter using JavaScript (this is more flexible and you can create more dynamic queyries but it's also more complex) |
| <span className="ndl-data">Use Limit</span> | <##input:use limit##>Enable or disable the use of limit, i.e. that you can specify how many records are returned as a maximum and if a number of record should be skipped.<##input##> |
| <span className="ndl-data">Limit</span> | <##input:limit##>The maximum number of records to be returned by the backend.<##input##> |
| <span className="ndl-data">Skip</span> | <##input:skip##>This property allows you to skip a number of records from being returned by the backend. Using **Skip** and **Limit** allows you to do paging, e.g. return records from 10-20.<##input##> |
| <span className="ndl-data">Fetch Total Count</span> | <##input:storageEnableCount##>Enable this to also query for the total count of records matching the filters. Even if you limit the returned result. <##input##> |
| <span className="ndl-data">Query Parameters</span> | <##input:qp-\*##>The input for specifying the value of a query parameter.<##input##> Each paramteter used in your query will get an input where you can provide a value through a connection.<##input##> |
| <span className="ndl-data">Use Limit</span> | {/*##input:use limit##*/}Enable or disable the use of limit, i.e. that you can specify how many records are returned as a maximum and if a number of record should be skipped.{/*##input##*/} |
| <span className="ndl-data">Limit</span> | {/*##input:limit##*/}The maximum number of records to be returned by the backend.{/*##input##*/} |
| <span className="ndl-data">Skip</span> | {/*##input:skip##*/}This property allows you to skip a number of records from being returned by the backend. Using **Skip** and **Limit** allows you to do paging, e.g. return records from 10-20.{/*##input##*/} |
| <span className="ndl-data">Fetch Total Count</span> | {/*##input:storageEnableCount##*/}Enable this to also query for the total count of records matching the filters. Even if you limit the returned result. {/*##input##*/} |
| <span className="ndl-data">Query Parameters</span> | {/*##input:qp-\*##*/}The input for specifying the value of a query parameter.{/*##input##*/} Each paramteter used in your query will get an input where you can provide a value through a connection.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal here to perform the query and fetch matching records from the backend.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal here to perform the query and fetch matching records from the backend.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Items</span> | <##output:items##>The result of the query as an array of **Records**.<##output##> |
| <span className="ndl-data">Count</span> | <##output:count##>The number of records in the result.<##output##> |
| <span className="ndl-data">First Record Id</span> | <##output:first record id##>The Id of the first Record in the result array.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>This output contains the error message incase something when wrong when executing the query.<##output##> |
| <span className="ndl-data">Total Count</span> | <##output:storageTotalCount##>If **Fetch Total Count** is enabled then this output will contain the total number of records that match the query. Even if you limit the returned result.<##output##> |
| <span className="ndl-data">Items</span> | {/*##output:items##*/}The result of the query as an array of **Records**.{/*##output##*/} |
| <span className="ndl-data">Count</span> | {/*##output:count##*/}The number of records in the result.{/*##output##*/} |
| <span className="ndl-data">First Record Id</span> | {/*##output:first record id##*/}The Id of the first Record in the result array.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output contains the error message incase something when wrong when executing the query.{/*##output##*/} |
| <span className="ndl-data">Total Count</span> | {/*##output:storageTotalCount##*/}If **Fetch Total Count** is enabled then this output will contain the total number of records that match the query. Even if you limit the returned result.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent here if the query was successful and the result is ready.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent here if something went wrong with the query. You can find the error message via the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent here if the query was successful and the result is ready.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent here if something went wrong with the query. You can find the error message via the **Error** output.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Record node
---
<##head##>
{/*##head##*/}
# Record
@@ -19,32 +19,32 @@ This node is used to read data from a **Record**. A **Record** is an **Object**
You have to choose the class for the **Record** node in the property panel and you must make sure that the node has the Id of the record it should access (there are multiple ways to do this, see full docs for details).
Then you can access the properties of the specific **Record** through the property outputs.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | Select the **Class** for this Records that this node will get data from. Choosing the **Class** will make the node get all properties of the class as outputs. |
| <span className="ndl-data">Id</span> | <##input:id##>The Id of the **Record** that this node should read data from.<##input##> |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}The Id of the **Record** that this node should read data from.{/*##input##*/} |
@include "../_id-source.md"
| Signal | Description |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Fetch</span> | <##input:fetch##>Send a signal on this input to fetch the data for this **Record** from the backend. All **Record** nodes that share the **Id** with this node (i.e. are reading data from the same record) will be updated.<##input##> |
| <span className="ndl-signal">Fetch</span> | {/*##input:fetch##*/}Send a signal on this input to fetch the data for this **Record** from the backend. All **Record** nodes that share the **Id** with this node (i.e. are reading data from the same record) will be updated.{/*##input##*/} |
## Outputs
| Data | Description |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>The Id of the **Record** this node is accessing the properties for.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>This will contain the error message if a fetch action failed and the **Failure** signal was emitted.<##output##> |
| <span className="ndl-data">Class Properties</span> | <##output:prop-\*##>The value of this property in the record that the node reads from.<##output##> This node will have an output for each property in the **Class** that have been selected on the node. |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The Id of the **Record** this node is accessing the properties for.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This will contain the error message if a fetch action failed and the **Failure** signal was emitted.{/*##output##*/} |
| <span className="ndl-data">Class Properties</span> | {/*##output:prop-\*##*/}The value of this property in the record that the node reads from.{/*##output##*/} This node will have an output for each property in the **Class** that have been selected on the node. |
| Signal | Description |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Fetched</span> | <##output:fetched##>A signal is sent on this output when a **Fetch** has been completed successfully. This is as a result of triggering a fetch by sending a signal to the **Fetch** input.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if a fetch action has failed. This is a potential result of triggering a fetch by sending a signal to the **Fetch** input.<##output##> |
| <span className="ndl-signal">Changed</span> | <##output:changed##>A signal is sent on this output if the record that this node is reading data from has changed locally.<##output##> |
| <span className="ndl-signal">Property Changed Signal</span> | <##output:changed-\*##>A signal is sent here if the value of the property on the record this node is reading data from has changed locally.<##output##> |
| <span className="ndl-signal">Fetched</span> | {/*##output:fetched##*/}A signal is sent on this output when a **Fetch** has been completed successfully. This is as a result of triggering a fetch by sending a signal to the **Fetch** input.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if a fetch action has failed. This is a potential result of triggering a fetch by sending a signal to the **Fetch** input.{/*##output##*/} |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}A signal is sent on this output if the record that this node is reading data from has changed locally.{/*##output##*/} |
| <span className="ndl-signal">Property Changed Signal</span> | {/*##output:changed-\*##*/}A signal is sent here if the value of the property on the record this node is reading data from has changed locally.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Remove Record Relation node
---
<##head##>
{/*##head##*/}
# Remove Record Relation
@@ -22,31 +22,31 @@ You need to provide the <span className="ndl-data">Id</span> of the owning recor
Finally, send a <span className="ndl-signal">signal</span> to <span className="ndl-signal">Do</span> to perform the action.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | The **Class** of the owning record where you want to remove the relation from. |
| <span className="ndl-data">Id</span> | <##input:id##>Specify the **Id** of the record that you want to use as the owning record to remove an existing relation from.<##input##> This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}Specify the **Id** of the record that you want to use as the owning record to remove an existing relation from.{/*##input##*/} This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Relation</span> | You need to choose the **Relation** property of the owning class to use when removing the relation. |
| <span className="ndl-data">Target Record Id</span> | <##input:target record id##>This input should be connected to the **Id** of the target record that have an existing relation to the owning record via the **Relation** property that should be removed.<##input##> |
| <span className="ndl-data">Target Record Id</span> | {/*##input:target record id##*/}This input should be connected to the **Id** of the target record that have an existing relation to the owning record via the **Relation** property that should be removed.{/*##input##*/} |
@include "../_id-source.md"
| Signal | Description |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>When a signal is received on this input the relation will be removed in the backend, if it exists.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}When a signal is received on this input the relation will be removed in the backend, if it exists.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>This is the **Id** of the owning record. It is simply a mirror of the **Id** input.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>The error message in case something went wrong when attempting to remove the relation in the backend.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}This is the **Id** of the owning record. It is simply a mirror of the **Id** input.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}The error message in case something went wrong when attempting to remove the relation in the backend.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent on this output when the relation has been removed successfully in the backend.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if something went wrong when removing the relation in the backend. The error message will be outputed on the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent on this output when the relation has been removed successfully in the backend.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if something went wrong when removing the relation in the backend. The error message will be outputed on the **Error** output.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Set Record Properties node
---
<##head##>
{/*##head##*/}
# Set Record Properties
@@ -19,23 +19,23 @@ This action node will set property values of a record.
You need specify the class of the record in the property panel. Then you can either specify the values of the properties to set in the property panel or by providing them as an input connection.
Send a <span className="ndl-signal">signal</span> to <span className="ndl-signal">Do</span> to perform the action.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Class</span> | The class of record for this node. Choosing the class will determine which property inputs that become available on the node. |
| <span className="ndl-data">Store to</span> | <##input:store to##>Specifies if this node should store both to the cloud and locally, or only locally.<##input##> |
| <span className="ndl-data">Properties to store</span> | <##input:properties to store##>Specifies if only the explicitly specified properties should be save, **only specified**, this means that only the properties that have a value either in the property panel or via an input connection will be written to the cloud record. If **All** is selected that means that all properties will always be written, if there is no explicit value provided on this node the value of the object with the corresponding **Id** will be used.<##input##> |
| <span className="ndl-data">Id</span> | <##input:id##>Specify the **Id** of the record that you want to set the properties on.<##input##> This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Property Inputs</span> | <##input:prop-\*##>The value to set this property to when the action is triggered.<##input##> For each property in the specified class there will be an input of the correct type. You can provide the values for the inputs either through connections or by specifying them in the property panel. |
| <span className="ndl-data">Store to</span> | {/*##input:store to##*/}Specifies if this node should store both to the cloud and locally, or only locally.{/*##input##*/} |
| <span className="ndl-data">Properties to store</span> | {/*##input:properties to store##*/}Specifies if only the explicitly specified properties should be save, **only specified**, this means that only the properties that have a value either in the property panel or via an input connection will be written to the cloud record. If **All** is selected that means that all properties will always be written, if there is no explicit value provided on this node the value of the object with the corresponding **Id** will be used.{/*##input##*/} |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}Specify the **Id** of the record that you want to set the properties on.{/*##input##*/} This input is only valid if **Id Source** is set to **Specify explicitly**. |
| <span className="ndl-data">Property Inputs</span> | {/*##input:prop-\*##*/}The value to set this property to when the action is triggered.{/*##input##*/} For each property in the specified class there will be an input of the correct type. You can provide the values for the inputs either through connections or by specifying them in the property panel. |
@include "../_id-source.md"
| Signal | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>When a signal is received on this input the properties will be set on the record.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}When a signal is received on this input the properties will be set on the record.{/*##input##*/} |
@include "../_acl.md"
@@ -43,10 +43,10 @@ Send a <span className="ndl-signal">signal</span> to <span className="ndl-signal
| Data | Description |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Id</span> | <##output:id##>The **Id** of the record where the properties will be updated by this node.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>The specific error message in case something went wrong when updating the record.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The **Id** of the record where the properties will be updated by this node.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}The specific error message in case something went wrong when updating the record.{/*##output##*/} |
| Signal | Description |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>A signal is sent here when the record have been updated successfully.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>A signal is sent on this output if something went wrong when updating the record.<##output##> You can find the specific error in the **Error** output. |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}A signal is sent here when the record have been updated successfully.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}A signal is sent on this output if something went wrong when updating the record.{/*##output##*/} You can find the specific error in the **Error** output. |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Upload File node
---
<##head##>
{/*##head##*/}
# Upload File
@@ -15,31 +15,31 @@ This node uploads a file to the Noodl Cloud Services. Can be used in combination
![](/nodes/data/cloud-data/upload-file/upload-file.png)
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">File</span> | <##input:file##>An HTML5 [File](https://developer.mozilla.org/en-US/docs/Web/API/File). The [File Picker](/nodes/utilities/open-file-picker) can be used to open a file dialog picker and generate the **File** from a local file. It's also possible to retrieve the File from external sources, or generate it by code. <##input##> |
| <span className="ndl-data">File</span> | {/*##input:file##*/}An HTML5 [File](https://developer.mozilla.org/en-US/docs/Web/API/File). The [File Picker](/nodes/utilities/open-file-picker) can be used to open a file dialog picker and generate the **File** from a local file. It's also possible to retrieve the File from external sources, or generate it by code. {/*##input##*/} |
| Signal | Description |
| ------------------------------------------ | ---------------------------------------------------------- |
| <span className="ndl-signal">Upload</span> | <##input:upload##>Triggers the upload to start.<##input##> |
| <span className="ndl-signal">Upload</span> | {/*##input:upload##*/}Triggers the upload to start.{/*##input##*/} |
## Outputs
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Cloud File</span> | <##output:cloudFile##>A [Cloud File](/nodes/data/cloud-data/cloud-file), which consists of an URL and a file name. Can be connected to a property of a [Record](/nodes/data/cloud-data/record) if the property type is specified as 'File'.<##output##> |
| <span className="ndl-data">Total Bytes</span> | <##output:progressTotalBytes##>The total size of the file in bytes that is being uploaded.<##output##> |
| <span className="ndl-data">Uploaded Bytes</span> | <##output:progressLoadedBytes##>Contains the number of bytes have been uploaded so far. Starts at 0, and moves towards **Total Bytes** after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.<##output##> |
| <span className="ndl-data">Uploaded Percent</span> | <##output:progressLoadedPercent##>The current percentage of the file that have been uploaded. Starts at 0, and moves towards 100 after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.<##output##> |
| <span className="ndl-data">Error</span> | <##output:error##>The error message as a string, if the upload fails.<##output##> |
| <span className="ndl-data">Error Status Code</span> | <##output:errorStatus##>An [HTTP error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status). For example, `413` if the file is too large.<##output##> |
| <span className="ndl-data">Cloud File</span> | {/*##output:cloudFile##*/}A [Cloud File](/nodes/data/cloud-data/cloud-file), which consists of an URL and a file name. Can be connected to a property of a [Record](/nodes/data/cloud-data/record) if the property type is specified as 'File'.{/*##output##*/} |
| <span className="ndl-data">Total Bytes</span> | {/*##output:progressTotalBytes##*/}The total size of the file in bytes that is being uploaded.{/*##output##*/} |
| <span className="ndl-data">Uploaded Bytes</span> | {/*##output:progressLoadedBytes##*/}Contains the number of bytes have been uploaded so far. Starts at 0, and moves towards **Total Bytes** after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.{/*##output##*/} |
| <span className="ndl-data">Uploaded Percent</span> | {/*##output:progressLoadedPercent##*/}The current percentage of the file that have been uploaded. Starts at 0, and moves towards 100 after the **Upload** input signal has been triggered. The value is updated each time the **Progress Changed** event is sent.{/*##output##*/} |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}The error message as a string, if the upload fails.{/*##output##*/} |
| <span className="ndl-data">Error Status Code</span> | {/*##output:errorStatus##*/}An [HTTP error code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status). For example, `413` if the file is too large.{/*##output##*/} |
| Signal | Description |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Progress Changed</span> | <##output:progressChanged##>This event is used to track the upload progress. It is triggered multiple times during an upload when **Uploaded Bytes** and **Uploaded Percent** are updated.<##output##> |
| <span className="ndl-signal">Success</span> | <##output:success##>This event triggers when the file was uploaded successfully.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This event triggers if there was en error uploading the file.<##output##> |
| <span className="ndl-signal">Progress Changed</span> | {/*##output:progressChanged##*/}This event is used to track the upload progress. It is triggered multiple times during an upload when **Uploaded Bytes** and **Uploaded Percent** are updated.{/*##output##*/} |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This event triggers when the file was uploaded successfully.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This event triggers if there was en error uploading the file.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Color node
---
<##head##>
{/*##head##*/}
# Color
@@ -18,7 +18,7 @@ This node holds a <span className="ndl-data">color</span> value.
The <span className="ndl-data">color</span> value can either be static or dynamic using the <span className="ndl-data">Value</span> and <span className="ndl-signal">Set</span> inputs.
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Number node
---
<##head##>
{/*##head##*/}
# Number
@@ -24,7 +24,7 @@ You can also use the <span className="ndl-node">Number</span> node connected to
</div>
<##head##>
{/*##head##*/}
## Inputs

View File

@@ -2,4 +2,4 @@
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Properties To Set</span> | You can specify which properties to set by adding them to this list. Object don't have a schema with predefined properties like Records so you can choose any property name you want. |
| <span className="ndl-data">Property Types</span> | Each property that you want to set will give you the option of setting the type of the value that you want to set to that property. |
| <span className="ndl-data">Property Values</span> | <##input:prop-\*##>The value to set on the Object property when the action is performed. (Signal is receieved on the **Do** input)<##input##> Each property that you want to set (that was added to the **Properties to set** section above) will get it's own input both in the property panel and as a connection input. |
| <span className="ndl-data">Property Values</span> | {/*##input:prop-\*##*/}The value to set on the Object property when the action is performed. (Signal is receieved on the **Do** input){/*##input##*/} Each property that you want to set (that was added to the **Properties to set** section above) will get it's own input both in the property panel and as a connection input. |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Create New Object node
---
<##head##>
{/*##head##*/}
# Create New Object
@@ -18,7 +18,7 @@ The node can be used to create a fresh new [Object](/nodes/data/object/object-no
You can provide any number of properties with values for your new Object. When the **Done** signal is sent the Object is created and you can perform other actions using the Object.
<##head##>
{/*##head##*/}
## Inputs
@@ -26,14 +26,14 @@ You can provide any number of properties with values for your new Object. When t
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal in this input to create the new Object with the provided properties.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal in this input to create the new Object with the provided properties.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Id</span> | <##output:id##>The **Id** of the newly created object, this output is valid only when the **Done** signal has been sent.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The **Id** of the newly created object, this output is valid only when the **Done** signal has been sent.{/*##output##*/} |
| Signal | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Done</span> | <##output:done##>A signal is sent on this output when the Object have been created.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}A signal is sent on this output when the Object have been created.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Object node
---
<##head##>
{/*##head##*/}
# Object
@@ -24,7 +24,7 @@ The **Object** node is typically used together with the [Create New Object](/nod
</div>
<##head##>
{/*##head##*/}
You can also create and refer to an object statically (i.e. not using a [Create New Object](/nodes/data/object/create-new-object) by settings its **Id**. Generally, the **Id** is a global identifyer of the **Object** meaning that any **Object** nodes with the same idea will refer to the same data. If you change the properties in one **Object** node the values of all **Object** nodes with the same **Id** will be changed immediately, unless if you connect the **Fetch** signal.
@@ -42,11 +42,11 @@ Generally you use **Objects** as data holder for data that does not need to be s
| Data | Description |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Custom Properties</span> | An **Object** node can have any amount of properties. Each property will get one input and output to set/get their current value. |
| <span className="ndl-data">Id</span> | <##input:id##>Set the _Id_ for this **Object**. All **Object** nodes with the same _Id_ will refer to the same data and have the same properties.<##input##> Changing a value of any property will immediately update the property in all other **Object** nodes with the same **Id** (unless if you connect the **Fetch** signal to a specific _Object_ node, see below). |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}Set the _Id_ for this **Object**. All **Object** nodes with the same _Id_ will refer to the same data and have the same properties.{/*##input##*/} Changing a value of any property will immediately update the property in all other **Object** nodes with the same **Id** (unless if you connect the **Fetch** signal to a specific _Object_ node, see below). |
| Signal | Description |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Fetch</span> | <##output:fetch##>Normally when an **Object** _Id_ is set, the property outputs are immediately updated. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal here for the **Object** node to fetch the data.<##output##> |
| <span className="ndl-signal">Fetch</span> | {/*##output:fetch##*/}Normally when an **Object** _Id_ is set, the property outputs are immediately updated. If you want to control how the data is updated you can connect to the _Fetch_ signal input. Then you need to explictly send a signal here for the **Object** node to fetch the data.{/*##output##*/} |
## Outputs
@@ -54,17 +54,17 @@ Generally you use **Objects** as data holder for data that does not need to be s
| Data | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Id</span> | <##output:id##>The _Id_ for this **Object** node.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The _Id_ for this **Object** node.{/*##output##*/} |
| <span className="ndl-data">Custom Properties</span> | An **Object** can have any amount of properties. Each property will get one output to get the current value. |
| Signal | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Changed</span> | <##output:changed##>Signal when any of the properties of this **Object** have changed.<##output##> |
| <span className="ndl-signal">Fetched</span> | <##output:fetched##>Signal when the **Object** has fetched and updated it's outputs. Note that the event is triggered no matter if the properties have changed or not.<##output##> |
| <span className="ndl-signal">Changed</span> | {/*##output:changed##*/}Signal when any of the properties of this **Object** have changed.{/*##output##*/} |
| <span className="ndl-signal">Fetched</span> | {/*##output:fetched##*/}Signal when the **Object** has fetched and updated it's outputs. Note that the event is triggered no matter if the properties have changed or not.{/*##output##*/} |
| <span className="ndl-signal">Changed Property Signals</span> | An **Object** will also get changed signal outputs for each of it's properties. They will emit a signal when the property changes value when this or some other **Object** node with the same _Id_ triggers a set. |
<span className="hidden-props-for-editor"><##output:changed-\*##>Triggered when this user defined property is changed.<##output##></span>
<span className="hidden-props-for-editor">{/*##output:changed-\*##*/}Triggered when this user defined property is changed.{/*##output##*/}</span>
<span className="hidden-props-for-editor"><##input:prop-\*##>User defined property.<##input##></span>
<span className="hidden-props-for-editor">{/*##input:prop-\*##*/}User defined property.{/*##input##*/}</span>
<span className="hidden-props-for-editor"><##output:prop-\*##>User defined property.<##output##></span>
<span className="hidden-props-for-editor">{/*##output:prop-\*##*/}User defined property.{/*##output##*/}</span>

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Set Object Properties node
---
<##head##>
{/*##head##*/}
# Set Object Properties
@@ -26,7 +26,7 @@ You can then specify which properties you want to set on the Object in the prope
Finally, send a signal to **Do** to perform the action.
<##head##>
{/*##head##*/}
## Inputs
@@ -35,18 +35,18 @@ Finally, send a signal to **Do** to perform the action.
| Data | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Id Source</span> | An Id of a record is needed to perform the action of this node. The **Id Source** property specifies how this Id is retrieved, the options are:<br/><br/>`Specify explicitly`: This means you need to specify the Id of the record explicitly through e.g. a connection to the **Id** input.<br/>`From repeater`: This means that the Id for the record will be derived from a repeater. This option is only valid if the component this node is placed in is created by a repeater. Then this node will act on the repeater object that this component was created for. |
| <span className="ndl-data">Id</span> | <##input:id##>On this input you provide the **Id** of the object where you will set the properties.<##input##> |
| <span className="ndl-data">Id</span> | {/*##input:id##*/}On this input you provide the **Id** of the object where you will set the properties.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | -------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal on this input to perform the action and set the properties.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal on this input to perform the action and set the properties.{/*##input##*/} |
## Outputs
| Data | Description |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-data">Id</span> | <##output:id##>The **Id** of the Object where you will / have set the properties. This is simply a mirror of the **Id** input.<##output##> |
| <span className="ndl-data">Id</span> | {/*##output:id##*/}The **Id** of the Object where you will / have set the properties. This is simply a mirror of the **Id** input.{/*##output##*/} |
| Signal | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <span className="ndl-signal">Done</span> | <##output:done##>A signal is sent on this output when the action is performed. You can use this to trigger other actions that needs to run after the properties have been set.<##output##> |
| <span className="ndl-signal">Done</span> | {/*##output:done##*/}A signal is sent on this output when the action is performed. You can use this to trigger other actions that needs to run after the properties have been set.{/*##output##*/} |

View File

@@ -3,7 +3,7 @@ hide_title: true
title: REST node
---
<##head##>
{/*##head##*/}
# REST
@@ -17,7 +17,7 @@ This node is used to connect to external [REST](https://en.wikipedia.org/wiki/Re
You initiate the request by sending a <span className="ndl-signal">signal</span> to the <span className="ndl-signal">Fetch</span> input. Any inputs and outputs to the node are specified in the `request` and `response` scripts.
<##head##>
{/*##head##*/}
## Request and response script

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Run Tasks node
---
<##head##>
{/*##head##*/}
# Run Tasks
@@ -24,7 +24,7 @@ The <span className="ndl-node">Run Tasks</span> node needs a task component that
</div>
<##head##>
{/*##head##*/}
You can control the behaviour of how the tasks are run with the properties.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: String node
---
<##head##>
{/*##head##*/}
# String
@@ -18,7 +18,7 @@ This node contains a <span className="ndl-data">string</span> value (text). It c
You can also use the String node connected to a <span className="ndl-node">Component Inputs</span> node. This will make sure the input shows up as a <span className="ndl-data">string</span> input in the Property Panel for instances of this component.
<##head##>
{/*##head##*/}
You can use it to provide a static value for input to other nodes. It is local to the component and cannot be accessed anywhere else in the graph.

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Log In node
---
<##head##>
{/*##head##*/}
# Log In
@@ -24,26 +24,26 @@ Once a user is logged in, their data can be accessed through the <span className
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| ------------------------------------------ | --------------------------------------------------------------------------------- |
| <span className="ndl-data">Username</span> | <##input:username##>The username of the user that should be logged in.<##input##> |
| <span className="ndl-data">Password</span> | <##input:password##>The password of the user that should be logged in.<##input##> |
| <span className="ndl-data">Username</span> | {/*##input:username##*/}The username of the user that should be logged in.{/*##input##*/} |
| <span className="ndl-data">Password</span> | {/*##input:password##*/}The password of the user that should be logged in.{/*##input##*/} |
| Signal | Description |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal to this action to log in the user. You need to make sure the **Username** and **Password** is connected, these will be sent to the backend for authentication.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal to this action to log in the user. You need to make sure the **Username** and **Password** is connected, these will be sent to the backend for authentication.{/*##input##*/} |
## Outputs
| Signal | Description |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This event will be triggered if the log in was succesful.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This event will be triggered if something went wrong while trying to log in the user. The error message can be found in the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This event will be triggered if the log in was succesful.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This event will be triggered if something went wrong while trying to log in the user. The error message can be found in the **Error** output.{/*##output##*/} |
| Data | Description |
| --------------------------------------- | ---------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Error</span> | <##output:error##>This output will contain the error message if the log in failed.<##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output will contain the error message if the log in failed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Log Out node
---
<##head##>
{/*##head##*/}
# Log Out
@@ -16,21 +16,21 @@ This node is used to log out a user from the current session. That means that th
</div>
<##head##>
{/*##head##*/}
## Inputs
| Signal | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal to this action to logout the user. The user session will be removed from the browser.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal to this action to logout the user. The user session will be removed from the browser.{/*##input##*/} |
## Outputs
| Signal | Description |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This event will be triggered if the logout was succesful.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This event will be triggered if something went wrong while trying to logout the user. The error message can be found in the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This event will be triggered if the logout was succesful.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This event will be triggered if something went wrong while trying to logout the user. The error message can be found in the **Error** output.{/*##output##*/} |
| Data | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Error</span> | <##output:error##>This output will contain the error message if the log out failed.<##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output will contain the error message if the log out failed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Set User Properties node
---
<##head##>
{/*##head##*/}
# Set User Properties
@@ -17,26 +17,26 @@ This node is used to set properties on the currently logged in user.
</div>
A user needs to be logged in via either the <span className="ndl-node">Sign Up</span> node or the <span className="ndl-node">Log In</span> node. If you want to read user properties of the currently logged in user you can use the <span className="ndl-node">User</span> node.
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Email</span> | <##input:email##>This input is used to set the **Email** property.<##input##> |
| <span className="ndl-data">Your custom properties</span> | <##input:prop-\*##>A property of the **User** class. You can add additional properties to the **User** class in the Noodl Cloud Services dashboard. <##input##> These will show up as inputs on the **Set User Properties** node. |
| <span className="ndl-data">Email</span> | {/*##input:email##*/}This input is used to set the **Email** property.{/*##input##*/} |
| <span className="ndl-data">Your custom properties</span> | {/*##input:prop-\*##*/}A property of the **User** class. You can add additional properties to the **User** class in the Noodl Cloud Services dashboard. {/*##input##*/} These will show up as inputs on the **Set User Properties** node. |
| Signal | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal to this input to store the properties in the user record in the Noodl Cloud Services. Once completed the **Success** or **Failure** action will be triggered.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal to this input to store the properties in the user record in the Noodl Cloud Services. Once completed the **Success** or **Failure** action will be triggered.{/*##input##*/} |
## Outputs
| Signal | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This event will be triggered if the properties was succesfully stored.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This event will be triggered if something went wrong while trying to store the properties on the **User** record in the Noodl Cloud Services. The error message can be found in the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This event will be triggered if the properties was succesfully stored.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This event will be triggered if something went wrong while trying to store the properties on the **User** record in the Noodl Cloud Services. The error message can be found in the **Error** output.{/*##output##*/} |
| Data | Description |
| --------------------------------------- | ---------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Error</span> | <##output:error##>This output will contain the error message if the action failed.<##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output will contain the error message if the action failed.{/*##output##*/} |

View File

@@ -4,7 +4,7 @@ hide_table_of_contents: true
title: Sign Up node
---
<##head##>
{/*##head##*/}
# Sign Up
@@ -24,28 +24,28 @@ The <span className="ndl-node">Sign Up</span> node is the easiest way to handle
</div>
<##head##>
{/*##head##*/}
## Inputs
| Data | Description |
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Username</span> | <##input:username##>This is the username of the new user that is going to sign up. It is required that this input has a value and it must be unique, or the sign up will fail.<##input##> |
| <span className="ndl-data">Password</span> | <##input:password##>This input should contain the password for the new user.<##input##> |
| <span className="ndl-data">Email</span> | <##input:email##>Optionally the new user can be given assigned an email.<##input##> |
| <span className="ndl-data">Your custom properties</span> | <##input:prop-\*##>A property of the **User** class. You can add additional properties to the **User** class in the Noodl Cloud Services dashboard. <##input##> These will show up as inputs on the **Sign Up** node to optionally bhe given a value during sign up. |
| <span className="ndl-data">Username</span> | {/*##input:username##*/}This is the username of the new user that is going to sign up. It is required that this input has a value and it must be unique, or the sign up will fail.{/*##input##*/} |
| <span className="ndl-data">Password</span> | {/*##input:password##*/}This input should contain the password for the new user.{/*##input##*/} |
| <span className="ndl-data">Email</span> | {/*##input:email##*/}Optionally the new user can be given assigned an email.{/*##input##*/} |
| <span className="ndl-data">Your custom properties</span> | {/*##input:prop-\*##*/}A property of the **User** class. You can add additional properties to the **User** class in the Noodl Cloud Services dashboard. {/*##input##*/} These will show up as inputs on the **Sign Up** node to optionally bhe given a value during sign up. |
| Signal | Description |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Do</span> | <##input:do##>Send a signal to this action to trigger the sign up. Once completed the **Success** or **Failure** event will be triggered.<##input##> |
| <span className="ndl-signal">Do</span> | {/*##input:do##*/}Send a signal to this action to trigger the sign up. Once completed the **Success** or **Failure** event will be triggered.{/*##input##*/} |
## Outputs
| Signal | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <span className="ndl-signal">Success</span> | <##output:success##>This action will be triggered if the sign up was succesful. The user is now logged in and information about the user can be accessed via the **User** node.<##output##> |
| <span className="ndl-signal">Failure</span> | <##output:failure##>This action will be triggered if something went wrong while trying to sign up the user. The error message can be found in the **Error** output.<##output##> |
| <span className="ndl-signal">Success</span> | {/*##output:success##*/}This action will be triggered if the sign up was succesful. The user is now logged in and information about the user can be accessed via the **User** node.{/*##output##*/} |
| <span className="ndl-signal">Failure</span> | {/*##output:failure##*/}This action will be triggered if something went wrong while trying to sign up the user. The error message can be found in the **Error** output.{/*##output##*/} |
| Data | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------- |
| <span className="ndl-data">Error</span> | <##output:error##>This output will contain the error message if the sign up failed.<##output##> |
| <span className="ndl-data">Error</span> | {/*##output:error##*/}This output will contain the error message if the sign up failed.{/*##output##*/} |

Some files were not shown because too many files have changed in this diff Show More