Skip to content

Commit 883aa87

Browse files
Merge pull request #60 from OS2iot/feature/IOT-16_MulticastFrontend
Feature/iot 16 multicast frontend
2 parents 101b8d8 + 75d5641 commit 883aa87

38 files changed

+1495
-209
lines changed
Lines changed: 61 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<div *ngIf="application">
22
<app-top-bar [data]="application" [backButton]="backButton" [subPage]="true"
3-
[dtRouterLink]="['datatarget-list', application.name]" [dtLabel]="'APPLICATION.DATATARGET-SHOW' | translate"
43
[addDetailDowndown]="true" [dropDownButton]="dropdownButton" (deleteSelectedInDropdown)="onDeleteApplication()">
54
</app-top-bar>
65
<div class="container-fluid">
@@ -18,22 +17,68 @@ <h3>Detaljer</h3>
1817
</div>
1918
</div>
2019
</div>
21-
<div class="row">
22-
<div class="col-sm-12">
23-
<div class="jumbotron">
24-
<div *ngIf="canEdit else readOnly">
25-
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate"
26-
[ctaLabelPrimary]="'FORM.CREATE-NEW-IOT-DEVICE' | translate" [ctaRouterLinkPrimary]="'new-iot-device'"
27-
[ctaLabelSecondary]="'APPLICATION.IMPORT-CSV' | translate" [ctaRouterLinkSecondary]="'bulk-import'">
28-
</app-top-bar-table>
20+
<mat-tab-group animationDuration="200ms">
21+
<mat-tab label="{{'APPLICATION.IOT-DEVICES' | translate}}">
22+
<div class="jumbotron--table">
23+
<div class="row">
24+
<div class="col-sm-12">
25+
<div class="jumbotron">
26+
<div *ngIf="canEdit else readOnly">
27+
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate"
28+
[ctaLabelPrimary]="'FORM.CREATE-NEW-IOT-DEVICE' | translate" [ctaRouterLinkPrimary]="'new-iot-device'"
29+
[ctaLabelSecondary]="'APPLICATION.IMPORT-CSV' | translate" [ctaRouterLinkSecondary]="'bulk-import'">
30+
</app-top-bar-table>
31+
</div>
32+
<ng-template #readOnly>
33+
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate">
34+
</app-top-bar-table>
35+
</ng-template>
36+
<app-iot-devices-table [applicationId]="id"></app-iot-devices-table>
37+
</div>
38+
</div>
2939
</div>
30-
<ng-template #readOnly>
31-
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate">
32-
</app-top-bar-table>
33-
</ng-template>
34-
<app-iot-devices-table [applicationId]="id"></app-iot-devices-table>
3540
</div>
36-
</div>
37-
</div>
41+
</mat-tab>
42+
<mat-tab label="{{'APPLICATION.MULTICAST-GROUPS' | translate}}">
43+
<div class="jumbotron--table">
44+
<div class="row">
45+
<div class="col-sm-12">
46+
<div class="jumbotron">
47+
<div *ngIf="canEdit else readOnly">
48+
<app-top-bar-table [component]="true" [title]="'APPLICATION.MULTICAST-SHOW' | translate"
49+
[ctaLabelPrimary]="'FORM.CREATE-NEW-MULTICAST' | translate" [ctaRouterLinkPrimary]="'multicast-edit'">
50+
</app-top-bar-table>
51+
</div>
52+
<ng-template #readOnly>
53+
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate">
54+
</app-top-bar-table>
55+
</ng-template>
56+
<app-multicast-table></app-multicast-table>
57+
</div>
58+
</div>
59+
</div>
60+
</div>
61+
</mat-tab>
62+
<mat-tab label="{{'APPLICATION.DATATARGET-SHOW' | translate}}">
63+
<div class="jumbotron--table">
64+
<div class="row">
65+
<div class="col-sm-12">
66+
<div class="jumbotron">
67+
<div *ngIf="canEdit else readOnly">
68+
<app-top-bar-table [component]="true" [title]="'APPLICATION.DATATARGET-SHOW' | translate"
69+
[ctaLabelPrimary]="'FORM.CREATE-NEW-DATATARGET' | translate" [ctaRouterLinkPrimary]="'datatarget-edit'">
70+
</app-top-bar-table>
71+
</div>
72+
<ng-template #readOnly>
73+
<app-top-bar-table [component]="true" [title]="'APPLICATION.ATTACHED-IOT' | translate">
74+
</app-top-bar-table>
75+
</ng-template>
76+
<app-datatarget-table [pageLimit]="pageLimit"></app-datatarget-table>
77+
</div>
78+
</div>
79+
</div>
80+
</div>
81+
</mat-tab>
82+
</mat-tab-group>
3883
</div>
3984
</div>

src/app/applications/application-detail/application-detail.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Title } from '@angular/platform-browser';
99
import { ActivatedRoute, Router } from '@angular/router';
1010
import { Application } from '@applications/application.model';
1111
import { ApplicationService } from '@applications/application.service';
12+
import { environment } from '@environments/environment';
1213
import { TranslateService } from '@ngx-translate/core';
1314
import { DeleteDialogService } from '@shared/components/delete-dialog/delete-dialog.service';
1415
import { DeviceType } from '@shared/enums/device-type';
@@ -28,6 +29,7 @@ export class ApplicationDetailComponent implements OnInit, OnDestroy {
2829
public application: Application;
2930
public backButton: BackButton = { label: '', routerLink: '/applications' };
3031
public id: number;
32+
public pageLimit = environment.tablePageSize;
3133
public dropdownButton: DropdownButton;
3234
public errorMessage: string;
3335
public canEdit = false;

src/app/applications/applications-routing.module.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import { ApplicationsComponent } from './applications.component';
77
import { IoTDeviceDetailComponent } from './iot-devices/iot-device-detail/iot-device-detail.component';
88
import { IotDeviceEditComponent } from './iot-devices/iot-device-edit/iot-device-edit.component';
99
import { DatatargetEditComponent } from './datatarget/datatarget-edit/datatarget-edit.component';
10-
import { DatatargetListComponent } from './datatarget/datatarget-list/datatarget-list.component';
1110
import { DatatargetDetailComponent } from './datatarget/datatarget-detail/datatarget-detail.component';
1211
import { BulkImportComponent } from './bulk-import/bulk-import.component';
12+
import { MulticastEditComponent } from './multicast/multicast-edit/multicast-edit.component';
13+
import { MulticastDetailComponent } from './multicast/multicast-detail/multicast-detail.component';
1314

1415

1516
const applicationRoutes: Routes = [
@@ -26,18 +27,17 @@ const applicationRoutes: Routes = [
2627
{ path: '', component: ApplicationDetailComponent },
2728
{ path: 'new-iot-device', component: IotDeviceEditComponent, },
2829
{ path: 'iot-device-edit/:deviceId', component: IotDeviceEditComponent, },
29-
{ path: 'iot-device/:deviceId', component: IoTDeviceDetailComponent, },
30-
{
31-
path: 'datatarget-list/:name',
32-
children: [
33-
{ path: '', component: DatatargetListComponent },
34-
{ path: 'datatarget-edit', component: DatatargetEditComponent },
35-
{ path: 'datatarget-edit/:datatargetId', component: DatatargetEditComponent },
36-
{ path: 'datatarget/:datatargetId', component: DatatargetDetailComponent }
37-
]
30+
{ path: 'iot-device/:deviceId', component: IoTDeviceDetailComponent, },
3831

39-
},
40-
{ path: 'bulk-import', component: BulkImportComponent }
32+
{ path: 'datatarget-edit', component: DatatargetEditComponent },
33+
{ path: 'datatarget-edit/:datatargetId', component: DatatargetEditComponent },
34+
{ path: 'datatarget/:datatargetId', component: DatatargetDetailComponent },
35+
36+
{ path: 'multicast-edit', component: MulticastEditComponent},
37+
{ path: 'multicast-edit/:multicastId', component: MulticastEditComponent },
38+
{ path: 'multicast/:multicastId', component: MulticastDetailComponent },
39+
40+
{ path: 'bulk-import', component: BulkImportComponent },
4141
],
4242
},
4343

src/app/applications/applications.module.ts

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,35 @@ import { NGMaterialModule } from '@shared/Modules/materiale.module';
1717
import { BulkImportComponent } from './bulk-import/bulk-import.component';
1818
import { PipesModule } from '@shared/pipes/pipes.module';
1919
import { ApplicationsTableComponent } from './applications-list/applications-table/applications-table.component';
20-
20+
import { MulticastModule } from './multicast/multicast.module';
2121

2222
@NgModule({
23-
declarations: [
24-
ApplicationsComponent,
25-
ApplicationDetailComponent,
26-
ApplicationEditComponent,
27-
ApplicationsListComponent,
28-
ApplicationsTableComponent,
29-
BulkImportComponent,
30-
],
31-
exports: [
32-
ApplicaitonsRoutingModule,
33-
ApplicationsComponent,
34-
ApplicationsTableComponent,
35-
],
36-
imports: [
37-
CommonModule,
38-
RouterModule,
39-
TranslateModule,
40-
IotDevicesModule,
41-
DatatargetModule,
42-
DirectivesModule,
43-
FormModule,
44-
SharedModule,
45-
FontAwesomeModule,
46-
NGMaterialModule,
47-
PipesModule,
48-
],
23+
declarations: [
24+
ApplicationsComponent,
25+
ApplicationDetailComponent,
26+
ApplicationEditComponent,
27+
ApplicationsListComponent,
28+
ApplicationsTableComponent,
29+
BulkImportComponent,
30+
],
31+
exports: [
32+
ApplicaitonsRoutingModule,
33+
ApplicationsComponent,
34+
ApplicationsTableComponent,
35+
],
36+
imports: [
37+
CommonModule,
38+
RouterModule,
39+
TranslateModule,
40+
IotDevicesModule,
41+
DatatargetModule,
42+
DirectivesModule,
43+
FormModule,
44+
SharedModule,
45+
FontAwesomeModule,
46+
NGMaterialModule,
47+
PipesModule,
48+
MulticastModule,
49+
],
4950
})
50-
export class ApplicationsModule { }
51+
export class ApplicationsModule {}

src/app/applications/datatarget/datatarget-detail/datatarget-detail.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { DeleteDialogService } from '@shared/components/delete-dialog/delete-dia
1111
import { Datatarget } from '../datatarget.model';
1212
import { DropdownButton } from '@shared/models/dropdown-button.model';
1313
import { faArrowsAltH } from '@fortawesome/free-solid-svg-icons';
14-
import { IotDevice } from '@applications/iot-devices/iot-device.model';
1514

1615
@Component({
1716
selector: 'app-datatarget-detail',
@@ -65,7 +64,7 @@ export class DatatargetDetailComponent implements OnInit, OnDestroy {
6564
}
6665

6766
private setBackButton(applicationId: number) {
68-
this.backButton.routerLink = ['applications', applicationId.toString(), 'datatarget-list', this.applicationName ]
67+
this.backButton.routerLink = ['applications', applicationId.toString()]
6968
}
7069

7170
onDeleteDatatarget() {

src/app/applications/datatarget/datatarget-edit/datatarget-edit.component.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { DatatargetService } from '../datatarget.service';
1111
import { ApplicationService } from '@applications/application.service';
1212
import { PayloadDecoderService } from '@payload-decoder/payload-decoder.service';
1313
import { PayloadDeviceDatatargetService } from '@payload-decoder/payload-device-datatarget.service';
14-
import { SaveSnackService } from '@shared/services/save-snack.service';
14+
import { SnackService } from '@shared/services/snack.service';
1515
import { MatDialog } from '@angular/material/dialog';
1616
import { HttpErrorResponse } from '@angular/common/http';
1717
import { PayloadDecoderMappedResponse } from '@payload-decoder/payload-decoder.model';
@@ -44,7 +44,7 @@ export class DatatargetEditComponent implements OnInit, OnDestroy {
4444
public formFailedSubmit = false;
4545
public datatargetid: number;
4646
private applicationId: number;
47-
private applicationNane: string;
47+
private applicationName: string;
4848
public application: Application;
4949
public devices: IotDevice[];
5050
public payloadDecoders = [];
@@ -63,7 +63,7 @@ export class DatatargetEditComponent implements OnInit, OnDestroy {
6363
private applicationService: ApplicationService,
6464
private payloadDecoderService: PayloadDecoderService,
6565
private payloadDeviceDataTargetService: PayloadDeviceDatatargetService,
66-
private saveSnackService: SaveSnackService,
66+
private saveSnackService: SnackService,
6767
private dialog: MatDialog,
6868
private errorMessageService: ErrorMessageService,
6969
private opendatadkService: OpendatadkService,
@@ -94,7 +94,7 @@ export class DatatargetEditComponent implements OnInit, OnDestroy {
9494

9595
this.datatargetid = +this.route.snapshot.paramMap.get('datatargetId');
9696
this.applicationId = +this.route.snapshot.paramMap.get('id');
97-
this.applicationNane = this.route.snapshot.paramMap.get('name');
97+
this.applicationName = this.route.snapshot.paramMap.get('name');
9898
if (this.datatargetid !== 0) {
9999
this.getDatatarget(this.datatargetid);
100100
this.getPayloadDeviceDatatarget(this.datatargetid);
@@ -237,6 +237,7 @@ export class DatatargetEditComponent implements OnInit, OnDestroy {
237237
this.datatarget.openDataDkDataset.acceptTerms = true;
238238
}
239239
this.showSavedSnack();
240+
this.routeToDatatargets();
240241
},
241242
(error: HttpErrorResponse) => {
242243
this.checkDataTargetModelOpendatadkdatasaet();
@@ -288,7 +289,7 @@ export class DatatargetEditComponent implements OnInit, OnDestroy {
288289
}
289290

290291
routeToDatatargets(): void {
291-
this.router.navigate(['applications',this.applicationId.toString(),'datatarget-list', this.applicationNane])
292+
this.router.navigate(['applications',this.applicationId.toString()])
292293
}
293294

294295
onCoordinateKey(event: any) {

src/app/applications/datatarget/datatarget-list/datatarget-list.component.html

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/app/applications/datatarget/datatarget-list/datatarget-list.component.spec.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/app/applications/datatarget/datatarget-list/datatarget-list.component.ts

Lines changed: 0 additions & 49 deletions
This file was deleted.

src/app/applications/datatarget/datatarget-table/datatarget-table.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</td>
1616
</ng-container>
1717

18-
<!-- Devices Column -->
18+
<!-- Type Column -->
1919
<ng-container matColumnDef="type">
2020
<th mat-header-cell *matHeaderCellDef mat-sort-header class="col-1">
2121
{{ 'DATATARGET-TABLE.TYPE' | translate }}</th>

0 commit comments

Comments
 (0)