Quellcode durchsuchen

new task partners fixed

master
Florian Eisenmenger vor 1 Jahr
Ursprung
Commit
84519ef81c
2 geänderte Dateien mit 27 neuen und 13 gelöschten Zeilen
  1. +5
    -9
      matsen-tool/src/app/tasks/new-task/new-task.component.html
  2. +22
    -4
      matsen-tool/src/app/tasks/new-task/new-task.component.ts

+ 5
- 9
matsen-tool/src/app/tasks/new-task/new-task.component.html Datei anzeigen

@@ -18,20 +18,16 @@
</div>
</div>

<div class="mb-3" *ngIf="task.partner == null">
<div class="mb-3" *ngIf="task.partner === null">
<label for="partner" class="form-label">{{ 'form.partner' | translate }}:</label>
<select class="form-control" id="partner" formControlName="partner">
<!-- ALLE PARTNER LADEN ODER BESSER: ELASTIC SEARCH -->
<option value="/api/partners/101">CatalystX SAS</option>
</select>
<div class="form-text" *ngIf="taskForm.get('partner')?.invalid && taskForm.get('partner')?.touched">
{{ 'form.partner' | translate }} {{ 'form.mandatory' | translate }}.
</div>
<input type="text" class="form-control" id="partner" [ngbTypeahead]="searchPartners" [inputFormatter]="formatter"
[resultFormatter]="formatter" [value]="taskForm.get('partnerName')?.value" [editable]="false" (selectItem)="onPartnerSelect($event)"/>
<input type="hidden" formControlName="partner"/>
</div>

<div class="mb-3">
<label for="assignedTo" class="form-label">{{ 'form.assign-to' | translate }}:</label>
<input type="text" class="form-control" id="assignedTo" [ngbTypeahead]="search" [inputFormatter]="formatter"
<input type="text" class="form-control" id="assignedTo" [ngbTypeahead]="searchUsers" [inputFormatter]="formatter"
[resultFormatter]="formatter" [value]="taskForm.get('assignedToName')?.value" [editable]="false" (selectItem)="onAssignedToSelect($event)"/>
<input type="hidden" formControlName="assignedTo"/>
<div class="form-text" *ngIf="taskForm.get('assignedTo')?.invalid && taskForm.get('assignedTo')?.touched">


+ 22
- 4
matsen-tool/src/app/tasks/new-task/new-task.component.ts Datei anzeigen

@@ -1,5 +1,5 @@
import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
import {TaskJsonld, TaskService, UserJsonld, UserService} from "@app/core/api/v1";
import {PartnerService, TaskJsonld, TaskService, UserJsonld, UserService} from "@app/core/api/v1";
import {ModalStatus} from "@app/_helpers/modal.states";
import {FormGroupInitializer} from "@app/_helpers/formgroup.initializer";
import {FormGroup} from "@angular/forms";
@@ -23,7 +23,7 @@ export class NewTaskComponent implements OnInit {

protected formatter = (apiData: any) => apiData.name;

protected search: OperatorFunction<string, readonly { id: any; name: any }[]> = (text$: Observable<string>) =>
protected searchUsers: OperatorFunction<string, readonly { id: any; name: any }[]> = (text$: Observable<string>) =>
text$.pipe(
debounceTime(200),
distinctUntilChanged(),
@@ -32,9 +32,19 @@ export class NewTaskComponent implements OnInit {
map((users) => users.slice(0, 10)),
);

protected searchPartners: OperatorFunction<string, readonly { id: any; name: any }[]> = (text$: Observable<string>) =>
text$.pipe(
debounceTime(200),
distinctUntilChanged(),
filter((term) => term.length >= 2),
switchMap((term) => this.fetchPartners(term)),
map((partners) => partners.slice(0, 10)),
);

constructor(
private taskService: TaskService,
private userService: UserService
private userService: UserService,
private partnerService: PartnerService
) {
this.taskForm = taskForm;
this.taskSub = new Subscription();
@@ -42,7 +52,6 @@ export class NewTaskComponent implements OnInit {
}

ngOnInit(): void {
console.log(this.dueAtValue);
this.taskForm = FormGroupInitializer.initFormGroup(this.taskForm, this.task);
}

@@ -52,6 +61,15 @@ export class NewTaskComponent implements OnInit {
);
}

protected fetchPartners(term: string): Observable<{ id: any; name: any }[]> {
return this.partnerService.partnersGetCollection(1, 50, undefined, undefined, term).pipe(
map((response) => response['hydra:member'].map(partner => ({ id: partner.id, name: partner.name }))),
);
}

protected onPartnerSelect(selectedItem: any): void {
this.taskForm.get('partner')?.setValue(selectedItem.item.id);
}

protected onAssignedToSelect(selectedItem: any): void {
this.taskForm.get('assignedTo')?.setValue(selectedItem.item.id);


Laden…
Abbrechen
Speichern