Plugins
Use cases
1. When a custom datasource is necessary
2. When a custom widget is called for in a separate portal. A plugin can reuse the same widget across multiple portals. The HTML widget is a custom widget, but it is not automatically available in portals other than the original
Hosting a plugin
A plugin must be hosted on a website that will return the correct Content-Type headers when the resource is requested. E.g., RawGit.
Definition
Key | Type | Required | Description |
---|---|---|---|
type_name | string | true | This plugin’s unique ID |
plugin | boolean | true |
|
display_name | string | true | The plugin name as it shows up in the widget list |
settings | [setting] | true | Configurable settings list |
class | function | true | Reference to a function that is responsible for rendering the widget |
group | string | false | Add this plugin to a specific widget group. Defaults to other |
Setting
A setting is an object with these fields:
Key | Type | Required | Description |
---|---|---|---|
name | string | true | The setting’s unique name |
display_name | string | true | Used in the widget settings modal |
type | string | true | Refer to setting types for possible values |
default_value | false |
| |
group | string | false | Allows for grouping settings into sections |
description | string | false | The setting’s description |
required | boolean | false | If true, this setting must be given a value to save the widget's settings |
Advanced settings
Advanced settings contain additional fields that allow for more customization.
DATA_SETTING_TYPE
This field is generally used to hook a widget setting up to a datasource.
Key | Type | Required | Description |
---|---|---|---|
expected_format | string | false | Reminds users of the format that this setting expects |
incoming_parser | boolean | false | If true, this widget setting will respond to a datasource’s changes |
outgoing_parser | boolean | false | If true, this widget setting can send values to a datasource |
A DATA_SETTING_TYPE can be one of the following:
STATIC_DATA_TYPE
CALCULATED_DATA_TYPE
DYNAMIC_DATA_TYPE
MULTI_OBJECT_SETTING_TYPE
Key | Type | Required | Description |
---|---|---|---|
objectShape | [setting] | true | Describes the fields available and their types |
Option
Key | Type | Required | Description |
---|---|---|---|
options | [{}] | true | Used by the option setting type to give the user a list of possible choices |
Setting types
Name | Type | Example |
---|---|---|
text | string | Hello |
number | number | 42 |
boolean | boolean | true |
color | string | #fff |
option | [{}] | bottom |
DATA_SETTING_TYPE | {} | {“dataType”: “DYNAMIC_DATA_TYPE”, “value”: “return this.datasource;”} |
MULTI_OBJECT_SETTING_TYPE | [{}] | [{“orientation”: “left”, “value”: 42, “color”: “red”}] |