Skip to content

Commit 402112d

Browse files
committed
Merge remote-tracking branch 'origin/main' into v15/feature/tiptap
2 parents 986eb12 + 5a13b77 commit 402112d

File tree

6 files changed

+72
-10
lines changed

6 files changed

+72
-10
lines changed

src/external/backend-api/src/services.gen.ts

Lines changed: 28 additions & 1 deletion
Large diffs are not rendered by default.

src/external/backend-api/src/types.gen.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2804,6 +2804,13 @@ export type UserTwoFactorProviderModel = {
28042804
isEnabledOnUser: boolean;
28052805
};
28062806

2807+
export type ValidateUpdateDocumentRequestModel = {
2808+
values: Array<(DocumentValueModel)>;
2809+
variants: Array<(DocumentVariantRequestModel)>;
2810+
template?: ((ReferenceByIdModel) | null);
2811+
cultures?: Array<(string)> | null;
2812+
};
2813+
28072814
export type VariantItemResponseModel = {
28082815
name: string;
28092816
culture?: (string) | null;
@@ -3512,6 +3519,13 @@ export type PutDocumentByIdValidateData = {
35123519

35133520
export type PutDocumentByIdValidateResponse = (string);
35143521

3522+
export type PutUmbracoManagementApiV11DocumentByIdValidate11Data = {
3523+
id: string;
3524+
requestBody?: (ValidateUpdateDocumentRequestModel);
3525+
};
3526+
3527+
export type PutUmbracoManagementApiV11DocumentByIdValidate11Response = (string);
3528+
35153529
export type GetDocumentAreReferencedData = {
35163530
id?: Array<(string)>;
35173531
skip?: number;

src/packages/data-type/workspace/data-type-workspace-editor.element.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { UMB_DATA_TYPE_WORKSPACE_CONTEXT } from './data-type-workspace.context-token.js';
12
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
23
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
34
/**
@@ -6,6 +7,14 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
67
*/
78
@customElement('umb-data-type-workspace-editor')
89
export class UmbDataTypeWorkspaceEditorElement extends UmbLitElement {
10+
constructor() {
11+
super();
12+
13+
this.consumeContext(UMB_DATA_TYPE_WORKSPACE_CONTEXT, (workspaceContext) => {
14+
workspaceContext.createPropertyDatasetContext(this);
15+
});
16+
}
17+
918
override render() {
1019
return html`
1120
<umb-workspace-editor alias="Umb.Workspace.DataType">

src/packages/documents/documents/repository/validation/document-validation.repository.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { UmbDocumentDetailModel } from '../../types.js';
22
import { UmbDocumentValidationServerDataSource } from './document-validation.server.data-source.js';
3+
import type { UmbVariantId } from '@umbraco-cms/backoffice/variant';
34
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
45
import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';
56

@@ -30,14 +31,15 @@ export class UmbDocumentValidationRepository extends UmbRepositoryBase {
3031
/**
3132
* Saves the given data
3233
* @param {DetailModelType} model
34+
* @param variantIds
3335
* @returns {*}
3436
* @memberof UmbDetailRepositoryBase
3537
*/
36-
async validateSave(model: DetailModelType) {
38+
async validateSave(model: DetailModelType, variantIds: Array<UmbVariantId>) {
3739
if (!model) throw new Error('Data is missing');
3840
if (!model.unique) throw new Error('Unique is missing');
3941

40-
return this.#validationDataSource.validateUpdate(model);
42+
return this.#validationDataSource.validateUpdate(model, variantIds);
4143
}
4244
}
4345

src/packages/documents/documents/repository/validation/document-validation.server.data-source.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ import type { UmbDocumentDetailModel } from '../../types.js';
22
import {
33
type CreateDocumentRequestModel,
44
DocumentService,
5-
type UpdateDocumentRequestModel,
5+
type ValidateUpdateDocumentRequestModel,
66
} from '@umbraco-cms/backoffice/external/backend-api';
77
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
88
import { tryExecute } from '@umbraco-cms/backoffice/resources';
9+
import type { UmbVariantId } from '@umbraco-cms/backoffice/variant';
10+
import type { UmbEntityUnique } from '@umbraco-cms/backoffice/entity';
911

1012
/**
1113
* A server data source for Document Validation
@@ -29,12 +31,13 @@ export class UmbDocumentValidationServerDataSource {
2931
/**
3032
* Validate a new Document on the server
3133
* @param {UmbDocumentDetailModel} model - Document Model
32-
* @param parentUnique
34+
* @param parentUnique - Parent Unique
3335
* @returns {*}
3436
*/
35-
async validateCreate(model: UmbDocumentDetailModel, parentUnique: string | null = null) {
37+
async validateCreate(model: UmbDocumentDetailModel, parentUnique: UmbEntityUnique = null) {
3638
if (!model) throw new Error('Document is missing');
3739
if (!model.unique) throw new Error('Document unique is missing');
40+
if (parentUnique === undefined) throw new Error('Parent unique is missing');
3841

3942
// TODO: make data mapper to prevent errors
4043
const requestBody: CreateDocumentRequestModel = {
@@ -58,22 +61,26 @@ export class UmbDocumentValidationServerDataSource {
5861
/**
5962
* Validate a existing Document
6063
* @param {UmbDocumentDetailModel} model - Document Model
64+
* @param {Array<UmbVariantId>} variantIds - Variant Ids
6165
* @returns {*}
6266
*/
63-
async validateUpdate(model: UmbDocumentDetailModel) {
67+
async validateUpdate(model: UmbDocumentDetailModel, variantIds: Array<UmbVariantId>) {
6468
if (!model.unique) throw new Error('Unique is missing');
6569

70+
const cultures = variantIds.map((id) => id.culture).filter((culture) => culture !== null) as Array<string>;
71+
6672
// TODO: make data mapper to prevent errors
67-
const requestBody: UpdateDocumentRequestModel = {
73+
const requestBody: ValidateUpdateDocumentRequestModel = {
6874
template: model.template ? { id: model.template.unique } : null,
6975
values: model.values,
7076
variants: model.variants,
77+
cultures,
7178
};
7279

7380
// Maybe use: tryExecuteAndNotify
7481
return tryExecute(
7582
//this.#host,
76-
DocumentService.putDocumentByIdValidate({
83+
DocumentService.putUmbracoManagementApiV11DocumentByIdValidate11({
7784
id: model.unique,
7885
requestBody,
7986
}),

src/packages/documents/documents/workspace/document-workspace.context.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,10 @@ export class UmbDocumentWorkspaceContext
647647
this.#validationRepository.validateCreate(saveData, parent.unique),
648648
);
649649
} else {
650-
this.#serverValidation.askServerForValidation(saveData, this.#validationRepository.validateSave(saveData));
650+
this.#serverValidation.askServerForValidation(
651+
saveData,
652+
this.#validationRepository.validateSave(saveData, variantIds),
653+
);
651654
}
652655

653656
// TODO: Only validate the specified selection.. [NL]

0 commit comments

Comments
 (0)