Skip to content

Commit 712413e

Browse files
committed
NIFI-3785: Fixed recursion issue. Removed need to clone.
1 parent bffcc16 commit 712413e

File tree

5 files changed

+33
-24
lines changed

5 files changed

+33
-24
lines changed

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/controller-services/controller-services.effects.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ import {
6767
import { VerifyPropertiesRequestContext } from '../../../../state/property-verification';
6868
import { BackNavigation } from '../../../../state/navigation';
6969
import { NiFiCommon, Storage, SelectOption, ComponentType, LARGE_DIALOG, SMALL_DIALOG, XL_DIALOG } from '@nifi/shared';
70-
import { ComponentEntity } from './../flow/index';
70+
import { ComponentEntity } from '../flow';
7171

7272
@Injectable()
7373
export class ControllerServicesEffects {
@@ -693,16 +693,17 @@ export class ControllerServicesEffects {
693693
)
694694
),
695695
tap((request) => {
696-
const clone = Object.assign({}, request.request);
697-
clone.processGroupEntity = request.processGroupEntity;
698-
clone.childProcessGroupOptions = request.childProcessGroupOptions;
699-
clone.parentControllerServices = request.controllerServices;
700-
clone.breadcrumb = request.breadcrumb;
701-
const serviceId: string = request.request.id;
702696
const moveDialogReference = this.dialog.open(MoveControllerService, {
703697
...LARGE_DIALOG,
704-
data: clone,
705-
id: serviceId
698+
data: {
699+
id: request.request.id,
700+
controllerService: request.request.controllerService,
701+
childProcessGroupOptions: request.childProcessGroupOptions,
702+
processGroupEntity: request.processGroupEntity,
703+
parentControllerServices: request.controllerServices,
704+
breadcrumb: request.breadcrumb
705+
},
706+
id: request.request.id
706707
});
707708

708709
moveDialogReference.componentInstance.goToReferencingComponent = (

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/state/controller-services/index.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import { SelectOption } from '@nifi/shared';
1919
import { ControllerServiceEntity, ParameterContextReferenceEntity } from '../../../../state/shared';
2020
import { BreadcrumbEntity } from '../shared';
21-
import { Revision } from './../../../../state/shared/index';
21+
import { Revision } from '../../../../state/shared';
2222

2323
export const controllerServicesFeatureKey = 'controllerServiceListing';
2424

@@ -57,10 +57,15 @@ export interface ConfigureControllerServiceSuccess {
5757
export interface MoveControllerServiceDialogRequest {
5858
id: string;
5959
controllerService: ControllerServiceEntity;
60+
}
61+
62+
export interface MoveControllerServiceDialogRequestSuccess {
63+
id: string;
64+
controllerService: ControllerServiceEntity;
6065
childProcessGroupOptions: SelectOption[];
61-
processGroupEntity?: any;
66+
processGroupEntity: any;
6267
parentControllerServices: ControllerServiceEntity[];
63-
breadcrumb?: BreadcrumbEntity;
68+
breadcrumb: BreadcrumbEntity;
6469
}
6570

6671
export interface MoveControllerServiceRequest {

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/controller-service/controller-services.component.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,7 @@ export class ControllerServices implements OnDestroy {
245245
openMoveControllerServiceDialog({
246246
request: {
247247
id: entity.id,
248-
controllerService: entity,
249-
parentControllerServices: [],
250-
childProcessGroupOptions: []
248+
controllerService: entity
251249
}
252250
})
253251
);

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/move-controller-service/move-controller-service.component.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
2222
import { provideMockStore } from '@ngrx/store/testing';
2323
import { initialState } from '../../../../state/contoller-service-state/controller-service-state.reducer';
2424
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
25-
import { MoveControllerServiceDialogRequest } from '../../state/controller-services';
25+
import { MoveControllerServiceDialogRequestSuccess } from '../../state/controller-services';
2626
import { BreadcrumbEntity } from '../../state/shared';
2727
import { ComponentType, SelectOption } from '@nifi/shared';
2828

@@ -3430,7 +3430,7 @@ describe('MoveControllerService', () => {
34303430
}
34313431
};
34323432

3433-
const data: MoveControllerServiceDialogRequest = {
3433+
const data: MoveControllerServiceDialogRequestSuccess = {
34343434
id: '92db6ee4-018c-1000-1061-e3476c3f4e9f',
34353435
breadcrumb: breadrumb,
34363436
childProcessGroupOptions: chldren,

nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/move-controller-service/move-controller-service.component.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { Store } from '@ngrx/store';
3838
import { CloseOnEscapeDialog } from '@nifi/shared';
3939
import { moveControllerService } from '../../state/controller-services/controller-services.actions';
4040
import { NiFiState } from 'apps/nifi/src/app/state';
41-
import { MoveControllerServiceDialogRequest } from '../../state/controller-services';
41+
import { MoveControllerServiceDialogRequestSuccess } from '../../state/controller-services';
4242
import { NgIf } from '@angular/common';
4343
import { BreadcrumbEntity } from '../../state/shared';
4444

@@ -75,7 +75,7 @@ export class MoveControllerService extends CloseOnEscapeDialog {
7575
moveControllerServiceForm: FormGroup;
7676

7777
constructor(
78-
@Inject(MAT_DIALOG_DATA) public request: MoveControllerServiceDialogRequest,
78+
@Inject(MAT_DIALOG_DATA) public request: MoveControllerServiceDialogRequestSuccess,
7979
private store: Store<NiFiState>,
8080
private formBuilder: FormBuilder
8181
) {
@@ -93,9 +93,8 @@ export class MoveControllerService extends CloseOnEscapeDialog {
9393
);
9494

9595
const processGroups: SelectOption[] = [];
96-
if (request.breadcrumb != undefined) {
97-
this.loadParentOption(request.breadcrumb, parentControllerServices, processGroups);
98-
}
96+
this.loadParentOption(request.breadcrumb, parentControllerServices, processGroups);
97+
9998
this.loadChildOptions(request.childProcessGroupOptions, request.processGroupEntity, processGroups);
10099
this.controllerServiceActionProcessGroups = processGroups;
101100

@@ -186,7 +185,9 @@ export class MoveControllerService extends CloseOnEscapeDialog {
186185
return true;
187186
} else {
188187
for (const pg of processGroup.contents.processGroups) {
189-
return this.processGroupContainsComponent(pg, groupId);
188+
if (this.processGroupContainsComponent(pg, groupId)) {
189+
return true;
190+
}
190191
}
191192
return false;
192193
}
@@ -195,13 +196,17 @@ export class MoveControllerService extends CloseOnEscapeDialog {
195196
}
196197

197198
getProcessGroupById(root: any, processGroupId: string): any {
199+
console.log('a');
198200
if (root != undefined) {
199201
if (root.id == processGroupId) {
200202
return root;
201203
} else {
202204
if (root.contents != undefined) {
203205
for (const pg of root.contents.processGroups) {
204-
return this.getProcessGroupById(pg, processGroupId);
206+
const result = this.getProcessGroupById(pg, processGroupId);
207+
if (result != null) {
208+
return result;
209+
}
205210
}
206211
}
207212
return null;

0 commit comments

Comments
 (0)