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 2020/03/07 21:34:03 UTC

[incubator-streampipes] 01/04: STREAMPIPES-58: Improve layout of AddVisualization dialog

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

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

commit 28f59d90b78efa70323690ff65e728b33abe7aa2
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Sat Mar 7 20:29:07 2020 +0100

    STREAMPIPES-58: Improve layout of AddVisualization dialog
---
 .../model/dashboard/DashboardWidgetSettings.java   | 22 ++++++++++++
 .../apache/streampipes/vocabulary/StreamPipes.java |  2 ++
 .../dashboard/DashboardWidgetSettings.ts           |  6 ++++
 .../core-model/dashboard/VisualizablePipeline.ts   |  2 ++
 .../components/widgets/area/area-config.ts         | 10 +++++-
 .../widgets/base/base-ngx-line-config.ts           |  6 ++++
 .../components/widgets/gauge/gauge-config.ts       |  4 ++-
 .../components/widgets/html/html-config.ts         |  4 ++-
 .../components/widgets/image/image-config.ts       |  4 ++-
 .../components/widgets/line/line-config.ts         | 10 +++++-
 .../components/widgets/map/map-config.ts           |  4 ++-
 .../components/widgets/number/number-config.ts     |  3 +-
 .../components/widgets/raw/raw-config.ts           |  4 ++-
 .../components/widgets/table/table-config.ts       |  4 ++-
 .../widgets/trafficlight/traffic-light-config.ts   |  4 ++-
 .../add-visualization-dialog.component.css         | 16 +++++++++
 .../add-visualization-dialog.component.html        | 42 +++++++++++-----------
 .../add-visualization-dialog.component.ts          | 21 +++++++++--
 .../dashboard-v2/registry/widget-config-builder.ts | 10 ++++++
 .../app/dashboard-v2/services/dashboard.service.ts | 19 +++++++++-
 .../platform-services/tsonld-serializer.service.ts |  1 -
 21 files changed, 162 insertions(+), 36 deletions(-)

diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetSettings.java b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetSettings.java
index 77f455c..8d5c790 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetSettings.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetSettings.java
@@ -53,6 +53,12 @@ public class DashboardWidgetSettings extends UnnamedStreamPipesEntity {
   @RdfProperty(StreamPipes.HAS_SCHEMA)
   private EventSchema requiredSchema;
 
+  @RdfProperty(StreamPipes.HAS_WIDGET_ICON_NAME)
+  private String widgetIconName;
+
+  @RdfProperty(StreamPipes.HAS_WIDGET_DESCRIPTION)
+  private String widgetDescription;
+
   public DashboardWidgetSettings() {
     super();
   }
@@ -88,4 +94,20 @@ public class DashboardWidgetSettings extends UnnamedStreamPipesEntity {
   public void setRequiredSchema(EventSchema requiredSchema) {
     this.requiredSchema = requiredSchema;
   }
+
+  public String getWidgetIconName() {
+    return widgetIconName;
+  }
+
+  public void setWidgetIconName(String widgetIconName) {
+    this.widgetIconName = widgetIconName;
+  }
+
+  public String getWidgetDescription() {
+    return widgetDescription;
+  }
+
+  public void setWidgetDescription(String widgetDescription) {
+    this.widgetDescription = widgetDescription;
+  }
 }
diff --git a/streampipes-vocabulary/src/main/java/org/apache/streampipes/vocabulary/StreamPipes.java b/streampipes-vocabulary/src/main/java/org/apache/streampipes/vocabulary/StreamPipes.java
index 5fed7b9..3fca213 100644
--- a/streampipes-vocabulary/src/main/java/org/apache/streampipes/vocabulary/StreamPipes.java
+++ b/streampipes-vocabulary/src/main/java/org/apache/streampipes/vocabulary/StreamPipes.java
@@ -376,4 +376,6 @@ public class StreamPipes {
   public static final String DASHBOARD_WIDGET_DATA_CONFIG = NS + "DashboardWidgetDataConfig" ;
   public static final String COLOR_PICKER_STATIC_PROPERTY = NS + "ColorPickerStaticProperty";
   public static final String SELECTED_COLOR = NS + "hasSelectedColor";
+  public static final String HAS_WIDGET_ICON_NAME = NS + "hasWidgetIconName";
+  public static final String HAS_WIDGET_DESCRIPTION = NS + "hasWidgetDescription";
 }
diff --git a/ui/src/app/core-model/dashboard/DashboardWidgetSettings.ts b/ui/src/app/core-model/dashboard/DashboardWidgetSettings.ts
index 00c5e86..69e9327 100644
--- a/ui/src/app/core-model/dashboard/DashboardWidgetSettings.ts
+++ b/ui/src/app/core-model/dashboard/DashboardWidgetSettings.ts
@@ -37,6 +37,12 @@ export class DashboardWidgetSettings extends UnnamedStreamPipesEntity {
     @RdfProperty('sp:hasSchema')
     requiredSchema: EventSchema;
 
+    @RdfProperty('sp:hasWidgetIconName')
+    widgetIconName: string;
+
+    @RdfProperty('sp:hasWidgetDescription')
+    widgetDescription: string;
+
     constructor() {
         super();
     }
diff --git a/ui/src/app/core-model/dashboard/VisualizablePipeline.ts b/ui/src/app/core-model/dashboard/VisualizablePipeline.ts
index 122df1b..8d15e60 100644
--- a/ui/src/app/core-model/dashboard/VisualizablePipeline.ts
+++ b/ui/src/app/core-model/dashboard/VisualizablePipeline.ts
@@ -45,6 +45,8 @@ export class VisualizablePipeline {
     @RdfProperty('sp:hasTopic')
     topic:string;
 
+    pipelineName: string;
+
     constructor(id: string) {
         this.id = id;
     }
diff --git a/ui/src/app/dashboard-v2/components/widgets/area/area-config.ts b/ui/src/app/dashboard-v2/components/widgets/area/area-config.ts
index 23d01a7..9cfec97 100644
--- a/ui/src/app/dashboard-v2/components/widgets/area/area-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/area/area-config.ts
@@ -21,12 +21,20 @@ import {BaseNgxLineConfig} from "../base/base-ngx-line-config";
 export class AreaConfig extends BaseNgxLineConfig {
 
     getWidgetLabel(): string {
-        return "area";
+        return "Area Chart";
     }
 
     getWidgetName(): string {
         return "area";
     }
 
+    getWidgetDescription(): string {
+        return "An area chart with customizable axes and fields to display";
+    }
+
+    getWidgetIcon(): string {
+        return "fas fa-chart-area";
+    }
+
 
 }
\ No newline at end of file
diff --git a/ui/src/app/dashboard-v2/components/widgets/base/base-ngx-line-config.ts b/ui/src/app/dashboard-v2/components/widgets/base/base-ngx-line-config.ts
index 343dc9d..3d098f4 100644
--- a/ui/src/app/dashboard-v2/components/widgets/base/base-ngx-line-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/base/base-ngx-line-config.ts
@@ -31,6 +31,8 @@ export abstract class BaseNgxLineConfig extends WidgetConfig {
 
     getConfig(): DashboardWidgetSettings {
         return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel(this.getWidgetName(), this.getWidgetLabel())
+            .withDescription(this.getWidgetDescription())
+            .withIcon(this.getWidgetIcon())
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(BaseNgxLineConfig.TIMESTAMP_MAPPING_KEY, "Timestamp field", "", EpRequirements.timestampReq())
@@ -44,4 +46,8 @@ export abstract class BaseNgxLineConfig extends WidgetConfig {
     abstract getWidgetName(): string;
 
     abstract getWidgetLabel(): string;
+
+    abstract getWidgetDescription(): string;
+
+    abstract getWidgetIcon(): string;
 }
\ No newline at end of file
diff --git a/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-config.ts b/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-config.ts
index 76eb3a8..7a4799e 100644
--- a/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-config.ts
@@ -35,7 +35,9 @@ export class GaugeConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("gauge", "gauge")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("gauge", "Gauge")
+            .withDescription("A gauge visualization")
+            .withIcon("fas fa-tachometer-alt")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(GaugeConfig.NUMBER_MAPPING_KEY, "Select property", "", EpRequirements.numberReq())
diff --git a/ui/src/app/dashboard-v2/components/widgets/html/html-config.ts b/ui/src/app/dashboard-v2/components/widgets/html/html-config.ts
index c89e3b5..675f3b9 100644
--- a/ui/src/app/dashboard-v2/components/widgets/html/html-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/html/html-config.ts
@@ -30,7 +30,9 @@ export class HtmlConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("html", "html")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("html", "HTML page")
+            .withDescription("Renders HTML markup (e.g., from a website)")
+            .withIcon("far fa-window-maximize")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(HtmlConfig.HTML_MAPPING_KEY, "HTML field", "", EpRequirements.anyProperty())
diff --git a/ui/src/app/dashboard-v2/components/widgets/image/image-config.ts b/ui/src/app/dashboard-v2/components/widgets/image/image-config.ts
index 20e3086..a7ef01c 100644
--- a/ui/src/app/dashboard-v2/components/widgets/image/image-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/image/image-config.ts
@@ -32,7 +32,9 @@ export class ImageConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.create("image", "image")
+        return WidgetConfigBuilder.create("image", "Image")
+            .withDescription("Displays an image (e.g., from a camera)")
+            .withIcon("fas fa-image")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(ImageConfig.NUMBER_MAPPING_KEY, "Select property", "", EpRequirements.imageReq())
diff --git a/ui/src/app/dashboard-v2/components/widgets/line/line-config.ts b/ui/src/app/dashboard-v2/components/widgets/line/line-config.ts
index da45420..cd87ffc 100644
--- a/ui/src/app/dashboard-v2/components/widgets/line/line-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/line/line-config.ts
@@ -21,10 +21,18 @@ import {BaseNgxLineConfig} from "../base/base-ngx-line-config";
 export class LineConfig extends BaseNgxLineConfig {
 
     getWidgetLabel(): string {
-        return "line";
+        return "Line Chart";
     }
 
     getWidgetName(): string {
         return "line";
     }
+
+    getWidgetDescription(): string {
+        return "A line chart with customizable axes and fields to display";
+    }
+
+    getWidgetIcon(): string {
+        return "fas fa-chart-line";
+    }
 }
\ No newline at end of file
diff --git a/ui/src/app/dashboard-v2/components/widgets/map/map-config.ts b/ui/src/app/dashboard-v2/components/widgets/map/map-config.ts
index 3545886..fb72d9d 100644
--- a/ui/src/app/dashboard-v2/components/widgets/map/map-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/map/map-config.ts
@@ -33,7 +33,9 @@ export class MapConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("map", "map")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("map", "Map")
+            .withIcon("fas fa-map")
+            .withDescription("A map including a marker to show the live position of a thing")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(MapConfig.LATITUDE_MAPPING_KEY, "Latitude field", "", EpRequirements.latitudeReq())
diff --git a/ui/src/app/dashboard-v2/components/widgets/number/number-config.ts b/ui/src/app/dashboard-v2/components/widgets/number/number-config.ts
index f4f0b81..0f439f4 100644
--- a/ui/src/app/dashboard-v2/components/widgets/number/number-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/number/number-config.ts
@@ -31,7 +31,8 @@ export class NumberConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("number", "number")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("number", "Single Value")
+            .withDescription("Displays a single number or text value")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(NumberConfig.NUMBER_MAPPING_KEY, "Select property", "", EpRequirements.numberReq())
diff --git a/ui/src/app/dashboard-v2/components/widgets/raw/raw-config.ts b/ui/src/app/dashboard-v2/components/widgets/raw/raw-config.ts
index c744b52..164e66c 100644
--- a/ui/src/app/dashboard-v2/components/widgets/raw/raw-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/raw/raw-config.ts
@@ -27,7 +27,9 @@ export class RawConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("raw", "raw")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("raw", "Raw")
+            .withIcon("fas fa-terminal")
+            .withDescription("Displays the raw message as it comes in for testing purposes")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .build())
diff --git a/ui/src/app/dashboard-v2/components/widgets/table/table-config.ts b/ui/src/app/dashboard-v2/components/widgets/table/table-config.ts
index 47b71f5..e7be6c5 100644
--- a/ui/src/app/dashboard-v2/components/widgets/table/table-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/table/table-config.ts
@@ -32,7 +32,9 @@ export class TableConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("table", "table")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("table", "Table")
+            .withIcon("fas fa-table")
+            .withDescription("A table visualization with customizable columns.")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithNaryMapping(TableConfig.SELECTED_PROPERTIES_KEYS, "Select properties", "", EpRequirements.anyProperty())
diff --git a/ui/src/app/dashboard-v2/components/widgets/trafficlight/traffic-light-config.ts b/ui/src/app/dashboard-v2/components/widgets/trafficlight/traffic-light-config.ts
index 842c306..e291cb6 100644
--- a/ui/src/app/dashboard-v2/components/widgets/trafficlight/traffic-light-config.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/trafficlight/traffic-light-config.ts
@@ -34,7 +34,9 @@ export class TrafficLightConfig extends WidgetConfig {
     }
 
     getConfig(): DashboardWidgetSettings {
-        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("trafficlight", "trafficlight")
+        return WidgetConfigBuilder.createWithSelectableColorsAndTitlePanel("trafficlight", "Traffic Light")
+            .withIcon("fas fa-traffic-light")
+            .withDescription("A traffic light visualization with customizable warning range and threshold")
             .requiredSchema(SchemaRequirementsBuilder
                 .create()
                 .requiredPropertyWithUnaryMapping(TrafficLightConfig.NUMBER_MAPPING_KEY, "Field to observe", "", EpRequirements.numberReq())
diff --git a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.css b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.css
index e00a7b4..554bb0a 100644
--- a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.css
+++ b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.css
@@ -52,4 +52,20 @@ mat-dialog-content {
 
 .mat-radio-button {
     padding: 10px;
+}
+
+.pipeline-avatar {
+    align-items: center;
+    justify-content: center;
+    display: flex;
+    color:white;
+}
+
+.list-item:hover {
+    background: #E0E0E0;
+    cursor: pointer;
+}
+
+.list-item {
+    border-bottom: 1px solid #BDBDBD;
 }
\ No newline at end of file
diff --git a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.html b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.html
index c746d86..273a974 100644
--- a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.html
+++ b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.html
@@ -31,35 +31,33 @@
             <div fxFlex="100" style="margin:5px;width:100%">
                 <div *ngIf="page == 'select-pipeline'">
                     <h4>{{pages[0].description}}</h4>
-                    <mat-grid-list
-                            [cols]="3" [rowHeight]="200"
-                            [gutterSize]="100">
-
-                        <mat-grid-tile class="gray" *ngFor="let pipeline of visualizablePipelines">
-                            <div [ngClass]="getSelectedPipelineCss(pipeline)"
-                                 (click)="selectPipeline(pipeline)">
-                                {{iconText(pipeline.visualizationName)}}
-                                <h5>{{pipeline.visualizationName}}</h5>
+                    <mat-list>
+                        <mat-list-item *ngFor="let pipeline of visualizablePipelines"
+                                       (click)="selectPipeline(pipeline)" class="list-item">
+                            <div mat-list-avatar
+                                 class="pipeline-avatar sp-accent-bg">{{iconText(pipeline.visualizationName)}}
                             </div>
-                        </mat-grid-tile>
-                    </mat-grid-list>
+                            <h4 mat-line>{{pipeline.pipelineName}}</h4>
+                            <p mat-line>{{pipeline.visualizationName}} </p>
+                        </mat-list-item>
+                    </mat-list>
                 </div>
 
                 <!-- Select Type -->
                 <div *ngIf="page == 'select-widget'" fxLayout="column">
                     <h4>{{pages[1].description}}</h4>
-                    <mat-grid-list
-                            [cols]="3" [rowHeight]="200"
-                            [gutterSize]="100">
-
-                        <mat-grid-tile class="gray" *ngFor="let widget of availableWidgets">
-                            <div [ngClass]="getSelectedPipelineCss(widget.widgetLabel)"
-                                 (click)="selectWidget(widget)">
-                                {{iconText(widget.widgetLabel)}}
-                                <h5>{{widget.widgetLabel}}</h5>
+                    <mat-list>
+                        <mat-list-item *ngFor="let widget of availableWidgets"
+                                       (click)="selectWidget(widget)" class="list-item">
+                            <div mat-list-avatar
+                                 class="pipeline-avatar sp-accent-bg">
+                                <span *ngIf="!widget.widgetIconName">{{iconText(widget.widgetLabel)}}</span>
+                                <span *ngIf="widget.widgetIconName"><i class="{{widget.widgetIconName}}"></i></span>
                             </div>
-                        </mat-grid-tile>
-                    </mat-grid-list>
+                            <h4 mat-line>{{widget.widgetLabel}}</h4>
+                            <p mat-line>{{widget.widgetDescription}} - {{widget.widgetIconName}} </p>
+                        </mat-list-item>
+                    </mat-list>
                 </div>
 
                 <!-- Select Scheme -->
diff --git a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.ts b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.ts
index 8ea4895..f93c651 100644
--- a/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.ts
+++ b/ui/src/app/dashboard-v2/dialogs/add-widget/add-visualization-dialog.component.ts
@@ -76,9 +76,20 @@ export class AddVisualizationDialogComponent {
         if (!this.data) {
             this.dialogTitle = "Add widget";
             this.dashboardService.getVisualizablePipelines().subscribe(visualizations => {
-                this.visualizablePipelines = visualizations;
+                this.visualizablePipelines = [];
+                visualizations.forEach(vis => {
+                    this.dashboardService.getPipelineById(vis.pipelineId).subscribe(pipeline => {
+                        vis.pipelineName = pipeline.name;
+                        this.visualizablePipelines.push(vis);
+                        this.sortPipeline();
+                    });
+                })
+            });
+
+            this.availableWidgets = WidgetRegistry.getAvailableWidgetTemplates()
+            this.availableWidgets.sort((a, b) => {
+                return a.widgetLabel < b.widgetLabel ? -1 : 1;
             });
-            this.availableWidgets = WidgetRegistry.getAvailableWidgetTemplates();
         } else {
             this.dialogTitle = "Edit widget";
             this.selectedPipeline = this.data.pipeline;
@@ -87,6 +98,12 @@ export class AddVisualizationDialogComponent {
         }
     }
 
+    sortPipeline() {
+        this.visualizablePipelines.sort((a, b) => {
+            return a.pipelineName < b.pipelineName ? -1 : 1;
+        });
+    }
+
     onCancel(): void {
         this.dialogRef.close();
     }
diff --git a/ui/src/app/dashboard-v2/registry/widget-config-builder.ts b/ui/src/app/dashboard-v2/registry/widget-config-builder.ts
index e7911a4..cf1bb88 100644
--- a/ui/src/app/dashboard-v2/registry/widget-config-builder.ts
+++ b/ui/src/app/dashboard-v2/registry/widget-config-builder.ts
@@ -66,6 +66,16 @@ export class WidgetConfigBuilder {
         return new WidgetConfigBuilder(widgetName, widgetLabel, true, true);
     }
 
+    withDescription(description: string): WidgetConfigBuilder {
+        this.widget.widgetDescription = description;
+        return this;
+    }
+
+    withIcon(fontAwesomeIconName: string): WidgetConfigBuilder {
+        this.widget.widgetIconName = fontAwesomeIconName;
+        return this;
+    }
+
     requiredTextParameter(id: string, label: string, description: string): WidgetConfigBuilder {
         let fst: FreeTextStaticProperty = this.prepareFreeTextStaticProperty(id, label, description, Datatypes.String.toUri())
         this.widget.config.push(fst);
diff --git a/ui/src/app/dashboard-v2/services/dashboard.service.ts b/ui/src/app/dashboard-v2/services/dashboard.service.ts
index d24d34c..0560303 100644
--- a/ui/src/app/dashboard-v2/services/dashboard.service.ts
+++ b/ui/src/app/dashboard-v2/services/dashboard.service.ts
@@ -25,6 +25,7 @@ import {Dashboard} from "../models/dashboard.model";
 import {TsonLdSerializerService} from "../../platform-services/tsonld-serializer.service";
 import {DashboardWidget} from "../../core-model/dashboard/DashboardWidget";
 import {VisualizablePipeline} from "../../core-model/dashboard/VisualizablePipeline";
+import {RestApi} from "../../services/rest-api.service";
 
 @Injectable()
 export class DashboardService {
@@ -32,7 +33,19 @@ export class DashboardService {
 
     constructor(private http: HttpClient, 
                 private authStatusService: AuthStatusService,
-                private tsonLdSerializerService: TsonLdSerializerService,) {
+                private tsonLdSerializerService: TsonLdSerializerService) {
+    }
+
+    getPipelines(): Observable<Array<any>> {
+        return this.http.get(this.pipelinesUrl + "/own").map(data => {
+           return data as any[];
+        })
+    }
+
+    getPipelineById(id: string): Observable<any> {
+        return this.http.get(this.pipelinesUrl + "/" +id).map(data => {
+            return data as any;
+        })
     }
 
     getVisualizablePipelines(): Observable<Array<VisualizablePipeline>> {
@@ -87,6 +100,10 @@ export class DashboardService {
         return this.baseUrl + '/api/v2/users/' + this.authStatusService.email + '/ld/dashboards'
     }
 
+    private get pipelinesUrl() {
+        return this.baseUrl + '/api/v2/users/' + this.authStatusService.email + '/pipelines'
+    }
+
     private get dashboardWidgetUrl() {
         return this.baseUrl + '/api/v2/users/' + this.authStatusService.email + '/ld/widgets'
     }
diff --git a/ui/src/app/platform-services/tsonld-serializer.service.ts b/ui/src/app/platform-services/tsonld-serializer.service.ts
index 3d2bc1f..881c01a 100644
--- a/ui/src/app/platform-services/tsonld-serializer.service.ts
+++ b/ui/src/app/platform-services/tsonld-serializer.service.ts
@@ -207,7 +207,6 @@ export class TsonLdSerializerService {
     }
 
     public fromJsonLdContainer(o: any, type:string): any {
-        console.log(o);
         return this.getTsonLd().fromJsonLdContainer(o, type);
     }