|
1 | 1 | import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; |
| 2 | +import { Router } from '@angular/router'; |
2 | 3 | import { Action, createSelector, Selector, State, StateContext } from '@ngxs/store'; |
3 | 4 | import { WNode, WNodeHook, WNodeTrigger, Workflow } from 'app/model/workflow.model'; |
4 | 5 | import { WorkflowNodeJobRun, WorkflowNodeRun, WorkflowRun } from 'app/model/workflow.run.model'; |
5 | 6 | import { NavbarService } from 'app/service/navbar/navbar.service'; |
| 7 | +import { RouterService } from 'app/service/router/router.service'; |
6 | 8 | import { WorkflowRunService } from 'app/service/workflow/run/workflow.run.service'; |
7 | 9 | import { WorkflowService } from 'app/service/workflow/workflow.service'; |
8 | 10 | import { WorkflowSidebarMode } from 'app/service/workflow/workflow.sidebar.store'; |
@@ -224,8 +226,8 @@ export class WorkflowState { |
224 | 226 | }; |
225 | 227 | } |
226 | 228 |
|
227 | | - constructor(private _http: HttpClient, private _navbarService: NavbarService, |
228 | | - private _workflowService: WorkflowService, private _workflowRunService: WorkflowRunService) { |
| 229 | + constructor(private _http: HttpClient, private _navbarService: NavbarService, private _routerService: RouterService, |
| 230 | + private _workflowService: WorkflowService, private _workflowRunService: WorkflowRunService, private _router: Router) { |
229 | 231 | } |
230 | 232 |
|
231 | 233 | @Action(actionWorkflow.OpenEditModal) |
@@ -1016,6 +1018,11 @@ export class WorkflowState { |
1016 | 1018 | resync(ctx: StateContext<WorkflowStateModel>, action: actionWorkflow.GetWorkflow) { |
1017 | 1019 | return this._workflowService.getWorkflow(action.payload.projectKey, action.payload.workflowName).pipe(first(), |
1018 | 1020 | tap(wf => { |
| 1021 | + let routeParams = this._routerService.getRouteSnapshotParams({}, this._router.routerState.snapshot.root); |
| 1022 | + if (wf.project_key !== routeParams['key'] || wf.name !== routeParams['workflowName']) { |
| 1023 | + return; |
| 1024 | + } |
| 1025 | + |
1019 | 1026 | const state = ctx.getState(); |
1020 | 1027 | let canEdit = wf.permissions.writable; |
1021 | 1028 | let editWorkflow: Workflow; |
@@ -1131,12 +1138,18 @@ export class WorkflowState { |
1131 | 1138 | }); |
1132 | 1139 | }), |
1133 | 1140 | tap((wr: WorkflowRun) => { |
1134 | | - const stateRun = ctx.getState(); |
1135 | | - ctx.setState({ |
1136 | | - ...stateRun, |
1137 | | - projectKey: action.payload.projectKey, |
1138 | | - workflowRun: wr |
1139 | | - }); |
| 1141 | + let routeParams = this._routerService.getRouteSnapshotParams({}, this._router.routerState.snapshot.root); |
| 1142 | + if (wr.workflow.project_key !== routeParams['key'] || wr.workflow.name !== routeParams['workflowName']) { |
| 1143 | + return; |
| 1144 | + } |
| 1145 | + if (routeParams['number'] && routeParams['number'] === wr.num.toString()) { |
| 1146 | + const stateRun = ctx.getState(); |
| 1147 | + ctx.setState({ |
| 1148 | + ...stateRun, |
| 1149 | + projectKey: action.payload.projectKey, |
| 1150 | + workflowRun: wr |
| 1151 | + }); |
| 1152 | + } |
1140 | 1153 | ctx.dispatch(new UpdateWorkflowRunList({ workflowRun: wr })); |
1141 | 1154 | return wr; |
1142 | 1155 | })); |
@@ -1180,6 +1193,10 @@ export class WorkflowState { |
1180 | 1193 | }); |
1181 | 1194 | }), |
1182 | 1195 | tap((wrs: Array<WorkflowRun>) => { |
| 1196 | + let routeParams = this._routerService.getRouteSnapshotParams({}, this._router.routerState.snapshot.root); |
| 1197 | + if (action.payload.projectKey !== routeParams['key'] || action.payload.workflowName !== routeParams['workflowName']) { |
| 1198 | + return; |
| 1199 | + } |
1183 | 1200 | const stateRun = ctx.getState(); |
1184 | 1201 | ctx.setState({ |
1185 | 1202 | ...stateRun, |
@@ -1207,6 +1224,17 @@ export class WorkflowState { |
1207 | 1224 | loadingWorkflowNodeRun: false |
1208 | 1225 | }); |
1209 | 1226 | }), tap((wnr: WorkflowNodeRun) => { |
| 1227 | + let routeParams = this._routerService.getRouteSnapshotParams({}, this._router.routerState.snapshot.root); |
| 1228 | + if (action.payload.projectKey !== routeParams['key'] || action.payload.workflowName !== routeParams['workflowName']) { |
| 1229 | + return; |
| 1230 | + } |
| 1231 | + if (!routeParams['number'] || routeParams['number'] !== action.payload.num.toString()) { |
| 1232 | + return; |
| 1233 | + } |
| 1234 | + if (!routeParams['nodeId'] || routeParams['nodeId'] !== action.payload.nodeRunID.toString()) { |
| 1235 | + return; |
| 1236 | + } |
| 1237 | + |
1210 | 1238 | const stateNR = ctx.getState(); |
1211 | 1239 | let node = Workflow.getNodeByID(wnr.workflow_node_id, stateNR.workflowRun.workflow); |
1212 | 1240 | ctx.setState({ |
|
0 commit comments