Appearance
LayoutColumnLayoutElements (Intermediate)
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 LayoutColumn
. Information about LayoutElements
that should be displayed on a LayoutColumn
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 & Relations
Namespace
Modules\Layout\Entities\Intermediate\LayoutColumnLayoutElement
Relations
Relation | Key | Type | Relation Field(s) |
---|---|---|---|
LayoutColumn | layoutColumn | Belongs to | layout_column_id |
LayoutElement | layoutElements | Belongs to | layout_element_type , layout_element_id |
LayoutElement types
formField
(FormField)
Note
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
Sortable
SoftDeletes
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
Key | Type | Default | Description |
---|---|---|---|
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.
Keys with **
are normalized to the information given by the route.
Example Request
php
$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
json
[
{
"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
Key | Type | Default | Description |
---|---|---|---|
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
php
$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
json
[
{
"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
Key | Type | Default | Description |
---|---|---|---|
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.
Keys with **
are normalized to the information given by the route.
Example Request
php
$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
json
[]