From ffa4a4b40c7ddf38e76ca1d4c604713c3c606506 Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Mon, 6 Nov 2023 09:39:35 -0500 Subject: [PATCH 1/5] fix(): add metrics-coming-soon permission --- .../common/src/projects/_internal/ProjectBusinessRules.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/common/src/projects/_internal/ProjectBusinessRules.ts b/packages/common/src/projects/_internal/ProjectBusinessRules.ts index 498f66c8041..d098f737ef3 100644 --- a/packages/common/src/projects/_internal/ProjectBusinessRules.ts +++ b/packages/common/src/projects/_internal/ProjectBusinessRules.ts @@ -32,6 +32,7 @@ export const ProjectPermissions = [ "hub:project:workspace:collaborators", "hub:project:workspace:content", "hub:project:workspace:metrics", + "hub:project:workspace:metrics-coming-soon", "hub:project:manage", ] as const; @@ -115,8 +116,13 @@ export const ProjectPermissionPolicies: IPermissionPolicy[] = [ permission: "hub:project:workspace:content", dependencies: ["hub:project:workspace", "hub:project:edit"], }, + { + permission: "hub:project:workspace:metrics-coming-soon", + dependencies: ["hub:project:workspace", "hub:project:edit"], + }, { permission: "hub:project:workspace:metrics", + availability: ["alpha"], // gate to alpha for just now dependencies: ["hub:project:workspace", "hub:project:edit"], }, { From 324e517ecb0d05888e50f8e34cab55416a493bbe Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Tue, 7 Nov 2023 10:22:26 -0500 Subject: [PATCH 2/5] feat(): add optional visibility to IMetricDisplayConfig --- packages/common/src/core/types/Metrics.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/common/src/core/types/Metrics.ts b/packages/common/src/core/types/Metrics.ts index 0bbae20fd31..ba2f2ef3dfb 100644 --- a/packages/common/src/core/types/Metrics.ts +++ b/packages/common/src/core/types/Metrics.ts @@ -221,9 +221,12 @@ export enum ExpressionRelationships { export interface IMetricDisplayConfig { metricId: string; displayType: string; + visibility?: MetricVisibility; [key: string]: any; } +export type MetricVisibility = "visible" | "hidden" | "featured"; + /** * Editor values expected when editing a metric */ From 4168dd59087c9255772f3877a0d397be60452760 Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Tue, 7 Nov 2023 16:43:10 -0500 Subject: [PATCH 3/5] refactor(): change visibility to enum --- packages/common/src/core/types/Metrics.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/common/src/core/types/Metrics.ts b/packages/common/src/core/types/Metrics.ts index ba2f2ef3dfb..f1b85f5596a 100644 --- a/packages/common/src/core/types/Metrics.ts +++ b/packages/common/src/core/types/Metrics.ts @@ -225,7 +225,15 @@ export interface IMetricDisplayConfig { [key: string]: any; } -export type MetricVisibility = "visible" | "hidden" | "featured"; +/** + * Types of states of visibility a metric can be in + * featured, visible, or hidden + */ +export enum MetricVisibility { + visible = "visible", + hidden = "hidden", + featured = "featured", +} /** * Editor values expected when editing a metric From aeb779f9d3b8afb02e9e73d2c4b5ecd6ce827c69 Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Wed, 8 Nov 2023 16:17:19 -0500 Subject: [PATCH 4/5] refactor(): change IMetricDisplayConfig interface --- packages/common/src/core/types/Metrics.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/common/src/core/types/Metrics.ts b/packages/common/src/core/types/Metrics.ts index f1b85f5596a..d004dbc03db 100644 --- a/packages/common/src/core/types/Metrics.ts +++ b/packages/common/src/core/types/Metrics.ts @@ -218,7 +218,7 @@ export enum ExpressionRelationships { /** * Configuration for how to show a metric in the ui */ -export interface IMetricDisplayConfig { +export interface IMetricDisplayConfig extends IMetricEditorValues { metricId: string; displayType: string; visibility?: MetricVisibility; @@ -238,7 +238,7 @@ export enum MetricVisibility { /** * Editor values expected when editing a metric */ -export interface IMetricEditorValues extends IMetricDisplayConfig { +export interface IMetricEditorValues { /** the main value of the metric */ value?: string | number; /** all values related to constructing a service-query metric */ From 04b187d5d26dcbc9ef9cbb25d8cfca550de351ba Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Wed, 8 Nov 2023 16:28:08 -0500 Subject: [PATCH 5/5] fix(): update typing --- packages/common/src/core/types/Metrics.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/common/src/core/types/Metrics.ts b/packages/common/src/core/types/Metrics.ts index d004dbc03db..04a3d2c8cae 100644 --- a/packages/common/src/core/types/Metrics.ts +++ b/packages/common/src/core/types/Metrics.ts @@ -216,13 +216,13 @@ export enum ExpressionRelationships { } /** - * Configuration for how to show a metric in the ui + * Configuration for how to show a metric in the ui. These are just values that are important to how to + * display the metric; values that are configured in the editor should be added to IMetricEditorValues instead. */ export interface IMetricDisplayConfig extends IMetricEditorValues { metricId: string; displayType: string; visibility?: MetricVisibility; - [key: string]: any; } /** @@ -236,13 +236,17 @@ export enum MetricVisibility { } /** - * Editor values expected when editing a metric + * Editor values expected when editing a metric. These are options that are set in the metric editor that + * help build the IMetricDisplayConfig. */ export interface IMetricEditorValues { /** the main value of the metric */ value?: string | number; /** all values related to constructing a service-query metric */ dynamicMetric?: IDynamicMetricValues; + + // TODO: enumerate all editor values here + [key: string]: any; } /**