From 9fcfea9ea80520fc2dd06a8d27bd7a149f93cbd0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 18 Mar 2024 14:37:10 +0100 Subject: [PATCH] implement observable unique in workspaces --- .../dictionary/workspace/dictionary-workspace.context.ts | 2 +- .../workspace/document-type-workspace.context.ts | 3 +++ .../language/workspace/language/language-workspace.context.ts | 2 ++ .../partial-views/workspace/partial-view-workspace.context.ts | 1 + .../stylesheets/workspace/stylesheet-workspace.context.ts | 1 + .../user/user-group/workspace/user-group-workspace.context.ts | 1 + 6 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts index ea4be0ef11..34a52a6bd9 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/workspace/dictionary-workspace.context.ts @@ -22,7 +22,7 @@ export class UmbDictionaryWorkspaceContext #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); - + readonly unique = this.#data.asObservablePart((data) => data?.unique); readonly name = this.#data.asObservablePart((data) => data?.name); readonly dictionary = this.#data.asObservablePart((data) => data); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts index d5131ba2f4..8a8a83c2e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/workspace/document-type-workspace.context.ts @@ -30,6 +30,7 @@ export class UmbDocumentTypeWorkspaceContext // General for content types: //readonly data; + readonly unique; readonly name; readonly alias; readonly description; @@ -55,6 +56,8 @@ export class UmbDocumentTypeWorkspaceContext // General for content types: //this.data = this.structure.ownerContentType; + + this.unique = this.structure.ownerContentTypeObservablePart((data) => data?.unique); this.name = this.structure.ownerContentTypeObservablePart((data) => data?.name); this.alias = this.structure.ownerContentTypeObservablePart((data) => data?.alias); this.description = this.structure.ownerContentTypeObservablePart((data) => data?.description); diff --git a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts index 5480834d38..cbc43d8130 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/language/workspace/language/language-workspace.context.ts @@ -18,6 +18,8 @@ export class UmbLanguageWorkspaceContext #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); + readonly unique = this.#data.asObservablePart((data) => data?.unique); + // TODO: this is a temp solution to bubble validation errors to the UI #validationErrors = new UmbObjectState(undefined); readonly validationErrors = this.#validationErrors.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts index 9d701a8c14..94702d3063 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-view-workspace.context.ts @@ -23,6 +23,7 @@ export class UmbPartialViewWorkspaceContext #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); + readonly unique = this.#data.asObservablePart((data) => data?.unique); readonly name = this.#data.asObservablePart((data) => data?.name); readonly content = this.#data.asObservablePart((data) => data?.content); readonly path = this.#data.asObservablePart((data) => data?.path); diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts index 73591fe1c1..a246d02965 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/stylesheets/workspace/stylesheet-workspace.context.ts @@ -24,6 +24,7 @@ export class UmbStylesheetWorkspaceContext #data = new UmbObjectState(undefined); readonly data = this.#data.asObservable(); + readonly unique = this.#data.asObservablePart((data) => data?.unique); readonly name = this.#data.asObservablePart((data) => data?.name); readonly content = this.#data.asObservablePart((data) => data?.content); readonly path = this.#data.asObservablePart((data) => data?.path); diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts index 3708961b2b..24465b9b93 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/workspace/user-group-workspace.context.ts @@ -17,6 +17,7 @@ export class UmbUserGroupWorkspaceContext #data = new UmbObjectState(undefined); data = this.#data.asObservable(); + readonly unique = this.#data.asObservablePart((data) => data?.unique); readonly name = this.#data.asObservablePart((data) => data?.name || ''); readonly icon = this.#data.asObservablePart((data) => data?.icon || null); readonly sections = this.#data.asObservablePart((data) => data?.sections || []);