diff --git a/src/bundle/DependencyInjection/Configuration/Parser/AdminUiParser.php b/src/bundle/DependencyInjection/Configuration/Parser/AdminUiParser.php
new file mode 100644
index 0000000000..c50215dddc
--- /dev/null
+++ b/src/bundle/DependencyInjection/Configuration/Parser/AdminUiParser.php
@@ -0,0 +1,82 @@
+ UserMode::EXPERT,
+ 'smart' => UserMode::SMART,
+ ];
+
+ /**
+ * @param array $scopeSettings
+ */
+ public function mapConfig(
+ array &$scopeSettings,
+ $currentScope,
+ ContextualizerInterface $contextualizer
+ ): void {
+ if (empty($scopeSettings['admin_ui'])) {
+ return;
+ }
+
+ $settings = $scopeSettings['admin_ui'];
+
+ $this->addUserModeParameters($settings, $currentScope, $contextualizer);
+ }
+
+ public function addSemanticConfig(NodeBuilder $nodeBuilder): void
+ {
+ $root = $nodeBuilder->arrayNode('admin_ui');
+ $root->children()
+ ->enumNode('default_user_mode')
+ ->info('Default user mode setting')
+ ->values(['smart', 'expert'])
+ ->end()
+ ->end();
+ }
+
+ /**
+ * @param array $settings
+ */
+ private function addUserModeParameters(
+ array $settings,
+ string $currentScope,
+ ContextualizerInterface $contextualizer
+ ): void {
+ $userMode = $settings['default_user_mode'];
+
+ if (!array_key_exists($userMode, self::MODES)) {
+ return;
+ }
+
+ $contextualizer->setContextualParameter(
+ 'admin_ui.default_user_mode',
+ $currentScope,
+ self::MODES[$userMode]
+ );
+ }
+}
diff --git a/src/bundle/IbexaAdminUiBundle.php b/src/bundle/IbexaAdminUiBundle.php
index b168dd5996..521a9a9e49 100644
--- a/src/bundle/IbexaAdminUiBundle.php
+++ b/src/bundle/IbexaAdminUiBundle.php
@@ -72,6 +72,7 @@ private function getConfigParsers(): array
new Parser\SubtreePath(),
new Parser\LimitationValueTemplates(),
new Parser\Assets(),
+ new Parser\AdminUiParser(),
];
}
}
diff --git a/src/bundle/Resources/config/default_parameters.yaml b/src/bundle/Resources/config/default_parameters.yaml
index d96d7a7a44..8be5cee2f0 100644
--- a/src/bundle/Resources/config/default_parameters.yaml
+++ b/src/bundle/Resources/config/default_parameters.yaml
@@ -76,3 +76,5 @@ parameters:
ibexa.io.multifile_upload.max_file_size: 5242880
ibexa.admin_ui.content_tree.node_factory.max_location_ids_in_single_aggregation: 100
+
+ ibexa.site_access.config.default.admin_ui.default_user_mode: '1'
diff --git a/src/bundle/Resources/config/services/user_settings.yaml b/src/bundle/Resources/config/services/user_settings.yaml
index 8a9fbf0897..84e4139290 100644
--- a/src/bundle/Resources/config/services/user_settings.yaml
+++ b/src/bundle/Resources/config/services/user_settings.yaml
@@ -25,3 +25,12 @@ services:
tags:
- { name: ibexa.user.setting.value, identifier: in_context_translation, group: location, priority: 60 }
- { name: ibexa.user.setting.mapper.form, identifier: in_context_translation }
+
+ Ibexa\AdminUi\UserSetting\Group\UserModeGroup:
+ tags:
+ - { name: ibexa.user.setting.group, identifier: mode, priority: -10 }
+
+ Ibexa\AdminUi\UserSetting\UserMode:
+ tags:
+ - { name: ibexa.user.setting.value, identifier: user_mode, group: mode, priority: 10 }
+ - { name: ibexa.user.setting.mapper.form, identifier: user_mode }
diff --git a/src/bundle/Resources/translations/ibexa_user_settings.en.xliff b/src/bundle/Resources/translations/ibexa_user_settings.en.xliff
index 7a0ce0b32c..f05504af18 100644
--- a/src/bundle/Resources/translations/ibexa_user_settings.en.xliff
+++ b/src/bundle/Resources/translations/ibexa_user_settings.en.xliff
@@ -56,6 +56,11 @@
Date and Time will be displayed in this format:
key: settings.datetime_format.preview_label
+
+ Mode
+ Mode
+ key: settings.group.mode.name
+
Toggle In-Context translation feature
Toggle In-Context translation feature
@@ -76,6 +81,51 @@
In-Context translation
key: settings.in_context_translation.value.title
+
+ Mode
+ Mode
+ key: user.setting.mode.description
+
+
+ Expert
+ Expert
+ key: user.setting.mode.expert
+
+
+ Smart mode – A clean and intuitive interface with a simplified content structure, designed for new and non-advanced users. Features include:
+
+ Quick preview
+ Hidden Technical Details tab
+ Hidden Locations and Versions tabs in Content items
+
+ Expert mode – Tailored for experienced users familiar with Ibexa DXP. Provides comprehensive insights into the technical aspects of Content structure, including:
+
+ Technical Details tab
+ Location: Archived versions
+ ]]>
+ Smart mode – A clean and intuitive interface with a simplified content structure, designed for new and non-advanced users. Features include:
+
+ Quick preview
+ Hidden Technical Details tab
+ Hidden Locations and Versions tabs in Content items
+
+ Expert mode – Tailored for experienced users familiar with Ibexa DXP. Provides comprehensive insights into the technical aspects of Content structure, including:
+
+ Technical Details tab
+ Location: Archived versions
+ ]]>
+ key: user.setting.mode.help
+
+
+ Mode
+ Mode
+ key: user.setting.mode.name
+
+
+ Smart
+ Smart
+ key: user.setting.mode.smart
+