From 2fdf44d0e676c719b6b3e6a8e8b1450fb14e3076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Wed, 16 Sep 2026 12:22:33 +0200 Subject: [PATCH 1/6] Configured link checker for SaaS --- .github/workflows/link_check.yaml | 6 ++++++ README.md | 24 +++++++++++++++--------- lychee.toml.dist | 25 +++++++++++++++++++------ tools/clone-repositories.sh | 27 +++++++++++++++++---------- 4 files changed, 57 insertions(+), 25 deletions(-) diff --git a/.github/workflows/link_check.yaml b/.github/workflows/link_check.yaml index d69dfb50..14e35672 100644 --- a/.github/workflows/link_check.yaml +++ b/.github/workflows/link_check.yaml @@ -4,6 +4,7 @@ on: push: branches: - master + - saas - "[0-9]+.[0-9]+" workflow_dispatch: inputs: @@ -11,6 +12,10 @@ on: description: "Clear lychee cache and recheck all links from scratch" type: boolean default: false + devdoc_saas_branch: + description: "ibexa/documentation-developer branch for SaaS" + type: string + default: "saas" devdoc_60_branch: description: "ibexa/documentation-developer branch for 6.0" type: string @@ -82,6 +87,7 @@ jobs: - name: Clone and build versioned repositories for link remap run: >- bash tools/clone-repositories.sh + "${{ inputs.devdoc_saas_branch || 'saas' }}" "${{ inputs.devdoc_60_branch || '6.0' }}" "${{ inputs.devdoc_50_branch || '5.0' }}" "${{ inputs.devdoc_46_branch || '4.6' }}" diff --git a/README.md b/README.md index 04bb2228..970b24cf 100644 --- a/README.md +++ b/README.md @@ -59,21 +59,27 @@ After fixing any reported links, run `mkdocs build --strict` before rerunning `l The script accepts optional branch names before cloning repositories: ```bash -./tools/clone-repositories.sh [DEVDOC_50] [DEVDOC_46] [USERDOC_50] [USERDOC_46] [CONNECT] +./tools/clone-repositories.sh [DEVDOC_SAAS] [DEVDOC_60] [DEVDOC_50] [DEVDOC_46] [USERDOC_60] [USERDOC_50] [USERDOC_46] [CONNECT] ``` -| Argument | Repository | Default | -|--------------|---------------------------------|---------| -| `DEVDOC_50` | `ibexa/documentation-developer` | `5.0` | -| `DEVDOC_46` | `ibexa/documentation-developer` | `4.6` | -| `USERDOC_50` | `ibexa/documentation-user` | `5.0` | -| `USERDOC_46` | `ibexa/documentation-user` | `4.6` | -| `CONNECT` | `ibexa/documentation-connect` | `main` | +| Argument | Repository | Default | +|---------------|---------------------------------|---------| +| `DEVDOC_SAAS` | `ibexa/documentation-developer` | `saas` | +| `DEVDOC_60` | `ibexa/documentation-developer` | `6.0` | +| `DEVDOC_50` | `ibexa/documentation-developer` | `5.0` | +| `DEVDOC_46` | `ibexa/documentation-developer` | `4.6` | +| `USERDOC_60` | `ibexa/documentation-user` | `6.0` | +| `USERDOC_50` | `ibexa/documentation-user` | `5.0` | +| `USERDOC_46` | `ibexa/documentation-user` | `4.6` | +| `CONNECT` | `ibexa/documentation-connect` | `main` | + +There is no `USERDOC_SAAS` argument: this repository is the SaaS user documentation, so +links to `/projects/userguide/en/saas/` are checked against the local `site/` build. Example — checking link for release PRs: ```bash -./tools/clone-repositories.sh release-5.0.10 release-4.6.70 4.6 4.6 main +./tools/clone-repositories.sh saas release-6.0.1 release-5.0.10 release-4.6.70 6.0 5.0 4.6 main ``` The same parameters are available as inputs when triggering the GitHub Actions workflow manually. diff --git a/lychee.toml.dist b/lychee.toml.dist index be75e75a..30ef15e3 100644 --- a/lychee.toml.dist +++ b/lychee.toml.dist @@ -115,11 +115,14 @@ root_dir = "site" # Rewrite doc.ibexa.co links to locally-built MkDocs sites, avoiding HTTP # requests to Cloudflare-protected hosts. # -# - en/latest/ → current build's site/ directory (self-referential links from cards() macro) +# - en/latest/ → repositories/devdoc-5.0/site/ (newest available, v6 is not released yet) # - en/4.6/ → repositories/devdoc-4.6/site/ # - en/5.0/ → repositories/devdoc-5.0/site/ # - en/6.0/ → repositories/devdoc-6.0/site/ -# - userguide/en/latest/ → repositories/userdoc-5.0/site/ (newest available, v6 is not released yet) +# - en/saas/ → repositories/devdoc-saas/site/ +# - userguide/en/saas/ → current build's site/ directory (self-referential links from cards() macro) +# - userguide/en/latest/ → current build's site/ directory (self-referential on the 5.0 and 6.0 branches) +# - userguide/en/master/ → repositories/userdoc-5.0/site/ (newest available) # - userguide/en/4.6/ → repositories/userdoc-4.6/site/ # - userguide/en/5.0/ → repositories/userdoc-5.0/site/ # - userguide/en/6.0/ → repositories/userdoc-6.0/site/ @@ -146,10 +149,16 @@ remap = [ # MDN URLs without a locale redirect to the browser's preferred language. # Remap to en-US so lychee can verify the link without following the redirect. "^https://developer\\.mozilla\\.org/docs/(.+) https://developer.mozilla.org/en-US/docs/$1", - # doc.ibexa.co/en/latest/ links are self-referential: the cards() macro generates - # them when READTHEDOCS_VERSION_NAME is not set (e.g. in CI). Remap to the locally - # built site/ directory. These file:// URLs are then matched by the exclude pattern - # above and skipped — internal links are validated by `mkdocs build --strict`. + # userguide links pointing at this branch's own version are self-referential: the + # cards() macro derives the version from site_url (saas on this branch) unless + # READTHEDOCS_VERSION_NAME is set (it is not in CI). Remap them to the locally built + # site/ directory so pages added in a pull request are resolved against the build + # under test rather than against what is already published. These file:// URLs are + # then matched by the exclude pattern above and skipped — internal links are + # validated by `mkdocs build --strict`. + "https://doc\\.ibexa\\.co/projects/userguide/en/saas/([^#]+\\.html)(#.*)?$ file://__BASE_DIR__/site/$1$2", + "https://doc\\.ibexa\\.co/projects/userguide/en/saas/([^#/]+(?:/[^#/]+)*)/?(#.*)?$ file://__BASE_DIR__/site/$1/index.html$2", + "https://doc\\.ibexa\\.co/projects/userguide/en/saas/$ file://__BASE_DIR__/site/index.html", "https://doc\\.ibexa\\.co/projects/userguide/en/latest/([^#]+\\.html)(#.*)?$ file://__BASE_DIR__/site/$1$2", "https://doc\\.ibexa\\.co/projects/userguide/en/latest/([^#/]+(?:/[^#/]+)*)/?(#.*)?$ file://__BASE_DIR__/site/$1/index.html$2", "https://doc\\.ibexa\\.co/projects/userguide/en/latest/$ file://__BASE_DIR__/site/index.html", @@ -169,6 +178,10 @@ remap = [ "https://doc\\.ibexa\\.co/en/6\\.0/([^#]+\\.html)(#.*)?$ file://__BASE_DIR__/repositories/devdoc-6.0/site/$1$2", "https://doc\\.ibexa\\.co/en/6\\.0/([^#/]+(?:/[^#/]+)*)/?(#.*)?$ file://__BASE_DIR__/repositories/devdoc-6.0/site/$1/index.html$2", "https://doc\\.ibexa\\.co/en/6\\.0/$ file://__BASE_DIR__/repositories/devdoc-6.0/site/index.html", + # devdoc saas — target of the developer_doc variable on this branch + "https://doc\\.ibexa\\.co/en/saas/([^#]+\\.html)(#.*)?$ file://__BASE_DIR__/repositories/devdoc-saas/site/$1$2", + "https://doc\\.ibexa\\.co/en/saas/([^#/]+(?:/[^#/]+)*)/?(#.*)?$ file://__BASE_DIR__/repositories/devdoc-saas/site/$1/index.html$2", + "https://doc\\.ibexa\\.co/en/saas/$ file://__BASE_DIR__/repositories/devdoc-saas/site/index.html", # userdoc 4.6 "https://doc\\.ibexa\\.co/projects/userguide/en/4\\.6/([^#]+\\.html)(#.*)?$ file://__BASE_DIR__/repositories/userdoc-4.6/site/$1$2", "https://doc\\.ibexa\\.co/projects/userguide/en/4\\.6/([^#/]+(?:/[^#/]+)*)/?(#.*)?$ file://__BASE_DIR__/repositories/userdoc-4.6/site/$1/index.html$2", diff --git a/tools/clone-repositories.sh b/tools/clone-repositories.sh index 21c67fd5..c9122d04 100755 --- a/tools/clone-repositories.sh +++ b/tools/clone-repositories.sh @@ -2,8 +2,9 @@ # Clones and builds versioned documentation repositories used by lychee's remap rules, # then generates lychee.toml from lychee.toml.dist with absolute paths substituted in. # -# Usage: ./tools/clone-repositories.sh [DEVDOC_60_BRANCH] [DEVDOC_50_BRANCH] [DEVDOC_46_BRANCH] [USERDOC_60_BRANCH] [USERDOC_50_BRANCH] [USERDOC_46_BRANCH] [CONNECT_BRANCH] +# Usage: ./tools/clone-repositories.sh [DEVDOC_SAAS_BRANCH] [DEVDOC_60_BRANCH] [DEVDOC_50_BRANCH] [DEVDOC_46_BRANCH] [USERDOC_60_BRANCH] [USERDOC_50_BRANCH] [USERDOC_46_BRANCH] [CONNECT_BRANCH] # +# DEVDOC_SAAS_BRANCH Branch of ibexa/documentation-developer to use for SaaS (default: saas) # DEVDOC_60_BRANCH Branch of ibexa/documentation-developer to use for 6.0 (default: 6.0) # DEVDOC_50_BRANCH Branch of ibexa/documentation-developer to use for 5.0 (default: 5.0) # DEVDOC_46_BRANCH Branch of ibexa/documentation-developer to use for 4.6 (default: 4.6) @@ -12,18 +13,22 @@ # USERDOC_46_BRANCH Branch of ibexa/documentation-user to use for 4.6 (default: 4.6) # CONNECT_BRANCH Branch of ibexa/documentation-connect (default: main) # +# This repository is the SaaS user documentation itself, so no userdoc SaaS clone is +# made - links to /projects/userguide/en/saas/ are remapped to the local site/ build. +# # Run this once before running lychee. Re-run to refresh clones or after moving # the repository to a new path (the path in lychee.toml will be updated automatically). set -euo pipefail -DEVDOC_60_BRANCH="${1:-6.0}" -DEVDOC_50_BRANCH="${2:-5.0}" -DEVDOC_46_BRANCH="${3:-4.6}" -USERDOC_60_BRANCH="${4:-6.0}" -USERDOC_50_BRANCH="${5:-5.0}" -USERDOC_46_BRANCH="${6:-4.6}" -CONNECT_BRANCH="${7:-main}" +DEVDOC_SAAS_BRANCH="${1:-saas}" +DEVDOC_60_BRANCH="${2:-6.0}" +DEVDOC_50_BRANCH="${3:-5.0}" +DEVDOC_46_BRANCH="${4:-4.6}" +USERDOC_60_BRANCH="${5:-6.0}" +USERDOC_50_BRANCH="${6:-5.0}" +USERDOC_46_BRANCH="${7:-4.6}" +CONNECT_BRANCH="${8:-main}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # The script lives in tools/; all paths (repositories/, lychee.toml.dist, lychee.toml) @@ -37,6 +42,7 @@ export PATH="$HOME/python/bin:$PATH" cd "$REPO_DIR" echo "==> Cloning versioned repositories..." +echo " devdoc saas → branch '$DEVDOC_SAAS_BRANCH'" echo " devdoc 6.0 → branch '$DEVDOC_60_BRANCH'" echo " devdoc 5.0 → branch '$DEVDOC_50_BRANCH'" echo " devdoc 4.6 → branch '$DEVDOC_46_BRANCH'" @@ -48,6 +54,7 @@ mkdir -p repositories git clone --depth=1 --branch "$DEVDOC_46_BRANCH" https://github.com/ibexa/documentation-developer.git repositories/devdoc-4.6 & git clone --depth=1 --branch "$DEVDOC_50_BRANCH" https://github.com/ibexa/documentation-developer.git repositories/devdoc-5.0 & git clone --depth=1 --branch "$DEVDOC_60_BRANCH" https://github.com/ibexa/documentation-developer.git repositories/devdoc-6.0 & +git clone --depth=1 --branch "$DEVDOC_SAAS_BRANCH" https://github.com/ibexa/documentation-developer.git repositories/devdoc-saas & git clone --depth=1 --branch "$USERDOC_46_BRANCH" https://github.com/ibexa/documentation-user.git repositories/userdoc-4.6 & git clone --depth=1 --branch "$USERDOC_50_BRANCH" https://github.com/ibexa/documentation-user.git repositories/userdoc-5.0 & git clone --depth=1 --branch "$USERDOC_60_BRANCH" https://github.com/ibexa/documentation-user.git repositories/userdoc-6.0 & @@ -55,12 +62,12 @@ git clone --depth=1 --branch "$CONNECT_BRANCH" https://github.com/ibexa/docum wait echo "==> Installing dependencies for versioned repositories..." -for dir in repositories/devdoc-4.6 repositories/devdoc-5.0 repositories/devdoc-6.0 repositories/userdoc-4.6 repositories/userdoc-5.0 repositories/userdoc-6.0 repositories/connect; do +for dir in repositories/devdoc-4.6 repositories/devdoc-5.0 repositories/devdoc-6.0 repositories/devdoc-saas repositories/userdoc-4.6 repositories/userdoc-5.0 repositories/userdoc-6.0 repositories/connect; do (cd "$dir" && pip install -q -r requirements.txt) done echo "==> Building versioned repositories..." -for dir in repositories/devdoc-4.6 repositories/devdoc-5.0 repositories/devdoc-6.0 repositories/userdoc-4.6 repositories/userdoc-5.0 repositories/userdoc-6.0 repositories/connect; do +for dir in repositories/devdoc-4.6 repositories/devdoc-5.0 repositories/devdoc-6.0 repositories/devdoc-saas repositories/userdoc-4.6 repositories/userdoc-5.0 repositories/userdoc-6.0 repositories/connect; do (cd "$dir" && mkdocs build --quiet) & done wait From ecfdfa9e3a0b5b330750dc889b7c068f7c9378cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Fri, 18 Sep 2026 15:09:01 +0200 Subject: [PATCH 2/6] Fixed links --- docs/ai_actions/ai_actions.md | 2 - docs/ai_actions/work_with_ai_actions.md | 37 ------------------- docs/content_management/block_reference.md | 8 +--- .../configure_ct_field_settings.md | 1 - .../copy_move_hide_content.md | 2 - docs/content_management/create_edit_pages.md | 10 ++--- docs/content_management/translate_content.md | 2 +- .../content_tree/content_tree.md | 5 +-- docs/getting_started/discover_ui.md | 1 - docs/image_management/edit_images.md | 1 - docs/product_catalog/create_edit_product.md | 3 +- docs/product_catalog/products.md | 2 +- docs/product_catalog/quable_integration.md | 2 +- docs/user_management/manage_users.md | 2 +- 14 files changed, 10 insertions(+), 68 deletions(-) diff --git a/docs/ai_actions/ai_actions.md b/docs/ai_actions/ai_actions.md index 70767649..27a5e451 100644 --- a/docs/ai_actions/ai_actions.md +++ b/docs/ai_actions/ai_actions.md @@ -5,8 +5,6 @@ description: Learn how AI Actions can help editors by automating repetitive task # AI Actions AI Actions is a set of capabilities that enhance the efficiency and creativity of content editors. -The feature is included in [[= product_name =]] by default but may require some [configuration]([[= developer_doc =]]/ai/ai_actions/configure_ai_actions/) before you can use it. - Once AI Actions are configured, content editors with `Action configuration/View` and `Action configuration/Execute` permissions have access to AI-driven tools. For example, they can [enhance or improve the text](create_edit_content_items.md#ai-assistant) that they have written, or [generate alternative text](upload_images.md#ai) for images. diff --git a/docs/ai_actions/work_with_ai_actions.md b/docs/ai_actions/work_with_ai_actions.md index a6e54f00..f39d5056 100644 --- a/docs/ai_actions/work_with_ai_actions.md +++ b/docs/ai_actions/work_with_ai_actions.md @@ -138,43 +138,6 @@ If the [Taxonomy suggestions]([[= developer_doc =]]/content_management/taxonomy/ 1. Click **Save and close** to apply the changes or **Discard** to discard them and close the window. -### Create AI actions that use [[= product_name_connect =]] - -If your organization uses [[= product_name_connect =]], you can build multi-step scenarios that define the logic needed to process your input data, for example, by merging the output of multiple AI services. -One such example could be sending out a text for translation by one service, and then to another to make sure that the resulting translation is written in the right tone. - -!!! note "[[= product_name_connect =]] configuration required" - - To use AI actions that interface with [[= product_name_connect =]], you must first [configure and initiate the connection]([[= developer_doc =]]/ai/ai_actions/configure_ai_actions/#configure-access-to-ibexa-connect), and [define templates](https://doc.ibexa.co/projects/connect/en/latest/scenarios/scenario_templates/#creating-templates) and/or [scenarios](https://doc.ibexa.co/projects/connect/en/latest/scenarios/creating_a_scenario/) in [[= product_name_connect =]]. - -1\. Navigate to the Admin Panel and select **AI actions**. - -2\. In the **AI actions** list, click **Create**. - -3\. In the slide-out pane, make choices like in [Create new AI actions](#create-new-ai-actions) but in the **Action handler** field, select the model that uses an [[= product_name_connect =]] scenario to process the request, for example `connect-image-to-text`, and then click **Create**. - -![[[= product_name_connect =]] handler](img/ai_action_connect_handler_selection.png) - -4\. In the **Global properties** area, set the required properties. - -5\. In the **Settings** area, select an existing scenario from a drop-down list. -The list contains all scenarios that exist in [[= product_name_connect =]]. -They may be incompatible with the selected action type and require adjustments on the [[= product_name_connect =]] side. - -6\. Optionally, if there are no scenarios for the selected action type, or you want to create a custom scenario, click **Create scenario based on template** and select a template from a drop-down list. - -If you do so, when you save the new AI action, a new scenario is automatically created. -You must then fine-tune its settings in [[= product_name_connect =]]. - -![[[= product_name_connect =]] scenario selection](img/ai_action_settings_connect.png "[[= product_name_connect =]] scenario selection") - -!!! note "Link to [[= product_name_connect =]]" - - Click **Go to Connect** to review all scenarios that exist in [[= product_name_connect =]]. - -7\. Click **Save and close** to apply the changes or **Discard** to discard them and close the window. - -After you save the AI action, you can click its name in the AI actions list and see all the information, such as Scenario ID, webhook URL, or scenario label, which you may needed when working with scenarios in [[= product_name_connect =]]. ## Duplicate AI actions diff --git a/docs/content_management/block_reference.md b/docs/content_management/block_reference.md index b4d3e774..f02ee008 100644 --- a/docs/content_management/block_reference.md +++ b/docs/content_management/block_reference.md @@ -155,9 +155,7 @@ On the **Properties** tab, set values in the following fields: !!! caution "Known limitation" - To display two or more identical forms on a single page, have your developer create multiple identical form blocks for your use. This prevents potential issues related to duplicate data submission. - - For more information about creating form blocks, see [Creating a newsletter form]([[= developer_doc =]]/content_management/pages/create_custom_page_block/) in Developer Documentation. + To prevent potential issues related to duplicate data submission, avoid embedding two or more identical forms on a single page. ### Gallery block @@ -179,10 +177,6 @@ On the **Properties** tab, set values in the following fields: - **Name** – Enter a name for the page block. - **Webhook link** — Enter the link for the [[= product_name_connect =]] webhook. -!!! caution "Using [[= product_name_connect =]] scenario block" - - For more information about using [[= product_name_connect =]] scenario block, see [[[= product_name_connect =]] scenario block]([[= developer_doc =]]/content_management/pages/ibexa_connect_scenario_block/) in Developer Documentation. - ### Product collection block Presents curated collections of items for easier exploration and discovery. diff --git a/docs/content_management/configure_ct_field_settings.md b/docs/content_management/configure_ct_field_settings.md index a962da96..a12d2bb2 100644 --- a/docs/content_management/configure_ct_field_settings.md +++ b/docs/content_management/configure_ct_field_settings.md @@ -63,7 +63,6 @@ You modify them in the **Field definitions** section, the **Landing page** field ### Block display You can define which page blocks are available to an editor in the page edit mode. -You do it, for example, when a [developer creates a new block]([[= developer_doc =]]/content_management/pages/create_custom_page_block/) and you want to allow adding it to the page. Expand the **Select blocks** section and select page blocks that you want to be included in the page. diff --git a/docs/content_management/content_organization/copy_move_hide_content.md b/docs/content_management/content_organization/copy_move_hide_content.md index 2f5bdfb0..bf237b09 100644 --- a/docs/content_management/content_organization/copy_move_hide_content.md +++ b/docs/content_management/content_organization/copy_move_hide_content.md @@ -14,8 +14,6 @@ You can also copy the whole subtree (a content item with all content under it in Copying very large subtrees may take too much time and server effort. That is why the system administrator may set a limit on how many content items can be copied at the same time. - See [Copy subtree limit]([[= developer_doc =]]/administration/back_office/back_office_configuration/#copy-subtree-limit) in Developer Documentation on how to set this up. - Copying creates a new content item. If you only want to have the same content item to another place in the content tree, add another location to it. diff --git a/docs/content_management/create_edit_pages.md b/docs/content_management/create_edit_pages.md index 22516c94..93c685bb 100644 --- a/docs/content_management/create_edit_pages.md +++ b/docs/content_management/create_edit_pages.md @@ -94,12 +94,8 @@ Page Builder has two main views that you can use while creating a page: [Layout](configure_ct_field_settings.md#available-page-layouts) divides the page into the defined zones. The zones are placeholders for the blocks. -The page layouts that an editor has access to are up to you to choose. -The default, built-in Page layout has only one zone, but developers can create other layouts in configuration. -For more information, see [Configure layout]([[= developer_doc =]]/templating/render_content/render_page/#configure-layout). - -While editing, you can switch layout for your page. +While editing, you can switch layout for your page from the available ones. To do it, click **Switch layouts** button. ### Add blocks @@ -139,7 +135,7 @@ To change this behavior, click on **Edit** icon, find the setting, and change it ![User settings - blocks](img/user_settings_blocks.png "User settings - blocks settings") [[= product_name =]] comes with a set of ready-to-use page blocks, -but [developers can add their own]([[= developer_doc =]]/content_management/pages/create_custom_page_block/). +but your integration partner can add custom ones. For a list of blocks available out of the box, see [Block reference](block_reference.md). @@ -147,7 +143,7 @@ For a list of blocks available out of the box, see [Block reference](block_refer Before you add a block that involves products, product types, or product categories, make sure your that your [user role](../permission_management/permissions_and_users.md) has the `Product/View` and `Product type/View` permission. - Before you add a [recommendation block](raptor_recommendation_blocks.md), make sure that the [[= product_name_cdp_base =]] integration is properly [configured]([[= developer_doc =]]/recommendations/raptor_integration/connector_installation_configuration/). + Before you add a [recommendation block](raptor_recommendation_blocks.md), make sure that the [[= product_name_cdp_base =]] integration is properly configured. You can work with the block, for example, duplicate it, change its position, or delete it. Hover over the block and the toolbar appears. diff --git a/docs/content_management/translate_content.md b/docs/content_management/translate_content.md index 63ce22d2..623a5cf9 100644 --- a/docs/content_management/translate_content.md +++ b/docs/content_management/translate_content.md @@ -98,7 +98,7 @@ Enabling at least one translation service is required before the editors can use To see the translation services that are available in your system, go to **Admin** -> **Languages** -> **Translation services** tab. -The tab lists all translation services that have been [configured by the developer]([[= developer_doc =]]/multisite/translations_management/configure_translations_management/#configure-translation-providers). +The tab lists all translation services that have been configured. Each service shows its name, vendor, and whether it's enabled. Disabled services don't appear as choices in the **Create a new translation** modal. diff --git a/docs/getting_started/content_tree/content_tree.md b/docs/getting_started/content_tree/content_tree.md index 6cc5df68..cb26d4e2 100644 --- a/docs/getting_started/content_tree/content_tree.md +++ b/docs/getting_started/content_tree/content_tree.md @@ -12,10 +12,7 @@ The **Content tree** area is an expandable content menu of your website. The same tree structure is used in other areas of the Content menu, such as **Media** or **Forms**. -Unique icons for each content type instantly show you what type of content you are selecting. To add custom icons to your content tree, follow the [configuration tutorial in developer documentation]([[= developer_doc =]]/administration/back_office/back_office_elements/custom_icons/#customize-content-type-icons). - -For more information about custom configuration, go to [Content tree]([[= developer_doc =]]/administration/back_office/content_tree/) in developer documentation. - +Unique icons for each content type instantly show you what type of content you are selecting. Within the content tree, hidden content is greyed out in the tree view. To simplify the content tree, big lists are collapsed and include a **Show more** icon. diff --git a/docs/getting_started/discover_ui.md b/docs/getting_started/discover_ui.md index 12f81b38..d07b869e 100644 --- a/docs/getting_started/discover_ui.md +++ b/docs/getting_started/discover_ui.md @@ -151,7 +151,6 @@ Click it to access documentation, trainings, release notes, and product roadmap ![Help center](img/help_center.png "Help center") -Help center can be [customized]([[= developer_doc =]]/administration/back_office/customize_integrated_help/) to fit the needs of your organization, for example, to include links to your internal style guides. ### Disable help center diff --git a/docs/image_management/edit_images.md b/docs/image_management/edit_images.md index 82b802c6..a5f53f69 100644 --- a/docs/image_management/edit_images.md +++ b/docs/image_management/edit_images.md @@ -83,7 +83,6 @@ This way, a responsive image can be cropped to fit the viewport, so the area tha !!! note Cropping to focal point is not automatic. The website's templates must be adapted for this to happen. - See [Use focal point]([[= developer_doc =]]/templating/embed_and_list_content/render_images/#use-focal-point) in Developer Documentation for an example of implementing such cropping. Click the **Show point** button to see a target on the preview. Drag the target to a point on the image that you want to focus on. diff --git a/docs/product_catalog/create_edit_product.md b/docs/product_catalog/create_edit_product.md index 8534ec68..935fce0e 100644 --- a/docs/product_catalog/create_edit_product.md +++ b/docs/product_catalog/create_edit_product.md @@ -17,8 +17,7 @@ You can only create or modify products when your [user role](../permission_manag To create a product, depending on how the product type is defined, you [may need to provide](products.md#product-completeness) certain pieces of information in their respective [fields](../content_management/content_model.md#fields-and-field-types). You can create products using either manual or bulk method. -Bulk method is available through the API. -See [Products]([[= developer_doc =]]/product_catalog/product_api/#products) for a technical guide on how to do this. +Bulk method is available through the [API]([= developer_doc =]]/api/api/). 1\. Click **Product catalog** -> **Products**. diff --git a/docs/product_catalog/products.md b/docs/product_catalog/products.md index 6e6498da..74c3e494 100644 --- a/docs/product_catalog/products.md +++ b/docs/product_catalog/products.md @@ -27,7 +27,7 @@ For more information about creating products, see [Create product](create_edit_p ## Product completeness -Before your customers can purchase products, the website [administrator must configure]([[= developer_doc =]]/product_catalog/enable_purchasing_products/) at least one region and one currency for the shop, and VAT rates for each of the regions. +Before your customers can purchase products, the website administrator must configure at least one region and one currency for the shop, and VAT rates for each of the regions. You must then set: - VAT rates for the product type diff --git a/docs/product_catalog/quable_integration.md b/docs/product_catalog/quable_integration.md index f900b751..3c0cf5b2 100644 --- a/docs/product_catalog/quable_integration.md +++ b/docs/product_catalog/quable_integration.md @@ -6,7 +6,7 @@ month_change: false # [[= pim_product_name =]] integration [[= product_name =]] can be connected to [[[= pim_product_name =]]](https://www.quable.com/en) as an external product information management (PIM) system. -After the feature is [configured]([[= developer_doc =]]/product_catalog/quable/install_quable/), [[= pim_product_name =]] becomes the central place for managing product data. +Once configured, [[= pim_product_name =]] becomes the central place for managing product data. All product information is maintained in [[= pim_product_name =]] and automatically made available in [[= product_name =]]. This allows teams to work with consistent product data in the [[= product_name =]] interface, without duplicating or manually transferring information between systems. diff --git a/docs/user_management/manage_users.md b/docs/user_management/manage_users.md index 4b8a645d..097fdaf4 100644 --- a/docs/user_management/manage_users.md +++ b/docs/user_management/manage_users.md @@ -13,7 +13,7 @@ As you can see, the interface is the same as when working with regular content i !!! caution - If you are creating a new user group, remember to [exclude it in product tour configuration]([[= developer_doc =]]/administration/back_office/configure_product_tour#user-group-restrictions) if necessary. + If you are creating a new user group, exclude it from the product tour configuration if necessary. ![Users section](img/users_section.png) From c12c4f7adbf200f5a247646ee523d1331a22fe04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Fri, 18 Sep 2026 15:11:14 +0200 Subject: [PATCH 3/6] Fixed build --- docs/product_catalog/create_edit_product.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product_catalog/create_edit_product.md b/docs/product_catalog/create_edit_product.md index 935fce0e..29b9f436 100644 --- a/docs/product_catalog/create_edit_product.md +++ b/docs/product_catalog/create_edit_product.md @@ -17,7 +17,7 @@ You can only create or modify products when your [user role](../permission_manag To create a product, depending on how the product type is defined, you [may need to provide](products.md#product-completeness) certain pieces of information in their respective [fields](../content_management/content_model.md#fields-and-field-types). You can create products using either manual or bulk method. -Bulk method is available through the [API]([= developer_doc =]]/api/api/). +Bulk method is available through the [API]([[= developer_doc =]]/api/api/). 1\. Click **Product catalog** -> **Products**. From 59b131fce9e30c8c6cb2d221f4d6bbdec6b2f247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Fri, 18 Sep 2026 15:12:04 +0200 Subject: [PATCH 4/6] Markdownlint --- docs/ai_actions/work_with_ai_actions.md | 1 - docs/content_management/create_edit_pages.md | 1 - docs/getting_started/discover_ui.md | 1 - 3 files changed, 3 deletions(-) diff --git a/docs/ai_actions/work_with_ai_actions.md b/docs/ai_actions/work_with_ai_actions.md index f39d5056..e1ee1786 100644 --- a/docs/ai_actions/work_with_ai_actions.md +++ b/docs/ai_actions/work_with_ai_actions.md @@ -138,7 +138,6 @@ If the [Taxonomy suggestions]([[= developer_doc =]]/content_management/taxonomy/ 1. Click **Save and close** to apply the changes or **Discard** to discard them and close the window. - ## Duplicate AI actions You can duplicate existing actions, for example, to create a variant version of an action with slightly different settings. diff --git a/docs/content_management/create_edit_pages.md b/docs/content_management/create_edit_pages.md index 93c685bb..e951b2d5 100644 --- a/docs/content_management/create_edit_pages.md +++ b/docs/content_management/create_edit_pages.md @@ -94,7 +94,6 @@ Page Builder has two main views that you can use while creating a page: [Layout](configure_ct_field_settings.md#available-page-layouts) divides the page into the defined zones. The zones are placeholders for the blocks. - While editing, you can switch layout for your page from the available ones. To do it, click **Switch layouts** button. diff --git a/docs/getting_started/discover_ui.md b/docs/getting_started/discover_ui.md index d07b869e..a71c9a74 100644 --- a/docs/getting_started/discover_ui.md +++ b/docs/getting_started/discover_ui.md @@ -151,7 +151,6 @@ Click it to access documentation, trainings, release notes, and product roadmap ![Help center](img/help_center.png "Help center") - ### Disable help center Help center is enabled by default, but you can toggle it in [user settings](get_started.md#browsing). From 0bc2f3ef08ece14666e65fbe09c446ae3ce1c1c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Wed, 23 Sep 2026 13:45:39 +0200 Subject: [PATCH 5/6] review feedback --- docs/content_management/block_reference.md | 12 +- docs/content_management/create_edit_pages.md | 6 +- docs/content_management/translate_content.md | 174 +++++++++---------- docs/getting_started/discover_ui.md | 18 -- docs/getting_started/get_started.md | 10 -- docs/user_management/manage_users.md | 4 - 6 files changed, 90 insertions(+), 134 deletions(-) diff --git a/docs/content_management/block_reference.md b/docs/content_management/block_reference.md index f02ee008..38faf60e 100644 --- a/docs/content_management/block_reference.md +++ b/docs/content_management/block_reference.md @@ -19,7 +19,6 @@ The following blocks are available in [[= product_name =]]: |[Embed](#embed-block)|Embeds a content item of any content type on the page. | |[Form](#form-block)|Embeds a Form content item that you select from the content structure. | |[Gallery](#gallery-block)|Displays all images contained in a selected folder. | -|[[[= product_name_connect =]]](#ibexa-connect-block)|Retrieves and displays data from an [[= product_name_connect =]] webhook. | |[Product collection](#product-collection-block)|Displays a list of specifically selected products.| |[Product embed](#product-embed)|Displays a specific product.| |[RSS](#rss-block)|Loads and displays news from RSS feeds (channels). | @@ -155,7 +154,7 @@ On the **Properties** tab, set values in the following fields: !!! caution "Known limitation" - To prevent potential issues related to duplicate data submission, avoid embedding two or more identical forms on a single page. + To prevent potential issues related to duplicate data submission, don't embed two or more identical forms on a single page. ### Gallery block @@ -168,15 +167,6 @@ On the **Properties** tab, set values in the following fields: After submitting the settings, all images in the folder are shown in the Gallery block. Selecting a folder containing content items other than images results in displaying only a link to the folder where they're stored. -### [[= product_name_connect =]] block - -Access and showcase data retrieved from an [[= product_name_connect =]] webhook. -Streamline information presentation for seamless insights and improved decision-making. -On the **Properties** tab, set values in the following fields: - -- **Name** – Enter a name for the page block. -- **Webhook link** — Enter the link for the [[= product_name_connect =]] webhook. - ### Product collection block Presents curated collections of items for easier exploration and discovery. diff --git a/docs/content_management/create_edit_pages.md b/docs/content_management/create_edit_pages.md index e951b2d5..b758c3a4 100644 --- a/docs/content_management/create_edit_pages.md +++ b/docs/content_management/create_edit_pages.md @@ -133,10 +133,8 @@ To change this behavior, click on **Edit** icon, find the setting, and change it ![User settings - blocks](img/user_settings_blocks.png "User settings - blocks settings") -[[= product_name =]] comes with a set of ready-to-use page blocks, -but your integration partner can add custom ones. - -For a list of blocks available out of the box, see [Block reference](block_reference.md). +[[= product_name =]] comes with a set of ready-to-use page blocks. +For a list of available blocks, see [Block reference](block_reference.md). !!! note diff --git a/docs/content_management/translate_content.md b/docs/content_management/translate_content.md index 623a5cf9..e3edb6dd 100644 --- a/docs/content_management/translate_content.md +++ b/docs/content_management/translate_content.md @@ -11,10 +11,12 @@ The application that consumes your content decides which version a visitor sees. [[= product_name =]] offers a [side-by-side translation view](#side-by-side-translation-view) that displays the source and target languages simultaneously. It makes it easier for you to provide, edit, and review translations. -You can also translate your content translated automatically by using an external translation service. +You can also translate your content automatically by using an external translation service. Automatic translation requires [configuration]([[= developer_doc =]]/multisite/translations_management/configure_translations_management) before you can use it. -## Add website languages +## Manage translation settings + +### Website languages You can only add translations in languages that have been set up in the **Admin** panel. If your user [role](work_with_permissions.md) has the right permissions, you can add a new language. @@ -25,6 +27,47 @@ Every new language must have a name and a language code written in the xxx-XX fo Adding a language doesn't require any configuration changes. As soon as you save it, the language is available for creating content items, products, and their translations. +### Translation services + +If you have Administrator permissions, you can enable and disable translation services and assign them to language pairs. +Enabling at least one translation service is required before the editors can use automatic translation. + +To see the translation services that are available in your system, go to **Admin** -> **Languages** -> **Translation services** tab. + +The tab lists all available translation services. +Each service shows its name, vendor, and whether it's enabled. +Disabled services don't appear as choices in the **Create a new translation** modal. + +!!! note "Permission to use AI actions" + + AI-based translation services require that policies related to [AI actions](work_with_ai_actions.md) are assigned to user roles. + If an editor can't see AI-based services in the drop-down on the **Create a new translation** modal, check if the right permissions are granted in their role definition. + +### Language pairs + +To manage language pairs, go to **Admin** -> **Languages** -> **Language pairs** tab. + +A language pair setting decides which translation service is used by default when an editor translates from one specific language to another. +When an editor opens the **Create a new translation** modal and selects a source and target language, a matching translation service gets pre-selected. +The editor can override this selection. + +To add a language pair, click **+ Add language pair**, and then: + +1. Select a source language. +2. Select one or more target languages. +3. Select a translation service. +4. Click **Save and close**. + +![Creating a language pair](img/translations_management_language_pairs.png "Creating a language pair") + +This creates one language pair per selected target language. + +!!! note "Existing language pairs" + + If a language pair for a given source-to-target combination already exists, even for a disabled translation service, you cannot create another one with a different service. + Edit the existing language pair instead. + To do it, you may need to temporarily re-enable the disabled services, so that all language pairs appear on the screen. + ## Add translations 1\. Either click **+ Add** in the content item's or product's **Translations** tab, or **Add translation** in the content tree. @@ -47,7 +90,7 @@ To do it, uncheck **Use automatic translation** and proceed. ![Create a new translation modal](img/translations_create_translation.png "Create a new translation modal") -If no translation providers are configured in the system, or [the providers are disabled](#manage-translation-services-and-language-pairs), the checkbox is inactive. +If no translation providers are configured in the system, or [the providers are disabled](#translation-services), the checkbox is inactive. If only one provider exists in the system, there is a checkbox, but no drop-down list. When there are more than four translation services configured in the system, a search field appears in the drop-down list. @@ -68,69 +111,39 @@ Depending on whether you choose to use automatic translations, target fields can Every time you add or edit a translation, a new version of the content item is created, the same way as when editing only one language. -## Translation comparison - -You can compare different versions of the translations of the content item. - -1\. [Disable the Focus mode](../getting_started/discover_ui.md#disable-focus-mode). - -2\. In the left panel, go to **Content** -> **Content structure**. Then select a content item. - -3\. Go to **Versions** tab and click the **Version compare** icon: ![Version Compare Icon](img/version_compare_icon.png){.inline-image}. - -4\. In the **Comparing versions** screen, use the switcher in the top right corner, and click the split view: - -![View switcher](img/view_switcher.png "View switcher") - -5\. From the drop-downs, select two different language versions of the same content item. -The screen refreshes to display the side by side view of its fields. - -![Compare translations screen](img/compare_translations.png "Compare translations screen") - -For more information, see [Work with versions](work_with_versions.md#compare-versions). - -## Manage translation services and language pairs - -If you have Administrator permissions, you can enable and disable translation services and assign them to language pairs. -Enabling at least one translation service is required before the editors can use automatic translation. - -### Translation services +### Edit existing translations -To see the translation services that are available in your system, go to **Admin** -> **Languages** -> **Translation services** tab. +The back office offers several entry points where you can edit existing content item or product translations. -The tab lists all translation services that have been configured. -Each service shows its name, vendor, and whether it's enabled. -Disabled services don't appear as choices in the **Create a new translation** modal. +To edit a published translation of a content item: -!!! note "Permission to use AI actions" +1. In the content tree, select a content item and click **Edit**. +2. If the content item has multiple language versions, the **Select translation modal** displays all published translations. +3. Select a language and click **Edit side-by-side**. - AI-based translation services require that policies related to [AI actions](work_with_ai_actions.md) are assigned to user roles. - If an editor can't see AI-based services in the drop-down on the **Create a new translation** modal, check if the right permissions are granted in their role definition. +To edit a translation of a product: -### Language pairs +1. Go to **Product catalog** -> **Products**. +2. Select a product and open the **Translations** tab. +3. Next to the language version you want to edit, click the **Edit side-by-side** button. -To manage language pairs, go to **Admin** -> **Languages** -> **Language pairs** tab. +This opens the side-by-side translation view, where you can perform a review or make your changes and either create a new draft of a content item or publish directly. -A language pair setting decides which translation service is used by default when an editor translates from one specific language to another. -When an editor opens the **Create a new translation** modal and selects a source and target language, a matching translation service gets pre-selected. -The editor can override this selection. +!!! tip -To add a language pair, click **+ Add language pair**, and then: + The **Edit side-by-side** button is active only for languages other than the main language of the content item or product. -1. Select a source language. -2. Select one or more target languages. -3. Select a translation service. -4. Click **Save and close**. +To edit a draft translation of a content item: -![Creating a language pair](img/translations_management_language_pairs.png "Creating a language pair") +- In the content tree, select a content item and open the **Versions** tab. Click the three dots icon next to a draft translation that you want to edit and, in the context menu, click **Edit side-by-side**. +- In the main menu, go to **Content** or visit the **My dashboard** page, and go to **Drafts**. Find a draft whose source and target languages differ and click **Edit side-by-side**. -This creates one language pair per selected target language. +This opens the existing draft in the side-by-side translation view, so you can review and refine a translation without creating a new draft. -!!! note "Existing language pairs" +!!! tip - If a language pair for a given source-to-target combination already exists, even for a disabled translation service, you cannot create another one with a different service. - Edit the existing language pair instead. - To do it, you may need to temporarily re-enable the disabled services, so that all language pairs appear on the screen. + Products don't have draft translations. + Product translations are published instantly when you click **Save and close** in the editing window. ## Side-by-side translation view @@ -200,40 +213,6 @@ The button toggles the source panel visibility, allowing editors to hide the sou ![Collapse source button](img/translations_collapse_source.png "Collapse source button") -## Edit existing translations - -The back office offers several entry points where you can edit existing content item or product translations. - -To edit a published translation of a content item: - -1. In the content tree, select a content item and click **Edit**. -2. If the content item has multiple language versions, the **Select translation modal** displays all published translations. -3. Select a language and click **Edit side-by-side**. - -To edit a translation of a product: - -1. Go to **Product catalog** -> **Products**. -2. Select a product and open the **Translations** tab. -3. Next to the language version you want to edit, click the **Edit side-by-side** button. - -This opens the side-by-side translation view, where you can perform a review or make your changes and either create a new draft of a content item or publish directly. - -!!! tip - - The **Edit side-by-side** button is active only for languages other than the main language of the content item or product. - -To edit a draft translation of a content item: - -- In the content tree, select a content item and open the **Versions** tab. Click the three dots icon next to a draft translation that you want to edit and, in the context menu, click **Edit side-by-side**. -- In the main menu, go to **Content** or visit the **My dashboard** page, and go to **Drafts**. Find a draft whose source and target languages differ and click **Edit side-by-side**. - -This opens the existing draft in the side-by-side translation view, so you can review and refine a translation without creating a new draft. - -!!! tip - - Products don't have draft translations. - Product translations are published instantly when you click **Save and close** in the editing window. - ## Review automatic translation If a content item or product has draft translations created with automatic translation, the **Versions** tab displays a **Translation status** column. @@ -273,3 +252,24 @@ The review banner disappears permanently and the status changes from **For revie Accepting a translation of a content item does not mean that it's published. You still need to save and publish the draft. You can also close the draft without publishing. + +## Compare translations + +You can compare different versions of the translations of the content item. + +1\. [Disable the Focus mode](../getting_started/discover_ui.md#disable-focus-mode). + +2\. In the left panel, go to **Content** -> **Content structure**. Then select a content item. + +3\. Go to **Versions** tab and click the **Version compare** icon: ![Version Compare Icon](img/version_compare_icon.png){.inline-image}. + +4\. In the **Comparing versions** screen, use the switcher in the top right corner, and click the split view: + +![View switcher](img/view_switcher.png "View switcher") + +5\. From the drop-downs, select two different language versions of the same content item. +The screen refreshes to display the side by side view of its fields. + +![Compare translations screen](img/compare_translations.png "Compare translations screen") + +For more information, see [Work with versions](work_with_versions.md#compare-versions). diff --git a/docs/getting_started/discover_ui.md b/docs/getting_started/discover_ui.md index a71c9a74..1fa3a2b9 100644 --- a/docs/getting_started/discover_ui.md +++ b/docs/getting_started/discover_ui.md @@ -144,21 +144,3 @@ Focus mode is enabled by default when you first log into [[= product_name =]], b ![Focus mode switch](img/FM_switch.png "Focus mode switch") -## Help center - -The ![Help center](about-info.png){.inline-image} icon appears at the bottom right of multiple screens. -Click it to access documentation, trainings, release notes, and product roadmap highlights straight from the back office. - -![Help center](img/help_center.png "Help center") - -### Disable help center - -Help center is enabled by default, but you can toggle it in [user settings](get_started.md#browsing). - -### Dismiss help icon - -It may happen that the help icon overlaps with other interface elements that you want to interact with. -In such case, hover over the help icon and click the X icon to dismiss it. -The help icon reappears when you reload the screen. - -![Help obstructs UI](img/help_obstructs.png "Help obstructs UI") diff --git a/docs/getting_started/get_started.md b/docs/getting_started/get_started.md index 6fba0b22..c0cfb105 100644 --- a/docs/getting_started/get_started.md +++ b/docs/getting_started/get_started.md @@ -24,13 +24,6 @@ To log in, enter the user credentials on the login screen. ![Login screen](img/login_form.png "Login screen") -### Onboarding - -When you log in to [[= product_name =]] for the first time, interactive product tours appear. -These in-app walkthroughs guide you through key features and help you get started quickly. - -You can complete each step of the onboarding tutorials, skip them entirely if you prefer to explore on your own, or restart them anytime from your [user settings](#user-settings) under the **Browsing** section. - ### View and edit user profile If you're an editor, depending on the system configuration, you may be able to view and edit the user profile, which can contain the following information: @@ -113,9 +106,6 @@ Here you can [change your user password](get_started.md#change-the-password) and |-------|-----------| |Number of items displayed in the table|Sets the number of items displayed in sub-items.| |Location preview|Enables or disables a thumbnail preview on the content tree.| -|Help center|Enables or disables the [help center](discover_ui.md#help-center). | -|Product tour|Enables or disables the [product tour onboarding](#onboarding) walkthroughs. | -|Product tour scenarios settings|Separate setting for each available product tour scenario. Allows you to mark each scenario as completed or reset its progress.| |Side-by-side layout|Decides on which side of the screen the target language column should be displayed in the [side-by-side translation view](translate_content.md#side-by-side-translation-view). | |Automatic translation for new items|Controls the behavior of the [**Create a new translation** modal](translate_content.md#add-translations). When activated, the **Use automatic translation** checkbox is selected and the default translation service for the language pair is preselected. Inactive when no automated translation services are defined. | diff --git a/docs/user_management/manage_users.md b/docs/user_management/manage_users.md index 097fdaf4..c5ed9a51 100644 --- a/docs/user_management/manage_users.md +++ b/docs/user_management/manage_users.md @@ -11,10 +11,6 @@ You can view all user groups and Users in the **Admin** panel by selecting **Use Here, you can manage users, their relations, roles, and policies. As you can see, the interface is the same as when working with regular content items. -!!! caution - - If you are creating a new user group, exclude it from the product tour configuration if necessary. - ![Users section](img/users_section.png) !!! caution From 4868db340d37244a779ccf3267a08e720dbc264b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Wed, 23 Sep 2026 14:29:27 +0200 Subject: [PATCH 6/6] Fixed markdownlint --- docs/getting_started/discover_ui.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/getting_started/discover_ui.md b/docs/getting_started/discover_ui.md index 1fa3a2b9..d03a811d 100644 --- a/docs/getting_started/discover_ui.md +++ b/docs/getting_started/discover_ui.md @@ -143,4 +143,3 @@ Focus mode is enabled by default when you first log into [[= product_name =]], b - in the drop-down menu on the right side of the top bar ![Focus mode switch](img/FM_switch.png "Focus mode switch") -