Skip to content

Commit

Permalink
Merge pull request #136 from AUS-DOH-Safety-and-Quality/persist-split…
Browse files Browse the repository at this point in the history
…-limits

Better storage of split limits between visual refresh
  • Loading branch information
andrjohns authored Jul 10, 2023
2 parents 02c42cd + f4092c7 commit 38459e9
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 2 deletions.
9 changes: 9 additions & 0 deletions capabilities.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,15 @@
}
],
"objects": {
"split_indexes_storage" : {
"displayName" : "Hidden",
"properties": {
"split_indexes": {
"displayName": "Hidden",
"type": { "text": true }
}
}
},
"spc" : {
"displayName": "Data Settings",
"properties": {
Expand Down
2 changes: 1 addition & 1 deletion pbiviz.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions src/Classes/viewModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ class viewModelObject {
this.inputSettings = new settingsObject();
}
this.inputSettings.update(args.options.dataViews[0]);
this.splitIndexes = JSON.parse(<string>(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)) {
Expand Down
15 changes: 14 additions & 1 deletion src/visual.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -378,7 +381,17 @@ 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 ]
});
} else {
// Pass identities of selected data back to PowerBI
this.selectionManager
Expand Down

0 comments on commit 38459e9

Please sign in to comment.