Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 6115475

Browse files
oodamienghillert
authored andcommitted
gh-716 Task Module: refactoring
Tasks module: - Refactoring - Remove Bulk Import Page - Remove Applications Page - Fix UX lists
1 parent 4c06fdf commit 6115475

File tree

94 files changed

+3731
-2223
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+3731
-2223
lines changed

ui/src/app/shared/shared.module.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import { ConfirmService } from './components/confirm/confirm.service';
4545
import { ConfirmComponent } from './components/confirm/confirm.component';
4646
import { BusyService } from './services/busy.service';
4747
import { AutoResizeDirective } from './directives/auto-resize.directive';
48+
import { StreamDslComponent } from './components/dsl/dsl.component';
4849

4950
const busyConfig: BusyConfig = {
5051
message: 'Processing..',
@@ -96,6 +97,7 @@ const busyConfig: BusyConfig = {
9697
HandleComponent,
9798
PropertiesDialogComponent,
9899
GraphViewComponent,
100+
StreamDslComponent,
99101
TruncatePipe,
100102
OrderByPipe,
101103
ConfirmComponent
@@ -112,6 +114,7 @@ const busyConfig: BusyConfig = {
112114
BusyService
113115
],
114116
exports: [
117+
StreamDslComponent,
115118
NgBusyModule,
116119
ClickOutsideDirective,
117120
CommonModule,

ui/src/app/streams/streams.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import { EditorService } from './components/flo/editor.service';
3636
import { ContentAssistService } from './components/flo/content-assist.service';
3737
import { StreamGraphComponent } from './stream/graph/stream-graph.component';
3838
import { StreamSummaryComponent } from './stream/summary/stream-summary.component';
39-
import { StreamDslComponent } from '../shared/components/dsl/dsl.component';
4039
import { StreamStatusComponent } from './components/stream-status/stream-status.component';
4140
import { StreamDeployBuilderErrorsComponent } from './stream-deploy/builder/errors/errors.component';
4241
import { StreamsUndeployComponent } from './streams-undeploy/streams-undeploy.component';
@@ -78,7 +77,6 @@ import { StreamsDestroyComponent } from './streams-destroy/streams-destroy.compo
7877
StreamDeployBuilderComponent,
7978
StreamGraphComponent,
8079
StreamSummaryComponent,
81-
StreamDslComponent,
8280
StreamStatusComponent,
8381
StreamDeployBuilderErrorsComponent,
8482
StreamsUndeployComponent,

ui/src/app/tasks/flo/content-assist.service.ts renamed to ui/src/app/tasks/components/flo/content-assist.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { Injectable } from '@angular/core';
22
import { Http, URLSearchParams } from '@angular/http';
33
import { Observable } from 'rxjs/Observable';
4-
import { HttpUtils } from '../../shared/support/http.utils';
4+
import { HttpUtils } from '../../../shared/support/http.utils';
55

66
import 'rxjs/add/operator/catch';
77
import 'rxjs/add/operator/map';
88

99
@Injectable()
1010
export class ContentAssistService {
1111

12-
constructor(private http: Http) {}
12+
constructor(private http: Http) {
13+
}
1314

1415
getProposals(prefix: string): Observable<Array<string>> {
1516
const options = HttpUtils.getDefaultRequestOptions();

ui/src/app/tasks/flo/editor.service.spec.ts renamed to ui/src/app/tasks/components/flo/editor.service.spec.ts

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import {MockSharedAppService} from '../../tests/mocks/shared-app';
2-
import {Constants, EditorComponent, Flo, FloModule} from 'spring-flo';
3-
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
4-
import {MetamodelService} from './metamodel.service';
5-
import {RenderService} from './render.service';
6-
import {EditorService} from './editor.service';
7-
import {dia} from 'jointjs';
1+
import { MockSharedAppService } from '../../../tests/mocks/shared-app';
2+
import { Constants, EditorComponent, Flo, FloModule } from 'spring-flo';
3+
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
4+
import { MetamodelService } from './metamodel.service';
5+
import { RenderService } from './render.service';
6+
import { EditorService } from './editor.service';
7+
import { dia } from 'jointjs';
88
import * as _joint from 'jointjs';
9-
import {MockToolsService} from '../../tests/mocks/mock-tools';
9+
import { MockToolsService } from '../../../tests/mocks/mock-tools';
1010

1111
const joint: any = _joint;
1212

@@ -29,9 +29,9 @@ describe('Task RenderService', () => {
2929
FloModule
3030
],
3131
providers: [
32-
{provide: MetamodelService, useValue: METAMODEL_SERVICE},
33-
{provide: RenderService, useValue: RENDER_SERVICE},
34-
{provide: EditorService, useValue: EDITOR_SERVICE}
32+
{ provide: MetamodelService, useValue: METAMODEL_SERVICE },
33+
{ provide: RenderService, useValue: RENDER_SERVICE },
34+
{ provide: EditorService, useValue: EDITOR_SERVICE }
3535
]
3636
})
3737
.compileComponents();
@@ -121,16 +121,16 @@ describe('Task RenderService', () => {
121121
});
122122

123123
it('simple dnd', () => {
124-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 200});
124+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 200 });
125125
expect(taskA.attr('metadata/name')).toBe('a');
126126
expect(taskA.get('position').x).toBe(100);
127127
expect(taskA.get('position').y).toBe(200);
128128
expect(flo.getPaper().findViewByModel(taskA)).toBeDefined();
129129
});
130130

131131
it('drop node from the palette on link', () => {
132-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
133-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
132+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
133+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
134134
const link = createLink(taskA, taskB);
135135
const taskC = dropNodeFromPaletteOnCanvasLink(METAMODEL.get('task').get('c'), link);
136136
const links = flo.getGraph().getLinks();
@@ -146,9 +146,9 @@ describe('Task RenderService', () => {
146146
expect(link2.get('target').id).toBe(taskB.id);
147147
});
148148

149-
it ('drag descriptor - drop on output port', () => {
150-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
151-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
149+
it('drag descriptor - drop on output port', () => {
150+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
151+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
152152
const rectA = taskA.getBBox();
153153
const dropPt = joint.g.point(rectA.x + rectA.width / 2, rectA.y + rectA.height);
154154
const dragDescriptor = EDITOR_SERVICE.calculateDragDescriptor(flo, flo.getPaper().findViewByModel(taskB),
@@ -160,9 +160,9 @@ describe('Task RenderService', () => {
160160
expect(dragDescriptor.target.cssClassSelector).toBe('.output-port');
161161
});
162162

163-
it ('drag descriptor - drop on input port', () => {
164-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
165-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
163+
it('drag descriptor - drop on input port', () => {
164+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
165+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
166166
const rectA = taskA.getBBox();
167167
const dropPt = joint.g.point(rectA.x + rectA.width / 2, rectA.y);
168168
const dragDescriptor = EDITOR_SERVICE.calculateDragDescriptor(flo,
@@ -177,10 +177,10 @@ describe('Task RenderService', () => {
177177
expect(dragDescriptor.target.cssClassSelector).toBe('.input-port');
178178
});
179179

180-
it ('drag descriptor - drop connected node on port', () => {
181-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
182-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
183-
const taskC = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 300, y: 20});
180+
it('drag descriptor - drop connected node on port', () => {
181+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
182+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
183+
const taskC = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 300, y: 20 });
184184
const link = createLink(taskB, taskC);
185185
const rectA = taskA.getBBox();
186186
const dropPt = joint.g.point(rectA.x + rectA.width / 2, rectA.y);
@@ -196,9 +196,9 @@ describe('Task RenderService', () => {
196196
});
197197

198198
it('pre-delete', () => {
199-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
200-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
201-
const taskC = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 300, y: 20});
199+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
200+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
201+
const taskC = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 300, y: 20 });
202202
createLink(taskB, taskC);
203203
createLink(taskC, taskA);
204204

@@ -217,8 +217,8 @@ describe('Task RenderService', () => {
217217
});
218218

219219
it('drop node on node input port', () => {
220-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
221-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
220+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
221+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
222222
const dragDescriptor = {
223223
sourceComponent: Constants.CANVAS_CONTEXT,
224224
source: {
@@ -245,8 +245,8 @@ describe('Task RenderService', () => {
245245
});
246246

247247
it('drop node on node output port', () => {
248-
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), {x: 100, y: 20});
249-
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), {x: 100, y: 200});
248+
const taskA = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('a'), { x: 100, y: 20 });
249+
const taskB = dropNodeFromPaletteOnCanvas(METAMODEL.get('task').get('b'), { x: 100, y: 200 });
250250
const dragDescriptor = {
251251
sourceComponent: Constants.CANVAS_CONTEXT,
252252
source: {

ui/src/app/tasks/flo/editor.service.ts renamed to ui/src/app/tasks/components/flo/editor.service.ts

Lines changed: 61 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { CONTROL_GROUP_TYPE, END_NODE_TYPE, START_NODE_TYPE, SYNC_NODE_TYPE } fr
55
import { dia } from 'jointjs';
66
import * as _joint from 'jointjs';
77
import { TaskPropertiesDialogComponent } from './properties/task-properties-dialog-component';
8-
import {TaskGraphPropertiesSource} from './properties/task-properties-source';
8+
import { TaskGraphPropertiesSource } from './properties/task-properties-source';
99

1010
const joint: any = _joint;
1111

@@ -20,9 +20,8 @@ const DND_ENABLED = true; // Is smart DnD enabled?
2020
@Injectable()
2121
export class EditorService implements Flo.Editor {
2222

23-
constructor(
24-
private bsModalService: BsModalService
25-
) {}
23+
constructor(private bsModalService: BsModalService) {
24+
}
2625

2726
interactive = {
2827
vertexAdd: true
@@ -121,29 +120,29 @@ export class EditorService implements Flo.Editor {
121120

122121
preDelete(flo: Flo.EditorContext, deletedElement: dia.Cell): void {
123122
if (deletedElement instanceof joint.dia.Element) {
124-
flo.getGraph().getConnectedLinks(deletedElement).forEach(function(link) {
123+
flo.getGraph().getConnectedLinks(deletedElement).forEach(function (link) {
125124
link.remove();
126125
});
127126
}
128127
}
129128

130-
private validateConnectedLinks(graph: dia.Graph, element: dia.Element, markers: Array<Flo.Marker>) {
129+
private validateConnectedLinks(graph: dia.Graph, element: dia.Element, markers: Array<Flo.Marker>) {
131130
if (element.attr('metadata') && !element.attr('metadata/unresolved')) {
132131
const type = element.attr('metadata/name');
133-
const incoming = graph.getConnectedLinks(element, {inbound: true});
134-
const outgoing = graph.getConnectedLinks(element, {outbound: true});
132+
const incoming = graph.getConnectedLinks(element, { inbound: true });
133+
const outgoing = graph.getConnectedLinks(element, { outbound: true });
135134

136135
// Verify that there is no more than link with the same 'ExitStatus' coming out
137136
// Verify there are no outgoing links to same type tasks (to duplicates)
138137
const exitStatusNumber = new Map<string, number>();
139138
outgoing.filter(l => l.attr('props/ExitStatus')).forEach(l => {
140-
const exitStatus = l.attr('props/ExitStatus');
141-
const number = exitStatusNumber.get(l.attr('props/ExitStatus'));
142-
if (typeof number === 'number') {
143-
exitStatusNumber.set(exitStatus, number + 1);
144-
} else {
145-
exitStatusNumber.set(exitStatus, 1);
146-
}
139+
const exitStatus = l.attr('props/ExitStatus');
140+
const number = exitStatusNumber.get(l.attr('props/ExitStatus'));
141+
if (typeof number === 'number') {
142+
exitStatusNumber.set(exitStatus, number + 1);
143+
} else {
144+
exitStatusNumber.set(exitStatus, 1);
145+
}
147146
});
148147
Array.from(exitStatusNumber.keys())
149148
.filter(status => exitStatusNumber.get(status) && exitStatusNumber.get(status) > 1)
@@ -369,7 +368,7 @@ export class EditorService implements Flo.Editor {
369368
}
370369
}
371370
});
372-
});
371+
});
373372
}
374373
if (closestData) {
375374
return closestData;
@@ -394,65 +393,65 @@ export class EditorService implements Flo.Editor {
394393
shouldRepairDamage: boolean) {
395394
side = side || 'left';
396395
// if (this.canSwap(flo, node, pivotNode, side)) {
397-
if (side === 'left') {
398-
const sources: Array<string> = [];
399-
if (shouldRepairDamage) {
400-
this.repairDamage(flo, node);
401-
}
402-
flo.getGraph().getConnectedLinks(pivotNode, {inbound: true}).forEach(link => {
403-
sources.push(link.get('source').id);
404-
link.remove();
405-
});
406-
sources.forEach(source => {
407-
flo.createLink({
408-
'id': source,
409-
'selector': '.output-port',
410-
'port': 'output'
411-
}, {
412-
'id': node.id,
413-
'selector': '.input-port',
414-
'port': 'input'
415-
});
416-
});
396+
if (side === 'left') {
397+
const sources: Array<string> = [];
398+
if (shouldRepairDamage) {
399+
this.repairDamage(flo, node);
400+
}
401+
flo.getGraph().getConnectedLinks(pivotNode, { inbound: true }).forEach(link => {
402+
sources.push(link.get('source').id);
403+
link.remove();
404+
});
405+
sources.forEach(source => {
417406
flo.createLink({
418-
'id': node.id,
407+
'id': source,
419408
'selector': '.output-port',
420409
'port': 'output'
421410
}, {
422-
'id': pivotNode.id,
411+
'id': node.id,
423412
'selector': '.input-port',
424413
'port': 'input'
425414
});
426-
} else if (side === 'right') {
427-
const targets: Array<string> = [];
428-
if (shouldRepairDamage) {
429-
this.repairDamage(flo, node);
430-
}
431-
flo.getGraph().getConnectedLinks(pivotNode, {outbound: true}).forEach(link => {
432-
targets.push(link.get('target').id);
433-
link.remove();
434-
});
435-
targets.forEach(target => {
436-
flo.createLink({
437-
'id': node.id,
438-
'selector': '.output-port',
439-
'port': 'output'
440-
}, {
441-
'id': target,
442-
'selector': '.input-port',
443-
'port': 'input'
444-
});
445-
});
415+
});
416+
flo.createLink({
417+
'id': node.id,
418+
'selector': '.output-port',
419+
'port': 'output'
420+
}, {
421+
'id': pivotNode.id,
422+
'selector': '.input-port',
423+
'port': 'input'
424+
});
425+
} else if (side === 'right') {
426+
const targets: Array<string> = [];
427+
if (shouldRepairDamage) {
428+
this.repairDamage(flo, node);
429+
}
430+
flo.getGraph().getConnectedLinks(pivotNode, { outbound: true }).forEach(link => {
431+
targets.push(link.get('target').id);
432+
link.remove();
433+
});
434+
targets.forEach(target => {
446435
flo.createLink({
447-
'id': pivotNode.id,
436+
'id': node.id,
448437
'selector': '.output-port',
449438
'port': 'output'
450439
}, {
451-
'id': node.id,
440+
'id': target,
452441
'selector': '.input-port',
453442
'port': 'input'
454443
});
455-
}
444+
});
445+
flo.createLink({
446+
'id': pivotNode.id,
447+
'selector': '.output-port',
448+
'port': 'output'
449+
}, {
450+
'id': node.id,
451+
'selector': '.input-port',
452+
'port': 'input'
453+
});
454+
}
456455
// }
457456
}
458457

@@ -502,8 +501,7 @@ export class EditorService implements Flo.Editor {
502501
} else if (dragDescriptor.target.cssClassSelector === '.input-port') {
503502
this.moveNodeOnNode(flo, <dia.Element> source.model, <dia.Element> target.model, 'left', false);
504503
}
505-
} else
506-
if (source instanceof joint.dia.ElementView && target instanceof joint.dia.LinkView) {
504+
} else if (source instanceof joint.dia.ElementView && target instanceof joint.dia.LinkView) {
507505
this.moveNodeOnLink(flo, <dia.Element> source.model, <dia.Link> target.model);
508506
}
509507
}

0 commit comments

Comments
 (0)