import { Component, OnInit, inject, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { ApiService, Registry } from '../../core/services/api.service'; @Component({ selector: 'app-registries', standalone: true, imports: [CommonModule, FormsModule], template: `

Docker Registries

Add Registry

@if (registries().length > 0) {
@for (registry of registries(); track registry.id) { }
URL Username Created Actions
{{ registry.url }} {{ registry.username }} {{ formatDate(registry.createdAt) }}
}
`, }) export class RegistriesComponent implements OnInit { private apiService = inject(ApiService); registries = signal([]); newRegistry = { url: '', username: '', password: '' }; ngOnInit(): void { this.loadRegistries(); } loadRegistries(): void { this.apiService.getRegistries().subscribe({ next: (response) => { if (response.success && response.data) { this.registries.set(response.data); } }, }); } addRegistry(): void { this.apiService.createRegistry(this.newRegistry).subscribe({ next: () => { this.newRegistry = { url: '', username: '', password: '' }; this.loadRegistries(); }, }); } deleteRegistry(registry: Registry): void { if (confirm(`Delete registry ${registry.url}?`)) { this.apiService.deleteRegistry(registry.url).subscribe({ next: () => this.loadRegistries(), }); } } formatDate(timestamp: number): string { return new Date(timestamp).toLocaleDateString(); } }