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/08/16 13:03:21 UTC

[incubator-streampipes] branch STREAMPIPES-577 updated: [STREAMPIPES-577] Add check and warning message for bad readings

This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch STREAMPIPES-577
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git


The following commit(s) were added to refs/heads/STREAMPIPES-577 by this push:
     new 72f19e579 [STREAMPIPES-577] Add check and warning message for bad readings
72f19e579 is described below

commit 72f19e579f74ce32ae0c6e5ade6b516d2c147991
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Tue Aug 16 15:03:10 2022 +0200

    [STREAMPIPES-577] Add check and warning message for bad readings
---
 .../event-schema/event-schema.component.html       | 22 ++++++++++++----------
 .../event-schema/event-schema.component.scss       | 11 ++++++++++-
 .../event-schema/event-schema.component.ts         |  5 +++++
 ui/src/app/core-model/base/UserErrorMessage.ts     |  4 +++-
 4 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.html b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.html
index 8344671e5..f7474a0e7 100644
--- a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.html
+++ b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.html
@@ -22,24 +22,26 @@
         <div fxLayout="column"
              fxFlex="100"
              fxLayoutAlign="start center"
-             [ngClass]="schemaErrorHints.length === 0 ? 'schema-validation schema-validation-ok' : 'schema-validation schema-validation-error'" *ngIf="!isLoading && !isError">
+            *ngIf="!isLoading && !isError && schemaErrorHints.length === 0" class="schema-validation schema-validation-ok">
             <div fxFlex="100"
                  fxLayout="row"
                  fxLayoutAlign="start center"
-                 class="schema-validation-text-ok"
-                 *ngIf="schemaErrorHints.length === 0">
+                 class="schema-validation-text-ok">
                 <i class="material-icons">check_circle</i>&nbsp;<b>Schema ok</b>
             </div>
+        </div>
+
+        <div fxLayout="column" fxFlex="100" *ngIf="!isLoading && schemaErrorHints.length > 0">
             <div fxFlex="100"
                  fxLayout="column"
-                 fxLayoutAlign="start center"
-                 *ngIf="schemaErrorHints.length > 0">
-                <div fxFlex="100" fxLayout="row" fxLayoutAlign="center start" class="schema-validation-text-error">
-                <i class="material-icons">warning</i>&nbsp;
-                    <b>{{schemaErrorHints[0].title}}</b>
+                 [ngClass]="schemaErrorHint.level === 'error' ? 'schema-validation schema-validation-error' : 'schema-validation schema-validation-warning'"
+                 fxLayoutAlign="start center" *ngFor="let schemaErrorHint of schemaErrorHints">
+                <div fxFlex="100" fxLayout="row" fxLayoutAlign="center start" [ngClass]="schemaErrorHint.level === 'error' ? 'schema-validation-text-error' : 'schema-validation-text-warning'">
+                    <i class="material-icons">warning</i>&nbsp;
+                    <b>{{schemaErrorHint.title}}</b>
                 </div>
-                <div *ngFor="let errorMessage of schemaErrorHints">
-                    <span>{{errorMessage.content}}</span>
+                <div>
+                    <span>{{schemaErrorHint.content}}</span>
                 </div>
             </div>
         </div>
diff --git a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.scss b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.scss
index 741fc7628..228a3ae77 100644
--- a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.scss
+++ b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.scss
@@ -179,8 +179,9 @@ opacity:0.5;
 .schema-validation {
   margin-bottom: 10px;
   border: 2px solid var(--color-bg-3);
-  padding: 8px;
+  padding: 10px;
   min-height: 50px;
+  text-align: center;
 }
 
 .schema-validation-ok {
@@ -191,6 +192,10 @@ opacity:0.5;
   border: 2px solid #963e3e;
 }
 
+.schema-validation-warning {
+  border: 2px solid #d09836;
+}
+
 .schema-validation-text-ok {
   color: #629f62;
 }
@@ -198,3 +203,7 @@ opacity:0.5;
 .schema-validation-text-error {
   color: #963e3e;
 }
+
+.schema-validation-text-warning {
+  color: #d09836;
+}
diff --git a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.ts b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.ts
index d70a53048..d6e19e214 100644
--- a/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.ts
+++ b/ui/src/app/connect/components/new-adapter/schema-editor/event-schema/event-schema.component.ts
@@ -238,6 +238,11 @@ export class EventSchemaComponent implements OnChanges {
       this.schemaErrorHints.push(new UserErrorMessage('Missing Timestamp', 'The timestamp must be a UNIX timestamp in milliseconds. Edit the timestamp field or add an ingestion timestamp.'));
     }
 
+    const badFields = eventSchema.eventProperties.map(ep => this.fieldStatusInfo[ep.runtimeName]).find(field => field.fieldStatus !== 'GOOD');
+    if (badFields !== undefined) {
+      this.schemaErrorHints.push(new UserErrorMessage('Bad reading', 'At least one field could not be properly read. If this is a permanent problem, consider removing it - keeping this field might cause the adapter to fail or to omit sending events.', 'warning'));
+    }
+
     return hasTimestamp;
   }
 }
diff --git a/ui/src/app/core-model/base/UserErrorMessage.ts b/ui/src/app/core-model/base/UserErrorMessage.ts
index 85322e0cb..2fc7f5c72 100644
--- a/ui/src/app/core-model/base/UserErrorMessage.ts
+++ b/ui/src/app/core-model/base/UserErrorMessage.ts
@@ -19,9 +19,11 @@
 export class UserErrorMessage {
   public title: string;
   public content: string;
+  public level: string;
 
-  constructor(title: string, content: string) {
+  constructor(title: string, content: string, level = 'error') {
     this.title = title;
     this.content = content;
+    this.level = level;
   }
 }