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: [