Skip to content

Commit 557463c

Browse files
committed
Merge branch 'feature/422759_adapt_contract_definitions' into 'develop'
feature/422759_adapt_contract_definitions See merge request upm-inesdata/connector-management-interface!4
2 parents a7f2e93 + dfddb92 commit 557463c

File tree

11 files changed

+94
-80
lines changed

11 files changed

+94
-80
lines changed

src/app/pages/contract-definitions/contract-definition-editor-dialog/contract-definition-editor-dialog.component.scss

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ mat-dialog-content {
77
width: 300px;
88
}
99

10-
#form-field-id {
11-
width: 40%;
10+
#form-field-id,
11+
#form-field-contract-assets {
12+
width: 100%;
1213
}
1314

1415
.form-field-policy {
@@ -31,4 +32,4 @@ mat-dialog-content {
3132

3233
mat-card-actions {
3334
margin-left: 0;
34-
}
35+
}

src/app/pages/contract-definitions/contract-definition-editor-dialog/contract-definition-editor-dialog.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import {Component, Inject, OnInit} from '@angular/core';
22
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
33
import {AssetService} from "../../../shared/services/asset.service";
44
import {PolicyService} from "../../../shared/services/policy.service";
5-
import { Asset, ContractDefinitionInput, PolicyDefinition } from "../../../shared/models/edc-connector-entities";
5+
import { Asset, PolicyDefinition } from "../../../shared/models/edc-connector-entities";
6+
import { ContractDefinitionInput } from "../../../shared/models/contract-definition";
67

78

89
@Component({
Lines changed: 53 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,56 @@
11
<div *ngIf="filteredContractDefinitions$ | async as contractDefinitions" id="wrapper">
2-
<div class="container">
3-
<mat-form-field appearance="outline" class="search-form-field" color="accent">
4-
<mat-label>Search definitions</mat-label>
5-
<input (input)="onSearch()" [(ngModel)]="searchText" matInput>
6-
<mat-icon matPrefix>search</mat-icon>
7-
<button (click)="searchText=''; onSearch()" *ngIf="searchText" mat-icon-button matSuffix>
8-
<mat-icon>close</mat-icon>
9-
</button>
10-
</mat-form-field>
11-
12-
<mat-paginator [length]="contractDefinitions.length" hidePageSize="true" pageSize="contractDefinitions.length">
13-
</mat-paginator>
14-
15-
<button (click)="onCreate()" color="accent" mat-stroked-button>
16-
<mat-icon>add_circle_outline</mat-icon>
17-
Create contract definition
2+
<div class="container">
3+
<mat-form-field appearance="outline" class="search-form-field" color="accent">
4+
<mat-label>Search definitions</mat-label>
5+
<input (input)="onSearch()" [(ngModel)]="searchText" matInput>
6+
<mat-icon matPrefix>search</mat-icon>
7+
<button (click)="searchText=''; onSearch()" *ngIf="searchText" mat-icon-button matSuffix>
8+
<mat-icon>close</mat-icon>
9+
</button>
10+
</mat-form-field>
11+
12+
<button (click)="onCreate()" color="accent" mat-stroked-button>
13+
<mat-icon>add_circle_outline</mat-icon>
14+
Create contract definition
15+
</button>
16+
17+
</div>
18+
19+
<div fxLayout="row wrap" fxLayoutAlign="start start">
20+
21+
<mat-card *ngFor="let contractDefinition of contractDefinitions" class="contract-definition-card">
22+
<mat-card-header>
23+
<mat-icon mat-card-avatar>policy</mat-icon>
24+
<mat-card-title>{{contractDefinition.id}}</mat-card-title>
25+
</mat-card-header>
26+
<mat-card-content>
27+
<mat-list dense>
28+
<mat-list-item>
29+
<mat-icon matListItemIcon>policy</mat-icon>
30+
<div class="policy-name" matListItemTitle>Access policy</div>
31+
<div matListItemLine>{{contractDefinition.accessPolicyId}}</div>
32+
</mat-list-item>
33+
<mat-list-item>
34+
<mat-icon matListItemIcon>policy</mat-icon>
35+
<div class="policy-name" matListItemTitle>Contract policy</div>
36+
<div matListItemLine>{{contractDefinition.contractPolicyId}}</div>
37+
</mat-list-item>
38+
<mat-list-item>
39+
<div class="policy-assets" matListItemTitle>Assets</div>
40+
<mat-icon matListItemIcon>policy</mat-icon>
41+
42+
<div matListItemLine *ngFor="let criterion of contractDefinition.assetsSelector">{{criterion.operandRight}}</div>
43+
</mat-list-item>
44+
</mat-list>
45+
46+
</mat-card-content>
47+
48+
<mat-divider></mat-divider>
49+
<mat-card-actions class="card-actions">
50+
<button (click)="onDelete(contractDefinition)" color="warn" mat-stroked-button>
51+
<mat-icon>delete_sweep</mat-icon> Delete
1852
</button>
19-
20-
</div>
21-
22-
<div fxLayout="row wrap" fxLayoutAlign="start start">
23-
24-
<mat-card *ngFor="let contractDefinition of contractDefinitions" class="contract-definition-card">
25-
<mat-card-header>
26-
<mat-icon mat-card-avatar>policy</mat-icon>
27-
<mat-card-title>{{contractDefinition.id}}</mat-card-title>
28-
</mat-card-header>
29-
<mat-card-content>
30-
<mat-list dense>
31-
<mat-list-item>
32-
<mat-icon matListItemIcon>policy</mat-icon>
33-
<div class="policy-name" matListItemTitle>Access policy</div>
34-
<div matListItemLine>{{contractDefinition.accessPolicyId}}</div>
35-
</mat-list-item>
36-
<mat-list-item>
37-
<mat-icon matListItemIcon>policy</mat-icon>
38-
<div class="policy-name" matListItemTitle>Contract policy</div>
39-
<div matListItemLine>{{contractDefinition.contractPolicyId}}</div>
40-
</mat-list-item>
41-
</mat-list>
42-
43-
<mat-expansion-panel>
44-
<mat-expansion-panel-header>
45-
<mat-panel-title>
46-
Selectors
47-
</mat-panel-title>
48-
</mat-expansion-panel-header>
49-
<mat-list dense>
50-
<mat-list-item *ngFor="let criterion of contractDefinition.assetsSelector">
51-
<mat-icon matListItemIcon>check</mat-icon>
52-
<!-- mandatoryValue method needs to be used because of this bug: https://github.com/Think-iT-Labs/edc-connector-client/issues/94 -->
53-
<div matListItemLine>{{criterion.mandatoryValue('edc', 'operandLeft')}} {{criterion.mandatoryValue('edc', 'operator')}} {{criterion.mandatoryValue('edc', 'operandRight')}}</div>
54-
</mat-list-item>
55-
</mat-list>
56-
</mat-expansion-panel>
57-
58-
</mat-card-content>
59-
60-
<mat-divider inset></mat-divider>
61-
<mat-card-actions class="card-actions">
62-
<button (click)="onDelete(contractDefinition)" color="warn" mat-stroked-button>
63-
<mat-icon>delete_sweep</mat-icon> Delete
64-
</button>
65-
</mat-card-actions>
66-
</mat-card>
67-
</div>
53+
</mat-card-actions>
54+
</mat-card>
55+
</div>
6856
</div>

src/app/pages/contract-definitions/contract-definition-viewer/contract-definition-viewer.component.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
margin-left: 0;
2727
}
2828

29-
.policy-name {
29+
.policy-name,
30+
#policy-assets {
3031
font-weight: bold !important;
3132
}
3233

src/app/pages/contract-definitions/contract-definition-viewer/contract-definition-viewer.component.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
import { ContractDefinitionService } from "../../../shared/services/contractDefinition.service";
99
import {ConfirmationDialogComponent, ConfirmDialogModel} from "../../../shared/components/confirmation-dialog/confirmation-dialog.component";
1010
import {NotificationService} from "../../../shared/services/notification.service";
11-
import { ContractDefinitionInput, ContractDefinition } from "../../../shared/models/edc-connector-entities"
11+
import { ContractDefinitionInput, ContractDefinition } from "../../../shared/models/contract-definition"
1212

1313

1414
@Component({
@@ -46,7 +46,7 @@ export class ContractDefinitionViewerComponent implements OnInit {
4646
onDelete(contractDefinition: ContractDefinition) {
4747
const dialogData = ConfirmDialogModel.forDelete("contract definition", contractDefinition.id);
4848

49-
const ref = this.dialog.open(ConfirmationDialogComponent, {maxWidth: '20%', data: dialogData});
49+
const ref = this.dialog.open(ConfirmationDialogComponent, {maxWidth: '30%', data: dialogData});
5050

5151
ref.afterClosed().subscribe(res => {
5252
if (res) {
@@ -71,5 +71,4 @@ export class ContractDefinitionViewerComponent implements OnInit {
7171
}
7272
});
7373
}
74-
7574
}

src/app/shared/components/navigation/navigation.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
[opened]="(isHandset$ | async) === false">
66
<mat-toolbar>INESData</mat-toolbar>
77
<mat-nav-list>
8-
<a mat-list-item *ngFor="let route of routes" [routerLink]="[route.path]">
8+
<ng-container *ngFor="let route of routes">
9+
<a mat-list-item *ngIf="route.data?.title" [routerLink]="[route.path]">
910
<mat-icon matListItemIcon>{{route.data?.icon}}</mat-icon>
1011
{{route.data?.title ?? route.path}}
1112
</a>
13+
</ng-container>
1214
</mat-nav-list>
1315
</mat-sidenav>
1416
<mat-sidenav-content>

src/app/shared/models/asset.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { ContractOffer } from './contract-offer';
2-
import { DataService } from './data-service';
3-
42

53
export interface Asset {
64
id?: string;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Criterion, CriterionInput } from "./criterion";
2+
import { JsonLdId } from "./edc-connector-entities";
3+
export declare class ContractDefinition extends JsonLdId {
4+
get accessPolicyId(): string;
5+
get contractPolicyId(): string;
6+
get assetsSelector(): Criterion[];
7+
}
8+
export interface ContractDefinitionInput {
9+
"@id"?: string;
10+
accessPolicyId: string;
11+
contractPolicyId: string;
12+
assetsSelector: CriterionInput[];
13+
}

src/app/shared/models/criterion.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { JsonLdObject } from "./edc-connector-entities";
2+
export interface CriterionInput {
3+
operandLeft: string;
4+
operator: string;
5+
operandRight?: string[];
6+
}
7+
export declare class Criterion extends JsonLdObject {
8+
get operandLeft(): string;
9+
get operator(): string;
10+
get operandRight(): string[];
11+
}

src/app/shared/models/edc-connector-entities.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,16 @@ export type {
88
CatalogRequest,
99
Constraint,
1010
ContractAgreement,
11-
ContractDefinition,
12-
ContractDefinitionInput,
1311
ContractNegotiation,
1412
ContractNegotiationRequest,
1513
ContractNegotiationState,
1614
Offer,
1715
IdResponse,
18-
Criterion,
1916
Dataplane,
2017
DataplaneInput,
2118
Duty,
19+
JsonLdObject,
20+
JsonLdId,
2221
Permission,
2322
Policy,
2423
PolicyDefinition,

0 commit comments

Comments
 (0)