Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ For apps on Mendix Cloud, it is not possible to upload files bigger than 1 GB to
##### Request Parameters

* `AppId` (String): Subdomain name of an app
* `PackageName` (String): the name given to the package (MDA) when it is uploadedif this is omitted, it will be given the name *default.mda*
* `PackageName` (String): the name given to the package (MDA) when it is uploadedif this is omitted, it will be given the name *default.mda*
* `file` (File): Deployment package as multipart/form-data (see [IETF RFC 7578: Returning Values from Forms: multipart/form-data](https://tools.ietf.org/html/rfc7578))

##### Example Request
Expand Down Expand Up @@ -106,7 +106,7 @@ The API call returns the following JSON:
Where:

* `<packageID>` is the ID of the package which will be created by the API
* `<JobID>` is the ID of the job that is creating the packagethe status of the job can be interrogated with the [Job Status](#job-status) API
* `<JobID>` is the ID of the job that is creating the packagethe status of the job can be interrogated with the [Job Status](#job-status) API

### Job Status{#job-status}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@ The design property above was renamed from **my Dropdown Propery** to **My Dropd
This feature was introduced in Mendix 9.
{{% /alert %}}

It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.
It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.

Here is an example of a **Toggle** property that was renamed from a **Dropdown** option:

Expand Down Expand Up @@ -659,7 +659,7 @@ The design property above is a replacement for the removed properties **Bold tex

### Renaming a Dropdown Option to a Spacing Option

You can rename options of a **Dropdown** property to an option of a **Spacing** property. In this case, the old name of the renamed options consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the original property to still existit may have been removed entirely.
You can rename options of a **Dropdown** property to an option of a **Spacing** property. In this case, the old name of the renamed options consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the original property to still existit may have been removed entirely.

Here is an example of a **Spacing** property that includes options that have been renamed from a **Dropdown** option:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ The design property above was renamed from **my Dropdown Propery** to **My Dropd
This feature was introduced in Mendix 9.
{{% /alert %}}

It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.
It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.

Here is an example of a **Toggle** property that was renamed from a **Dropdown** option:

Expand Down Expand Up @@ -639,7 +639,7 @@ The design property above is a replacement for the removed properties **Bold tex

### Renaming a Dropdown Option to a Spacing Option

You can rename options of a **Dropdown** property to an option of a **Spacing** property. In this case, the old name of the renamed options consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the original property to still existit may have been removed entirely.
You can rename options of a **Dropdown** property to an option of a **Spacing** property. In this case, the old name of the renamed options consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the original property to still existit may have been removed entirely.

Here is an example of a **Spacing** property that includes options that have been renamed from a **Dropdown** option:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ The design property above was renamed from **my Dropdown Propery** to **My Dropd
This feature was introduced in Mendix 9.
{{% /alert %}}

It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.
It is also possible to rename an option of a **Dropdown** property to a separate **Toggle** property. In this case, the old name of the **Toggle** property consists of the **Dropdown** property's name and the option's name separated by two colons. It is not required for the **Dropdown** property to still existit may have been removed entirely.

Here is an example of a **Toggle** property that was renamed from a **Dropdown** option:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ The essential part of a pluggable widget is its client component: a React compon

The client component is mainly focused on presentation and interaction with an end-user, while data fetching, validation, and updating are handled by the Mendix Platform. Mendix provides your component with APIs which follow a [unidirectional data flow pattern](https://www.geeksforgeeks.org/unidirectional-data-flow/), much like the [Redux](https://redux.js.org/basics/data-flow) and [Flux](https://facebook.github.io/flux/docs/in-depth-overview#structure-and-data-flow) APIs. Mendix follows the “batteries included but removable” motto. You do not have to care about nuances if standard behavior suffices for you, but you can adjust behaviors when required.

A widget component is [mounted](https://en.reactjs.org/docs/react-component.html#mounting) and [unmounted](https://en.reactjs.org/docs/react-component.html#unmounting) when a widget is shown or hiddenfor example when a page is opened or due to [conditional visibility](/refguide/common-widget-properties/#visibility-properties). A component receives [props](https://en.reactjs.org/docs/components-and-props.html) which resemble properties described in its widget definition XML file. A prop's key comes from the [`key`](#key-attribute) attribute, and its value is based on the configuration of the property. Prop values are immutable, but the Mendix Platform re-renders the component passing new values when necessary.
A widget component is [mounted](https://en.reactjs.org/docs/react-component.html#mounting) and [unmounted](https://en.reactjs.org/docs/react-component.html#unmounting) when a widget is shown or hiddenfor example when a page is opened or due to [conditional visibility](/refguide/common-widget-properties/#visibility-properties). A component receives [props](https://en.reactjs.org/docs/components-and-props.html) which resemble properties described in its widget definition XML file. A prop's key comes from the [`key`](#key-attribute) attribute, and its value is based on the configuration of the property. Prop values are immutable, but the Mendix Platform re-renders the component passing new values when necessary.

A prop value is often not just a primitive value, but an object whose structure depends on the [`type`](#type-attribute) of its widget's property. A prop's values can expose data, metadata, and associated actionswhatever is applicable for the property. Here is an example of one interface. It is a value for an action property, such as the type you would find in the [On click](/refguide/on-click-event/#on-click) property of an action button:
A prop value is often not just a primitive value, but an object whose structure depends on the [`type`](#type-attribute) of its widget's property. A prop's values can expose data, metadata, and associated actionswhatever is applicable for the property. Here is an example of one interface. It is a value for an action property, such as the type you would find in the [On click](/refguide/on-click-event/#on-click) property of an action button:

```ts
export interface ActionValue {
Expand Down Expand Up @@ -125,20 +125,20 @@ Here is an example of a widget’s attributes section:

This section is generated based on options chosen while running the Mendix Pluggable Widget Generator. You will rarely need to modify it after it is generated. This sample widget features several widget attributes:

* `id`<a id="widget-id"></a> This the fully qualified name of the widget called widget ID. Using widget ID, the Mendix Platform distinguishes widgets from each other. Widget ID should never be changed after a widget is used in an app or is published in the Marketplace. Reverse domain-style names, as in example above, are recommended.
* `pluginWidget` This should always be set to `true`. This way, the Mendix Platform can distinguish between the newer pluggable widgets and the older custom widgets.
* `offlineCapable` This shows if a widget can work while an app is offline. For more information on offline apps, see the [Offline-First](/refguide/offline-first/) guide. A widget that fetches information from a third-party API, for example a widget that fetches airline ticket prices, could not function without an internet connection. If a widget cannot work offline, Mendix Studio Pro will forbid its use on pages that must be available offline.
* `supportedPlatform` This shows the platforms a widget is compatible with. `Web` describes widgets that are only compatible with web and hybrid mobile apps. `Native` describes widgets that are compatible with native mobile apps.
* `id`<a id="widget-id"></a> This the fully qualified name of the widget called widget ID. Using widget ID, the Mendix Platform distinguishes widgets from each other. Widget ID should never be changed after a widget is used in an app or is published in the Marketplace. Reverse domain-style names, as in example above, are recommended.
* `pluginWidget` This should always be set to `true`. This way, the Mendix Platform can distinguish between the newer pluggable widgets and the older custom widgets.
* `offlineCapable` This shows if a widget can work while an app is offline. For more information on offline apps, see the [Offline-First](/refguide/offline-first/) guide. A widget that fetches information from a third-party API, for example a widget that fetches airline ticket prices, could not function without an internet connection. If a widget cannot work offline, Mendix Studio Pro will forbid its use on pages that must be available offline.
* `supportedPlatform` This shows the platforms a widget is compatible with. `Web` describes widgets that are only compatible with web and hybrid mobile apps. `Native` describes widgets that are compatible with native mobile apps.

### Widget Description {#widget-description}

The presentation of the widget in Studio Pro is determined by the first set of elements inside the widget tag. The order of these descriptive tags is important, and is demonstrated in the list below. Only the name and description tags are mandatorythe others are optional. The description can be omitted with a self-closing tag: `<description />`:
The presentation of the widget in Studio Pro is determined by the first set of elements inside the widget tag. The order of these descriptive tags is important, and is demonstrated in the list below. Only the name and description tags are mandatorythe others are optional. The description can be omitted with a self-closing tag: `<description />`:

* `name` The display name of the widget.
* `description` A short written description of the widget.
* `studioProCategory` See [Toolbox Category](#toolbox-category).
* `helpUrl` See [Help Page](#help).
* `icon` See [Icon](#icon).
* `name` The display name of the widget.
* `description` A short written description of the widget.
* `studioProCategory` See [Toolbox Category](#toolbox-category).
* `helpUrl` See [Help Page](#help).
* `icon` See [Icon](#icon).

```xml
<name>My Progress Card</name>
Expand Down Expand Up @@ -299,10 +299,10 @@ This section will explain the shape of the widget property. For more detailed in

Some properties can or must have more attributes or tags. This depends on the `type` property. The following elements should be present for every property:

* `key`<a id="key-attribute"></a> This element is a property's unique, single-word identifier. The `key` elements are used internally to identify properties, so they should never change after a widget is used in an app or is published in the Marketplace. A `key` element also identifies a property value when it is passed to a pluggable widget’s client component.
* `type`<a id="type-attribute"></a> This element is a property's type. The `type` element defines which values can be configured for a property, which UI is used in the Mendix Studio Pro, and what type of value a pluggable widget’s client component receives.
* `caption` This element is a short label identifying a property to a modeling developer. The first letter of a caption should be capitalized.
* `description` This element is a longer description of a property. A description should be capitalized and limited to one or two sentences.
* `key`<a id="key-attribute"></a> This element is a property's unique, single-word identifier. The `key` elements are used internally to identify properties, so they should never change after a widget is used in an app or is published in the Marketplace. A `key` element also identifies a property value when it is passed to a pluggable widget’s client component.
* `type`<a id="type-attribute"></a> This element is a property's type. The `type` element defines which values can be configured for a property, which UI is used in the Mendix Studio Pro, and what type of value a pluggable widget’s client component receives.
* `caption` This element is a short label identifying a property to a modeling developer. The first letter of a caption should be capitalized.
* `description` This element is a longer description of a property. A description should be capitalized and limited to one or two sentences.

Here is how a caption and description look in Studio Pro:

Expand Down
Loading