Skip to content

Commit a7991f8

Browse files
[Collaboration] Added doc for latest changes (#2965)
* [TMP] TODO * Removed Clipboard API mention * [Collaboration] Follow-up * Before review fixes * Added back clipboard mention * Apply suggestions from code review Co-authored-by: julitafalcondusza <[email protected]> * Added vale suggestion --------- Co-authored-by: julitafalcondusza <[email protected]>
1 parent 2c860c3 commit a7991f8

File tree

10 files changed

+154
-8
lines changed

10 files changed

+154
-8
lines changed

docs/api/event_reference/collaboration_events.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
---
22
description: Events that are triggered when working with collaborative editing feature.
33
page_type: reference
4+
editions:
5+
- lts-update
46
month_change: true
57
---
68

79
# Collaboration events
810

11+
You can use the following events to extend the [Collaborative editing LTS Update](collaborative_editing.md):
12+
913
## Invitation events
1014

1115
| Event | Dispatched by |
@@ -41,3 +45,10 @@ month_change: true
4145
|[LeaveSessionEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-LeaveSessionEvent.html)|`SessionLeaveController::leaveAction()`|
4246
|[UpdateSessionEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-UpdateSessionEvent.html)|[SessionService::updateSession()](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-SessionServiceInterface.html#method_updateSession)|
4347
|[SessionPublicPreviewEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-Session-Event-SessionPublicPreviewEvent.html)|`SessionPublicPreviewController::previewAction()`|
48+
49+
## User filtering events
50+
51+
| Event | Dispatched by | Description |
52+
|---|---|---|
53+
|<nobr>[`UsersWithPermissionInfoMappedEvent`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Share-Event-UsersWithPermissionInfoMappedEvent.html)</nobr>|`Ibexa\Share\Permission\Mapper\`<br>`UsersWithPermissionInfoMapper` | Allows further filtering of users with permissions for Collaborative editing |
54+

docs/content_management/collaborative_editing/collaborative_editing.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,22 @@ Real-time collaboration syncs changes instantly and shows user avatars and color
1717

1818
This feature also introduces new dashboard tabs for managing shared drafts and joining collaboration sessions easily.
1919

20+
## Getting started
21+
2022
[[= cards([
2123
"content_management/collaborative_editing/collaborative_editing_guide",
2224
"content_management/collaborative_editing/install_collaborative_editing",
23-
"content_management/collaborative_editing/collaborative_editing_api"
24-
], columns=3) =]]
25+
("permissions/policies#collaborative-editing", "Policies", "Learn about the available Collaborative editing policies"),
26+
("https://doc.ibexa.co/projects/userguide/en/4.6/content_management/collaborative_editing/"),
27+
], columns=2) =]]
28+
29+
## Development
30+
31+
[[= cards([
32+
"content_management/collaborative_editing/collaborative_editing_api",
33+
"api/event_reference/collaboration_events",
34+
("https://doc.ibexa.co/en/4.6/api/rest_api/rest_api_reference/rest_api_reference.html#collaborative-editing", "REST API Reference", "See the available endpoints for Collaborative editing"),
35+
"search/collaboration_search_reference/collaboration_criteria",
36+
"search/collaboration_search_reference/collaboration_sort_clauses",
37+
], columns=4) =]]
38+

docs/content_management/collaborative_editing/collaborative_editing_api.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ You can find an existing session with [`SessionService::findSessions()`](/api/ph
4747
[[= include_file('code_samples/collaboration/src/Command/ManageSessionsCommand.php', 86, 89) =]]
4848
```
4949

50+
To learn more about the available search options, see [Search Criteria](collaboration_criteria.md) and [Sort Clauses](collaboration_sort_clauses.md) for Collaborative editing.
51+
5052
### Update session
5153

5254
You can update existing invitation with [`SessionService::updateSession()`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-SessionServiceInterface.html#method_updateSession):
@@ -157,7 +159,7 @@ You can delete an invitation with [`InvitationService::deleteInvitation()`](/api
157159

158160
You can find an invitation with [`InvitationService::findInvitations()`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Collaboration-InvitationServiceInterface.html#method_findInvitations).
159161

160-
To learn more about the available search options, see Search Criteria and Sort Clauses for Collaborative editing.
162+
To learn more about the available search options, see [Search Criteria](collaboration_criteria.md) and [Sort Clauses](collaboration_sort_clauses.md) for Collaborative editing.
161163

162164
## Example API usage
163165

docs/content_management/collaborative_editing/collaborative_editing_guide.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The system automatically tracks changes, allowing seamless collaboration within
2323

2424
Collaborative editing is an opt-in available as an LTS update starting with the v4.6.24 in all [[= product_name =]] editions.
2525
To start using Collaborative editing, you must first install the required packages and perform initial configuration.
26-
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms & Conditions and Service Level Agreement in the Support Portal.
26+
To use Real-time editing feature, you must make arrangements with [[= product_name_base =]], and accept Terms and Conditions and Service Level Agreement in the Service Portal.
2727

2828
## Prerequisites
2929

@@ -51,13 +51,17 @@ Collaboration session begins when first invited user accepts the invitation and
5151

5252
To start collaborative editing, you need to invite collaborators using the **Share** button.
5353

54-
You can invite other users to join the session, both internal and external:
54+
The owner of the draft can invite other users to join the session, both internal and external:
5555

5656
- **Internal** - by searching their name or email address. These users can either edit the content item or preview it, depending on your choice.
5757
- **External** - by providing their email address in the field. They can only preview the content item.
5858

5959
Once they accept the invitation, they are able to join you in editing content item or reviewing it.
6060

61+
Once the invitation is accepted, internal users can invite further users if their permissions allow for it.
62+
To do so, they must be a part of an active collaboration session.
63+
Gaining access to the draft through other methods, for example by [workflow](workflow.md), doesn't allow you to invite other users.
64+
6165
![Collaborative editing - invitation](img/collaboration_invitation.png)
6266

6367
You can change the users access or remove it at any time.
@@ -92,7 +96,6 @@ Collaboration is available for the following content types with Rich Text fields
9296
- Article
9397
- Folder
9498
- Form
95-
- Product category
9699
- Custom content types
97100

98101
All changes made by collaborators are automatically saved when owner publishes or saves content.

docs/content_management/collaborative_editing/install_collaborative_editing.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,60 @@ ibexa:
166166

167167
The following setting is available:
168168

169-
- `content_type_groups` – defines groups of content types for which the **Share** button is displayed (it can still be disabled for specific content types within these groups)
169+
- `content_type_groups` – defines groups of content types for which the **Share** button is displayed (it can still be disabled for specific content types within these groups by using the `excluded_content_types` setting)
170170

171-
In the example confugiration above, the **Share** button is displayed for any content that belongs to the `Content` group, except for `tag` and `product_category_tag` content types.
171+
In the example configuration above, the **Share** button is displayed for any content that belongs to the `Content` group, except for `tag` and `product_category_tag` content types.
172+
173+
You can also control which user content types can use the feature through the `ibexa.share.permission_check_context.content.user_content_type_identifiers` container parameter.
174+
It accepts an array of content type identifiers and the default value is `['editor']`.
172175

173176
You can now restart you application and start [working with the Collaborative editing feature]([[= user_doc =]]/content_management/collaborative_editing/work_with_collaborative_editing/).
177+
To add the real-time editing capabilities, continue with the instruction below.
178+
179+
## Configure real-time editing
180+
181+
You must have an arrangment with [[= product_name_base =]] before configuring the real-time editing.
182+
If you haven't already, you must also accept the Terms of Service in the [Service portal](https://support.ibexa.co/).
183+
184+
Only then you can create a new Collaborative editing environment.
185+
To do it, log in to the service portal, go to your **Service Portal** and select **Create environment** (this requires the **Portal administrator** access level).
186+
187+
Once the environment is created, you can proceed with the configuration in [[= product_name =]].
188+
189+
Use the generated values to set the `environment_id`, `environment_secret`, and `web_socket_url` for your [repositories](repository_configuration.md) as in the example below:
190+
191+
``` yaml
192+
ibexa:
193+
repositories:
194+
default:
195+
fieldtype_richtext_rte:
196+
environment_id: '%env(CKEDITOR_ENVIRONMENT_ID)%'
197+
environment_secret: '%env(CKEDITOR_ENVIRONMENT_SECRET)%'
198+
web_socket_url: '%env(CKEDITOR_WEB_SOCKET_URL)%'
199+
```
200+
201+
Then, enable real-time editing for specific [SiteAccesses](siteaccess.md).
202+
The following example enables it for the back office:
203+
204+
``` yaml
205+
ibexa:
206+
system:
207+
admin_group:
208+
fieldtype_richtext_rte:
209+
enabled: true
210+
```
211+
212+
Finish the configuration by running:
213+
214+
``` bash
215+
composer run post-install-cmd
216+
```
217+
218+
## Accepting new Terms of Service
219+
220+
Real-Time Collaboration service is only available after accepting its Terms and Conditions.
221+
Any new version of this document released by [[= product_name_base =]] must be accepted before the assigned deadline.
222+
223+
The **Portal administrator** for your [Service portal](https://support.ibexa.co) can accept it in Service portal's service details.
224+
225+
If not done in time, the Real-Time Collaboration service will be disabled until the latest Terms and Conditions are accepted.

docs/permissions/limitation_reference.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,46 @@ The Change Owner (`ChangeOwner`) limitation specifies whether the user can chang
6363
|------|------|------|
6464
|`1`|"Forbid"|The user cannot change owner of a content item|
6565

66+
## Collaborative editing limitations [[% include 'snippets/lts-update_badge.md' %]]
67+
68+
The Collaborative editing limitations specify how the user can use the [Collaborative editing](collaborative_editing.md) LTS Update.
69+
70+
### Collaborative editing Owner limitation
71+
72+
The Owner limitation specifies whose drafts the user can share.
73+
If not specified, user can share:
74+
75+
- their drafts
76+
- drafts they have been invited to collaborate on
77+
78+
#### Possible values
79+
80+
|Value|UI value|Description|
81+
|------|------|------|
82+
|"self"|"self"| User can only share drafts that they own |
83+
84+
### Collaborative editing Scope limitation
85+
86+
The Scope limitation specifies whether the user can share the preview and editing view with other users.
87+
88+
#### Possible values
89+
90+
|Value|UI value|Description|
91+
|------|------|------|
92+
|"edit"|"Edit"| User can invite other users to edit|
93+
|"view"|"View"| User can share the preview with other users|
94+
95+
### Collaborative editing PublicLink limitation
96+
97+
The Public Link (`PublicLink`) limitation specifies whether the user can manage the settings of the shareable preview link.
98+
99+
#### Possible values
100+
101+
|Value|UI value|Description|
102+
|------|------|------|
103+
|"Off"|"off"| User can't manage the settings|
104+
|"On"|"on"| User can manage the settings|
105+
66106
## Discount Owner limitation [[% include 'snippets/lts-update_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]]
67107

68108
The Discount Owner (`DiscountOwner`) limitation specifies whether the user can interact with a [discount](discounts.md).

docs/permissions/permission_use_cases.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ For example, to enable the user to edit only content in the "Design" stage and t
133133
- `content/edit` with `WorkflowStageLimitation` set to "Design".
134134
- `workflow/change_stage` with `WorkflowTransitionLimitation` set to `to_proofreading`
135135

136+
When using the [Collaborative editing LTS Update](collaborative_editing.md), refer to the [Collaborative editing policies](policies.md#content-collaborative-editing) for guidance on editing without a strict workflow.
137+
136138
## Multi-file upload
137139

138140
Creating content through multi-file upload is treated in the same way as regular creation.

docs/permissions/policies.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,14 @@ The discount policies decide which actions can be executed by given user or user
234234
| | <nobr>`versionremove`</nobr> | remove archived content versions | [Content type](limitation_reference.md#content-type-limitation)</br>[Section](limitation_reference.md#section-limitation)</br>[Owner](limitation_reference.md#owner-limitation)</br>Status</br>[Location](limitation_reference.md#location-limitation)</br>[Subtree](limitation_reference.md#subtree-limitation)</br>[Object State](limitation_reference.md#object-state-limitation) |
235235
| | <nobr>`view_embed`</nobr> | view content embedded in another content item (even when the User isn't allowed to view it as an individual content item) | [Content type](limitation_reference.md#content-type-limitation)</br>[Section](limitation_reference.md#section-limitation)</br>[Owner](limitation_reference.md#owner-limitation)</br>[Location](limitation_reference.md#location-limitation)</br>[Subtree](limitation_reference.md#subtree-limitation) |
236236

237+
#### Content collaborative editing [[% include 'snippets/lts-update_badge.md' %]]
238+
239+
| Module | Function | Effect | Possible limitations |
240+
|----------------------|-----------------------|--------------------------------------------------------------------------|----------------------|
241+
| <nobr>`content`</nobr> | <nobr>`share`</nobr> | share content drafts with internal and external users through [collaborative editing](collaborative_editing.md) |[Owner](limitation_reference.md#collaborative-editing-owner-limitation)</br>[PublicLink](limitation_reference.md#collaborative-editing-publiclink-limitation)</br>[Scope](limitation_reference.md#collaborative-editing-scope-limitation)
242+
| <nobr>`rte`</nobr> | <nobr>`edit`</nobr> | use [Real-time editing](collaborative_editing_guide.md#real-time-editing) |
243+
244+
237245
#### Content types
238246

239247
| Module | Function | Effect | Possible limitations |
@@ -292,6 +300,12 @@ The discount policies decide which actions can be executed by given user or user
292300
| | <nobr>`edit`</nobr> | edit a product | [Product Type](limitation_reference.md#product-type-limitation)</br>[Language](limitation_reference.md#language-limitation) |
293301
| | <nobr>`view`</nobr> | view products listed in the product catalog | [Product Type](limitation_reference.md#product-type-limitation) |
294302

303+
#### Product collaborative editing [[% include 'snippets/lts-update_badge.md' %]]
304+
305+
| Module | Function | Effect | Possible limitations |
306+
|----------------------|-----------------------|--------------------------------------------------------------------------|----------------------|
307+
| <nobr>`product`</nobr> | <nobr>`share`</nobr> | share products with internal and external users through [collaborative editing](collaborative_editing.md) |[Owner](limitation_reference.md#collaborative-editing-owner-limitation)</br>[PublicLink](limitation_reference.md#collaborative-editing-publiclink-limitation)</br>[Scope](limitation_reference.md#collaborative-editing-scope-limitation) |
308+
295309
#### Product types
296310

297311
| Module | Function | Effect | Possible limitations |

docs/search/collaboration_search_reference/collaboration_criteria.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
---
22
month_change: true
3+
description: Search Criteria available for Collaboration search
4+
editions:
5+
- lts-update
36
---
47

58
# Collaboration Search Criterion reference
69

710
Search Criteria are found in the `Ibexa\Contracts\Collaboration\Invitation\Query\Criterion` namespace.
11+
Use them to work with objects related to [Collaborative editing API](collaborative_editing_api.md).
812

913
## Invitation Search Criteria
1014

docs/search/collaboration_search_reference/collaboration_sort_clauses.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
---
22
month_change: true
3+
description: Sort Clauses available for Collaboration search
4+
editions:
5+
- lts-update
36
---
47

58
# Collaboration Search Sort Clauses reference
69

710
Sort Clauses are found in the [`Ibexa\Contracts\Collaboration\Value\Query\SortClause`](/api/php_api/php_api_reference/namespaces/ibexa-contracts-collaboration-invitation-query-sortclause.html) namespace.
11+
Use them to work with objects related to [Collaborative editing API](collaborative_editing_api.md).
812

913
## Invitation Search Sort Clauses
1014

0 commit comments

Comments
 (0)