You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2022/01/05 16:08:00 UTC
[incubator-streampipes] 03/03: [STREAMPIPES-494] Remove restricted edit mode
This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch STREAMPIPES-494
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit 69e7e81bd2fa8e07e09014d8251177a1f2098286
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Wed Jan 5 17:05:27 2022 +0100
[STREAMPIPES-494] Remove restricted edit mode
---
.../pipeline-element-options.component.ts | 6 +--
.../components/pipeline/pipeline.component.ts | 23 +++++-----
.../dialog/customize/customize.component.html | 16 +------
.../editor/dialog/customize/customize.component.ts | 49 ++++++++++------------
4 files changed, 36 insertions(+), 58 deletions(-)
diff --git a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
index 1d131a0..c49156c 100644
--- a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
@@ -73,7 +73,7 @@ export class PipelineElementOptionsComponent implements OnInit, OnDestroy {
delete: EventEmitter<PipelineElementConfig> = new EventEmitter<PipelineElementConfig>();
@Output()
- customize: EventEmitter<Tuple2<Boolean, PipelineElementConfig>> = new EventEmitter<Tuple2<Boolean, PipelineElementConfig>>();
+ customize: EventEmitter<PipelineElementConfig> = new EventEmitter<PipelineElementConfig>();
pipelineElementConfiguredObservable: Subscription;
@@ -116,9 +116,7 @@ export class PipelineElementOptionsComponent implements OnInit, OnDestroy {
}
customizeElement(pipelineElement: PipelineElementConfig) {
- const restrictedEditMode = ! (this.isRootElement());
- const customizeInfo = {a: restrictedEditMode, b: pipelineElement} as Tuple2<Boolean, PipelineElementConfig>;
- this.customize.emit(customizeInfo);
+ this.customize.emit(pipelineElement);
}
openHelpDialog() {
diff --git a/ui/src/app/editor/components/pipeline/pipeline.component.ts b/ui/src/app/editor/components/pipeline/pipeline.component.ts
index 1fef527..e24c7ea 100644
--- a/ui/src/app/editor/components/pipeline/pipeline.component.ts
+++ b/ui/src/app/editor/components/pipeline/pipeline.component.ts
@@ -38,9 +38,7 @@ import { CustomizeComponent } from '../../dialog/customize/customize.component';
import { PanelType } from '../../../core-ui/dialog/base-dialog/base-dialog.model';
import { DialogService } from '../../../core-ui/dialog/base-dialog/base-dialog.service';
import { EditorService } from '../../services/editor.service';
-import { MatchingResultMessage } from '../../../core-model/gen/streampipes-model-client';
import { MatchingErrorComponent } from '../../dialog/matching-error/matching-error.component';
-import { Tuple2 } from '../../../core-model/base/Tuple2';
import { ConfirmDialogComponent } from '../../../core-ui/dialog/confirm-dialog/confirm-dialog.component';
import { MatDialog } from '@angular/material/dialog';
import { forkJoin } from 'rxjs';
@@ -342,7 +340,7 @@ export class PipelineComponent implements OnInit, OnDestroy {
if (this.jsplumbService.isFullyConnected(pe, this.preview)) {
const payload = pe.payload as InvocablePipelineElementUnion;
if ((payload.staticProperties && payload.staticProperties.length > 0) || this.isCustomOutput(pe)) {
- this.showCustomizeDialog({a: false, b: pe});
+ this.showCustomizeDialog(pe);
} else {
(pe.payload as InvocablePipelineElementUnion).configured = true;
pe.settings.completed = true;
@@ -453,27 +451,26 @@ export class PipelineComponent implements OnInit, OnDestroy {
});
}
- showCustomizeDialog(pipelineElementInfo: Tuple2<boolean, PipelineElementConfig>) {
+ showCustomizeDialog(pipelineElementConfig: PipelineElementConfig) {
const dialogRef = this.dialogService.open(CustomizeComponent, {
panelType: PanelType.SLIDE_IN_PANEL,
- title: 'Customize ' + pipelineElementInfo.b.payload.name,
+ title: 'Customize ' + pipelineElementConfig.payload.name,
width: '50vw',
data: {
- 'pipelineElement': pipelineElementInfo.b,
- 'restrictedEditMode': pipelineElementInfo.a
+ 'pipelineElement': pipelineElementConfig,
}
});
dialogRef.afterClosed().subscribe(c => {
if (c) {
- pipelineElementInfo.b.settings.openCustomize = false;
- (pipelineElementInfo.b.payload as InvocablePipelineElementUnion).configured = true;
- if (!(pipelineElementInfo.b.payload instanceof DataSinkInvocation)) {
- this.JsplumbBridge.activateEndpoint('out-' + pipelineElementInfo.b.payload.dom, pipelineElementInfo.b.settings.completed);
+ pipelineElementConfig.settings.openCustomize = false;
+ (pipelineElementConfig.payload as InvocablePipelineElementUnion).configured = true;
+ if (!(pipelineElementConfig.payload instanceof DataSinkInvocation)) {
+ this.JsplumbBridge.activateEndpoint('out-' + pipelineElementConfig.payload.dom, pipelineElementConfig.settings.completed);
}
- this.JsplumbBridge.getSourceEndpoint(pipelineElementInfo.b.payload.dom).toggleType('token');
+ this.JsplumbBridge.getSourceEndpoint(pipelineElementConfig.payload.dom).toggleType('token');
this.triggerPipelineCacheUpdate();
- this.announceConfiguredElement(pipelineElementInfo.b);
+ this.announceConfiguredElement(pipelineElementConfig);
if (this.previewModeActive) {
this.deletePipelineElementPreview(true);
}
diff --git a/ui/src/app/editor/dialog/customize/customize.component.html b/ui/src/app/editor/dialog/customize/customize.component.html
index 7ca6c12..78c8589 100644
--- a/ui/src/app/editor/dialog/customize/customize.component.html
+++ b/ui/src/app/editor/dialog/customize/customize.component.html
@@ -46,19 +46,6 @@
<div fxFlex="100" fxLayout="row">
<div fxFlex="{{_showDocumentation ? 50: 100}}">
<div fxLayout="column" *ngIf="!templateMode">
- <div fxLayout="row" *ngIf="restrictedEditMode">
- <div fxLayout="column">
- <div fxLayout="column" class="customize-item-main-help"
- style="border: 2px solid #ffc400">
- <div class="customize-item-title-help" style="background: #ffc400;" fxFlex="100"
- fxLayout="row">
- You can only modify things that don't affect your pipeline structure. To fully
- modify this element, make sure that it doesn't connect to any successors (remove
- outgoing connectors).
- </div>
- </div>
- </div>
- </div>
<div fxFlex="100" fxLayout="column" class="customize-section p-15">
<form [formGroup]="parentForm" fxFlex="100">
<app-static-property *ngFor="let config of cachedPipelineElement.staticProperties"
@@ -78,8 +65,7 @@
*ngFor="let outputStrategy of cachedPipelineElement.outputStrategies"
[parentForm]="parentForm"
[outputStrategy]="outputStrategy"
- [selectedElement]="cachedPipelineElement"
- [restrictedEditMode]="restrictedEditMode">
+ [selectedElement]="cachedPipelineElement">
</output-strategy>
</div>
</form>
diff --git a/ui/src/app/editor/dialog/customize/customize.component.ts b/ui/src/app/editor/dialog/customize/customize.component.ts
index fc9c60c..11fd154 100644
--- a/ui/src/app/editor/dialog/customize/customize.component.ts
+++ b/ui/src/app/editor/dialog/customize/customize.component.ts
@@ -23,19 +23,19 @@ import {
Input,
OnInit,
ViewEncapsulation
-} from "@angular/core";
-import {InvocablePipelineElementUnion, PipelineElementConfig} from "../../model/editor.model";
-import {DialogRef} from "../../../core-ui/dialog/base-dialog/dialog-ref";
-import {JsplumbService} from "../../services/jsplumb.service";
+} from '@angular/core';
+import { InvocablePipelineElementUnion, PipelineElementConfig } from '../../model/editor.model';
+import { DialogRef } from '../../../core-ui/dialog/base-dialog/dialog-ref';
+import { JsplumbService } from '../../services/jsplumb.service';
import {
DataProcessorInvocation,
EventSchema,
PipelineElementTemplate, PipelineElementTemplateConfig
-} from "../../../core-model/gen/streampipes-model";
-import {FormBuilder, FormGroup} from "@angular/forms";
-import {ShepherdService} from "../../../services/tour/shepherd.service";
-import {ConfigurationInfo} from "../../../connect/model/ConfigurationInfo";
-import {PipelineElementTemplateService} from "../../../platform-services/apis/pipeline-element-template.service";
+} from '../../../core-model/gen/streampipes-model';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { ShepherdService } from '../../../services/tour/shepherd.service';
+import { ConfigurationInfo } from '../../../connect/model/ConfigurationInfo';
+import { PipelineElementTemplateService } from '../../../platform-services/apis/pipeline-element-template.service';
@Component({
selector: 'customize-pipeline-element',
@@ -48,14 +48,11 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
@Input()
pipelineElement: PipelineElementConfig;
- @Input()
- restrictedEditMode: boolean;
-
cachedPipelineElement: InvocablePipelineElementUnion;
eventSchemas: EventSchema[] = [];
- displayRecommended: boolean = true;
- _showDocumentation: boolean = false;
+ displayRecommended = true;
+ _showDocumentation = false;
selection: any;
matchingSelectionLeft: any;
@@ -71,15 +68,15 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
parentForm: FormGroup;
formValid: boolean;
- viewInitialized: boolean = false;
+ viewInitialized = false;
- isDataProcessor: boolean = false;
+ isDataProcessor = false;
originalDialogWidth: string | number;
completedStaticProperty: ConfigurationInfo;
- availableTemplates: Array<PipelineElementTemplate>;
+ availableTemplates: PipelineElementTemplate[];
selectedTemplate: any = false;
- templateMode: boolean = false;
+ templateMode = false;
template: PipelineElementTemplate;
templateConfigs: Map<string, any> = new Map();
@@ -108,9 +105,9 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
this.parentForm.statusChanges.subscribe((status) => {
this.formValid = this.viewInitialized && this.parentForm.valid;
- })
+ });
if (this.ShepherdService.isTourActive()) {
- this.ShepherdService.trigger("customize-" + this.pipelineElement.type);
+ this.ShepherdService.trigger('customize-' + this.pipelineElement.type);
}
this.loadPipelineElementTemplates();
}
@@ -132,7 +129,7 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
this.pipelineElement.settings.completed = true;
this.pipelineElement.payload.configured = true;
if (this.ShepherdService.isTourActive()) {
- this.ShepherdService.trigger("save-" + this.pipelineElement.type);
+ this.ShepherdService.trigger('save-' + this.pipelineElement.type);
}
this.dialogRef.close(this.pipelineElement);
}
@@ -143,9 +140,9 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
set showDocumentation(value: boolean) {
if (value) {
- this.dialogRef.changeDialogSize({width: "90vw"})
+ this.dialogRef.changeDialogSize({width: '90vw'});
} else {
- this.dialogRef.changeDialogSize({width: this.originalDialogWidth})
+ this.dialogRef.changeDialogSize({width: this.originalDialogWidth});
}
this._showDocumentation = value;
}
@@ -178,7 +175,7 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
}
convert(templateConfigs: Map<string, any>): any {
- let configs: { [index: string]: PipelineElementTemplateConfig } = {};
+ const configs: { [index: string]: PipelineElementTemplateConfig } = {};
templateConfigs.forEach((value, key) => {
configs[key] = new PipelineElementTemplateConfig();
configs[key].editable = value.editable;
@@ -201,11 +198,11 @@ export class CustomizeComponent implements OnInit, AfterViewInit {
if (this.cachedPipelineElement instanceof DataProcessorInvocation) {
this.pipelineElementTemplateService.getConfiguredDataProcessorForTemplate(event.value._id, this.cachedPipelineElement).subscribe(pe => {
this.cachedPipelineElement = pe as InvocablePipelineElementUnion;
- })
+ });
} else {
this.pipelineElementTemplateService.getConfiguredDataSinkForTemplate(event.value._id, this.cachedPipelineElement).subscribe(pe => {
this.cachedPipelineElement = pe as InvocablePipelineElementUnion;
- })
+ });
}
}