Browse Source

Merge pull request #8292 from vvlladd28/improvement/navigate_prev_state_with_update

Fixer RP: Optionally update dashboard state when using navigate back API
pull/8294/head
Igor Kulikov 4 years ago
committed by GitHub
parent
commit
0950d875b9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      ui-ngx/src/app/core/api/widget-api.models.ts
  2. 13
      ui-ngx/src/app/modules/home/components/dashboard-page/states/default-state-controller.component.ts
  3. 7
      ui-ngx/src/app/modules/home/components/dashboard-page/states/entity-state-controller.component.ts
  4. 2
      ui-ngx/src/app/modules/home/components/dashboard-page/states/state-controller.component.ts

2
ui-ngx/src/app/core/api/widget-api.models.ts

@ -160,7 +160,7 @@ export interface IStateController {
openRightLayout(): void; openRightLayout(): void;
preserveState(): void; preserveState(): void;
cleanupPreservedStates(): void; cleanupPreservedStates(): void;
navigatePrevState(index: number): void; navigatePrevState(index: number, params?: StateParams): void;
getStateId(): string; getStateId(): string;
getStateIndex(): number; getStateIndex(): number;
getStateIdAtIndex(index: number): string; getStateIdAtIndex(index: number): string;

13
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 { public navigatePrevState(index: number, params?: StateParams): void {
if (index < this.stateObject.length - 1) { const lastStateIndex = this.stateObject.length - 1;
this.stateObject.splice(index + 1, this.stateObject.length - index - 1); if (index < lastStateIndex) {
this.gotoState(this.stateObject[this.stateObject.length - 1].id, true); 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);
} }
} }

7
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) { if (index < this.stateObject.length - 1) {
this.stateObject.splice(index + 1, this.stateObject.length - index - 1); this.stateObject.splice(index + 1, this.stateObject.length - index - 1);
this.selectedStateIndex = this.stateObject.length - 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);
} }
} }

2
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 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; public abstract openState(id: string, params?: StateParams, openRightLayout?: boolean): void;

Loading…
Cancel
Save