Update dependencies - spring boot 4 and angular 21 #10
@@ -33,28 +33,5 @@
|
|||||||
<groupId>org.apache.tika</groupId>
|
<groupId>org.apache.tika</groupId>
|
||||||
<artifactId>tika-core</artifactId>
|
<artifactId>tika-core</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
|
||||||
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
|
||||||
<!-- <artifactId>spring-boot-starter-security</artifactId>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.postgresql</groupId>-->
|
|
||||||
<!-- <artifactId>postgresql</artifactId>-->
|
|
||||||
<!-- <scope>runtime</scope>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
|
||||||
<!-- <artifactId>spring-boot-starter-test</artifactId>-->
|
|
||||||
<!-- <scope>test</scope>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>org.springframework.security</groupId>-->
|
|
||||||
<!-- <artifactId>spring-security-test</artifactId>-->
|
|
||||||
<!-- <scope>test</scope>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class SecurityConfiguration {
|
|||||||
public SecurityFilterChain securityFilterChain(
|
public SecurityFilterChain securityFilterChain(
|
||||||
HttpSecurity httpSecurity,
|
HttpSecurity httpSecurity,
|
||||||
JwtAuthenticationFilter jwtAuthenticationFilter
|
JwtAuthenticationFilter jwtAuthenticationFilter
|
||||||
) throws Exception {
|
) {
|
||||||
httpSecurity
|
httpSecurity
|
||||||
.csrf(AbstractHttpConfigurer::disable)
|
.csrf(AbstractHttpConfigurer::disable)
|
||||||
.httpBasic(Customizer.withDefaults())
|
.httpBasic(Customizer.withDefaults())
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package org.codiki.infrastructure.configuration;
|
package org.codiki.infrastructure.configuration;
|
||||||
|
|
||||||
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
import org.springframework.boot.persistence.autoconfigure.EntityScan;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,11 @@
|
|||||||
<java.version>21</java.version>
|
<java.version>21</java.version>
|
||||||
<maven.compiler.source>21</maven.compiler.source>
|
<maven.compiler.source>21</maven.compiler.source>
|
||||||
<maven.compiler.target>21</maven.compiler.target>
|
<maven.compiler.target>21</maven.compiler.target>
|
||||||
<jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
|
<jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
|
||||||
<java-jwt.version>4.4.0</java-jwt.version>
|
<java-jwt.version>4.5.0</java-jwt.version>
|
||||||
<postgresql.version>42.7.0</postgresql.version>
|
<postgresql.version>42.7.8</postgresql.version>
|
||||||
<tika-core.version>2.9.0</tika-core.version>
|
<tika-core.version>3.2.3</tika-core.version>
|
||||||
<commons-lang3.version>3.14.0</commons-lang3.version>
|
<commons-lang3.version>3.20.0</commons-lang3.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-dependencies</artifactId>
|
<artifactId>spring-boot-dependencies</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>4.0.1</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
@@ -84,8 +84,6 @@
|
|||||||
<artifactId>commons-lang3</artifactId>
|
<artifactId>commons-lang3</artifactId>
|
||||||
<version>${commons-lang3.version}</version>
|
<version>${commons-lang3.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|||||||
@@ -24,13 +24,14 @@
|
|||||||
},
|
},
|
||||||
"architect": {
|
"architect": {
|
||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:application",
|
"builder": "@angular/build:application",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist/codiki",
|
"outputPath": "dist/codiki",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
"browser": "src/main.ts",
|
"browser": "src/main.ts",
|
||||||
"polyfills": [
|
"polyfills": [
|
||||||
"zone.js"
|
"zone.js",
|
||||||
|
"@angular/localize/init"
|
||||||
],
|
],
|
||||||
"tsConfig": "tsconfig.app.json",
|
"tsConfig": "tsconfig.app.json",
|
||||||
"inlineStyleLanguage": "scss",
|
"inlineStyleLanguage": "scss",
|
||||||
@@ -102,7 +103,7 @@
|
|||||||
"defaultConfiguration": ""
|
"defaultConfiguration": ""
|
||||||
},
|
},
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular/build:dev-server",
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production-en": {
|
"production-en": {
|
||||||
"buildTarget": "codiki:build:production-en"
|
"buildTarget": "codiki:build:production-en"
|
||||||
@@ -123,13 +124,13 @@
|
|||||||
"defaultConfiguration": "development"
|
"defaultConfiguration": "development"
|
||||||
},
|
},
|
||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
"builder": "@angular/build:extract-i18n",
|
||||||
"options": {
|
"options": {
|
||||||
"buildTarget": "codiki:build"
|
"buildTarget": "codiki:build"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
"builder": "@angular/build:karma",
|
||||||
"options": {
|
"options": {
|
||||||
"polyfills": [
|
"polyfills": [
|
||||||
"zone.js",
|
"zone.js",
|
||||||
@@ -153,5 +154,31 @@
|
|||||||
},
|
},
|
||||||
"cli": {
|
"cli": {
|
||||||
"analytics": false
|
"analytics": false
|
||||||
|
},
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"type": "component"
|
||||||
|
},
|
||||||
|
"@schematics/angular:directive": {
|
||||||
|
"type": "directive"
|
||||||
|
},
|
||||||
|
"@schematics/angular:service": {
|
||||||
|
"type": "service"
|
||||||
|
},
|
||||||
|
"@schematics/angular:guard": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:interceptor": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:module": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:pipe": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:resolver": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13538
frontend/package-lock.json
generated
13538
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -17,25 +17,25 @@
|
|||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^18.2.5",
|
"@angular/animations": "^21.0.6",
|
||||||
"@angular/cdk": "^18.2.5",
|
"@angular/cdk": "^21.0.5",
|
||||||
"@angular/common": "^18.2.5",
|
"@angular/common": "^21.0.6",
|
||||||
"@angular/compiler": "^18.2.5",
|
"@angular/compiler": "^21.0.6",
|
||||||
"@angular/core": "^18.2.5",
|
"@angular/core": "^21.0.6",
|
||||||
"@angular/forms": "^18.2.5",
|
"@angular/forms": "^21.0.6",
|
||||||
"@angular/material": "^18.2.5",
|
"@angular/material": "^21.0.5",
|
||||||
"@angular/platform-browser": "^18.2.5",
|
"@angular/platform-browser": "^21.0.6",
|
||||||
"@angular/platform-browser-dynamic": "^18.2.5",
|
"@angular/platform-browser-dynamic": "^21.0.6",
|
||||||
"@angular/router": "^18.2.5",
|
"@angular/router": "^21.0.6",
|
||||||
"rxjs": "~7.8.0",
|
"rxjs": "~7.8.0",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"zone.js": "~0.14.10"
|
"zone.js": "~0.15.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^18.2.5",
|
"@angular/build": "^21.0.4",
|
||||||
"@angular/cli": "^18.2.5",
|
"@angular/cli": "^21.0.4",
|
||||||
"@angular/compiler-cli": "^18.2.5",
|
"@angular/compiler-cli": "^21.0.6",
|
||||||
"@angular/localize": "^18.2.5",
|
"@angular/localize": "^21.0.6",
|
||||||
"@types/jasmine": "~5.1.0",
|
"@types/jasmine": "~5.1.0",
|
||||||
"jasmine-core": "~5.1.0",
|
"jasmine-core": "~5.1.0",
|
||||||
"karma": "~6.4.0",
|
"karma": "~6.4.0",
|
||||||
@@ -43,6 +43,6 @@
|
|||||||
"karma-coverage": "~2.2.0",
|
"karma-coverage": "~2.2.0",
|
||||||
"karma-jasmine": "~5.1.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~2.1.0",
|
"karma-jasmine-html-reporter": "~2.1.0",
|
||||||
"typescript": "~5.5.4"
|
"typescript": "~5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,20 +1,18 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { RouterOutlet } from '@angular/router';
|
import { RouterOutlet } from '@angular/router';
|
||||||
import { HeaderComponent } from './components/header/header.component';
|
import { HeaderComponent } from './components/header/header.component';
|
||||||
import { FooterComponent } from './components/footer/footer.component';
|
import { FooterComponent } from './components/footer/footer.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
standalone: true,
|
imports: [
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
RouterOutlet,
|
RouterOutlet,
|
||||||
HeaderComponent,
|
HeaderComponent,
|
||||||
FooterComponent
|
FooterComponent
|
||||||
],
|
],
|
||||||
templateUrl: './app.component.html',
|
templateUrl: './app.component.html',
|
||||||
styleUrl: './app.component.scss'
|
styleUrl: './app.component.scss'
|
||||||
})
|
})
|
||||||
export class AppComponent {
|
export class AppComponent {
|
||||||
title = 'codiki-ng';
|
title = 'codiki-ng';
|
||||||
|
|||||||
@@ -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 { provideRouter, withRouterConfig } from '@angular/router';
|
||||||
|
|
||||||
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
||||||
@@ -19,11 +19,9 @@ export const appConfig: ApplicationConfig = {
|
|||||||
provideAnimationsAsync(),
|
provideAnimationsAsync(),
|
||||||
provideHttpClient(withInterceptorsFromDi()),
|
provideHttpClient(withInterceptorsFromDi()),
|
||||||
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
|
{ provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true },
|
||||||
{
|
provideAppInitializer(() => {
|
||||||
provide: APP_INITIALIZER,
|
const initializerFn = ((authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess())(inject(AuthenticationService));
|
||||||
useFactory: (authenticationService: AuthenticationService) => () => authenticationService.startAuthenticationCheckingProcess(),
|
return initializerFn();
|
||||||
deps: [AuthenticationService],
|
})
|
||||||
multi: true
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ export interface ConfirmationDialogData {
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-confirmation-dialog',
|
selector: 'app-confirmation-dialog',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './confirmation-dialog.component.html',
|
templateUrl: './confirmation-dialog.component.html',
|
||||||
styleUrl: './confirmation-dialog.component.scss',
|
styleUrl: './confirmation-dialog.component.scss',
|
||||||
imports: [MatRippleModule]
|
imports: [MatRippleModule]
|
||||||
|
|||||||
@@ -4,11 +4,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-footer',
|
selector: 'app-footer',
|
||||||
standalone: true,
|
imports: [MatIconModule, MatTooltipModule, RouterModule],
|
||||||
imports: [MatIconModule, MatTooltipModule, RouterModule],
|
templateUrl: './footer.component.html',
|
||||||
templateUrl: './footer.component.html',
|
styleUrl: './footer.component.scss'
|
||||||
styleUrl: './footer.component.scss'
|
|
||||||
})
|
})
|
||||||
export class FooterComponent {
|
export class FooterComponent {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { Component, inject } from '@angular/core';
|
import { Component, inject } from '@angular/core';
|
||||||
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
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';
|
import { SideMenuComponent } from '../side-menu/side-menu.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-header',
|
selector: 'app-header',
|
||||||
standalone: true,
|
imports: [
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatIconModule,
|
MatIconModule,
|
||||||
MatMenuModule,
|
MatMenuModule,
|
||||||
@@ -24,10 +22,10 @@ import { SideMenuComponent } from '../side-menu/side-menu.component';
|
|||||||
PublicationsSearchBarComponent,
|
PublicationsSearchBarComponent,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
RouterModule,
|
RouterModule,
|
||||||
SideMenuComponent,
|
SideMenuComponent
|
||||||
],
|
],
|
||||||
templateUrl: './header.component.html',
|
templateUrl: './header.component.html',
|
||||||
styleUrl: './header.component.scss',
|
styleUrl: './header.component.scss'
|
||||||
})
|
})
|
||||||
export class HeaderComponent {
|
export class HeaderComponent {
|
||||||
private authenticationService = inject(AuthenticationService);
|
private authenticationService = inject(AuthenticationService);
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ export const PROGRAMMING_LANGUAGES: ProgramingLanguage[] = [
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-code-block-dialog',
|
selector: 'app-code-block-dialog',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './code-block-dialog.component.html',
|
templateUrl: './code-block-dialog.component.html',
|
||||||
styleUrl: './code-block-dialog.component.scss',
|
styleUrl: './code-block-dialog.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import { MatTooltip } from "@angular/material/tooltip";
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-picture-selection',
|
selector: 'app-picture-selection',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './picture-selection-dialog.component.html',
|
templateUrl: './picture-selection-dialog.component.html',
|
||||||
styleUrl: './picture-selection-dialog.component.scss',
|
styleUrl: './picture-selection-dialog.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
@@ -18,7 +17,7 @@ import { MatTooltip } from "@angular/material/tooltip";
|
|||||||
MatRippleModule,
|
MatRippleModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule,
|
||||||
MatTooltip
|
MatTooltip
|
||||||
],
|
]
|
||||||
})
|
})
|
||||||
export class PictureSelectionDialog implements OnInit {
|
export class PictureSelectionDialog implements OnInit {
|
||||||
private readonly pictureRestService = inject(PictureRestService);
|
private readonly pictureRestService = inject(PictureRestService);
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import { MatRippleModule } from "@angular/material/core";
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-publication-edition',
|
selector: 'app-publication-edition',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './publication-edition.component.html',
|
templateUrl: './publication-edition.component.html',
|
||||||
styleUrl: './publication-edition.component.scss',
|
styleUrl: './publication-edition.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
@@ -32,7 +31,6 @@ import { MatRippleModule } from "@angular/material/core";
|
|||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatTabsModule,
|
MatTabsModule,
|
||||||
MatTooltipModule,
|
MatTooltipModule,
|
||||||
PictureSelectionDialog,
|
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
SubmitButtonComponent
|
SubmitButtonComponent
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import { MatTooltipModule } from "@angular/material/tooltip";
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-publication-list',
|
selector: 'app-publication-list',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './publication-list.component.html',
|
templateUrl: './publication-list.component.html',
|
||||||
styleUrl: './publication-list.component.scss',
|
styleUrl: './publication-list.component.scss',
|
||||||
imports: [CommonModule, RouterModule, MatTooltipModule]
|
imports: [CommonModule, RouterModule, MatTooltipModule]
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import { Router } from "@angular/router";
|
|||||||
selector: 'app-publications-search-bar',
|
selector: 'app-publications-search-bar',
|
||||||
templateUrl: './publications-search-bar.component.html',
|
templateUrl: './publications-search-bar.component.html',
|
||||||
styleUrl: './publications-search-bar.component.scss',
|
styleUrl: './publications-search-bar.component.scss',
|
||||||
standalone: true,
|
|
||||||
imports: [
|
imports: [
|
||||||
MatIconModule,
|
MatIconModule,
|
||||||
MatRippleModule,
|
MatRippleModule,
|
||||||
|
|||||||
@@ -6,15 +6,14 @@ import { Observable } from "rxjs";
|
|||||||
import { RouterModule } from "@angular/router";
|
import { RouterModule } from "@angular/router";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-categories-menu',
|
selector: 'app-categories-menu',
|
||||||
standalone: true,
|
templateUrl: './categories-menu.component.html',
|
||||||
templateUrl: './categories-menu.component.html',
|
imports: [
|
||||||
imports: [
|
CommonModule,
|
||||||
CommonModule,
|
RouterModule,
|
||||||
RouterModule,
|
MatIconModule
|
||||||
MatIconModule
|
],
|
||||||
],
|
styleUrl: './categories-menu.component.scss'
|
||||||
styleUrl: './categories-menu.component.scss'
|
|
||||||
})
|
})
|
||||||
export class CategoriesMenuComponent implements OnInit {
|
export class CategoriesMenuComponent implements OnInit {
|
||||||
private sideMenuService = inject(SideMenuService);
|
private sideMenuService = inject(SideMenuService);
|
||||||
|
|||||||
@@ -6,17 +6,16 @@ import { CategoriesMenuComponent } from './categories-menu/categories-menu.compo
|
|||||||
import { MatRippleModule } from '@angular/material/core';
|
import { MatRippleModule } from '@angular/material/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-side-menu',
|
selector: 'app-side-menu',
|
||||||
standalone: true,
|
templateUrl: './side-menu.component.html',
|
||||||
templateUrl: './side-menu.component.html',
|
styleUrl: './side-menu.component.scss',
|
||||||
styleUrl: './side-menu.component.scss',
|
imports: [
|
||||||
imports: [
|
CategoriesMenuComponent,
|
||||||
CategoriesMenuComponent,
|
MatIconModule,
|
||||||
MatIconModule,
|
MatRippleModule,
|
||||||
MatRippleModule,
|
MatTooltipModule,
|
||||||
MatTooltipModule,
|
RouterModule
|
||||||
RouterModule
|
]
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class SideMenuComponent {
|
export class SideMenuComponent {
|
||||||
isOpenned: boolean = false;
|
isOpenned: boolean = false;
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
||||||
import { MatRippleModule } from "@angular/material/core";
|
import { MatRippleModule } from "@angular/material/core";
|
||||||
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-submit-button',
|
selector: 'app-submit-button',
|
||||||
standalone: true,
|
|
||||||
templateUrl: 'submit-button.component.html',
|
templateUrl: 'submit-button.component.html',
|
||||||
styleUrl: 'submit-button.component.scss',
|
styleUrl: 'submit-button.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
MatRippleModule,
|
||||||
MatRippleModule,
|
MatProgressSpinnerModule
|
||||||
MatProgressSpinnerModule
|
]
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class SubmitButtonComponent {
|
export class SubmitButtonComponent {
|
||||||
@Input() requestPending: boolean = false;
|
@Input() requestPending: boolean = false;
|
||||||
|
|||||||
@@ -4,11 +4,10 @@ import { AuthenticationService } from '../../core/service/authentication.service
|
|||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-disconnection',
|
selector: 'app-disconnection',
|
||||||
standalone: true,
|
imports: [MatProgressSpinnerModule],
|
||||||
imports: [MatProgressSpinnerModule],
|
templateUrl: './disconnection.component.html',
|
||||||
templateUrl: './disconnection.component.html',
|
styleUrl: './disconnection.component.scss'
|
||||||
styleUrl: './disconnection.component.scss'
|
|
||||||
})
|
})
|
||||||
export class DisconnectionComponent implements OnInit {
|
export class DisconnectionComponent implements OnInit {
|
||||||
private authenticationService = inject(AuthenticationService);
|
private authenticationService = inject(AuthenticationService);
|
||||||
|
|||||||
@@ -7,16 +7,15 @@ import { HomeService } from './home.service';
|
|||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-home',
|
selector: 'app-home',
|
||||||
standalone: true,
|
imports: [
|
||||||
imports: [
|
CommonModule,
|
||||||
CommonModule,
|
MatProgressSpinnerModule,
|
||||||
MatProgressSpinnerModule,
|
PublicationListComponent
|
||||||
PublicationListComponent
|
],
|
||||||
],
|
templateUrl: './home.component.html',
|
||||||
templateUrl: './home.component.html',
|
styleUrl: './home.component.scss',
|
||||||
styleUrl: './home.component.scss',
|
providers: [HomeService]
|
||||||
providers: [HomeService]
|
|
||||||
})
|
})
|
||||||
export class HomeComponent implements OnInit {
|
export class HomeComponent implements OnInit {
|
||||||
private homeService = inject(HomeService);
|
private homeService = inject(HomeService);
|
||||||
|
|||||||
@@ -9,18 +9,17 @@ import { SubmitButtonComponent } from "../../components/submit-button/submit-but
|
|||||||
import { MatRippleModule } from '@angular/material/core';
|
import { MatRippleModule } from '@angular/material/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-login',
|
selector: 'app-login',
|
||||||
standalone: true,
|
templateUrl: './login.component.html',
|
||||||
templateUrl: './login.component.html',
|
styleUrl: './login.component.scss',
|
||||||
styleUrl: './login.component.scss',
|
imports: [
|
||||||
imports: [
|
MatIconModule,
|
||||||
MatIconModule,
|
MatRippleModule,
|
||||||
MatRippleModule,
|
ReactiveFormsModule,
|
||||||
ReactiveFormsModule,
|
RouterModule,
|
||||||
RouterModule,
|
SubmitButtonComponent
|
||||||
SubmitButtonComponent
|
],
|
||||||
],
|
providers: [LoginService, MatSnackBarModule]
|
||||||
providers: [LoginService, MatSnackBarModule]
|
|
||||||
})
|
})
|
||||||
export class LoginComponent implements OnInit, OnDestroy {
|
export class LoginComponent implements OnInit, OnDestroy {
|
||||||
private loginService = inject(LoginService);
|
private loginService = inject(LoginService);
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { MatRippleModule } from "@angular/material/core";
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-my-component',
|
selector: 'app-my-component',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './my-publications.component.html',
|
templateUrl: './my-publications.component.html',
|
||||||
styleUrl: './my-publications.component.scss',
|
styleUrl: './my-publications.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
|
|||||||
@@ -7,17 +7,15 @@ import { BehaviorSubject, Observable, Subscription } from "rxjs";
|
|||||||
import { Publication } from "../../core/rest-services/publications/model/publication";
|
import { Publication } from "../../core/rest-services/publications/model/publication";
|
||||||
import { AuthenticationService } from "../../core/service/authentication.service";
|
import { AuthenticationService } from "../../core/service/authentication.service";
|
||||||
import { Author } from "../../core/rest-services/publications/model/author";
|
import { Author } from "../../core/rest-services/publications/model/author";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-publication-creation',
|
selector: 'app-publication-creation',
|
||||||
standalone: true,
|
|
||||||
templateUrl: './publication-creation.component.html',
|
templateUrl: './publication-creation.component.html',
|
||||||
styleUrl: './publication-creation.component.scss',
|
styleUrl: './publication-creation.component.scss',
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
PublicationEditionComponent
|
||||||
PublicationEditionComponent
|
]
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class PublicationCreationComponent implements OnInit {
|
export class PublicationCreationComponent implements OnInit {
|
||||||
private readonly authenticationService = inject(AuthenticationService);
|
private readonly authenticationService = inject(AuthenticationService);
|
||||||
|
|||||||
@@ -11,29 +11,24 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
|
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
|
||||||
import { PublicationEditionComponent } from '../../components/publication-edition/publication-edition.component';
|
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 { Publication } from '../../core/rest-services/publications/model/publication';
|
||||||
import { PublicationRestService } from '../../core/rest-services/publications/publication.rest-service';
|
import { PublicationRestService } from '../../core/rest-services/publications/publication.rest-service';
|
||||||
import { PictureSelectionDialog } from '../../components/publication-edition/picture-selection-dialog/picture-selection-dialog.component';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-publication-update',
|
selector: 'app-publication-update',
|
||||||
standalone: true,
|
imports: [
|
||||||
imports: [
|
CommonModule,
|
||||||
CommonModule,
|
MatDialogModule,
|
||||||
MatDialogModule,
|
MatIconModule,
|
||||||
MatIconModule,
|
MatInputModule,
|
||||||
MatInputModule,
|
MatProgressSpinnerModule,
|
||||||
MatProgressSpinnerModule,
|
MatTabsModule,
|
||||||
MatTabsModule,
|
MatTooltipModule,
|
||||||
MatTooltipModule,
|
ReactiveFormsModule,
|
||||||
PictureSelectionDialog,
|
PublicationEditionComponent
|
||||||
ReactiveFormsModule,
|
],
|
||||||
SubmitButtonComponent,
|
templateUrl: './publication-update.component.html',
|
||||||
PublicationEditionComponent
|
styleUrl: './publication-update.component.scss'
|
||||||
],
|
|
||||||
templateUrl: './publication-update.component.html',
|
|
||||||
styleUrl: './publication-update.component.scss',
|
|
||||||
})
|
})
|
||||||
export class PublicationUpdateComponent implements OnInit, OnDestroy {
|
export class PublicationUpdateComponent implements OnInit, OnDestroy {
|
||||||
private readonly publicationRestService = inject(PublicationRestService);
|
private readonly publicationRestService = inject(PublicationRestService);
|
||||||
@@ -56,7 +51,7 @@ export class PublicationUpdateComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.isLoadingSubject.next(true);
|
this.isLoadingSubject.next(true);
|
||||||
this.activatedRoute.paramMap.subscribe(params => {
|
const activatedRouteSubscription = this.activatedRoute.paramMap.subscribe(params => {
|
||||||
const publicationId = params.get('publicationId');
|
const publicationId = params.get('publicationId');
|
||||||
if (publicationId == undefined) {
|
if (publicationId == undefined) {
|
||||||
this.snackBar.open($localize`A technical error occurred while loading publication data.`, $localize`Close`, { duration: 5000 });
|
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));
|
.finally(() => this.isLoadingSubject.next(false));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.subscriptions.push(activatedRouteSubscription);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
|
|||||||
@@ -16,18 +16,17 @@ import { AuthenticationService } from '../../core/service/authentication.service
|
|||||||
declare let Prism: any;
|
declare let Prism: any;
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-publication',
|
selector: 'app-publication',
|
||||||
standalone: true,
|
templateUrl: './publication.component.html',
|
||||||
templateUrl: './publication.component.html',
|
styleUrl: './publication.component.scss',
|
||||||
styleUrl: './publication.component.scss',
|
imports: [
|
||||||
imports: [
|
CommonModule,
|
||||||
CommonModule,
|
MatIcon,
|
||||||
MatIcon,
|
MatRippleModule,
|
||||||
MatRippleModule,
|
MatProgressSpinner,
|
||||||
MatProgressSpinner,
|
MatTooltipModule,
|
||||||
MatTooltipModule,
|
RouterModule
|
||||||
RouterModule
|
]
|
||||||
]
|
|
||||||
})
|
})
|
||||||
export class PublicationComponent implements OnInit, OnDestroy {
|
export class PublicationComponent implements OnInit, OnDestroy {
|
||||||
private readonly activatedRoute = inject(ActivatedRoute);
|
private readonly activatedRoute = inject(ActivatedRoute);
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import { SearchPublicationsService } from "./search-publications.service";
|
|||||||
selector: 'app-search-publications',
|
selector: 'app-search-publications',
|
||||||
templateUrl: './search-publications.component.html',
|
templateUrl: './search-publications.component.html',
|
||||||
styleUrl: './search-publications.component.scss',
|
styleUrl: './search-publications.component.scss',
|
||||||
standalone: true,
|
|
||||||
imports: [CommonModule, MatProgressSpinner, PublicationListComponent],
|
imports: [CommonModule, MatProgressSpinner, PublicationListComponent],
|
||||||
providers: [SearchPublicationsService]
|
providers: [SearchPublicationsService]
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -10,18 +10,17 @@ import { SubmitButtonComponent } from "../../components/submit-button/submit-but
|
|||||||
import { MatRippleModule } from '@angular/material/core';
|
import { MatRippleModule } from '@angular/material/core';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-signin',
|
selector: 'app-signin',
|
||||||
standalone: true,
|
templateUrl: './signin.component.html',
|
||||||
templateUrl: './signin.component.html',
|
styleUrl: './signin.component.scss',
|
||||||
styleUrl: './signin.component.scss',
|
imports: [
|
||||||
imports: [
|
MatIconModule,
|
||||||
MatIconModule,
|
MatRippleModule,
|
||||||
MatRippleModule,
|
ReactiveFormsModule,
|
||||||
ReactiveFormsModule,
|
RouterModule,
|
||||||
RouterModule,
|
SubmitButtonComponent
|
||||||
SubmitButtonComponent
|
],
|
||||||
],
|
providers: [SigninService, LoginService]
|
||||||
providers: [SigninService, LoginService]
|
|
||||||
})
|
})
|
||||||
export class SigninComponent implements OnInit, OnDestroy {
|
export class SigninComponent implements OnInit, OnDestroy {
|
||||||
private signinService = inject(SigninService);
|
private signinService = inject(SigninService);
|
||||||
|
|||||||
@@ -13,15 +13,11 @@
|
|||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "bundler",
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"target": "ES2022",
|
"target": "ES2022",
|
||||||
"module": "ES2022",
|
"module": "ES2022",
|
||||||
"useDefineForClassFields": false,
|
"useDefineForClassFields": false
|
||||||
"lib": [
|
|
||||||
"ES2022",
|
|
||||||
"dom"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"angularCompilerOptions": {
|
"angularCompilerOptions": {
|
||||||
"enableI18nLegacyMessageIdFormat": false,
|
"enableI18nLegacyMessageIdFormat": false,
|
||||||
|
|||||||
Reference in New Issue
Block a user