Skip to content

Commit

Permalink
feat: contract negotiation ToS confirmation dialog (#755)
Browse files Browse the repository at this point in the history
  • Loading branch information
illfixit committed Jun 19, 2024
1 parent 2f9302e commit 4cf597f
Show file tree
Hide file tree
Showing 9 changed files with 31 additions and 29 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ the detailed section referring to by linking pull requests or issues.

#### Minor

- Added Initiate Transfer Confirm ToS Dialog
- Added Initiate Negotiation Confirm ToS Dialog

#### Patch

Expand Down
3 changes: 3 additions & 0 deletions src/app/component-library/catalog/catalog.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {MatIconModule} from '@angular/material/icon';
import {MatProgressBarModule} from '@angular/material/progress-bar';
import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
import {MatTooltipModule} from '@angular/material/tooltip';
import {InitiateNegotiationConfirmTosDialogModule} from '../initiate-negotiation-confirm-tos-dialog/initiate-negotiation-confirm-tos-dialog.module';
import {JsonDialogModule} from '../json-dialog/json-dialog.module';
import {PipesAndDirectivesModule} from '../pipes-and-directives/pipes-and-directives.module';
import {PropertyGridModule} from '../property-grid/property-grid.module';
Expand Down Expand Up @@ -52,6 +53,8 @@ import {ViewSelectionComponent} from './view-selection/view-selection.component'
PropertyGridModule,
UiElementsModule,
PipesAndDirectivesModule,

InitiateNegotiationConfirmTosDialogModule,
],
declarations: [
AssetDetailDialogComponent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {MatDialogModule} from '@angular/material/dialog';
import {MatIconModule} from '@angular/material/icon';
import {MatTooltipModule} from '@angular/material/tooltip';
import {PipesAndDirectivesModule} from '../pipes-and-directives/pipes-and-directives.module';
import {InitiateTransferConfirmTosDialogComponent} from './initiate-transfer-confirm-tos-dialog/initiate-transfer-confirm-tos-dialog.component';
import {InitiateNegotiationConfirmTosDialogComponent} from './initiate-negotiation-confirm-tos-dialog/initiate-negotiation-confirm-tos-dialog.component';

@NgModule({
imports: [
Expand All @@ -27,7 +27,7 @@ import {InitiateTransferConfirmTosDialogComponent} from './initiate-transfer-con
// EDC UI Feature Modules
PipesAndDirectivesModule,
],
declarations: [InitiateTransferConfirmTosDialogComponent],
exports: [InitiateTransferConfirmTosDialogComponent],
declarations: [InitiateNegotiationConfirmTosDialogComponent],
exports: [InitiateNegotiationConfirmTosDialogComponent],
})
export class InitiateTransferConfirmTosDialogModule {}
export class InitiateNegotiationConfirmTosDialogModule {}
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import {MatCheckboxChange} from '@angular/material/checkbox';
import {MatDialogRef} from '@angular/material/dialog';

@Component({
selector: 'app-initiate-transfer-confirm-tos-dialog',
templateUrl: './initiate-transfer-confirm-tos-dialog.component.html',
styleUrls: ['./initiate-transfer-confirm-tos-dialog.component.scss'],
selector: 'app-initiate-negotiation-confirm-tos-dialog',
templateUrl: './initiate-negotiation-confirm-tos-dialog.component.html',
styleUrls: ['./initiate-negotiation-confirm-tos-dialog.component.scss'],
})
export class InitiateTransferConfirmTosDialogComponent {
export class InitiateNegotiationConfirmTosDialogComponent {
checkboxChecked = false;

constructor(
public dialogRef: MatDialogRef<InitiateTransferConfirmTosDialogComponent>,
public dialogRef: MatDialogRef<InitiateNegotiationConfirmTosDialogComponent>,
) {}

public onCheckboxChange($event: MatCheckboxChange) {
Expand Down
16 changes: 16 additions & 0 deletions src/app/core/services/contract-negotiation.service.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import {Injectable} from '@angular/core';
import {MatDialog} from '@angular/material/dialog';
import {EMPTY, Observable, interval} from 'rxjs';
import {catchError, filter, first, switchMap, tap} from 'rxjs/operators';
import {
ContractNegotiationRequest,
UiContractNegotiation,
UiContractOffer,
} from '@sovity.de/edc-client';
import {InitiateNegotiationConfirmTosDialogComponent} from 'src/app/component-library/initiate-negotiation-confirm-tos-dialog/initiate-negotiation-confirm-tos-dialog/initiate-negotiation-confirm-tos-dialog.component';
import {environment} from '../../../environments/environment';
import {EdcApiService} from './api/edc-api.service';
import {DataOffer} from './models/data-offer';
Expand All @@ -19,6 +21,7 @@ export class ContractNegotiationService {
constructor(
private edcApiService: EdcApiService,
private notificationService: NotificationService,
private confirmationDialog: MatDialog,
) {
if (!environment.production) {
// Test data on local dev
Expand Down Expand Up @@ -60,6 +63,19 @@ export class ContractNegotiationService {
policyJsonLd: contractOffer.policy.policyJsonLd,
};

this.confirmationDialog
.open(InitiateNegotiationConfirmTosDialogComponent, {maxWidth: '30rem'})
.afterClosed()
.subscribe((result) => {
if (result) {
this.startNegotiation(initiateRequest);
}
});
}

private startNegotiation(initiateRequest: ContractNegotiationRequest) {
const contractOfferId = initiateRequest.contractOfferId;

this.initiateNegotiation(initiateRequest)
.pipe(
tap(() => this.onStarted(contractOfferId)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import {MatTooltipModule} from '@angular/material/tooltip';
import {RouterModule} from '@angular/router';
import {NgChartsModule} from 'ng2-charts';
import {NgxJsonViewerModule} from 'ngx-json-viewer';
import {InitiateTransferConfirmTosDialogModule} from 'src/app/component-library/initiate-transfer-confirm-tos-dialog/initiate-transfer-confirm-tos-dialog.module';
import {CatalogModule} from '../../../component-library/catalog/catalog.module';
import {DataAddressModule} from '../../../component-library/data-address/data-address.module';
import {PipesAndDirectivesModule} from '../../../component-library/pipes-and-directives/pipes-and-directives.module';
Expand Down Expand Up @@ -64,7 +63,6 @@ import {ContractAgreementTransferDialogComponent} from './contract-agreement-tra
// EDC UI Modules
CatalogModule,
DataAddressModule,
InitiateTransferConfirmTosDialogModule,
PipesAndDirectivesModule,
UiElementsModule,
],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
import {Component, Inject, OnDestroy} from '@angular/core';
import {
MAT_DIALOG_DATA,
MatDialog,
MatDialogRef,
} from '@angular/material/dialog';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
import {Observable, Subject} from 'rxjs';
import {finalize} from 'rxjs/operators';
import {
IdResponseDto,
InitiateCustomTransferRequest,
InitiateTransferRequest,
} from '@sovity.de/edc-client';
import {InitiateTransferConfirmTosDialogComponent} from 'src/app/component-library/initiate-transfer-confirm-tos-dialog/initiate-transfer-confirm-tos-dialog/initiate-transfer-confirm-tos-dialog.component';
import {EdcApiService} from '../../../../core/services/api/edc-api.service';
import {DataAddressMapper} from '../../../../core/services/data-address-mapper';
import {HttpRequestParamsMapper} from '../../../../core/services/http-params-mapper.service';
Expand Down Expand Up @@ -82,7 +77,6 @@ export class ContractAgreementTransferDialogComponent implements OnDestroy {
public form: ContractAgreementTransferDialogForm,
public validationMessages: ValidationMessages,
private dialogRef: MatDialogRef<ContractAgreementTransferDialogComponent>,
private confirmationDialog: MatDialog,
private edcApiService: EdcApiService,
private notificationService: NotificationService,
private httpRequestParamsMapper: HttpRequestParamsMapper,
Expand All @@ -95,16 +89,7 @@ export class ContractAgreementTransferDialogComponent implements OnDestroy {
return;
}

const confirmationDialogRef = this.confirmationDialog.open(
InitiateTransferConfirmTosDialogComponent,
{maxWidth: '30rem'},
);

confirmationDialogRef.afterClosed().subscribe((result) => {
if (result) {
this.initiateTransfer();
}
});
this.initiateTransfer();
}

private initiateTransfer() {
Expand Down

0 comments on commit 4cf597f

Please sign in to comment.