diff --git a/security-c4po-angular/angular.json b/security-c4po-angular/angular.json index 3803805..b3d0e11 100644 --- a/security-c4po-angular/angular.json +++ b/security-c4po-angular/angular.json @@ -36,6 +36,8 @@ "crypto-js/hmac-sha256", "crypto-js/lib-typedarrays", "js-cookie", + "chartjs-plugin-annotation", + "chart.js", "deep-equal", "moment-timezone", "uuid" diff --git a/security-c4po-angular/package-lock.json b/security-c4po-angular/package-lock.json index f38a711..c31c0da 100644 --- a/security-c4po-angular/package-lock.json +++ b/security-c4po-angular/package-lock.json @@ -2951,6 +2951,11 @@ } } }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "@nebular/eva-icons": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@nebular/eva-icons/-/eva-icons-8.0.0.tgz", @@ -5097,6 +5102,14 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "chart.js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.2.1.tgz", + "integrity": "sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==", + "requires": { + "@kurkle/color": "^0.3.0" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", diff --git a/security-c4po-angular/package.json b/security-c4po-angular/package.json index df1565c..8f11fc3 100644 --- a/security-c4po-angular/package.json +++ b/security-c4po-angular/package.json @@ -34,6 +34,7 @@ "@ngx-translate/http-loader": "^6.0.0", "@ngxs/storage-plugin": "^3.7.3", "@ngxs/store": "^3.7.3", + "chart.js": "^4.2.1", "eva-icons": "^1.1.3", "i18n-iso-countries": "^6.8.0", "jwt-decode": "^3.1.2", diff --git a/security-c4po-angular/src/app/app.module.ts b/security-c4po-angular/src/app/app.module.ts index 849c510..3d73de7 100644 --- a/security-c4po-angular/src/app/app.module.ts +++ b/security-c4po-angular/src/app/app.module.ts @@ -24,7 +24,7 @@ import {far} from '@fortawesome/free-regular-svg-icons'; import {NgxsModule} from '@ngxs/store'; import {SessionState} from '@shared/stores/session-state/session-state'; import {environment} from '../environments/environment'; -import {NotificationService} from '@shared/services/notification.service'; +import {NotificationService} from '@shared/services/toaster-service/notification.service'; import {ThemeModule} from '@assets/@theme/theme.module'; import {HeaderModule} from './header/header.module'; import {HomeModule} from './home/home.module'; diff --git a/security-c4po-angular/src/app/common-app.module.ts b/security-c4po-angular/src/app/common-app.module.ts index b032ca0..f9b32a8 100644 --- a/security-c4po-angular/src/app/common-app.module.ts +++ b/security-c4po-angular/src/app/common-app.module.ts @@ -6,7 +6,7 @@ import {HttpClient, HttpClientModule} from '@angular/common/http'; import {FontAwesomeModule} from '@fortawesome/angular-fontawesome'; import {FlexLayoutModule, FlexModule} from '@angular/flex-layout'; import {MomentModule} from 'ngx-moment'; -import {NotificationService} from '@shared/services/notification.service'; +import {NotificationService} from '@shared/services/toaster-service/notification.service'; import {NbOverlayContainerAdapter, NbSpinnerModule, NbToastrModule} from '@nebular/theme'; import {ThemeModule} from '@assets/@theme/theme.module'; import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-spinner.component'; diff --git a/security-c4po-angular/src/app/header/header.component.ts b/security-c4po-angular/src/app/header/header.component.ts index 053ab9b..23ece2a 100644 --- a/security-c4po-angular/src/app/header/header.component.ts +++ b/security-c4po-angular/src/app/header/header.component.ts @@ -15,7 +15,7 @@ import {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy'; export class HeaderComponent implements OnInit{ readonly fa = FA; - readonly SECURITYC4PO_TITLE = GlobalTitlesVariables.SECURITYC4PO_TITLE; + readonly SECURITYC4PO_TITLE: string = GlobalTitlesVariables.SECURITYC4PO_TITLE; currentTheme = ''; languages = ['en-US', 'de-DE']; diff --git a/security-c4po-angular/src/app/login/login.component.spec.ts b/security-c4po-angular/src/app/login/login.component.spec.ts index faaaa72..121a25d 100644 --- a/security-c4po-angular/src/app/login/login.component.spec.ts +++ b/security-c4po-angular/src/app/login/login.component.spec.ts @@ -21,8 +21,8 @@ import {ReactiveFormsModule} from '@angular/forms'; import {User} from '../../shared/models/user.model'; import {CommonModule} from '@angular/common'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {NotificationService} from '../../shared/services/notification.service'; -import {NotificationServiceMock} from '../../shared/services/notification.service.mock'; +import {NotificationService} from '@shared/services/toaster-service/notification.service'; +import {NotificationServiceMock} from '@shared/services/toaster-service/notification.service.mock'; import {KeycloakService} from 'keycloak-angular'; const DESIRED_STORE_STATE_SESSION: SessionStateModel = { diff --git a/security-c4po-angular/src/app/login/login.component.ts b/security-c4po-angular/src/app/login/login.component.ts index eacd9d5..e5d07ef 100644 --- a/security-c4po-angular/src/app/login/login.component.ts +++ b/security-c4po-angular/src/app/login/login.component.ts @@ -2,7 +2,7 @@ import {Component, OnInit} from '@angular/core'; import {AbstractControl, FormBuilder, FormGroup, Validators} from '@angular/forms'; import {Router} from '@angular/router'; import {Store} from '@ngxs/store'; -import {NotificationService, PopupType} from '../../shared/services/notification.service'; +import {NotificationService, PopupType} from '@shared/services/toaster-service/notification.service'; import {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy'; import {User} from '../../shared/models/user.model'; import {throwError} from 'rxjs'; @@ -22,7 +22,6 @@ import {KeycloakService} from 'keycloak-angular'; export class LoginComponent implements OnInit { readonly MIN_LENGTH: number = 2; readonly SECURITYC4PO_TITLE = GlobalTitlesVariables.SECURITYC4PO_TITLE; - readonly NOVATEC_NAME = GlobalTitlesVariables.NOVATEC_NAME; // ToDo: Remove after adding real authentication private readonly user = new User('ttt', 'test', 'user', 'default.user@test.de', 'en-US'); diff --git a/security-c4po-angular/src/app/login/login.module.ts b/security-c4po-angular/src/app/login/login.module.ts index 6d550f1..84c0390 100644 --- a/security-c4po-angular/src/app/login/login.module.ts +++ b/security-c4po-angular/src/app/login/login.module.ts @@ -4,7 +4,7 @@ import {LoginComponent} from './login.component'; import {TranslateLoader, TranslateModule} from '@ngx-translate/core'; import {HttpLoaderFactory} from '../common-app.module'; import {HttpClient} from '@angular/common/http'; -import {NotificationService} from '../../shared/services/notification.service'; +import {NotificationService} from '@shared/services/toaster-service/notification.service'; import {LoginRoutingModule} from './login-routing.module'; import {NbButtonModule, NbCardModule, NbFormFieldModule, NbInputModule, NbLayoutModule} from '@nebular/theme'; import {ReactiveFormsModule} from '@angular/forms'; diff --git a/security-c4po-angular/src/app/objective-overview/objective-header/objective-header.component.html b/security-c4po-angular/src/app/objective-overview/objective-header/objective-header.component.html index 13e6aaf..f34c70e 100644 --- a/security-c4po-angular/src/app/objective-overview/objective-header/objective-header.component.html +++ b/security-c4po-angular/src/app/objective-overview/objective-header/objective-header.component.html @@ -14,8 +14,9 @@