diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/entity-action/publish.action.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/entity-action/publish.action.ts index f5c79e95ee..cba68820a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/entity-action/publish.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish/entity-action/publish.action.ts @@ -45,8 +45,10 @@ export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { if (currentUserHasAccessToAllLanguages === undefined) throw new Error('The current user access to all languages is missing'); - const options: Array = documentData.variants.map( - (variant) => ({ + const options: Array = documentData.variants + // only display culture variants as options + .filter((variant) => variant.segment === null) + .map((variant) => ({ culture: variant.culture, segment: variant.segment, language: languageData?.items.find((language) => language.unique === variant.culture) ?? { @@ -59,8 +61,7 @@ export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { }, variant, unique: new UmbVariantId(variant.culture, variant.segment).toString(), - }), - ); + })); // Figure out the default selections // TODO: Missing features to pre-select the variant that fits with the variant-id of the tree/collection? (Again only relevant if the action is executed from a Tree or Collection) [NL] @@ -90,11 +91,18 @@ export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { const variantIds = result?.selection.map((x) => UmbVariantId.FromString(x)) ?? []; - if (variantIds.length) { + // find all segments of a selected culture + const publishableVariantIds = variantIds.flatMap((variantId) => + documentData.variants + .filter((variant) => variantId.culture === variant.culture) + .map((variant) => UmbVariantId.Create(variant).toSegment(variant.segment)), + ); + + if (publishableVariantIds.length) { const publishingRepository = new UmbDocumentPublishingRepository(this._host); const { error } = await publishingRepository.publish( this.args.unique, - variantIds.map((variantId) => ({ variantId })), + publishableVariantIds.map((variantId) => ({ variantId })), ); if (error) { @@ -121,7 +129,8 @@ export class UmbPublishDocumentEntityAction extends UmbEntityActionBase { headline: localize.term('speechBubbles_editContentPublishedHeader'), message: localize.term( 'speechBubbles_editVariantPublishedText', - localize.list(documentVariants.map((v) => v.culture ?? v.name)), + // TODO: show correct variant names instead of variant strings [MR] + localize.list(documentVariants.map((v) => UmbVariantId.Create(v).toString() ?? v.name)), ), }, }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts index bb683d7b45..6894cac5f2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts @@ -370,7 +370,8 @@ export class UmbDocumentPublishingWorkspaceContext extends UmbContextBase { headline: this.#localize.term('speechBubbles_editContentPublishedHeader'), message: this.#localize.term( 'speechBubbles_editVariantPublishedText', - this.#localize.list(variants.map((v) => v.culture ?? v.name)), + // TODO: use correct variant names instead of variant strings [MR] + this.#localize.list(variants.map((v) => UmbVariantId.Create(v).toString() ?? v.name)), ), }, });