Form
Overview #
Form represents a section of configuration fields in your application. Each form has a key, display name, description, and contains multiple fields.
Purpose:
- Group related fields together
- Organize application settings into logical sections
- Define authorization forms, configuration forms, etc.
Location: orchesty-nodejs-sdk/lib/Application/Model/Form/Form.ts
Constructor #
constructor(key: string, publicName: string)
Parameters:
| Parameter | Type | Description |
|---|---|---|
key | string | Unique form identifier (used for settings storage) |
publicName | string | Display name shown to users |
Example:
import Form from '../../lib/Application/Model/Form/Form';
import CoreFormsEnum from '../../lib/Application/Base/CoreFormsEnum';
const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, 'Authorization');
Methods #
addField() #
public addField(field: Field): this
Adds a field to the form.
getFields() #
public getFields(): Field[]
Returns all fields in the form.
getKey() #
public getKey(): string
Returns the form key.
getPublicName() #
public getPublicName(): string
Returns the display name.
setPublicName() #
public setPublicName(value: string): this
Sets the display name.
setDescription() #
public setDescription(value: string): this
Sets form description.
getDescription() #
public getDescription(): string
Returns the description.
setReadOnly() #
public setReadOnly(readOnly: boolean): this
Makes the form read-only.
isReadOnly() #
public isReadOnly(): boolean
Checks if form is read-only.
toArray() #
public toArray(): IForm
Converts to plain object.
Usage Examples #
Basic Form #
import Form from '../../lib/Application/Model/Form/Form';
import Field from '../../lib/Application/Model/Form/Field';
import FieldType from '../../lib/Application/Model/Form/FieldType';
import CoreFormsEnum from '../../lib/Application/Base/CoreFormsEnum';
// Create form
const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, 'Authorization');
form.setDescription('Enter your API credentials');
// Add fields
const apiKeyField = new Field(FieldType.PASSWORD, 'api_key', 'API Key');
form.addField(apiKeyField);
Complete Form Example #
From: orchesty-nodejs-sdk/test/Application/TestBasicApplication.ts
const hostField = new Field(FieldType.TEXT, 'host', 'Database Host');
const databaseField = new Field(FieldType.TEXT, 'database', 'Database Name');
const portField = new Field(FieldType.NUMBER, 'port', 'Port');
const configForm = new Form('configForm', 'Database Configuration');
configForm.setDescription('Configure database connection settings');
configForm
.addField(hostField)
.addField(databaseField)
.addField(portField);
Common Patterns #
Pattern 1: Authorization Form #
const userField = new Field(FieldType.TEXT, USER, 'Username');
const passwordField = new Field(FieldType.PASSWORD, PASSWORD, 'Password');
const authForm = new Form(CoreFormsEnum.AUTHORIZATION_FORM, 'Authorization');
authForm.addField(userField);
authForm.addField(passwordField);
Pattern 2: Configuration Form with Description #
const endpointField = new Field(FieldType.URL, 'endpoint', 'API Endpoint');
const timeoutField = new Field(FieldType.NUMBER, 'timeout', 'Timeout');
const configForm = new Form('configForm', 'Configuration');
configForm.setDescription('Configure how to connect to the API');
configForm
.addField(endpointField)
.addField(timeoutField);
Next Steps #
- Field - Add fields to forms
- FormStack - Group forms together
- FieldType - Available field types
- CoreFormsEnum - Standard form keys