autocomit

This commit is contained in:
2026-02-07 17:51:17 +01:00
parent ff2eb62174
commit b752e26526
68 changed files with 8291 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
standalone: true,
imports: [RouterOutlet],
template: '<router-outlet></router-outlet>',
styles: []
})
export class AppComponent {
title = 'LDPv2 - Lifecycle Data Platform';
}
+18
View File
@@ -0,0 +1,18 @@
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { provideHttpClient, withInterceptors } from '@angular/common/http';
import { provideAnimations } from '@angular/platform-browser/animations';
import { routes } from './app.routes';
import { jwtInterceptor } from './core/interceptors/jwt.interceptor';
import { errorInterceptor } from './core/interceptors/error.interceptor';
export const appConfig: ApplicationConfig = {
providers: [
provideZoneChangeDetection({ eventCoalescing: true }),
provideRouter(routes),
provideHttpClient(
withInterceptors([jwtInterceptor, errorInterceptor])
),
provideAnimations()
]
};
+40
View File
@@ -0,0 +1,40 @@
import { Routes } from '@angular/router';
import { authGuard } from './core/guards/auth.guard';
export const routes: Routes = [
{
path: '',
redirectTo: '/environments',
pathMatch: 'full'
},
{
path: 'login',
loadComponent: () => import('./core/auth/login/login.component').then(m => m.LoginComponent)
},
{
path: 'environments',
canActivate: [authGuard],
children: [
{
path: '',
loadComponent: () => import('./features/environments/environment-list/environment-list.component')
.then(m => m.EnvironmentListComponent)
},
{
path: 'new',
loadComponent: () => import('./features/environments/environment-form/environment-form.component')
.then(m => m.EnvironmentFormComponent)
},
{
path: ':id',
loadComponent: () => import('./features/environments/environment-detail/environment-detail.component')
.then(m => m.EnvironmentDetailComponent)
},
{
path: ':id/edit',
loadComponent: () => import('./features/environments/environment-form/environment-form.component')
.then(m => m.EnvironmentFormComponent)
}
]
}
];
@@ -0,0 +1,25 @@
export interface User {
id: string;
username: string;
email: string;
role: string;
createdAt: Date;
updatedAt: Date;
}
export interface LoginRequest {
username: string;
password: string;
}
export interface RegisterRequest {
username: string;
email: string;
password: string;
}
export interface AuthResponse {
token: string;
type: string;
user: User;
}
+15
View File
@@ -0,0 +1,15 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>LDPv2 - Lifecycle Data Platform</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>
<app-root></app-root>
</body>
</html>
+6
View File
@@ -0,0 +1,6 @@
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
import { appConfig } from './app/app.config';
bootstrapApplication(AppComponent, appConfig)
.catch((err) => console.error(err));
+39
View File
@@ -0,0 +1,39 @@
/* Global Styles */
@import '@angular/material/prebuilt-themes/indigo-pink.css';
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: Roboto, "Helvetica Neue", sans-serif;
height: 100vh;
margin: 0;
}
html, body {
height: 100%;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.mat-mdc-card {
margin-bottom: 20px;
}
.error-message {
color: #f44336;
font-size: 12px;
margin-top: 4px;
}
.success-message {
color: #4caf50;
font-size: 14px;
}