This is an automated email from the ASF dual-hosted git repository.
zehnder pushed a commit to branch STREAMPIPES-380
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
The following commit(s) were added to refs/heads/STREAMPIPES-380 by this push:
new 1b377db [STREAMPIPES-380] Ensure that event schema contains a
timestamp
1b377db is described below
commit 1b377db7c240d05ea4677b792a60f85049c8ce12
Author: Philipp Zehnder <[email protected]>
AuthorDate: Wed Jun 23 13:49:56 2021 +0200
[STREAMPIPES-380] Ensure that event schema contains a timestamp
---
.../event-schema/event-schema.component.html | 9 +++--
.../event-schema/event-schema.component.ts | 42 ++++++++++++++--------
2 files changed, 35 insertions(+), 16 deletions(-)
diff --git
a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.html
b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.html
index aa639a1..378c4ed 100644
---
a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.html
+++
b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.html
@@ -64,7 +64,12 @@
<div fxLayoutAlign="end">
<button class="mat-basic" mat-raised-button
(click)="removeSelection()">Cancel</button>
<button class="mat-basic stepper-button" mat-raised-button
(click)="goBack()">Back</button>
- <button class="stepper-button" id="event-schema-next-button"
- (click)="clickNext()" data-cy="sp-event-schema-next-button"
color="primary" mat-raised-button>Next
+ <button class="stepper-button"
+ id="event-schema-next-button"
+ data-cy="sp-event-schema-next-button"
+ color="primary" mat-raised-button
+ (click)="clickNext()"
+ [disabled]="!validEventSchema">
+ Next
</button>
</div>
diff --git
a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
index df4fe7e..18a8f9d 100644
---
a/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
+++
b/ui/src/app/connect/components/schema-editor/event-schema/event-schema.component.ts
@@ -79,9 +79,9 @@ export class EventSchemaComponent implements OnChanges {
isLoading = false;
isError = false;
isPreviewEnabled = false;
- showErrorMessage = false;
errorMessages: Notification[];
nodes: EventProperty[] = new Array<EventProperty>();
+ validEventSchema = false;
options: ITreeOptions = {
childrenField: 'eventProperties',
allowDrag: () => {
@@ -102,22 +102,24 @@ export class EventSchemaComponent implements OnChanges {
this.isLoading = true;
this.isError = false;
this.restService.getGuessSchema(this.adapterDescription).subscribe(guessSchema
=> {
- this.eventSchema = guessSchema.eventSchema;
- this.eventSchema.eventProperties.sort((a, b) => {
- return a.runtimeName < b.runtimeName ? -1 : 1;
- });
- this.eventSchemaChange.emit(this.eventSchema);
- this.schemaGuess = guessSchema;
+ this.eventSchema = guessSchema.eventSchema;
+ this.eventSchema.eventProperties.sort((a, b) => {
+ return a.runtimeName < b.runtimeName ? -1 : 1;
+ });
+ this.eventSchemaChange.emit(this.eventSchema);
+ this.schemaGuess = guessSchema;
- this.oldEventSchema = EventSchema.fromData(this.eventSchema, new
EventSchema());
- this.oldEventSchemaChange.emit(this.oldEventSchema);
+ this.validEventSchema = this.checkIfValid(this.eventSchema);
- this.refreshTree();
+ this.oldEventSchema = EventSchema.fromData(this.eventSchema, new
EventSchema());
+ this.oldEventSchemaChange.emit(this.oldEventSchema);
- this.isEditable = true;
- this.isEditableChange.emit(true);
- this.isLoading = false;
- },
+ this.refreshTree();
+
+ this.isEditable = true;
+ this.isEditableChange.emit(true);
+ this.isLoading = false;
+ },
errorMessage => {
this.errorMessages = errorMessage.error.notifications;
this.isError = true;
@@ -130,6 +132,7 @@ export class EventSchemaComponent implements OnChanges {
private refreshTree(): void {
this.nodes = new Array<EventProperty>();
this.nodes.push(this.eventSchema as unknown as EventProperty);
+ this.validEventSchema = this.checkIfValid(this.eventSchema);
// this.tree.treeModel.update();
}
@@ -213,4 +216,15 @@ export class EventSchemaComponent implements OnChanges {
public goBack() {
this.goBackEmitter.emit();
}
+
+ private checkIfValid(eventSchema: EventSchema): boolean {
+ let hasTimestamp = false;
+ eventSchema.eventProperties.forEach(p => {
+ if (p.domainProperties.indexOf('http://schema.org/DateTime') > -1) {
+ hasTimestamp = true;
+ }
+ });
+
+ return hasTimestamp;
+ }
}