Convert qualifications to table (#13)
Co-authored-by: Phan Huy Tran <p.tran@neusta.de> Reviewed-on: #13
This commit is contained in:
parent
290da0e2a2
commit
e0101a5364
@ -1,7 +1,22 @@
|
|||||||
<ul>
|
@if (qualifications$ | async; as qualifications) {
|
||||||
@for (qualification of qualifications$ | async; track qualification.skill) {
|
@if (qualifications) {
|
||||||
<li>
|
<table
|
||||||
{{ qualification.skill }}
|
mat-table
|
||||||
</li>
|
[dataSource]="qualifications"
|
||||||
}
|
class="mat-elevation-z8"
|
||||||
</ul>
|
>
|
||||||
|
<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>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,25 +1,43 @@
|
|||||||
import { Component } from '@angular/core';
|
import {Component} from '@angular/core';
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {Employee} from "../Employee";
|
|
||||||
import {Qualification} from "../Qualification";
|
import {Qualification} from "../Qualification";
|
||||||
import {HttpClient} from "@angular/common/http";
|
import {HttpClient} from "@angular/common/http";
|
||||||
import {MatSnackBar} from "@angular/material/snack-bar";
|
|
||||||
import {AsyncPipe} from "@angular/common";
|
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({
|
@Component({
|
||||||
selector: 'app-qualifications',
|
selector: 'app-qualifications',
|
||||||
imports: [
|
imports: [
|
||||||
AsyncPipe
|
AsyncPipe,
|
||||||
],
|
MatTable,
|
||||||
templateUrl: './qualifications.component.html',
|
MatHeaderCell,
|
||||||
styleUrl: './qualifications.component.css'
|
MatColumnDef,
|
||||||
|
MatCell,
|
||||||
|
MatCellDef,
|
||||||
|
MatHeaderCellDef,
|
||||||
|
MatHeaderRow,
|
||||||
|
MatRow,
|
||||||
|
MatHeaderRowDef,
|
||||||
|
MatRowDef
|
||||||
|
],
|
||||||
|
templateUrl: './qualifications.component.html',
|
||||||
|
styleUrl: './qualifications.component.css'
|
||||||
})
|
})
|
||||||
export class QualificationsComponent {
|
export class QualificationsComponent {
|
||||||
public qualifications$: Observable<Qualification[]>;
|
public qualifications$: Observable<Qualification[]>;
|
||||||
|
public readonly displayedColumns: string[] = ['skill', 'actions'];
|
||||||
|
|
||||||
constructor(
|
|
||||||
private readonly httpClient: HttpClient,
|
constructor(private readonly qualificationService: QualificationService) {
|
||||||
) {
|
this.qualifications$ = this.qualificationService.getAll();
|
||||||
this.qualifications$ = this.httpClient.get<Qualification[]>('http://localhost:8089/qualifications');
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
19
src/app/services/qualification.service.ts
Normal file
19
src/app/services/qualification.service.ts
Normal 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`)
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user