Update dependencies - spring boot 4 and angular 21 (#10)
All checks were successful
Build and Deploy Java Gradle Application / build-and-deploy (push) Successful in 1m39s

Co-authored-by: Florian THIERRY
Reviewed-on: #10
This commit was merged in pull request #10.
This commit is contained in:
2025-12-30 17:45:03 +01:00
parent 03dd52de71
commit 1ca2f872f7
30 changed files with 5178 additions and 8741 deletions

View File

@@ -1,20 +1,18 @@
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { HeaderComponent } from './components/header/header.component';
import { FooterComponent } from './components/footer/footer.component';
@Component({
selector: 'app-root',
standalone: true,
imports: [
CommonModule,
selector: 'app-root',
imports: [
RouterOutlet,
HeaderComponent,
FooterComponent
],
templateUrl: './app.component.html',
styleUrl: './app.component.scss'
],
templateUrl: './app.component.html',
styleUrl: './app.component.scss'
})
export class AppComponent {
title = 'codiki-ng';

View File

@@ -1,4 +1,4 @@
import { APP_INITIALIZER, ApplicationConfig } from '@angular/core';
import { ApplicationConfig, inject, provideAppInitializer } from '@angular/core';
import { provideRouter, withRouterConfig } from '@angular/router';
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
@@ -19,11 +19,9 @@ export const appConfig: ApplicationConfig = {
provideAnimationsAsync(),
provideHttpClient(withInterceptorsFromDi()),
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
{
provide: APP_INITIALIZER,
useFactory: (authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess(),
deps: [AuthenticationService],
multi: true
}
provideAppInitializer(() => {
const initializerFn = ((authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess())(inject(AuthenticationService));
return initializerFn();
})
]
};

View File

@@ -9,7 +9,6 @@ export interface ConfirmationDialogData {
@Component({
selector: 'app-confirmation-dialog',
standalone: true,
templateUrl: './confirmation-dialog.component.html',
styleUrl: './confirmation-dialog.component.scss',
imports: [MatRippleModule]

View File

@@ -4,11 +4,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { RouterModule } from '@angular/router';
@Component({
selector: 'app-footer',
standalone: true,
imports: [MatIconModule, MatTooltipModule, RouterModule],
templateUrl: './footer.component.html',
styleUrl: './footer.component.scss'
selector: 'app-footer',
imports: [MatIconModule, MatTooltipModule, RouterModule],
templateUrl: './footer.component.html',
styleUrl: './footer.component.scss'
})
export class FooterComponent {

View File

@@ -1,4 +1,4 @@
import { CommonModule } from '@angular/common';
import { Component, inject } from '@angular/core';
import { FormControl, ReactiveFormsModule } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
@@ -12,10 +12,8 @@ import { PublicationsSearchBarComponent } from '../publications-search-bar/publi
import { SideMenuComponent } from '../side-menu/side-menu.component';
@Component({
selector: 'app-header',
standalone: true,
imports: [
CommonModule,
selector: 'app-header',
imports: [
MatButtonModule,
MatIconModule,
MatMenuModule,
@@ -24,10 +22,10 @@ import { SideMenuComponent } from '../side-menu/side-menu.component';
PublicationsSearchBarComponent,
ReactiveFormsModule,
RouterModule,
SideMenuComponent,
],
templateUrl: './header.component.html',
styleUrl: './header.component.scss',
SideMenuComponent
],
templateUrl: './header.component.html',
styleUrl: './header.component.scss'
})
export class HeaderComponent {
private authenticationService = inject(AuthenticationService);

View File

@@ -86,7 +86,6 @@ export const PROGRAMMING_LANGUAGES: ProgramingLanguage[] = [
@Component({
selector: 'app-code-block-dialog',
standalone: true,
templateUrl: './code-block-dialog.component.html',
styleUrl: './code-block-dialog.component.scss',
imports: [

View File

@@ -10,15 +10,14 @@ import { MatTooltip } from "@angular/material/tooltip";
@Component({
selector: 'app-picture-selection',
standalone: true,
templateUrl: './picture-selection-dialog.component.html',
styleUrl: './picture-selection-dialog.component.scss',
imports: [
MatIcon,
MatRippleModule,
MatProgressSpinnerModule,
MatIcon,
MatRippleModule,
MatProgressSpinnerModule,
MatTooltip
],
]
})
export class PictureSelectionDialog implements OnInit {
private readonly pictureRestService = inject(PictureRestService);

View File

@@ -19,7 +19,6 @@ import { MatRippleModule } from "@angular/material/core";
@Component({
selector: 'app-publication-edition',
standalone: true,
templateUrl: './publication-edition.component.html',
styleUrl: './publication-edition.component.scss',
imports: [
@@ -32,7 +31,6 @@ import { MatRippleModule } from "@angular/material/core";
MatSelectModule,
MatTabsModule,
MatTooltipModule,
PictureSelectionDialog,
ReactiveFormsModule,
SubmitButtonComponent
],
@@ -147,4 +145,4 @@ export class PublicationEditionComponent implements OnChanges, OnDestroy {
this.publicationEditionService.loadPreview();
}
}
}
}

View File

@@ -7,7 +7,6 @@ import { MatTooltipModule } from "@angular/material/tooltip";
@Component({
selector: 'app-publication-list',
standalone: true,
templateUrl: './publication-list.component.html',
styleUrl: './publication-list.component.scss',
imports: [CommonModule, RouterModule, MatTooltipModule]

View File

@@ -9,7 +9,6 @@ import { Router } from "@angular/router";
selector: 'app-publications-search-bar',
templateUrl: './publications-search-bar.component.html',
styleUrl: './publications-search-bar.component.scss',
standalone: true,
imports: [
MatIconModule,
MatRippleModule,

View File

@@ -6,15 +6,14 @@ import { Observable } from "rxjs";
import { RouterModule } from "@angular/router";
@Component({
selector: 'app-categories-menu',
standalone: true,
templateUrl: './categories-menu.component.html',
imports: [
CommonModule,
RouterModule,
MatIconModule
],
styleUrl: './categories-menu.component.scss'
selector: 'app-categories-menu',
templateUrl: './categories-menu.component.html',
imports: [
CommonModule,
RouterModule,
MatIconModule
],
styleUrl: './categories-menu.component.scss'
})
export class CategoriesMenuComponent implements OnInit {
private sideMenuService = inject(SideMenuService);

View File

@@ -6,17 +6,16 @@ import { CategoriesMenuComponent } from './categories-menu/categories-menu.compo
import { MatRippleModule } from '@angular/material/core';
@Component({
selector: 'app-side-menu',
standalone: true,
templateUrl: './side-menu.component.html',
styleUrl: './side-menu.component.scss',
imports: [
CategoriesMenuComponent,
MatIconModule,
MatRippleModule,
MatTooltipModule,
RouterModule
]
selector: 'app-side-menu',
templateUrl: './side-menu.component.html',
styleUrl: './side-menu.component.scss',
imports: [
CategoriesMenuComponent,
MatIconModule,
MatRippleModule,
MatTooltipModule,
RouterModule
]
})
export class SideMenuComponent {
isOpenned: boolean = false;

View File

@@ -1,18 +1,16 @@
import { CommonModule } from "@angular/common";
import { Component, EventEmitter, Input, Output } from "@angular/core";
import { MatRippleModule } from "@angular/material/core";
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
@Component({
selector: 'app-submit-button',
standalone: true,
templateUrl: 'submit-button.component.html',
styleUrl: 'submit-button.component.scss',
imports: [
CommonModule,
MatRippleModule,
MatProgressSpinnerModule
]
MatRippleModule,
MatProgressSpinnerModule
]
})
export class SubmitButtonComponent {
@Input() requestPending: boolean = false;

View File

@@ -4,11 +4,10 @@ import { AuthenticationService } from '../../core/service/authentication.service
import { Router } from '@angular/router';
@Component({
selector: 'app-disconnection',
standalone: true,
imports: [MatProgressSpinnerModule],
templateUrl: './disconnection.component.html',
styleUrl: './disconnection.component.scss'
selector: 'app-disconnection',
imports: [MatProgressSpinnerModule],
templateUrl: './disconnection.component.html',
styleUrl: './disconnection.component.scss'
})
export class DisconnectionComponent implements OnInit {
private authenticationService = inject(AuthenticationService);

View File

@@ -7,16 +7,15 @@ import { HomeService } from './home.service';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-home',
standalone: true,
imports: [
CommonModule,
MatProgressSpinnerModule,
PublicationListComponent
],
templateUrl: './home.component.html',
styleUrl: './home.component.scss',
providers: [HomeService]
selector: 'app-home',
imports: [
CommonModule,
MatProgressSpinnerModule,
PublicationListComponent
],
templateUrl: './home.component.html',
styleUrl: './home.component.scss',
providers: [HomeService]
})
export class HomeComponent implements OnInit {
private homeService = inject(HomeService);

View File

@@ -9,18 +9,17 @@ import { SubmitButtonComponent } from "../../components/submit-button/submit-but
import { MatRippleModule } from '@angular/material/core';
@Component({
selector: 'app-login',
standalone: true,
templateUrl: './login.component.html',
styleUrl: './login.component.scss',
imports: [
MatIconModule,
MatRippleModule,
ReactiveFormsModule,
RouterModule,
SubmitButtonComponent
],
providers: [LoginService, MatSnackBarModule]
selector: 'app-login',
templateUrl: './login.component.html',
styleUrl: './login.component.scss',
imports: [
MatIconModule,
MatRippleModule,
ReactiveFormsModule,
RouterModule,
SubmitButtonComponent
],
providers: [LoginService, MatSnackBarModule]
})
export class LoginComponent implements OnInit, OnDestroy {
private loginService = inject(LoginService);

View File

@@ -12,7 +12,6 @@ import { MatRippleModule } from "@angular/material/core";
@Component({
selector: 'app-my-component',
standalone: true,
templateUrl: './my-publications.component.html',
styleUrl: './my-publications.component.scss',
imports: [

View File

@@ -7,17 +7,15 @@ import { BehaviorSubject, Observable, Subscription } from "rxjs";
import { Publication } from "../../core/rest-services/publications/model/publication";
import { AuthenticationService } from "../../core/service/authentication.service";
import { Author } from "../../core/rest-services/publications/model/author";
import { CommonModule } from "@angular/common";
@Component({
selector: 'app-publication-creation',
standalone: true,
templateUrl: './publication-creation.component.html',
styleUrl: './publication-creation.component.scss',
imports: [
CommonModule,
PublicationEditionComponent
]
PublicationEditionComponent
]
})
export class PublicationCreationComponent implements OnInit {
private readonly authenticationService = inject(AuthenticationService);

View File

@@ -11,29 +11,24 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { ActivatedRoute, Router } from '@angular/router';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { PublicationEditionComponent } from '../../components/publication-edition/publication-edition.component';
import { SubmitButtonComponent } from '../../components/submit-button/submit-button.component';
import { Publication } from '../../core/rest-services/publications/model/publication';
import { PublicationRestService } from '../../core/rest-services/publications/publication.rest-service';
import { PictureSelectionDialog } from '../../components/publication-edition/picture-selection-dialog/picture-selection-dialog.component';
@Component({
selector: 'app-publication-update',
standalone: true,
imports: [
CommonModule,
MatDialogModule,
MatIconModule,
MatInputModule,
MatProgressSpinnerModule,
MatTabsModule,
MatTooltipModule,
PictureSelectionDialog,
ReactiveFormsModule,
SubmitButtonComponent,
PublicationEditionComponent
],
templateUrl: './publication-update.component.html',
styleUrl: './publication-update.component.scss',
selector: 'app-publication-update',
imports: [
CommonModule,
MatDialogModule,
MatIconModule,
MatInputModule,
MatProgressSpinnerModule,
MatTabsModule,
MatTooltipModule,
ReactiveFormsModule,
PublicationEditionComponent
],
templateUrl: './publication-update.component.html',
styleUrl: './publication-update.component.scss'
})
export class PublicationUpdateComponent implements OnInit, OnDestroy {
private readonly publicationRestService = inject(PublicationRestService);
@@ -56,7 +51,7 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
ngOnInit(): void {
this.isLoadingSubject.next(true);
this.activatedRoute.paramMap.subscribe(params => {
const activatedRouteSubscription = this.activatedRoute.paramMap.subscribe(params => {
const publicationId = params.get('publicationId');
if (publicationId == undefined) {
this.snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, { duration: 5000 });
@@ -74,6 +69,7 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
.finally(() => this.isLoadingSubject.next(false));
}
});
this.subscriptions.push(activatedRouteSubscription);
}
ngOnDestroy(): void {
@@ -94,4 +90,4 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
})
.finally(() => this.isSavingSubject.next(false));
}
}
}

View File

@@ -16,18 +16,17 @@ import { AuthenticationService } from '../../core/service/authentication.service
declare let Prism: any;
@Component({
selector: 'app-publication',
standalone: true,
templateUrl: './publication.component.html',
styleUrl: './publication.component.scss',
imports: [
CommonModule,
MatIcon,
MatRippleModule,
MatProgressSpinner,
MatTooltipModule,
RouterModule
]
selector: 'app-publication',
templateUrl: './publication.component.html',
styleUrl: './publication.component.scss',
imports: [
CommonModule,
MatIcon,
MatRippleModule,
MatProgressSpinner,
MatTooltipModule,
RouterModule
]
})
export class PublicationComponent implements OnInit, OnDestroy {
private readonly activatedRoute = inject(ActivatedRoute);

View File

@@ -11,7 +11,6 @@ import { SearchPublicationsService } from "./search-publications.service";
selector: 'app-search-publications',
templateUrl: './search-publications.component.html',
styleUrl: './search-publications.component.scss',
standalone: true,
imports: [CommonModule, MatProgressSpinner, PublicationListComponent],
providers: [SearchPublicationsService]
})

View File

@@ -10,18 +10,17 @@ import { SubmitButtonComponent } from "../../components/submit-button/submit-but
import { MatRippleModule } from '@angular/material/core';
@Component({
selector: 'app-signin',
standalone: true,
templateUrl: './signin.component.html',
styleUrl: './signin.component.scss',
imports: [
MatIconModule,
MatRippleModule,
ReactiveFormsModule,
RouterModule,
SubmitButtonComponent
],
providers: [SigninService, LoginService]
selector: 'app-signin',
templateUrl: './signin.component.html',
styleUrl: './signin.component.scss',
imports: [
MatIconModule,
MatRippleModule,
ReactiveFormsModule,
RouterModule,
SubmitButtonComponent
],
providers: [SigninService, LoginService]
})
export class SigninComponent implements OnInit, OnDestroy {
private signinService = inject(SigninService);