From fdda53aeff9424c09274a626aa8912c94efe2d50 Mon Sep 17 00:00:00 2001 From: "Yu, Ran" Date: Wed, 9 Sep 2026 14:03:13 +0800 Subject: [PATCH] 2609Update --- docs/config.md | 2 +- .../embed-dossier-consumption-properties.md | 10 ++- .../embed-library-properties.md | 29 +++++++ .../apply-filter.md | 86 ++++++++++++++++++- docs/whats-new-in-the-embedding-sdk.md | 14 +++ 5 files changed, 137 insertions(+), 4 deletions(-) diff --git a/docs/config.md b/docs/config.md index 2298855e..a96c585a 100644 --- a/docs/config.md +++ b/docs/config.md @@ -11,7 +11,7 @@ Cross-Origin Resource Sharing (CORS) provides a way for a web application runnin :::note -Chrome Web Browser version 80 and above introduces new changes which may impact embedding. For more information, seeĀ [KB484005: Chrome v80 Cookie Behavior and the Impact on Strategy Deployments](https://community.microstrategy.com/s/article/Chrome-v80-Cookie-Behavior-and-the-impact-on-Strategy-Deployments). +Chrome Web Browser version 80 and above introduces new changes which may impact embedding. For more information, seeĀ [KB484005: Chrome v80 Cookie Behavior and the Impact on Strategy Deployments](https://community.strategy.com/article/Chrome-v80-Cookie-Behavior-and-the-impact-on-MicroStrategy-Deployments). ::: diff --git a/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md b/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md index 2f146ff3..d4ebe9fb 100644 --- a/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md +++ b/docs/embed-dossier-consumption-page/embed-dossier-consumption-properties.md @@ -402,8 +402,9 @@ Use the `dossierConsumption` object to customize the options on the dashboard co - `enablePageSelection` - - Enable dashoard page selection in the TOC panel. + - Enable dashboard page selection in the TOC panel. - Default value: `false`. + - **Note:** This property is deprecated. Use `pageSelectionMode` instead for more granular control over page selection behavior. - `disableGroupSelection` @@ -416,6 +417,13 @@ Use the `dossierConsumption` object to customize the options on the dashboard co - Available values: ["noSelection", "singleSelection", "multipleSelection"] - Default value: "noSelection". +- `pageSelectionMode` + + - Assigns the selection mode of pages on the dashboard consumption page. + - Available values: ["noSelection", "singleSelection", "multipleSelection"] + - Default value: "noSelection". + - **Important:** This is an enhancement to `enablePageSelection`. Do not use this with `enablePageSelection`. If both are provided, `pageSelectionMode` takes precedence. + #### Sample ```js diff --git a/docs/embed-library-main-page/embed-library-properties.md b/docs/embed-library-main-page/embed-library-properties.md index 725d55d8..b69e5ffe 100644 --- a/docs/embed-library-main-page/embed-library-properties.md +++ b/docs/embed-library-main-page/embed-library-properties.md @@ -466,6 +466,10 @@ Specifies the page on the sidebar entries that you want to embed. targetGroup: { id: "string", name: "string", + }, + targetFolder: { + projectId: "string", + folderId: "string", } }; ``` @@ -484,6 +488,13 @@ Specifies the page on the sidebar entries that you want to embed. - `currentPage.targetGroup.name`: The name of the group the user wants to select. +- `currentPage.targetFolder`: This field is only applicable when `currentPage.key` is + 'contentDiscovery'. It navigates the embedded Library page directly to the specified folder. + +- `currentPage.targetFolder.projectId`: The ID of the project that contains the target folder. + +- `currentPage.targetFolder.folderId`: The ID of the folder to navigate to. + #### Required? - `currentPage`: Not required @@ -491,6 +502,8 @@ Specifies the page on the sidebar entries that you want to embed. - `currentPage.targetGroup.id` and `currentPage.targetGroup.name`: The user must at least provide one of them. When both of them are provided, `currentPage.targetGroup.id` would have higher priority. +- `currentPage.targetFolder.projectId` and `currentPage.targetFolder.folderId`: Both are required + when `targetFolder` is provided. #### Default value @@ -512,6 +525,22 @@ microstrategy.embeddingContexts.embedLibraryPage({ }); ``` +To navigate directly to a specific folder on the Content Discovery page: + +```js +microstrategy.embeddingContexts.embedLibraryPage({ + serverUrl: url, + placeholder: container, + currentPage: { + key: "contentDiscovery", + targetFolder: { + projectId: "B7CA92F04B9FAE8D941C3E9B7E0CD754", + folderId: "8A1831FF494F9B8100C2A0B76041F1F0", + }, + }, +}); +``` + ### `settings` Configure global settings for the embedded library page. diff --git a/docs/native-embedding-architecture/apply-filter.md b/docs/native-embedding-architecture/apply-filter.md index c9c8f836..5c214d1b 100644 --- a/docs/native-embedding-architecture/apply-filter.md +++ b/docs/native-embedding-architecture/apply-filter.md @@ -5,7 +5,7 @@ description: Filters can be applied both during the execution of an embedded das -Filters can be applied both during the execution of an embedded dashboard and after it has been rendered. After using [Native Embedding SDK](embed-multiple-viz.md) to embed multiple visualizations in a client's webpage, you can manipulate the chapter-level filters, on-page selectors, and visualizations used as filters via the Native Embedding SDK available since 2021 Update 9. For chapter-level filters and on-page selectors, Strategy only supports attribute element list selectors. +Filters can be applied both during the execution of an embedded dashboard and after it has been rendered. After using [Native Embedding SDK](embed-multiple-viz.md) to embed multiple visualizations in a client's webpage, you can manipulate the chapter-level filters, on-page selectors, and visualizations used as filters via the Native Embedding SDK available since 2021 Update 9. Let's say you already have the `MstrEnvironment` and `MstrDossier` objects: @@ -125,11 +125,12 @@ The filter has different types below: - Attribute element filter - Metric qualification filter +- Attribute qualification filter - Object replacement selector - Value parameter filter - Visualizations as filters -So we have 5 different filter types in together. For all those filters, you can get its filter key(or visualization key for visualization as filters) from the dashboard definition with the `MstrDossier.getDossierDefinition()` function. +So there are 6 different filter types in total. For all those filters, you can get the filter key (or visualization key for visualizations used as filters) from the dashboard definition with the `MstrDossier.getDossierDefinition()` function. The sections below show the input details for each filter type. @@ -282,6 +283,87 @@ Some examples: } ``` +### Attribute qualification filter + +To apply selections on an attribute qualification filter, you can use the following input: + +```js +try { + await mstrDossier.applyFilter({ + key: `${filterKey}`, // Required + currentSelection: { + selectionStatus: "", // optional, values: ['included', 'unfiltered'], default: 'included' + expression: { + operator: "", // The attribute qualification operator/function + operands: "", // The attribute qualification operation nodes + }, + }, + }); +} catch (error) { + // Your own error handling code +} +``` + +For attribute qualification filters, `currentSelection.expression` is required when `selectionStatus` is not `unfiltered`. + +Some examples: + +- Apply an attribute qualification + + ```js + try { + await mstrDossier.applyFilter({ + key: "W76", // Required + currentSelection: { + selectionStatus: "included", + expression: { + operator: "Between", + operands: [ + { + type: "form", + attribute: { + id: "96ED3EC811D5B117C000E78A4CC5F24F", + name: "Daytime", + }, + form: { + id: "45C11FA478E745FEA08D781CEA190FE5", + name: "ID", + }, + }, + { + type: "constant", + dataType: "TimeStamp", + value: "1/1/2016 12:00:14 AM", + }, + { + type: "constant", + dataType: "TimeStamp", + value: "12/31/2016 11:59:59 PM", + }, + ], + }, + }, + }); + } catch (error) { + // Your own error handling code + } + ``` + +- Unset the selection of the selector + + ```js + try { + await mstrDossier.applyFilter({ + key: "W76", + currentSelection: { + selectionStatus: "unfiltered", + }, + }); + } catch (error) { + // Your own error handling code + } + ``` + ### Object replacement selector To apply selections on an object replacement selector inside a page, you can use the following input: diff --git a/docs/whats-new-in-the-embedding-sdk.md b/docs/whats-new-in-the-embedding-sdk.md index 55d64008..88de6b87 100644 --- a/docs/whats-new-in-the-embedding-sdk.md +++ b/docs/whats-new-in-the-embedding-sdk.md @@ -5,6 +5,20 @@ description: In each release, changes are made to make the MicroStrategy SDK mor In each release, changes are made to make the MicroStrategy SDK more powerful and easier to use. +## Strategy September 2026 + +- [Support `currentPage.targetFolder` for embedded Library page](./embed-library-main-page/embed-library-properties.md#currentpage) + - Navigate directly to a specific folder on the Content Discovery page when embedding the Library home page. + +## Strategy August 2026 + +- Introduce `pageSelectionMode` to enable page selection on a dashboard consumption page. + +## Strategy ONE July 2026 + +- [Support attribute qualification filter](./native-embedding-architecture/apply-filter#attribute-qualification-filter) + - Users can apply an attribute qualification filter in the Native Embedding SDK. + ## Strategy ONE June 2026 - [Support native incremental rendering](./native-embedding-architecture/incremental-rendering)