From 54b3d5978d106c3872a110711f83ab713abb5402 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 10 Jul 2023 13:23:20 +0300 Subject: [PATCH 1/2] More robust storage of split indexes --- capabilities.json | 9 +++++++++ pbiviz.json | 2 +- src/Classes/viewModel.ts | 1 + src/visual.ts | 16 +++++++++++++++- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/capabilities.json b/capabilities.json index bcde404..87c033a 100644 --- a/capabilities.json +++ b/capabilities.json @@ -33,6 +33,15 @@ } ], "objects": { + "split_indexes_storage" : { + "displayName" : "Hidden", + "properties": { + "split_indexes": { + "displayName": "Hidden", + "type": { "text": true } + } + } + }, "spc" : { "displayName": "Data Settings", "properties": { diff --git a/pbiviz.json b/pbiviz.json index 51301ee..b0705d9 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -4,7 +4,7 @@ "displayName":"SPC Charts", "guid":"PBISPC", "visualClassName":"Visual", - "version":"1.3.3.0", + "version":"1.3.3.1", "description":"A PowerBI custom visual for SPC charts", "supportUrl":"https://github.com/AUS-DOH-Safety-and-Quality/PowerBI-SPC", "gitHubUrl":"https://github.com/AUS-DOH-Safety-and-Quality/PowerBI-SPC" diff --git a/src/Classes/viewModel.ts b/src/Classes/viewModel.ts index f51ffd7..ed052c1 100644 --- a/src/Classes/viewModel.ts +++ b/src/Classes/viewModel.ts @@ -97,6 +97,7 @@ class viewModelObject { this.inputSettings = new settingsObject(); } this.inputSettings.update(args.options.dataViews[0]); + this.splitIndexes = JSON.parse((args.options.dataViews[0].metadata.objects.split_indexes_storage.split_indexes)) // Make sure that the construction returns early with null members so // that the visual does not crash when trying to process invalid data if (checkInvalidDataView(args.options.dataViews)) { diff --git a/src/visual.ts b/src/visual.ts index 2fad6c1..c58dc48 100644 --- a/src/visual.ts +++ b/src/visual.ts @@ -11,6 +11,7 @@ import IVisual = extensibility.IVisual; import VisualConstructorOptions = ex_visual.VisualConstructorOptions; import VisualUpdateOptions = ex_visual.VisualUpdateOptions; import EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions; +import VisualObjectInstance = powerbi.VisualObjectInstance; import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration; import IVisualHost = ex_visual.IVisualHost; import ISelectionManager = extensibility.ISelectionManager; @@ -47,6 +48,7 @@ export class Visual implements IVisual { constructor(options: VisualConstructorOptions) { console.log("Constructor start") + console.log(options) this.events = options.host.eventService; this.host = options.host; this.svg = d3.select(options.element) @@ -110,6 +112,7 @@ export class Visual implements IVisual { this.addContextMenu(); this.events.renderingFinished(options); console.log("Update finished") + console.log(this.viewModel) } catch (caught_error) { console.error(caught_error) this.events.renderingFailed(options); @@ -378,7 +381,18 @@ export class Visual implements IVisual { this.viewModel.splitIndexes = [d.x] } this.updateOptions.type = 2; - this.update(this.updateOptions) + const instance: VisualObjectInstance = { + objectName: "split_indexes_storage", + selector: undefined, + properties: { + split_indexes: JSON.stringify(this.viewModel.splitIndexes) + } + } + + this.host.persistProperties({ + replace: [ instance ] + }); + //this.update(this.updateOptions) } else { // Pass identities of selected data back to PowerBI this.selectionManager From f4092c7a2c315cd16ad8493bb9250b7a86f6a22a Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 10 Jul 2023 13:30:11 +0300 Subject: [PATCH 2/2] Tidy --- src/visual.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/visual.ts b/src/visual.ts index c58dc48..5e11651 100644 --- a/src/visual.ts +++ b/src/visual.ts @@ -392,7 +392,6 @@ export class Visual implements IVisual { this.host.persistProperties({ replace: [ instance ] }); - //this.update(this.updateOptions) } else { // Pass identities of selected data back to PowerBI this.selectionManager