Zylinder angefangen

This commit is contained in:
Bastian Wagner
2024-10-24 16:57:30 +02:00
parent 03ae75c83d
commit d4f1fbbf39
15 changed files with 167 additions and 33 deletions

View File

@@ -7,12 +7,14 @@ import { LayoutComponent } from './core/layout/layout.component';
import { DashboardComponent } from './modules/dashboard/dashboard.component';
import { AllUsersComponent } from './modules/admin/all-users/all-users.component';
import { KeysComponent } from './modules/keys/keys.component';
import { CylinderComponent } from './modules/cylinder/cylinder.component';
export const routes: Routes = [
{ path: '', component: LayoutComponent, canActivate: [AuthenticatedGuard], children: [
{ path: '', component: DashboardComponent },
{ path: 'users', component: AllUsersComponent },
{ path: 'keys', component: KeysComponent }
{ path: 'keys', component: KeysComponent },
{ path: 'cylinders', component: CylinderComponent }
]},
{ path: 'login', component: LoginComponent},
];

View File

@@ -14,6 +14,7 @@
<mat-drawer #drawer class="main_sidenav" mode="side" opened="true" style="border-right: 1px solid #dfdfdf">
<button mat-button routerLink="/" routerLinkActive="mat-elevation-z1" [routerLinkActiveOptions]="{exact: true}">Home</button>
<button mat-button routerLink="/keys" routerLinkActive="mat-elevation-z1">Schlüssel</button>
<button mat-button routerLink="/cylinders" routerLinkActive="mat-elevation-z1">Zylinder</button>
<button mat-button routerLink="/users" routerLinkActive="mat-elevation-z1">Alle User</button>
</mat-drawer>

View File

@@ -0,0 +1,5 @@
<ag-grid-angular
style="width: 100%; height: 100%;"
(gridReady)="onGridReady($event)"
[gridOptions]="gridOptions!"
/>

View File

@@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CylinderComponent } from './cylinder.component';
describe('CylinderComponent', () => {
let component: CylinderComponent;
let fixture: ComponentFixture<CylinderComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [CylinderComponent]
})
.compileComponents();
fixture = TestBed.createComponent(CylinderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,50 @@
import { Component, inject } from '@angular/core';
import { HELPER } from '../../shared/helper.service';
import { GridApi, GridOptions, GridReadyEvent } from 'ag-grid-community';
import { AgGridAngular } from 'ag-grid-angular';
import { ApiService } from '../../shared/api.service';
import { DatePipe } from '@angular/common';
@Component({
selector: 'app-cylinder',
standalone: true,
imports: [AgGridAngular],
providers: [DatePipe],
templateUrl: './cylinder.component.html',
styleUrl: './cylinder.component.scss'
})
export class CylinderComponent {
private api: ApiService = inject(ApiService);
private datePipe = inject(DatePipe);
gridApi!: GridApi;
gridOptions: GridOptions = HELPER.getGridOptions();
constructor() {
this.gridOptions.columnDefs = [
{ field: 'name', headerName: 'Name', sort: 'asc', flex: 1 },
{ field: 'system.name', headerName: 'System', flex: 1 },
{ field: 'keyCount', headerName: 'Anzahl Schlüssel', flex: 0, type: 'number' },
{ field: 'createdAt', headerName: 'Angelegt', cellRenderer: (data: any) => data.value ? this.datePipe.transform(new Date(data.value)) : '-' },
{ field: 'updatedAt', headerName: 'Upgedated', cellRenderer: (data: any) => data.value ? this.datePipe.transform(new Date(data.value)) : '-' },
]
}
loadCylinders() {
this.api.getCylinders().subscribe({
next: n => {
this.gridApi.setGridOption("rowData", n);
this.gridApi.setGridOption("loading", false);
}
})
}
onGridReady(params: GridReadyEvent) {
this.gridApi = params.api;
this.loadCylinders();
}
}

View File

@@ -33,10 +33,6 @@ export class ApiService {
return this.http.put<IKey>('api/key', key);
}
getCylinders(): Observable<any[]> {
return this.http.get<any[]>('api/key/cylinder');
}
createKey(key: any) {
return this.http.post<IKey>('api/key', key);
}
@@ -72,4 +68,8 @@ export class ApiService {
restoreKey(id: string) {
return this.http.put(`api/key/${id}/restore`, null);
}
getCylinders(): Observable<any[]> {
return this.http.get<any[]>('api/cylinder');
}
}