diff --git a/ui-ngx/src/app/core/api/widget-api.models.ts b/ui-ngx/src/app/core/api/widget-api.models.ts index c6e00ab882..115bf6e222 100644 --- a/ui-ngx/src/app/core/api/widget-api.models.ts +++ b/ui-ngx/src/app/core/api/widget-api.models.ts @@ -160,7 +160,7 @@ export interface IStateController { openRightLayout(): void; preserveState(): void; cleanupPreservedStates(): void; - navigatePrevState(index: number): void; + navigatePrevState(index: number, params?: StateParams): void; getStateId(): string; getStateIndex(): number; getStateIdAtIndex(index: number): string; diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts index 2e3f070a45..dcf7c70e00 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts @@ -168,10 +168,15 @@ export class DefaultStateControllerComponent extends StateControllerComponent im } } - public navigatePrevState(index: number): void { - if (index < this.stateObject.length - 1) { - this.stateObject.splice(index + 1, this.stateObject.length - index - 1); - this.gotoState(this.stateObject[this.stateObject.length - 1].id, true); + public navigatePrevState(index: number, params?: StateParams): void { + const lastStateIndex = this.stateObject.length - 1; + if (index < lastStateIndex) { + this.stateObject.splice(index + 1, lastStateIndex - index); + const selectedStateIndex = this.stateObject.length - 1; + if (params) { + this.stateObject[selectedStateIndex].params = params; + } + this.gotoState(this.stateObject[selectedStateIndex].id, true); } } diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts index 0e2e3350d0..776363ed6b 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts @@ -195,11 +195,14 @@ export class EntityStateControllerComponent extends StateControllerComponent imp } } - public navigatePrevState(index: number): void { + public navigatePrevState(index: number, params?: StateParams): void { if (index < this.stateObject.length - 1) { this.stateObject.splice(index + 1, this.stateObject.length - index - 1); this.selectedStateIndex = this.stateObject.length - 1; - this.gotoState(this.stateObject[this.stateObject.length - 1].id, true); + if (params) { + this.stateObject[this.selectedStateIndex].params = params; + } + this.gotoState(this.stateObject[this.selectedStateIndex].id, true); } } diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts index 07ac550f13..6a9991209f 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts @@ -199,7 +199,7 @@ export abstract class StateControllerComponent implements IStateControllerCompon public abstract getStateParamsByStateId(stateId: string): StateParams; - public abstract navigatePrevState(index: number): void; + public abstract navigatePrevState(index: number, params?: StateParams): void; public abstract openState(id: string, params?: StateParams, openRightLayout?: boolean): void;