@umbraco-engage/backoffice 17.2.0 → 17.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70,7 +70,7 @@ let UeAbTestVariantPickerElement = class UeAbTestVariantPickerElement extends Um
70
70
  return contentType;
71
71
  }
72
72
  async #getVariation() {
73
- const documentUnique = this._test?.umbracoPageVariants?.[0]?.unique;
73
+ const documentUnique = this._test?.umbracoPageVariants?.[0]?.nodeKey;
74
74
  if (!documentUnique)
75
75
  return;
76
76
  const document = await this.#getDocument(documentUnique);
@@ -101,7 +101,7 @@ let UeAbTestVariantPickerElement = class UeAbTestVariantPickerElement extends Um
101
101
  return;
102
102
  // no segment for benchmark variant means no split-view editing
103
103
  const pathParams = {
104
- unique: this._test.umbracoPageVariants[0].unique,
104
+ unique: this._test.umbracoPageVariants[0].nodeKey,
105
105
  culture: this._test.umbracoPageVariants[0].culture,
106
106
  segment: variant.isBenchmark ? undefined : variant.segment,
107
107
  };
@@ -29,7 +29,9 @@ let UeAbTestingWorkspaceViewElement = class UeAbTestingWorkspaceViewElement exte
29
29
  umbracoPageVariants: [
30
30
  {
31
31
  id: 0,
32
- unique: this.#documentWorkspaceContext?.getUnique()?.toString(),
32
+ // unique is the row identifier; the server mints it on insert when empty.
33
+ unique: "00000000-0000-0000-0000-000000000000",
34
+ nodeKey: this.#documentWorkspaceContext?.getUnique()?.toString(),
33
35
  culture: this.#documentWorkspaceContext?.splitView
34
36
  ?.getActiveVariants()
35
37
  .at(0)?.culture,
@@ -137,6 +137,7 @@ export type AbTestTypeModel = 'SinglePage' | 'MultiPage' | 'ContentType' | 'Spli
137
137
  export type AbTestUmbracoPageVariantDtoModel = {
138
138
  id: number;
139
139
  unique: string;
140
+ nodeKey: string;
140
141
  nodeName?: string | null;
141
142
  culture?: string | null;
142
143
  abTestId?: number | null;
@@ -392,6 +393,7 @@ export type AppliedPersonalizationUmbracoPageVariantDtoModel = {
392
393
  id: number;
393
394
  unique: string;
394
395
  nodeId: number;
396
+ nodeKey: string;
395
397
  culture?: string | null;
396
398
  };
397
399
  export type BackofficeConfigurationDtoModel = {
@@ -10,11 +10,11 @@ import { ENGAGE_EDIT_VARIANT_PATH_PATTERN, UeTimeFormatOptions, } from "../../..
10
10
  const elementName = "ue-applied-personalization-table-name-column-layout";
11
11
  let UeAppliedPersonalizationTableTypeColumnLayoutElement = class UeAppliedPersonalizationTableTypeColumnLayoutElement extends UmbLitElement {
12
12
  #renderName() {
13
- if (this.value.type !== "SinglePage" || !this.value.pages?.[0]?.unique)
13
+ if (this.value.type !== "SinglePage" || !this.value.pages?.[0]?.nodeKey)
14
14
  return html `${this.value.name}`;
15
15
  const page = this.value.pages[0];
16
16
  const url = ENGAGE_EDIT_VARIANT_PATH_PATTERN.generateLocal({
17
- unique: page.unique,
17
+ unique: page.nodeKey,
18
18
  culture: page.culture,
19
19
  segment: this.value.umbracoSegmentAlias,
20
20
  });
@@ -43,7 +43,7 @@ export class UePersonalizationEditorViewBaseContext extends UmbContextBase {
43
43
  const page = variant.pages?.[0];
44
44
  if (!variant.umbracoSegmentAlias || !page)
45
45
  return;
46
- await this.#preview.preview(page.unique, variant.umbracoSegmentAlias, page.culture ?? undefined);
46
+ await this.#preview.preview(page.nodeKey, variant.umbracoSegmentAlias, page.culture ?? undefined);
47
47
  }
48
48
  getPersonalizationByUnique(unique) {
49
49
  return this.personalizations.getValue().find((x) => x.unique === unique);
@@ -66,7 +66,7 @@ export class UePersonalizationEditorViewBaseContext extends UmbContextBase {
66
66
  const cultureMatch = (x) => !x.culture || !culture || x.culture === culture;
67
67
  return (this.personalizations
68
68
  .getValue()
69
- .filter((personalization) => personalization.pages.some((page) => page.unique === unique && cultureMatch(page)) ||
69
+ .filter((personalization) => personalization.pages.some((page) => page.nodeKey === unique && cultureMatch(page)) ||
70
70
  personalization.contentTypes.some((contentType) => contentType.contentTypeId?.toString() === contentTypeUnique &&
71
71
  cultureMatch(contentType))) ?? []);
72
72
  }
@@ -72,7 +72,7 @@ export class UePersonalizedVariantWorkspaceContext extends UeWorkspaceContextBas
72
72
  const page = data?.pages?.[0];
73
73
  if (!data?.umbracoSegmentAlias || !page)
74
74
  return;
75
- await this.#preview.preview(page.unique, data.umbracoSegmentAlias, this.#variantId?.culture ?? undefined);
75
+ await this.#preview.preview(page.nodeKey, data.umbracoSegmentAlias, this.#variantId?.culture ?? undefined);
76
76
  }
77
77
  async createScaffold() {
78
78
  await Promise.all([this.#init, this.#repositoryReady]);
@@ -85,7 +85,10 @@ export class UePersonalizedVariantWorkspaceContext extends UeWorkspaceContextBas
85
85
  pages: [
86
86
  {
87
87
  id: 0,
88
- unique: this.documentWorkspace.getUnique(),
88
+ // unique is the row identifier; the server mints it on insert when empty.
89
+ unique: "00000000-0000-0000-0000-000000000000",
90
+ nodeKey: this.documentWorkspace.getUnique(),
91
+ nodeId: 0,
89
92
  culture: this.#variantId?.culture ?? null,
90
93
  },
91
94
  ],
@@ -55,11 +55,11 @@ let UeDocumentTypePermissionsElement = class UeDocumentTypePermissionsElement ex
55
55
  allowApplyPersonalization: value,
56
56
  allowScorePersonalization: value,
57
57
  showAnalytics: value,
58
- }, (x) => x.id === permission.id);
58
+ }, (x) => x.contentTypeId === permission.contentTypeId);
59
59
  }
60
60
  #onRowChange(e, permission, key) {
61
61
  const value = e.target.checked;
62
- this._documentTypePermissions = partialUpdateFrozenArray(this._documentTypePermissions, { ...permission, [key]: value }, (x) => x.id === permission.id);
62
+ this._documentTypePermissions = partialUpdateFrozenArray(this._documentTypePermissions, { ...permission, [key]: value }, (x) => x.contentTypeId === permission.contentTypeId);
63
63
  }
64
64
  async #save() {
65
65
  this._disableButton = true;