add project
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Project, ProjectService } from '../../../services/project.service';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatProgressBar } from '@angular/material/progress-bar';
|
||||
import { DatePipe } from '@angular/common';
|
||||
import { MatButton } from '@angular/material/button';
|
||||
import { Router } from '@angular/router';
|
||||
import { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';
|
||||
|
||||
@Component({
|
||||
selector: 'app-projects',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatIcon,
|
||||
MatProgressBar,
|
||||
MatButton,
|
||||
MatCard,
|
||||
MatCardHeader,
|
||||
MatCardTitle,
|
||||
MatCardContent,
|
||||
DatePipe
|
||||
],
|
||||
templateUrl: './projects.component.html',
|
||||
styleUrl: './projects.component.scss',
|
||||
})
|
||||
export class ProjectsComponent implements OnInit {
|
||||
projects: Project[] = [];
|
||||
isLoading = true;
|
||||
|
||||
constructor(
|
||||
private projectService: ProjectService,
|
||||
private router: Router
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.loadProjects();
|
||||
}
|
||||
|
||||
loadProjects(): void {
|
||||
this.projectService.getUserProjects().subscribe({
|
||||
next: (data) => {
|
||||
// Фикс бага с JSON в имени
|
||||
this.projects = data.map(p => {
|
||||
if (p.name && p.name.startsWith('{')) {
|
||||
try {
|
||||
const parsed = JSON.parse(p.name);
|
||||
p.name = parsed.name || 'Untitled Project';
|
||||
} catch (e) {
|
||||
p.name = 'Invalid Data';
|
||||
}
|
||||
}
|
||||
return p;
|
||||
});
|
||||
this.isLoading = false;
|
||||
},
|
||||
error: () => this.isLoading = false
|
||||
});
|
||||
}
|
||||
|
||||
openProjectDetails(projectId: string): void {
|
||||
this.router.navigate(['/main/user/projects', projectId, 'details']);
|
||||
}
|
||||
|
||||
createNewProject(): void {
|
||||
this.router.navigate(['/main/user/projects/add']);
|
||||
}
|
||||
|
||||
getStatusColor(status: string): string {
|
||||
switch (status) {
|
||||
case 'RUNNING': return '#4caf50';
|
||||
case 'STARTING': return '#ffc107';
|
||||
case 'STOPPED': return '#9e9e9e';
|
||||
case 'ERROR': return '#f44336';
|
||||
default: return '#bdbdbd';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user