-
Group Id: {{ group.groupId }}
-
-
Consumer: {{ consumer.consumerName }}
-
Status: {{consumer.flowStatus}}
-
Lag: 55
-
Workers: {{consumer.workersCount}}
-
-
-
-
-
-
-
-
-
- Topic: {{partitionAssignment.topic}}
-
-
-
- Hostname |
- Partitions |
- Lag |
- Status |
- Actions |
-
-
-
- 0">
-
- {{partitionAssignment.hostName}} |
- {{partitionAssignment.pausedPartitions}} |
- 0 |
- Paused |
-
-
-
-
- |
-
-
- 0">
-
- {{partitionAssignment.hostName}} |
- {{partitionAssignment.runningPartitions}} |
- 0 |
- Running |
-
-
-
-
- |
-
-
-
-
-
-
-
+
+
+
+
Group Id: {{ group.groupId }}
+
+
Consumer: {{ consumer.consumerName }}
+
Status: {{consumer.status}}
+
+
Workers: {{consumer.workersCount}}
+
+
+
+
+
+
+
+
+ Topic: {{partitionAssignments.key}}
+
+
+
+ Hostname - consumer instance |
+ Partitions |
+
+ Status |
+ LastUpdate |
+
+
+
+
+
+ 0">
+
+ {{partitionAssignment.hostName}} |
+ {{partitionAssignment.pausedPartitions}} |
+
+
+
+ -
+ Paused
+ |
+ {{partitionAssignment.lastUpdate | date: "medium"}} |
+
+
+
+ 0">
+
+ {{partitionAssignment.hostName}} |
+ {{partitionAssignment.runningPartitions}} |
+
+
+
+ -
+ Running
+ |
+ {{partitionAssignment.lastUpdate | date: "medium"}} |
+
+
+
+
+
+
+
+
+
+
diff --git a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/consumer/consumer.component.ts b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/consumer/consumer.component.ts
index 37b69f694..866d99483 100644
--- a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/consumer/consumer.component.ts
+++ b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/consumer/consumer.component.ts
@@ -1,7 +1,6 @@
import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { ConsumerService } from '../consumer.service'
import { Subject } from 'rxjs';
-import { delay } from 'rxjs/internal/operators';
import { debounceTime } from 'rxjs/operators';
import { NgbModal, NgbAlert } from '@ng-bootstrap/ng-bootstrap';
import { RewindModalComponent } from '../shared/rewind-modal/rewind-modal.component';
@@ -24,6 +23,10 @@ export class ConsumerComponent implements OnInit {
constructor(private modalService: NgbModal, private consumerService: ConsumerService) { }
+ removeReadonly(group: any) {
+ return !(group.consumers.length == 1 && group.consumers[0].isReadonly==1);
+ }
+
openWorkersCountModal(groupId: any, consumerName: any, workersCount: number) {
const modalRef = this.modalService.open(WorkersCountModalComponent);
modalRef.componentInstance.groupId = groupId;
diff --git a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/group-by.pipe.ts b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/group-by.pipe.ts
new file mode 100644
index 000000000..cc3b29b52
--- /dev/null
+++ b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/group-by.pipe.ts
@@ -0,0 +1,26 @@
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+ name: 'groupBy'
+})
+export class GroupByPipe implements PipeTransform {
+ transform(collection: any[], property: string): any[] {
+ // prevents the application from breaking if the array of objects doesn't exist yet
+ if(!collection) {
+ return null as any;
+ }
+
+ const groupedCollection = collection.reduce((previous, current)=> {
+ if(!previous[current[property]]) {
+ previous[current[property]] = [current];
+ } else {
+ previous[current[property]].push(current);
+ }
+
+ return previous;
+ }, {});
+
+ // this will return an array of objects, each object containing a group of objects
+ return Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] }));
+ }
+}
diff --git a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.html b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.html
index 1d1d5e445..c6433fd9d 100644
--- a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.html
+++ b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.html
@@ -7,17 +7,18 @@
diff --git a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.ts b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.ts
index 2b73625f0..32071e85d 100644
--- a/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.ts
+++ b/src/KafkaFlow.Admin.Dashboard/AngularFiles/src/app/home/home.component.ts
@@ -9,7 +9,30 @@ import {interval} from "rxjs";
export class HomeComponent implements OnInit {
public groups: Array