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>
|
||||
@for (qualification of qualifications$ | async; track qualification.skill) {
|
||||
<li>
|
||||
{{ qualification.skill }}
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
@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>
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
],
|
||||
templateUrl: './qualifications.component.html',
|
||||
styleUrl: './qualifications.component.css'
|
||||
selector: 'app-qualifications',
|
||||
imports: [
|
||||
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 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();
|
||||
}
|
||||
}
|
||||
|
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