LayoutColumnLayoutElements
Introduction
After defining a Layout with LayoutRows and LayoutColumns you probably want to add items to the defined LayoutColumns.
The layout system is capable of managing different entity types in one LayoutColumns. Information about LayoutElements that should be displayed on a LayoutColumns is managed by the LayoutColumnLayoutElements intermediate model.
To access information of this intermediate model such as the sort_number, you should make use of the pivot information that will always be returned when including the layoutElements relation described in LayoutColumns or the layoutColumns relation on LayoutElements. You can find the available entity types that can be attached to a LayoutColumn below.
Model Definition
Relations
layoutElement
LayoutElement
Morph to
layout_element_type, layout_element_id
LayoutElement types
formField(FormField)
LayoutElement types are keys for different entities existing in our system. Every LayoutElement type listed here has itself a relationship to LayoutColumns which can be accessed with the key layoutColumns.
When retrieving such a relation (internally utilizing this intermediate model), there will always be a pivot object attached holding the information described in this section.
You can use the pivot information for sorting and such.
Affected entities are marked with the trait LayoutElement.
Traits
SortableSoftDeletes
Attach
Attaches a LayoutElement to a LayoutColumn and returns all LayoutColumns the given Element is related to after.
Definition
POST /api/layouts/elements/columns/attach
Request Keys
layout_element_type *
string
null
The title for the layout
layout_element_id*
string
-
Layoutable type (see above)
layout_column_ids*
array
-
Layoutable ID (see above)
sort_number
integer
Current highest +1
The index of the LayoutElementLayoutColumn related to the LayoutColumn
Keys with * are required.
Example Request
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/layouts/elements/columns/attach', [
'headers' => ['Authorization' => "Bearer {accessToken}"],
'json' => [
"layout_element_type": "formField",
'layout_element_id' => 1,
'layout_column_ids': [1]
]
]);Example Response
[
{
"id": 1,
"title": null,
"layout_row_id": 1,
"width": 6,
"sort_number": 1,
"created_at": "2021-10-25 19:07:59",
"updated_at": "2021-10-25 19:07:59",
"deleted_at": null,
"pivot": {
"layout_element_id": 1,
"layout_column_id": 1,
"layout_element_type": "formField",
"created_at": "2023-04-17 21:23:07",
"updated_at": "2023-04-17 21:23:07",
"id": 2,
"sort_number": 1
}
},
{
"id": 2,
"title": null,
"layout_row_id": 2,
"width": 6,
"sort_number": 2,
"created_at": "2021-10-25 19:07:59",
"updated_at": "2021-10-25 19:07:59",
"deleted_at": null,
"pivot": {
"layout_element_id": 1,
"layout_column_id": 2,
"layout_element_type": "formField",
"created_at": "2023-04-28 14:14:04",
"updated_at": "2023-04-28 14:14:04",
"id": 104,
"sort_number": 1
}
}
]Sync
Attaches the given LayoutElement to many LayoutColumns and detaches the element from any LayoutColumn that is not posted.
Definition
POST /api/layouts/elements/columns/sync
layout_element_type *
string
null
The title for the layout.
layout_element_id*
string
-
Layoutable type (see above).
layout_column_ids*
array
-
Layoutable ID (see above).
sort_number
integer
Current highest +1
The index of the LayoutElementLayoutColumn related to the LayoutColumn.
Example Request
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/layouts/elements/columns/sync', [
'headers' => ['Authorization' => "Bearer {accessToken}"],
'json' => [
"layout_element_type": "formField",
'layout_element_id' => 1,
'layout_column_ids': [1]
]
]);Example Response
[
{
"id": 1,
"title": null,
"layout_row_id": 1,
"width": 12,
"sort_number": 1,
"created_at": "2021-10-25 19:07:59",
"updated_at": "2021-10-25 19:07:59",
"deleted_at": null,
"pivot": {
"layout_element_id": 1,
"layout_column_id": 1,
"layout_element_type": "formField",
"created_at": "2023-04-28 14:16:16",
"updated_at": "2023-04-28 14:16:16",
"id": 105,
"sort_number": 5
}
}
]Detach
Detaches a LayoutElement from a LayoutColumn and returns all LayoutColumns the given Element is related to after.
Definition
POST /api/layouts/elements/columns/detach
Request Keys
layout_element_type*
string
null
The title for the layout.
layout_element_id*
string
-
Layoutable type (see above).
layout_column_ids*
array
-
Layoutable ID (see above).
sort_number
integer
Current highest +1
The index of the LayoutElementLayoutColumn related to the LayoutColumn.
Keys with * are required.
Example Request
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/layouts/elements/columns/detach', [
'headers' => ['Authorization' => "Bearer {accessToken}"],
'json' => [
"layout_element_type" => "formField",
"layout_element_id" => 1,
"layout_column_ids" => [1]
]
]);Example Response
[]Last updated