diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.html b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.html index cdcde09d..98964489 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.html +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.html @@ -2,6 +2,7 @@
Titel & Vertragstyp + Titel @@ -21,11 +22,8 @@ - Fill out your address - - Address - - + Empfänger +
diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.ts index 288b0552..cf593a4c 100644 --- a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.ts +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/envelope-creation.component.ts @@ -5,7 +5,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatStepperModule } from '@angular/material/stepper'; import { MatButtonModule } from '@angular/material/button'; import { MatSelectModule } from '@angular/material/select'; -import { ReceiverService } from '../../services/receiver.service'; +import { ReceiverInputComponent } from "./receiver-input/receiver-input.component"; @Component({ selector: 'app-envelope-creation', @@ -17,16 +17,14 @@ import { ReceiverService } from '../../services/receiver.service'; ReactiveFormsModule, MatFormFieldModule, MatInputModule, - MatSelectModule - ], + MatSelectModule, + ReceiverInputComponent +], templateUrl: './envelope-creation.component.html', styleUrl: './envelope-creation.component.scss' }) export class EnvelopeCreationComponent { - constructor(private receiverService: ReceiverService) { - } - ngOnInit() { this.selectedType = this.types[0].value; } @@ -43,8 +41,8 @@ export class EnvelopeCreationComponent { selectedType: string = "Mietvertrag" types: any[] = [ - { value: 0, viewValue: 'Mietvertrag' }, - { value: 1, viewValue: 'Kaufvertrag' } + {value: 0, viewValue: 'Mietvertrag'}, + {value: 1, viewValue: 'Kaufvertrag'} ]; typeControl = new FormControl('Mietvertrag', [Validators.required]); } diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.html b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.html new file mode 100644 index 00000000..c063b33e --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + +
Email + + + Email + + + @for (option of filteredOptions | async; track option) { + {{option}} + } + + + + + Anrede Email {{element.name}} Zugriffscode {{element.accessCode}}
\ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.scss b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.scss new file mode 100644 index 00000000..fa438f72 --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.scss @@ -0,0 +1,7 @@ +.mat-stepper-vertical { + margin-top: 8px; +} + +.mat-mdc-form-field { + margin-top: 16px; +} \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.spec.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.spec.ts new file mode 100644 index 00000000..b8e55f5a --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ReceiverInputComponent } from './receiver-input.component'; + +describe('ReceiverInputComponent', () => { + let component: ReceiverInputComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ReceiverInputComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ReceiverInputComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.ts b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.ts new file mode 100644 index 00000000..10d5586a --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/ClientApp/envelope-generator-ui/src/app/pages/envelope-creation/receiver-input/receiver-input.component.ts @@ -0,0 +1,64 @@ +import { Component, OnInit } from '@angular/core'; +import { Validators, FormsModule, ReactiveFormsModule, FormControl } from '@angular/forms'; +import { MatInputModule } from '@angular/material/input'; +import { MatTableModule } from '@angular/material/table'; +import { Observable } from 'rxjs'; +import { startWith, map } from 'rxjs/operators'; +import { AsyncPipe } from '@angular/common'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { ReceiverService } from '../../../services/receiver.service' + +@Component({ + selector: 'receiver-input', + standalone: true, + imports: [ + MatTableModule, + FormsModule, + MatFormFieldModule, + MatInputModule, + MatAutocompleteModule, + ReactiveFormsModule, + AsyncPipe + ], + templateUrl: './receiver-input.component.html', + styleUrl: './receiver-input.component.scss' +}) +export class ReceiverInputComponent implements OnInit { + + constructor(private receiverService: ReceiverService) { } + + async ngOnInit() { + this.receiverService.getReceiver().subscribe({ + next: (receivers) => { + this.options = receivers.map((r: any) => r.emailAddress); + + this.filteredOptions = this.control.valueChanges.pipe( + startWith(''), + map(value => this._filter(value || '')), + ); + } + }) + } + + typeControl = new FormControl('Mietvertrag', [Validators.required]); + + control = new FormControl(''); + options: string[] = []; + filteredOptions!: Observable; + + + private _filter(value: string): string[] { + const filterValue = value.toLowerCase(); + + return this.options.filter(option => option.toLowerCase().includes(filterValue)); + } + + //table + receiverData: { email: string; name: string; accessCode: string }[] = [ + { email: "", name: "", accessCode: "" } + ]; + + displayedColumns: string[] = ['email', 'name', 'accessCode']; + +}