diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
index c183998bfb20..071dae12ee0e 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/de.ts
@@ -18,6 +18,7 @@ export default {
changeDataType: 'Datentyp ändern',
copy: 'Kopieren',
create: 'Neu',
+ createFor: (name: string) => (name ? `Neu erstellen für ${name}` : 'Neu'),
export: 'Exportieren',
createPackage: 'Neues Paket',
createGroup: 'Neue Gruppe',
@@ -63,6 +64,7 @@ export default {
unlock: 'Freigeben',
createblueprint: 'Inhaltsvorlage anlegen',
resendInvite: 'Einladung erneut versenden',
+ viewActionsFor: (name: string) => (name ? `Aktionen anzeigen für ${name}` : 'Aktionen anzeigen'),
},
actionCategories: {
content: 'Inhalt',
diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
index 5f5f6d57c058..f57a8dbea347 100644
--- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
+++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts
@@ -23,6 +23,7 @@ export default {
copy: 'Duplicate',
copyTo: 'Duplicate to',
create: 'Create',
+ createFor: (name: string) => (name ? `Create item for ${name}` : 'Create'),
createblueprint: 'Create Document Blueprint',
createGroup: 'Create group',
createPackage: 'Create Package',
diff --git a/src/Umbraco.Web.UI.Client/src/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.ts b/src/Umbraco.Web.UI.Client/src/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.ts
index 9f67b19f5cd6..244be5167905 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.ts
@@ -156,7 +156,7 @@ export class UmbClipboardEntryPickerElement extends UmbLitElement {
slot="actions"
.entityType=${item.entityType}
.unique=${item.unique}
- .label=${this.localize.term('actions_viewActionsFor', [item.name])}>
+ .label=${this.localize.string(item.name)}>
`;
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts
index 33904c550de8..b4d763e392f8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.ts
@@ -1,10 +1,10 @@
import { UmbEntityContext } from '../../entity/entity.context.js';
-import type { UmbEntityAction, ManifestEntityActionDefaultKind } from '@umbraco-cms/backoffice/entity-action';
-import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';
-import { html, nothing, customElement, property, state, ifDefined, css } from '@umbraco-cms/backoffice/external/lit';
-import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import { css, customElement, html, ifDefined, nothing, property, state } from '@umbraco-cms/backoffice/external/lit';
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import { UmbExtensionsManifestInitializer, createExtensionApi } from '@umbraco-cms/backoffice/extension-api';
+import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';
+import type { UmbEntityAction, ManifestEntityActionDefaultKind } from '@umbraco-cms/backoffice/entity-action';
@customElement('umb-entity-actions-bundle')
export class UmbEntityActionsBundleElement extends UmbLitElement {
@@ -114,14 +114,13 @@ export class UmbEntityActionsBundleElement extends UmbLitElement {
override render() {
if (this._numberOfActions === 0) return nothing;
- return html`${this.#renderMore()} ${this.#renderFirstAction()} `;
+ return html`${this.#renderMore()}${this.#renderFirstAction()}`;
}
#renderMore() {
if (this._numberOfActions === 1) return nothing;
-
return html`
-
+
`;
@@ -129,13 +128,15 @@ export class UmbEntityActionsBundleElement extends UmbLitElement {
#renderFirstAction() {
if (!this._firstActionApi || !this._firstActionManifest) return nothing;
- return html`
-
- `;
+ return html`
+
+
+
+ `;
}
static override styles = [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.kind.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.kind.ts
index a220d955aa3b..be22c22bec03 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.kind.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.kind.ts
@@ -15,7 +15,7 @@ export const manifest: UmbExtensionManifestKind = {
forEntityTypes: [],
meta: {
icon: 'icon-add',
- label: '#actions_create',
+ label: '#actions_createFor',
additionalOptions: true,
},
},
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.ts
index 6b85c7ec3598..322a5ceef06b 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/common/create/create.action.ts
@@ -2,19 +2,15 @@ import { UmbEntityActionBase } from '../../entity-action-base.js';
import type { UmbEntityActionArgs } from '../../types.js';
import type { MetaEntityActionCreateKind } from './types.js';
import { UMB_ENTITY_CREATE_OPTION_ACTION_LIST_MODAL } from './modal/constants.js';
+import { createExtensionApi, UmbExtensionsManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
-import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
-import {
- type UmbExtensionManifestInitializer,
- createExtensionApi,
- UmbExtensionsManifestInitializer,
- type PermittedControllerType,
-} from '@umbraco-cms/backoffice/extension-api';
import type {
ManifestEntityCreateOptionAction,
UmbEntityCreateOptionAction,
} from '@umbraco-cms/backoffice/entity-create-option-action';
+import type { PermittedControllerType, UmbExtensionManifestInitializer } from '@umbraco-cms/backoffice/extension-api';
+import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbCreateEntityAction extends UmbEntityActionBase {
#hasSingleOption = true;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.ts
index d2ca007786c1..925ccd4ca98d 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.ts
@@ -14,7 +14,7 @@ export class UmbEntityActionsTableColumnViewElement extends UmbLitElement {
+ .label=${this.localize.string((this.value as any).name)}>
`;
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item-layout/menu-item-layout.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item-layout/menu-item-layout.element.ts
index fdc2c07b7abf..b957066e6fde 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item-layout/menu-item-layout.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/components/menu-item-layout/menu-item-layout.element.ts
@@ -1,4 +1,4 @@
-import { html, customElement, property, ifDefined, state } from '@umbraco-cms/backoffice/external/lit';
+import { customElement, html, ifDefined, property, state, when } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { ensureSlash } from '@umbraco-cms/backoffice/router';
import { debounce } from '@umbraco-cms/backoffice/utils';
@@ -72,24 +72,28 @@ export class UmbMenuItemLayoutElement extends UmbLitElement {
}
override render() {
- return html`
-
- ${this.entityType
- ? html`
- `
- : ''}
-
- `;
+ return html`
+
+
+ ${when(
+ this.entityType,
+ () => html`
+
+ `,
+ )}
+
+
+ `;
}
override disconnectedCallback() {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts
index f7c885fc10e1..4dbcb61fb151 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.ts
@@ -21,14 +21,15 @@ export class UmbSectionSidebarMenuWithEntityActionsElement extends UmbSectionSid
}
override renderHeader() {
+ const label = this.localize.string(this.manifest?.meta?.label ?? '');
return html`
`;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts
index 0b0d1764a80d..2932c22a3c97 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts
@@ -138,6 +138,9 @@ export abstract class UmbTreeItemElementBase<
// Note: Currently we want to prevent opening when the item is in a selectable context, but this might change in the future.
// If we like to be able to open items in selectable context, then we might want to make it as a menu item action, so you have to click ... and chose an action called 'Edit'
override render() {
+ const caretLabelKey = this._isOpen
+ ? 'visuallyHiddenTexts_collapseChildItems'
+ : 'visuallyHiddenTexts_expandChildItems';
return html`
+ href=${ifDefined(this._isSelectableContext ? undefined : this._href)}>
${this.renderIconContainer()} ${this.renderLabel()} ${this.#renderActions()} ${this.#renderChildItems()}
${this.#renderPaging()}
@@ -224,7 +225,7 @@ export abstract class UmbTreeItemElementBase<
slot="actions"
.entityType=${this.#api.entityType}
.unique=${this.#api.unique}
- .label=${this.localize.term('actions_viewActionsFor', [this._label])}>
+ .label=${this._label}>
`;
}
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts
index 9383940f682b..9f6f4898cad8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/create.action.ts
@@ -1,9 +1,9 @@
import { UmbDocumentItemRepository } from '../../item/index.js';
import { UMB_DOCUMENT_CREATE_OPTIONS_MODAL } from './document-create-options-modal.token.js';
-import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
+import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
-import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
+import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
export class UmbCreateDocumentEntityAction extends UmbEntityActionBase {
constructor(host: UmbControllerHost, args: UmbEntityActionArgs) {
diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts
index 1cdd48b96d9b..361f62a30a43 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/entity-actions/create/manifests.ts
@@ -13,7 +13,7 @@ export const manifests: Array = [
forEntityTypes: [UMB_DOCUMENT_ROOT_ENTITY_TYPE, UMB_DOCUMENT_ENTITY_TYPE],
meta: {
icon: 'icon-add',
- label: '#actions_create',
+ label: '#actions_createFor',
additionalOptions: true,
},
conditions: [
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/create.action.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/create.action.ts
index 3629d1424ba8..b8b65c17ff6a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/create.action.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/create.action.ts
@@ -1,9 +1,9 @@
import { UmbMediaItemRepository } from '../../repository/index.js';
import { UMB_MEDIA_CREATE_OPTIONS_MODAL } from './media-create-options-modal.token.js';
-import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
+import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
-import { umbOpenModal } from '@umbraco-cms/backoffice/modal';
+import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action';
export class UmbCreateMediaEntityAction extends UmbEntityActionBase {
constructor(host: UmbControllerHost, args: UmbEntityActionArgs) {
@@ -30,5 +30,4 @@ export class UmbCreateMediaEntityAction extends UmbEntityActionBase {
});
}
}
-
export { UmbCreateMediaEntityAction as api };
diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts
index 7572bca3ebb6..a2261aeb9ac8 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/entity-actions/create/manifests.ts
@@ -12,7 +12,7 @@ export const manifests: Array = [
forEntityTypes: [UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_ENTITY_TYPE],
meta: {
icon: 'icon-add',
- label: '#actions_create',
+ label: '#actions_createFor',
additionalOptions: true,
},
conditions: [