fix: Changed c4po logo and refactored FE
|
@ -1,4 +1,5 @@
|
|||
# security-c4po
|
||||
|
||||

|
||||
|
||||
## Application Architecture
|
||||

|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<img *ngIf="currentTheme === 'corporate', else changeImage"
|
||||
src="../../assets/images/favicons/favicon.ico" alt="logo dark" class="header-icon" width="60rem" height="60rem">
|
||||
<ng-template #changeImage>
|
||||
<img src="../../assets/images/favicons/corporate_favicon.ico" alt="logo light" class="header-icon" width="60rem" height="60rem">
|
||||
<img src="../../assets/images/favicons/favicon_corporate.ico" alt="logo light" class="header-icon" width="60rem" height="60rem">
|
||||
</ng-template>
|
||||
|
||||
<div class="logo-container">
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
export {ObjectiveOverviewModule} from './objective-overview.module';
|
||||
export {ObjectiveOverviewRoutingModule} from './objective-overview-routing.module';
|
|
@ -1,6 +1,6 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PentestCategoriesComponent } from './pentest-categories.component';
|
||||
import { ObjectiveCategoriesComponent } from './objective-categories.component';
|
||||
import {NbMenuModule, NbMenuService} from '@nebular/theme';
|
||||
import {NgxsModule} from '@ngxs/store';
|
||||
import {ProjectState} from '@shared/stores/project-state/project-state';
|
||||
|
@ -13,14 +13,14 @@ import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
|||
import {ThemeModule} from '@assets/@theme/theme.module';
|
||||
import {RouterTestingModule} from '@angular/router/testing';
|
||||
|
||||
describe('PentestCategoriesComponent', () => {
|
||||
let component: PentestCategoriesComponent;
|
||||
let fixture: ComponentFixture<PentestCategoriesComponent>;
|
||||
describe('ObjectiveCategoriesComponent', () => {
|
||||
let component: ObjectiveCategoriesComponent;
|
||||
let fixture: ComponentFixture<ObjectiveCategoriesComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [
|
||||
PentestCategoriesComponent
|
||||
ObjectiveCategoriesComponent
|
||||
],
|
||||
imports: [
|
||||
CommonModule,
|
||||
|
@ -47,7 +47,7 @@ describe('PentestCategoriesComponent', () => {
|
|||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PentestCategoriesComponent);
|
||||
fixture = TestBed.createComponent(ObjectiveCategoriesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
|
@ -8,11 +8,11 @@ import {untilDestroyed} from 'ngx-take-until-destroy';
|
|||
import {TranslateService} from '@ngx-translate/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-pentest-categories',
|
||||
templateUrl: './pentest-categories.component.html',
|
||||
styleUrls: ['./pentest-categories.component.scss']
|
||||
selector: 'app-objective-categories',
|
||||
templateUrl: './objective-categories.component.html',
|
||||
styleUrls: ['./objective-categories.component.scss']
|
||||
})
|
||||
export class PentestCategoriesComponent implements OnInit, OnDestroy {
|
||||
export class ObjectiveCategoriesComponent implements OnInit, OnDestroy {
|
||||
categories: NbMenuItem[] = [];
|
||||
selectedCategory: Category = 0;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import {PentestHeaderComponent} from './pentest-header.component';
|
||||
import {ObjectiveHeaderComponent} from './objective-header.component';
|
||||
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
||||
import {HttpClientTestingModule} from '@angular/common/http/testing';
|
||||
import {ThemeModule} from '@assets/@theme/theme.module';
|
||||
|
@ -13,13 +13,13 @@ import {ProjectState} from '@shared/stores/project-state/project-state';
|
|||
import {FontAwesomeModule} from '@fortawesome/angular-fontawesome';
|
||||
import {NbActionsModule, NbIconModule} from '@nebular/theme';
|
||||
|
||||
describe('PentestHeaderComponent', () => {
|
||||
let component: PentestHeaderComponent;
|
||||
let fixture: ComponentFixture<PentestHeaderComponent>;
|
||||
describe('ObjectiveHeaderComponent', () => {
|
||||
let component: ObjectiveHeaderComponent;
|
||||
let fixture: ComponentFixture<ObjectiveHeaderComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [PentestHeaderComponent],
|
||||
declarations: [ObjectiveHeaderComponent],
|
||||
imports: [
|
||||
BrowserAnimationsModule,
|
||||
HttpClientTestingModule,
|
||||
|
@ -42,7 +42,7 @@ describe('PentestHeaderComponent', () => {
|
|||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PentestHeaderComponent);
|
||||
fixture = TestBed.createComponent(ObjectiveHeaderComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
|
@ -10,11 +10,11 @@ import {Project} from '@shared/models/project.model';
|
|||
|
||||
@UntilDestroy()
|
||||
@Component({
|
||||
selector: 'app-pentest-header',
|
||||
templateUrl: './pentest-header.component.html',
|
||||
styleUrls: ['./pentest-header.component.scss']
|
||||
selector: 'app-objective-header',
|
||||
templateUrl: './objective-header.component.html',
|
||||
styleUrls: ['./objective-header.component.scss']
|
||||
})
|
||||
export class PentestHeaderComponent implements OnInit {
|
||||
export class ObjectiveHeaderComponent implements OnInit {
|
||||
|
||||
readonly fa = FA;
|
||||
selectedProjectTitle$: BehaviorSubject<string> = new BehaviorSubject<string>('');
|
|
@ -8,5 +8,5 @@ const routes: Routes = [
|
|||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class PentestOverviewRoutingModule {
|
||||
export class ObjectiveOverviewRoutingModule {
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
import {NgModule} from '@angular/core';
|
||||
import {CommonModule} from '@angular/common';
|
||||
import {PentestHeaderComponent} from './pentest-header/pentest-header.component';
|
||||
import {PentestCategoriesComponent} from './pentest-categories/pentest-categories.component';
|
||||
import {PentestTableComponent} from './pentest-table/pentest-table.component';
|
||||
import {ObjectiveHeaderComponent} from './objective-header/objective-header.component';
|
||||
import {ObjectiveCategoriesComponent} from './objective-categories/objective-categories.component';
|
||||
import {ObjectiveTableComponent} from './objective-table/objective-table.component';
|
||||
import {
|
||||
NbCardModule,
|
||||
NbLayoutModule,
|
||||
|
@ -24,9 +24,9 @@ import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-s
|
|||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
PentestHeaderComponent,
|
||||
PentestCategoriesComponent,
|
||||
PentestTableComponent,
|
||||
ObjectiveHeaderComponent,
|
||||
ObjectiveCategoriesComponent,
|
||||
ObjectiveTableComponent,
|
||||
// LoadingSpinnerComponent
|
||||
],
|
||||
imports: [
|
||||
|
@ -51,11 +51,11 @@ import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-s
|
|||
NbActionsModule
|
||||
],
|
||||
exports: [
|
||||
PentestHeaderComponent,
|
||||
PentestCategoriesComponent,
|
||||
PentestTableComponent,
|
||||
ObjectiveHeaderComponent,
|
||||
ObjectiveCategoriesComponent,
|
||||
ObjectiveTableComponent,
|
||||
// LoadingSpinnerComponent
|
||||
]
|
||||
})
|
||||
export class PentestOverviewModule {
|
||||
export class ObjectiveOverviewModule {
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import {PentestTableComponent} from './pentest-table.component';
|
||||
import {ObjectiveTableComponent} from './objective-table.component';
|
||||
import {NbCardModule, NbTreeGridModule} from '@nebular/theme';
|
||||
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
|
||||
import {HttpLoaderFactory} from '../../common-app.module';
|
||||
|
@ -15,14 +15,14 @@ import {NgxsModule} from '@ngxs/store';
|
|||
import {ProjectState} from '@shared/stores/project-state/project-state';
|
||||
import {HttpClientTestingModule} from '@angular/common/http/testing';
|
||||
|
||||
describe('PentestTableComponent', () => {
|
||||
let component: PentestTableComponent;
|
||||
let fixture: ComponentFixture<PentestTableComponent>;
|
||||
describe('ObjectiveTableComponent', () => {
|
||||
let component: ObjectiveTableComponent;
|
||||
let fixture: ComponentFixture<ObjectiveTableComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [
|
||||
PentestTableComponent,
|
||||
ObjectiveTableComponent,
|
||||
MockComponent(StatusTagComponent),
|
||||
MockComponent(FindigWidgetComponent)
|
||||
],
|
||||
|
@ -47,7 +47,7 @@ describe('PentestTableComponent', () => {
|
|||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PentestTableComponent);
|
||||
fixture = TestBed.createComponent(ObjectiveTableComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
|
@ -14,11 +14,11 @@ import {ChangePentest} from '@shared/stores/project-state/project-state.actions'
|
|||
|
||||
@UntilDestroy()
|
||||
@Component({
|
||||
selector: 'app-pentest-table',
|
||||
templateUrl: './pentest-table.component.html',
|
||||
styleUrls: ['./pentest-table.component.scss']
|
||||
selector: 'app-objective-table',
|
||||
templateUrl: './objective-table.component.html',
|
||||
styleUrls: ['./objective-table.component.scss']
|
||||
})
|
||||
export class PentestTableComponent implements OnInit {
|
||||
export class ObjectiveTableComponent implements OnInit {
|
||||
|
||||
loading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);
|
||||
columns: Array<PentestColumns> = [PentestColumns.TEST_ID, PentestColumns.TITLE, PentestColumns.STATUS, PentestColumns.FINDINGS];
|
|
@ -1,2 +0,0 @@
|
|||
export {PentestOverviewModule} from './pentest-overview.module';
|
||||
export {PentestOverviewRoutingModule} from './pentest-overview-routing.module';
|
|
@ -2,7 +2,7 @@ import {ComponentFixture, TestBed} from '@angular/core/testing';
|
|||
|
||||
import {PentestContentComponent} from './pentest-content.component';
|
||||
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
|
||||
import {HttpLoaderFactory} from '../../../common-app.module';
|
||||
import {HttpLoaderFactory} from '../../common-app.module';
|
||||
import {HttpClient} from '@angular/common/http';
|
||||
import {RouterTestingModule} from '@angular/router/testing';
|
||||
import {NgxsModule, Store} from '@ngxs/store';
|
|
@ -1,10 +1,10 @@
|
|||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import {PentestMenuComponent} from './pentest-menu.component';
|
||||
import {PentestHeaderComponent} from './pentest-header.component';
|
||||
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
|
||||
import {HttpClientTestingModule} from '@angular/common/http/testing';
|
||||
import {TranslateLoader, TranslateModule} from '@ngx-translate/core';
|
||||
import {HttpLoaderFactory} from '../../../common-app.module';
|
||||
import {HttpLoaderFactory} from '../../common-app.module';
|
||||
import {HttpClient} from '@angular/common/http';
|
||||
import {RouterTestingModule} from '@angular/router/testing';
|
||||
import {NgxsModule, Store} from '@ngxs/store';
|
||||
|
@ -38,14 +38,14 @@ const DESIRED_PROJECT_STATE_SESSION: ProjectStateModel = {
|
|||
},
|
||||
};
|
||||
|
||||
describe('PentestMenuComponent', () => {
|
||||
let component: PentestMenuComponent;
|
||||
let fixture: ComponentFixture<PentestMenuComponent>;
|
||||
describe('PentestHeaderComponent', () => {
|
||||
let component: PentestHeaderComponent;
|
||||
let fixture: ComponentFixture<PentestHeaderComponent>;
|
||||
let store: Store;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [PentestMenuComponent],
|
||||
declarations: [PentestHeaderComponent],
|
||||
imports: [
|
||||
BrowserAnimationsModule,
|
||||
HttpClientTestingModule,
|
||||
|
@ -64,7 +64,7 @@ describe('PentestMenuComponent', () => {
|
|||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PentestMenuComponent);
|
||||
fixture = TestBed.createComponent(PentestHeaderComponent);
|
||||
store = TestBed.inject(Store);
|
||||
store.reset({
|
||||
...store.snapshot(),
|
|
@ -13,11 +13,11 @@ import {Pentest} from '@shared/models/pentest.model';
|
|||
|
||||
@UntilDestroy()
|
||||
@Component({
|
||||
selector: 'app-pentest-menu',
|
||||
templateUrl: './pentest-menu.component.html',
|
||||
styleUrls: ['./pentest-menu.component.scss']
|
||||
selector: 'app-pentest-header',
|
||||
templateUrl: './pentest-header.component.html',
|
||||
styleUrls: ['./pentest-header.component.scss']
|
||||
})
|
||||
export class PentestMenuComponent implements OnInit {
|
||||
export class PentestHeaderComponent implements OnInit {
|
||||
// HTML only
|
||||
readonly fa = FA;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<div fxFlex class="pentest">
|
||||
<nb-layout fxFlex>
|
||||
<nb-layout-header fxFlex="0 1 max-content" class="stepper-column">
|
||||
<app-pentest-menu></app-pentest-menu>
|
||||
<app-pentest-header></app-pentest-header>
|
||||
</nb-layout-header>
|
||||
|
||||
<nb-layout-column fxFlex="0 1 max-content" class="column-wrapper">
|
|
@ -1,5 +1,5 @@
|
|||
@import '../../../assets/@theme/styles/themes';
|
||||
@import '../../../assets/@theme/styles/_variables.scss';
|
||||
@import '../../assets/@theme/styles/themes';
|
||||
@import '../../assets/@theme/styles/variables';
|
||||
|
||||
.pentest {
|
||||
width: 100vw;
|
|
@ -3,7 +3,7 @@ import {CommonModule} from '@angular/common';
|
|||
import {RouterModule} from '@angular/router';
|
||||
import {PentestComponent} from './pentest.component';
|
||||
import {NbButtonModule, NbCardModule, NbLayoutModule, NbTabsetModule} from '@nebular/theme';
|
||||
import { PentestMenuComponent } from './pentest-menu/pentest-menu.component';
|
||||
import { PentestHeaderComponent } from './pentest-header/pentest-header.component';
|
||||
import { PentestContentComponent } from './pentest-content/pentest-content.component';
|
||||
import {FlexLayoutModule} from '@angular/flex-layout';
|
||||
import {FontAwesomeModule} from '@fortawesome/angular-fontawesome';
|
||||
|
@ -16,7 +16,7 @@ import { PentestCommentsComponent } from './pentest-content/pentest-comments/pen
|
|||
@NgModule({
|
||||
declarations: [
|
||||
PentestComponent,
|
||||
PentestMenuComponent,
|
||||
PentestHeaderComponent,
|
||||
PentestContentComponent,
|
||||
PentestInfoComponent,
|
||||
PentestFindingsComponent,
|
|
@ -9,7 +9,7 @@ const routes: Routes = [
|
|||
},
|
||||
{
|
||||
path: 'pentest',
|
||||
loadChildren: () => import('../../pentest-overview/pentest').then(mod => mod.PentestModule),
|
||||
loadChildren: () => import('../../pentest').then(mod => mod.PentestModule),
|
||||
},
|
||||
];
|
||||
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
<nb-layout fxFlex>
|
||||
|
||||
<nb-layout-header fxFlex="0 1 max-content" class="header-column">
|
||||
<app-pentest-header></app-pentest-header>
|
||||
<app-objective-header></app-objective-header>
|
||||
</nb-layout-header>
|
||||
|
||||
<nb-layout-column fxFlex="0 1 max-content" class="column-wrapper">
|
||||
<nb-card class="categories-column">
|
||||
<app-pentest-categories></app-pentest-categories>
|
||||
<app-objective-categories></app-objective-categories>
|
||||
</nb-card>
|
||||
</nb-layout-column>
|
||||
|
||||
<nb-layout-column fxFlex="0 1 max-content" class="table-wrapper" >
|
||||
<nb-card class="table-column">
|
||||
<nb-card-body>
|
||||
<app-pentest-table></app-pentest-table>
|
||||
<app-objective-table></app-objective-table>
|
||||
</nb-card-body>
|
||||
</nb-card>
|
||||
</nb-layout-column>
|
||||
|
|
|
@ -12,7 +12,7 @@ import {SessionState} from '@shared/stores/session-state/session-state';
|
|||
import {HttpClientTestingModule} from '@angular/common/http/testing';
|
||||
import {NbCardModule, NbLayoutModule} from '@nebular/theme';
|
||||
import {KeycloakService} from 'keycloak-angular';
|
||||
import {PentestOverviewModule} from '../../pentest-overview';
|
||||
import {ObjectiveOverviewModule} from '../../objective-overview';
|
||||
|
||||
describe('ProjectComponent', () => {
|
||||
let component: ProjectComponent;
|
||||
|
@ -27,7 +27,7 @@ describe('ProjectComponent', () => {
|
|||
CommonModule,
|
||||
NbLayoutModule,
|
||||
NbCardModule,
|
||||
PentestOverviewModule,
|
||||
ObjectiveOverviewModule,
|
||||
ThemeModule.forRoot(),
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
|
|
|
@ -7,7 +7,7 @@ import {FlexLayoutModule} from '@angular/flex-layout';
|
|||
import {TranslateModule} from '@ngx-translate/core';
|
||||
import {ProjectDialogModule} from '@shared/modules/project-dialog/project-dialog.module';
|
||||
import {ProjectRoutingModule} from './project-routing.module';
|
||||
import {PentestOverviewModule} from '../../pentest-overview';
|
||||
import {ObjectiveOverviewModule} from '../../objective-overview';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
|
@ -25,7 +25,7 @@ import {PentestOverviewModule} from '../../pentest-overview';
|
|||
TranslateModule,
|
||||
FlexLayoutModule,
|
||||
ProjectDialogModule,
|
||||
PentestOverviewModule
|
||||
ObjectiveOverviewModule
|
||||
],
|
||||
exports: [
|
||||
ProjectComponent
|
||||
|
|
Before Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 547 KiB After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 7.0 KiB |
|
@ -5,7 +5,7 @@
|
|||
<title>Security C4PO</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="assets/images/favicons/corporate_favicon.ico">
|
||||
<link rel="icon" type="image/x-icon" href="assets/images/favicons/favicon_corporate.ico">
|
||||
</head>
|
||||
<body id="loader-wrapper">
|
||||
<app-root id="loader"></app-root>
|
||||
|
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 46 KiB |