diff --git a/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.html b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.html new file mode 100644 index 0000000..e522168 --- /dev/null +++ b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.html @@ -0,0 +1,12 @@ +@if (loading()) { + Loading... +} @else { + @for (tenant of tenants(); track tenant.id) { + + {{tenant.name}} + + View Details + + + } +} diff --git a/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.scss b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.scss new file mode 100644 index 0000000..7d02c8e --- /dev/null +++ b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.scss @@ -0,0 +1,13 @@ +:host { + display: flex; + flex-direction: column; + gap: .5rem; + + app-panel { + display: flex; + } + + .actions { + margin-left: auto; + } +} diff --git a/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.spec.ts b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.spec.ts new file mode 100644 index 0000000..02d547a --- /dev/null +++ b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TenantGridComponent } from './tenant-grid.component'; + +describe('TenantGridComponent', () => { + let component: TenantGridComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [TenantGridComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(TenantGridComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.ts b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.ts new file mode 100644 index 0000000..9816a7a --- /dev/null +++ b/src/angular/frontend/src/app/components/tenant/tenant-grid/tenant-grid.component.ts @@ -0,0 +1,31 @@ +import {Component, inject, OnInit, signal} from '@angular/core'; +import {TenantService} from '../../../clients/gandalf/mithrandir/tenant/tenant.service'; +import {TenantGridViewDto} from '../../../clients/gandalf/mithrandir/tenant/dtos/tenant-grid-view-dto'; +import {PanelComponent} from '../../panel/panel.component'; +import {LinkComponent} from '../../link/link.component'; + +@Component({ + selector: 'app-tenant-grid', + imports: [ + PanelComponent, + LinkComponent + ], + templateUrl: './tenant-grid.component.html', + styleUrl: './tenant-grid.component.scss' +}) +export class TenantGridComponent implements OnInit { + + protected tenants = signal([]); + protected loading = signal(true); + + private tenantService = inject(TenantService); + + async ngOnInit(): Promise { + + const tenants = await this.tenantService.tenantsAsync(); + this.tenants.set(tenants); + this.loading.set(false); + + } + +}