Convert qualifications to table (#13)

Co-authored-by: Phan Huy Tran <p.tran@neusta.de>
Reviewed-on: #13
This commit is contained in:
Huy 2024-12-18 13:36:55 +00:00 committed by Hernd Beidemann
parent 611a158d2d
commit 90cccf4fdb
3 changed files with 74 additions and 22 deletions

View File

@ -1,7 +1,22 @@
<ul>
@for (qualification of qualifications$ | async; track qualification.skill) {
<li>
{{ qualification.skill }}
</li>
@if (qualifications$ | async; as qualifications) {
@if (qualifications) {
<table
mat-table
[dataSource]="qualifications"
class="mat-elevation-z8"
>
<ng-container matColumnDef="skill">
<th mat-header-cell *matHeaderCellDef>Skill</th>
<td mat-cell *matCellDef="let qualification">{{ qualification.skill }}</td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>Actions</th>
<td mat-cell *matCellDef="let qualification"></td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
</table>
}
</ul>
}

View File

@ -1,25 +1,43 @@
import { Component } from '@angular/core';
import {Component} from '@angular/core';
import {Observable} from "rxjs";
import {Employee} from "../Employee";
import {Qualification} from "../Qualification";
import {HttpClient} from "@angular/common/http";
import {MatSnackBar} from "@angular/material/snack-bar";
import {AsyncPipe} from "@angular/common";
import {
MatCell,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef,
MatTable
} from "@angular/material/table";
import QualificationService from "../services/qualification.service";
@Component({
selector: 'app-qualifications',
imports: [
AsyncPipe
AsyncPipe,
MatTable,
MatHeaderCell,
MatColumnDef,
MatCell,
MatCellDef,
MatHeaderCellDef,
MatHeaderRow,
MatRow,
MatHeaderRowDef,
MatRowDef
],
templateUrl: './qualifications.component.html',
styleUrl: './qualifications.component.css'
})
export class QualificationsComponent {
public qualifications$: Observable<Qualification[]>;
public readonly displayedColumns: string[] = ['skill', 'actions'];
constructor(
private readonly httpClient: HttpClient,
) {
this.qualifications$ = this.httpClient.get<Qualification[]>('http://localhost:8089/qualifications');
constructor(private readonly qualificationService: QualificationService) {
this.qualifications$ = this.qualificationService.getAll();
}
}

View File

@ -0,0 +1,19 @@
import {inject, Injectable} from "@angular/core";
import {HttpClient} from "@angular/common/http";
import {Observable} from "rxjs";
import {Employee} from "../Employee";
import {Qualification} from "../Qualification";
@Injectable({
providedIn: 'root'
})
export default class QualificationService {
private http: HttpClient = inject(HttpClient);
private static readonly BASE_URL = 'http://localhost:8089';
public getAll(): Observable<Qualification[]> {
return this.http.get<Qualification[]>(`${QualificationService.BASE_URL}/qualifications`)
}
}