Prefill forms blocks fields from URLs
Standard format
The default format is ?form=JSON, where the JSON must be URL-encoded.
# Without encoding
https://test.jestor.com.br/app/id?form={"name":"1"}
# With encoding (required)
https://test.jestor.com.br/app/id?form=%7B%22name%22%3A%221%22%7D
If the app has more than one form and each needs different pre-filled values, specify the component ID:
?form.idComponent=JSON&form.idComponent2=JSON2
Example:
https://test.jestor.com.br/app/id?form.8A6eBhYtCJYandNeXtF6t=ENCODED_JSON1&form.nNYRi8pufr1VE9cA-HTHG=ENCODED_JSON2
The component ID can currently be obtained from the component's edit URL.
JSON format
The JSON structure varies depending on the component type.
| Context | Format |
|---|---|
| Single trick button / main table in Internal forms | { "fieldId": "value" } |
| Form Fields / internal forms inside Internal forms | { "objectId.fieldId": "value" } |
JS utility for generating form URLs
function getFormUrl(compId: string | null, values: any) {
return `form${compId ? `.${compId}` : ''}=${encodeURIComponent(
JSON.stringify(values),
)}`;
}
// Examples
getFormUrl(null, { name: '1' });
getFormUrl('8A6eBhYtCJYandNeXtF6t', { name: '1' });
getFormUrl('8A6eBhYtCJYandNeXtF6t', { 'table_1.name': '1' });
// Combining multiple forms
window.location.search = [
getFormUrl('8A6eBhYtCJYandNeXtF6t', { 'table_1.name': '1' }),
getFormUrl('nNYRi8pufr1VE9cA', { name: '1' }),
].join('&');Selecting a record for update via URL (Super Form)
When a Super Form block has record update enabled, you can pre-select the record to be updated through the URL.
# Select record with ID 10 in all forms
https://test.jestor.com.br/app/id?updateRecord=10
# Select record with ID 10 in a specific form
https://test.jestor.com.br/app/id?updateRecord.8A6eBhYtCJYandNeXtF6t=10
| Scenario | Parameter |
|---|---|
| Single form in the app | ?updateRecord=RECORD_ID |
| Multiple forms in the app | ?updateRecord.COMPONENT_ID=RECORD_ID |
Updated about 2 months ago
