Moved to Angular v20 and Tailwind v4 plus all related dependencies

Renamed Docker directory.

Also serving static files from FastAPI.
This commit is contained in:
tanshu committed 2025-06-26 06:46:17 +00:00
1 parent 05b395af00
commit cb2b650375
253 files changed
+8626 -1995

No files matched your search

@@ -1,20 +1,19 @@
import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { AfterViewInit, Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { MatButton } from '@angular/material/button';
import { MatCard, MatCardHeader, MatCardTitle, MatCardContent, MatCardActions } from '@angular/material/card';
import { MatCard, MatCardActions, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';
import { MatFormField, MatLabel } from '@angular/material/form-field';
import { MatInput } from '@angular/material/input';
import { MatSnackBar } from '@angular/material/snack-bar';
import { ActivatedRoute, Router } from '@angular/router';
import { CostCentre } from '../../core/cost-centre';
import { MatSnackBar } from '@angular/material/snack-bar';
import { CostCentreService } from '../cost-centre.service';
@Component({
selector: 'app-cost-centre-detail',
templateUrl: './cost-centre-detail.component.html',
styleUrls: ['./cost-centre-detail.component.css'],
standalone: true,
imports: [
MatCard,
MatCardHeader,
@@ -29,6 +28,11 @@ import { CostCentreService } from '../cost-centre.service';
],
})
export class CostCentreDetailComponent implements OnInit, AfterViewInit {
private route = inject(ActivatedRoute);
private router = inject(Router);
private snackBar = inject(MatSnackBar);
private ser = inject(CostCentreService);
@ViewChild('nameElement', { static: true }) nameElement!: ElementRef<HTMLInputElement>;
form: FormGroup<{
name: FormControl<string | null>;
@@ -36,12 +40,7 @@ export class CostCentreDetailComponent implements OnInit, AfterViewInit {
item: CostCentre = new CostCentre();
constructor(
private route: ActivatedRoute,
private router: Router,
private snackBar: MatSnackBar,
private ser: CostCentreService,
) {
constructor() {
this.form = new FormGroup({
name: new FormControl<string | null>(null),
});
@@ -2,7 +2,6 @@ import { TestBed } from '@angular/core/testing';
import { ResolveFn } from '@angular/router';
import { CostCentre } from '../core/cost-centre';
import { costCentreListResolver } from './cost-centre-list.resolver';
describe('costCentreListResolver', () => {
@@ -2,7 +2,6 @@ import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { CostCentre } from '../core/cost-centre';
import { CostCentreService } from './cost-centre.service';
export const costCentreListResolver: ResolveFn<CostCentre[]> = () => {
@@ -1,32 +1,30 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, inject, OnInit, ViewChild } from '@angular/core';
import { MatAnchor } from '@angular/material/button';
import { MatCard, MatCardHeader, MatCardTitleGroup, MatCardTitle, MatCardContent } from '@angular/material/card';
import { MatCard, MatCardContent, MatCardHeader, MatCardTitle, MatCardTitleGroup } from '@angular/material/card';
import { MatIcon } from '@angular/material/icon';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort, MatSortHeader } from '@angular/material/sort';
import {
MatTable,
MatColumnDef,
MatHeaderCellDef,
MatHeaderCell,
MatCellDef,
MatCell,
MatHeaderRowDef,
MatCellDef,
MatColumnDef,
MatHeaderCell,
MatHeaderCellDef,
MatHeaderRow,
MatRowDef,
MatHeaderRowDef,
MatRow,
MatRowDef,
MatTable,
} from '@angular/material/table';
import { ActivatedRoute, RouterLink } from '@angular/router';
import { CostCentre } from '../../core/cost-centre';
import { CostCentreListDataSource } from './cost-centre-list-datasource';
@Component({
selector: 'app-cost-centre-list',
templateUrl: './cost-centre-list.component.html',
styleUrls: ['./cost-centre-list.component.css'],
standalone: true,
imports: [
MatCard,
MatCardHeader,
@@ -52,6 +50,8 @@ import { CostCentreListDataSource } from './cost-centre-list-datasource';
],
})
export class CostCentreListComponent implements OnInit {
private route = inject(ActivatedRoute);
@ViewChild(MatPaginator, { static: true }) paginator!: MatPaginator;
@ViewChild(MatSort, { static: true }) sort!: MatSort;
list: CostCentre[] = [];
@@ -59,8 +59,6 @@ export class CostCentreListComponent implements OnInit {
/** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
displayedColumns = ['name', 'isFixture'];
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.data.subscribe((value) => {
const data = value as { list: CostCentre[] };
@@ -2,7 +2,6 @@ import { TestBed } from '@angular/core/testing';
import { ResolveFn } from '@angular/router';
import { CostCentre } from '../core/cost-centre';
import { costCentreResolver } from './cost-centre.resolver';
describe('costCentreResolver', () => {
@@ -2,7 +2,6 @@ import { inject } from '@angular/core';
import { ResolveFn } from '@angular/router';
import { CostCentre } from '../core/cost-centre';
import { CostCentreService } from './cost-centre.service';
export const costCentreResolver: ResolveFn<CostCentre> = (route) => {
@@ -1,10 +1,9 @@
import { Routes } from '@angular/router';
import { authGuard } from '../auth/auth-guard.service';
import { CostCentreDetailComponent } from './cost-centre-detail/cost-centre-detail.component';
import { CostCentreListComponent } from './cost-centre-list/cost-centre-list.component';
import { costCentreListResolver } from './cost-centre-list.resolver';
import { CostCentreListComponent } from './cost-centre-list/cost-centre-list.component';
import { costCentreResolver } from './cost-centre.resolver';
export const routes: Routes = [
@@ -1,5 +1,5 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { inject, Injectable } from '@angular/core';
import { Observable } from 'rxjs/internal/Observable';
import { catchError } from 'rxjs/operators';
@@ -13,10 +13,8 @@ const serviceName = 'CostCentreService';
providedIn: 'root',
})
export class CostCentreService {
constructor(
private http: HttpClient,
private log: ErrorLoggerService,
) {}
private http = inject(HttpClient);
private log = inject(ErrorLoggerService);
get(id: string | null): Observable<CostCentre> {
const getUrl: string = id === null ? `${url}` : `${url}/${id}`;