diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..fb2ceaa7 --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +@hylandsoftware:registry=https://npm.pkg.github.com +//npm.pkg.github.com/:_authToken=ghp_your_authenticated_token +registry=https://registry.npmjs.org/ \ No newline at end of file diff --git a/README.md b/README.md index 6acd284a..11218721 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # nuxeo-admin-console-ui -Nuxeo Admin console UI is a standard base web application for Nuxeo admin useres. +Nuxeo Admin console UI is a standard base web application for Nuxeo admin users. + +# Note +Replace ghp_your_authenticated_token in .npmrc file with your Github token. \ No newline at end of file diff --git a/angular.json b/angular.json index df7692ed..4681901b 100644 --- a/angular.json +++ b/angular.json @@ -94,11 +94,14 @@ "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "polyfills": "src/polyfills.ts", + "polyfills": ["src/polyfills.ts", "zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", "assets": ["src/favicon.ico", "src/assets"], "styles": ["src/styles.scss"], - "scripts": [] + "scripts": [], + "stylePreprocessorOptions": { + "includePaths": ["node_modules"] + } } } } diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 00000000..409742f8 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,28 @@ +module.exports = function(config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/admin-console'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'coverage-istanbul'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/package.json b/package.json index ca3e62ac..61f110b2 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", - "test": "ng test" + "test": "ng test --code-coverage" }, "private": true, "dependencies": { @@ -43,6 +43,7 @@ "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", + "karma-coverage-istanbul-reporter": "^3.0.3", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.1.3" diff --git a/src/app/admin-app.component.html b/src/app/admin-app.component.html deleted file mode 100644 index 60fbb735..00000000 --- a/src/app/admin-app.component.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index bce287d8..8367872c 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -5,35 +5,35 @@ import { Route } from "@angular/router"; export const appRoutes: Route[] = [ { path: "", - loadChildren: () => import("./features/admin-home/admin-home.module").then((m) => m.AdminHomeModule), + loadChildren: () => import("./features/home/home.module").then((m) => m.HomeModule), }, { path: "system-information", - loadChildren: () => import("./features/admin-system-information/admin-system-information.module").then((m) => m.AdminSystemInformationModule), + loadChildren: () => import("./features/system-information/system-information.module").then((m) => m.SystemInformationModule), }, { path: "bulk-action-monitoring", - loadChildren: () => import("./features/admin-bulk-action-monitoring/admin-bulk-action-monitoring.module").then((m) => m.AdminBulkActionMonitoringModule), + loadChildren: () => import("./features/bulk-action-monitoring/bulk-action-monitoring.module").then((m) => m.BulkActionMonitoringModule), }, { path: "elasticsearch-reindex", - loadChildren: () => import("./features/admin-elastic-search-reindex/admin-elastic-search-reindex.module").then((m) => m.AdminElasticSearchReindexModule), + loadChildren: () => import("./features/elastic-search-reindex/elastic-search-reindex.module").then((m) => m.ElasticSearchReindexModule), }, { path: "fulltext-reindex", - loadChildren: () => import("./features/admin-full-text-reindex/admin-full-text-reindex.module").then((m) => m.AdminFullTextReindexModule), + loadChildren: () => import("./features/full-text-reindex/full-text-reindex.module").then((m) => m.FullTextReindexModule), }, { path: "thumbnails-generation", - loadChildren: () => import("./features/admin-thumbnail-generation/admin-thumbnail-generation.module").then((m) => m.AdminThumbnailGenerationModule), + loadChildren: () => import("./features/thumbnail-generation/thumbnail-generation.module").then((m) => m.ThumbnailGenerationModule), }, { path: "picture-renditions-generation", - loadChildren: () => import("./features/admin-picture-render-generation/admin-picture-render-generation.module").then((m) => m.AdminPictureRenderGenerationModule), + loadChildren: () => import("./features/picture-render-generation/picture-render-generation.module").then((m) => m.PictureRenderGenerationModule), }, { path: "video-renditions-generation", - loadChildren: () => import("./features/admin-video-render-generation/admin-video-render-generation.module").then((m) => m.AdminVideoRenderGenerationModule), + loadChildren: () => import("./features/video-render-generation/video-render-generation.module").then((m) => m.VideoRenderGenerationModule), }, { path: "auth", diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 00000000..02af8163 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/admin-app.component.scss b/src/app/app.component.scss similarity index 100% rename from src/app/admin-app.component.scss rename to src/app/app.component.scss diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 00000000..f3f50abc --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,92 @@ +import { MatDialogModule } from "@angular/material/dialog"; +import { BaseLayoutComponent } from "./layouts/base-layout/components/base-layout.component"; +import { AppComponent } from "./app.component"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { PersistenceService } from "./shared/services/persistence.service"; +import { WarningComponent } from "./features/warning/warning.component"; +import { CommonService } from "./shared/services/common.service"; +import { EventEmitter } from "@angular/core"; + +describe("AppComponent", () => { + let component: AppComponent; + let fixture: ComponentFixture; + class persistenceServiceStub { + get() { + return null; + } + set() {} + } + + class adminCommonServiceStub { + loadApp = new EventEmitter(); + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [AppComponent, BaseLayoutComponent], + imports: [CommonModule, MatDialogModule], + providers: [ + { provide: ComponentFixtureAutoDetect, useValue: true }, + { provide: PersistenceService, useClass: persistenceServiceStub }, + { provide: CommonService, useClass: adminCommonServiceStub }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(AppComponent); + component = fixture.componentInstance; + }); + + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); + + describe("test warning preference", () => { + beforeEach(() => { + spyOn(component.dialogService, "open"); + }); + it("should open the warning dialog if warning preference is not set", () => { + spyOn(component.persistenceService, "get").and.returnValue(null); + let loadAppSubscriptionSpy = spyOn( + component.adminCommonService.loadApp, + "subscribe" + ).and.callThrough(); + component.ngOnInit(); + expect(component.persistenceService.get).toHaveBeenCalled(); + expect(component.dialogService.open).toHaveBeenCalledWith( + WarningComponent, + { + disableClose: true, + } + ); + expect(loadAppSubscriptionSpy).toHaveBeenCalled(); + }); + + it("should not open the warning dialog if warning preference is set", () => { + spyOn(component.persistenceService, "get").and.returnValue("true"); + component.ngOnInit(); + expect(component.persistenceService.get).toHaveBeenCalled(); + expect(component.dialogService.open).not.toHaveBeenCalled(); + expect(component.loadApp).toEqual(true); + }); + }); + + it("should set loadApp to true or false based on the value received from the service subscription", () => { + component.ngOnInit(); + component.adminCommonService.loadApp.emit(true); + expect(component.loadApp).toBe(true); + component.ngOnInit(); + component.adminCommonService.loadApp.emit(false); + expect(component.loadApp).toBe(false); + }); + + it("should remove theloadAppSubscription when component is destroyed", () => { + spyOn(component.loadAppSubscription, "unsubscribe"); + component.ngOnDestroy(); + expect(component.loadAppSubscription.unsubscribe).toHaveBeenCalled(); + }); +}); diff --git a/src/app/admin-app.component.ts b/src/app/app.component.ts similarity index 58% rename from src/app/admin-app.component.ts rename to src/app/app.component.ts index ee047289..424f662d 100644 --- a/src/app/admin-app.component.ts +++ b/src/app/app.component.ts @@ -2,27 +2,27 @@ import { Component, OnDestroy, OnInit } from "@angular/core"; import { MatDialog } from "@angular/material/dialog"; import { PersistenceService } from "./shared/services/persistence.service"; import { Subscription } from "rxjs"; -import { AdminCommonService } from "./shared/services/admin-common.service"; -import { AdminWarningComponent } from "./features/admin-warning/admin-warning.component"; +import { CommonService } from "./shared/services/common.service"; +import { WarningComponent } from "./features/warning/warning.component"; @Component({ - selector: "admin-app-root", - templateUrl: "./admin-app.component.html", - styleUrls: ["./admin-app.component.scss"], + selector: "app", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.scss"], }) -export class AdminAppComponent implements OnInit, OnDestroy { +export class AppComponent implements OnInit, OnDestroy { loadApp: Boolean = false; loadAppSubscription = new Subscription(); constructor( - private dialogService: MatDialog, - private persistenceService: PersistenceService, - private adminCommonService: AdminCommonService + public dialogService: MatDialog, + public persistenceService: PersistenceService, + public adminCommonService: CommonService ) {} ngOnInit(): void { const doNotWarn = !!this.persistenceService.get("doNotWarn"); if (!doNotWarn) { - this.dialogService.open(AdminWarningComponent, { + this.dialogService.open(WarningComponent, { disableClose: true, }); this.loadAppSubscription = this.adminCommonService.loadApp.subscribe( diff --git a/src/app/app.module.ts b/src/app/app.module.ts index e53cb8c2..be75cfa4 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,3 +1,5 @@ +import { BaseLayoutModule } from './layouts/base-layout/base-layout.module'; +import { BaseLayoutComponent } from './layouts/base-layout/components/base-layout.component'; import { NgModule } from "@angular/core"; import { BrowserModule } from "@angular/platform-browser"; import { RouterModule } from "@angular/router"; @@ -10,19 +12,17 @@ import { MatIconModule } from "@angular/material/icon"; import { MatToolbarModule } from "@angular/material/toolbar"; import { AppRoutingModule } from "./app-routing.module"; import { AuthRoutingModule } from "./auth/auth-routing.module"; -import { AdminBaseLayoutModule } from "./layouts/admin-base-layout/admin-base-layout.module"; -import { AdminVideoRenderGenerationModule } from "./features/admin-video-render-generation/admin-video-render-generation.module"; -import { AdminPictureRenderGenerationModule } from "./features/admin-picture-render-generation/admin-picture-render-generation.module"; -import { AdminThumbnailGenerationModule } from "./features/admin-thumbnail-generation/admin-thumbnail-generation.module"; -import { AdminFullTextReindexModule } from "./features/admin-full-text-reindex/admin-full-text-reindex.module"; -import { AdminElasticSearchReindexModule } from "./features/admin-elastic-search-reindex/admin-elastic-search-reindex.module"; -import { AdminBulkActionMonitoringModule } from "./features/admin-bulk-action-monitoring/admin-bulk-action-monitoring.module"; -import { AdminHomeModule } from "./features/admin-home/admin-home.module"; -import { AdminWarningComponent } from "./features/admin-warning/admin-warning.component"; -import { AdminBaseLayoutComponent } from "./layouts/admin-base-layout/components/admin-base-layout.component"; +import { VideoRenderGenerationModule } from "./features/video-render-generation/video-render-generation.module"; +import { PictureRenderGenerationModule } from "./features/picture-render-generation/picture-render-generation.module"; +import { ThumbnailGenerationModule } from "./features/thumbnail-generation/thumbnail-generation.module"; +import { FullTextReindexModule } from "./features/full-text-reindex/full-text-reindex.module"; +import { ElasticSearchReindexModule } from "./features/elastic-search-reindex/elastic-search-reindex.module"; +import { BulkActionMonitoringModule } from "./features/bulk-action-monitoring/bulk-action-monitoring.module"; +import { HomeModule } from "./features/home/home.module"; +import { WarningComponent } from "./features/warning/warning.component"; import { HylandSSOManagerComponent } from "./auth/components/SSO/hylandSSOManager.component"; import { BackendErrorMessages } from "./shared/components/backendErrorMessages/backendErrorMessages.component"; -import { AdminAppComponent } from "./admin-app.component"; +import { AppComponent } from "./app.component"; import { AuthInterceptorService } from "./auth/services/auth-interceptor.service"; import { authReducer } from "./auth/store/reducers"; import * as authEffects from "./auth/store/effects"; @@ -31,22 +31,22 @@ import { FormsModule } from "@angular/forms"; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { MatButtonModule } from "@angular/material/button"; import { MatSidenavModule } from "@angular/material/sidenav"; -import { AdminHeaderComponent } from "./layouts/admin-header/admin-header.component"; -import { AdminMenuComponent } from "./layouts/admin-menu/admin-menu.component"; -import { AdminSystemInformationModule } from "./features/admin-system-information/admin-system-information.module"; +import { HeaderBarComponent } from "./layouts/header-bar/header-bar.component"; +import { MenuBarComponent } from "./layouts/menu-bar/menu-bar.component"; +import { SystemInformationModule } from "./features/system-information/system-information.module"; import { HyDialogBoxModule, HyDialogModule } from "@hyland/ui"; import { MatCheckboxModule } from "@angular/material/checkbox"; import { MatListModule } from "@angular/material/list"; @NgModule({ declarations: [ - AdminAppComponent, - AdminHeaderComponent, - AdminMenuComponent, - AdminWarningComponent, + AppComponent, + HeaderBarComponent, + MenuBarComponent, + WarningComponent, BackendErrorMessages, HylandSSOManagerComponent, - AdminBaseLayoutComponent, + BaseLayoutComponent, ], imports: [ BrowserModule, @@ -66,16 +66,16 @@ import { MatListModule } from "@angular/material/list"; MatToolbarModule, MatButtonModule, MatSidenavModule, - AdminHomeModule, + HomeModule, MatListModule, - AdminSystemInformationModule, - AdminBulkActionMonitoringModule, - AdminElasticSearchReindexModule, - AdminFullTextReindexModule, - AdminThumbnailGenerationModule, - AdminPictureRenderGenerationModule, - AdminVideoRenderGenerationModule, - AdminBaseLayoutModule, + SystemInformationModule, + BulkActionMonitoringModule, + ElasticSearchReindexModule, + FullTextReindexModule, + ThumbnailGenerationModule, + PictureRenderGenerationModule, + VideoRenderGenerationModule, + BaseLayoutModule, HyDialogModule, MatSidenavModule, MatButtonModule, @@ -91,6 +91,6 @@ import { MatListModule } from "@angular/material/list"; }, ngrxDevtools, ], - bootstrap: [AdminAppComponent], + bootstrap: [AppComponent], }) export class AppModule {} diff --git a/src/app/auth/services/auth.service.ts b/src/app/auth/services/auth.service.ts index 311b5d15..343025bc 100644 --- a/src/app/auth/services/auth.service.ts +++ b/src/app/auth/services/auth.service.ts @@ -2,7 +2,7 @@ import { Injectable } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { map, Observable } from "rxjs"; import { environment } from "../../../environments/environment"; -import { AdminUserInterface } from "../../shared/types/adminUser.interface"; +import { UserInterface } from "../../shared/types/user.interface"; import { AuthResponseInterface } from "../types/authResponse.interface"; import { HylandSSORequestInterface } from "../types/hylandSSORequest.interface"; @@ -12,16 +12,16 @@ import { HylandSSORequestInterface } from "../types/hylandSSORequest.interface"; export class AuthService { constructor(private http: HttpClient) {} - getUser(response: AuthResponseInterface): AdminUserInterface { + getUser(response: AuthResponseInterface): UserInterface { return response.user; } - getCurrentUser(): Observable { + getCurrentUser(): Observable { const url = environment.apiUrl + "/user.json"; return this.http.get(url).pipe(map(this.getUser)); } - sso(data: HylandSSORequestInterface): Observable { + sso(data: HylandSSORequestInterface): Observable { const url = environment.apiUrl + "/users/sso"; return this.http .post(url, data) diff --git a/src/app/auth/store/actions.ts b/src/app/auth/store/actions.ts index 06449eac..5ad56afa 100644 --- a/src/app/auth/store/actions.ts +++ b/src/app/auth/store/actions.ts @@ -1,17 +1,17 @@ import { createActionGroup, emptyProps, props } from "@ngrx/store"; import { BackendErrorsInterface } from "../../shared/types/backendErrors.interface"; -import { AdminUserInterface } from "../../shared/types/adminUser.interface"; +import { UserInterface } from "../../shared/types/user.interface"; import { HylandSSORequestInterface } from "../types/hylandSSORequest.interface"; export const authActions = createActionGroup({ source: "auth", events: { sso: props<{ request: HylandSSORequestInterface }>(), - "sso success": props<{ currentUser: AdminUserInterface }>(), + "sso success": props<{ currentUser: UserInterface }>(), "sso failure": props<{ errors: BackendErrorsInterface }>(), "Get current user": emptyProps(), - "Get current user success": props<{ currentUser: AdminUserInterface }>(), + "Get current user success": props<{ currentUser: UserInterface }>(), "Get current user failure": emptyProps(), }, }); diff --git a/src/app/auth/store/effects.ts b/src/app/auth/store/effects.ts index 214db03e..047b749c 100644 --- a/src/app/auth/store/effects.ts +++ b/src/app/auth/store/effects.ts @@ -4,7 +4,7 @@ import { Router } from "@angular/router"; import { Actions, createEffect, ofType } from "@ngrx/effects"; import { catchError, map, of, switchMap, tap } from "rxjs"; import { PersistenceService } from "../../shared/services/persistence.service"; -import { AdminUserInterface } from "../../shared/types/adminUser.interface"; +import { UserInterface } from "../../shared/types/user.interface"; import { AuthService } from "../services/auth.service"; import { authActions } from "./actions"; @@ -23,7 +23,7 @@ export const getCurrentUserEffect = createEffect( return of(authActions.getCurrentUserFailure()); } return authService.getCurrentUser().pipe( - map((currentUser: AdminUserInterface) => { + map((currentUser: UserInterface) => { return authActions.getCurrentUserSuccess({ currentUser }); }), catchError(() => { @@ -46,7 +46,7 @@ export const ssoEffect = createEffect( ofType(authActions.sso), switchMap(({ request }) => { return authService.sso(request).pipe( - map((currentUser: AdminUserInterface) => { + map((currentUser: UserInterface) => { persistenceService.set("accessToken", currentUser.token); return authActions.ssoSuccess({ currentUser }); }), diff --git a/src/app/auth/types/authResponse.interface.ts b/src/app/auth/types/authResponse.interface.ts index 74c76fde..3b5d1e47 100644 --- a/src/app/auth/types/authResponse.interface.ts +++ b/src/app/auth/types/authResponse.interface.ts @@ -1,5 +1,5 @@ -import { AdminUserInterface } from "../../shared/types/adminUser.interface"; +import { UserInterface } from "../../shared/types/user.interface"; export interface AuthResponseInterface { - user: AdminUserInterface; + user: UserInterface; } diff --git a/src/app/auth/types/authState.interface.ts b/src/app/auth/types/authState.interface.ts index 5be1f0b1..e5f6191d 100644 --- a/src/app/auth/types/authState.interface.ts +++ b/src/app/auth/types/authState.interface.ts @@ -1,9 +1,9 @@ import { BackendErrorsInterface } from "../../shared/types/backendErrors.interface"; -import { AdminUserInterface } from "../../shared/types/adminUser.interface"; +import { UserInterface } from "../../shared/types/user.interface"; export interface AuthStateInterface { isSubmitting: boolean; - currentUser: AdminUserInterface | null | undefined; + currentUser: UserInterface | null | undefined; isLoading: boolean; validationErrors: BackendErrorsInterface | null; } diff --git a/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring-routing.module.ts b/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring-routing.module.ts deleted file mode 100644 index 265d4f19..00000000 --- a/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring-routing.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminBulkActionMonitoringComponent } from "./components/admin-bulk-action-monitoring.component" -export const AdminBulkActionMonitoringRoutes: Route[] = [ - { - path: '', - component: AdminBulkActionMonitoringComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminBulkActionMonitoringRoutes)], - exports: [RouterModule], -}) -export class AdminBulkActionMonitoringRoutingModule { } diff --git a/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring.module.ts b/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring.module.ts deleted file mode 100644 index 419d09be..00000000 --- a/src/app/features/admin-bulk-action-monitoring/admin-bulk-action-monitoring.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminBulkActionMonitoringComponent } from "./components/admin-bulk-action-monitoring.component"; -import { AdminBulkActionMonitoringRoutingModule } from "./admin-bulk-action-monitoring-routing.module" -@NgModule({ - declarations: [AdminBulkActionMonitoringComponent], - imports: [CommonModule, AdminBulkActionMonitoringRoutingModule], -}) -export class AdminBulkActionMonitoringModule { } diff --git a/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.html b/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.html deleted file mode 100644 index 0b5b6ad0..00000000 --- a/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-bulk-action-monitoring works!

\ No newline at end of file diff --git a/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.ts b/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.ts deleted file mode 100644 index b6c9be5e..00000000 --- a/src/app/features/admin-bulk-action-monitoring/components/admin-bulk-action-monitoring.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-bulk-action-monitoring", - templateUrl: "./admin-bulk-action-monitoring.component.html", -}) -export class AdminBulkActionMonitoringComponent {} diff --git a/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex-routing.module.ts b/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex-routing.module.ts deleted file mode 100644 index 91069cf3..00000000 --- a/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminElasticSearchReindexComponent } from "./components/admin-elastic-search-reindex.component" - -export const AdminElasticSearchReindexRoutes: Route[] = [ - { - path: '', - component: AdminElasticSearchReindexComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminElasticSearchReindexRoutes)], - exports: [RouterModule], -}) -export class AdminElasticSearchReindexRoutingModule { } \ No newline at end of file diff --git a/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex.module.ts b/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex.module.ts deleted file mode 100644 index e077dc08..00000000 --- a/src/app/features/admin-elastic-search-reindex/admin-elastic-search-reindex.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminElasticSearchReindexComponent } from "./components/admin-elastic-search-reindex.component"; -import { AdminElasticSearchReindexRoutingModule } from "./admin-elastic-search-reindex-routing.module" -@NgModule({ - declarations: [AdminElasticSearchReindexComponent], - imports: [CommonModule, AdminElasticSearchReindexRoutingModule], -}) -export class AdminElasticSearchReindexModule { } diff --git a/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.html b/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.html deleted file mode 100644 index ab239764..00000000 --- a/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-elastic-search-reindex works!

\ No newline at end of file diff --git a/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.ts b/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.ts deleted file mode 100644 index adbc08ba..00000000 --- a/src/app/features/admin-elastic-search-reindex/components/admin-elastic-search-reindex.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-elastic-search-reindex", - templateUrl: "./admin-elastic-search-reindex.component.html", -}) -export class AdminElasticSearchReindexComponent {} diff --git a/src/app/features/admin-full-text-reindex/admin-full-text-reindex-routing.module.ts b/src/app/features/admin-full-text-reindex/admin-full-text-reindex-routing.module.ts deleted file mode 100644 index 8014f781..00000000 --- a/src/app/features/admin-full-text-reindex/admin-full-text-reindex-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminFullTextReindexComponent } from "./components/admin-full-text-reindex.component" - -export const AdminFullTextReindexRoutes: Route[] = [ - { - path: '', - component: AdminFullTextReindexComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminFullTextReindexRoutes)], - exports: [RouterModule], -}) -export class AdminFullTextReindexRoutingModule { } \ No newline at end of file diff --git a/src/app/features/admin-full-text-reindex/admin-full-text-reindex.module.ts b/src/app/features/admin-full-text-reindex/admin-full-text-reindex.module.ts deleted file mode 100644 index 86289228..00000000 --- a/src/app/features/admin-full-text-reindex/admin-full-text-reindex.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminFullTextReindexComponent } from "./components/admin-full-text-reindex.component"; -import { AdminFullTextReindexRoutingModule } from "./admin-full-text-reindex-routing.module" -@NgModule({ - declarations: [AdminFullTextReindexComponent], - imports: [CommonModule, AdminFullTextReindexRoutingModule], -}) -export class AdminFullTextReindexModule { } diff --git a/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.html b/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.html deleted file mode 100644 index bf8ce911..00000000 --- a/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-full-text-reindex works!

\ No newline at end of file diff --git a/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.ts b/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.ts deleted file mode 100644 index 04113238..00000000 --- a/src/app/features/admin-full-text-reindex/components/admin-full-text-reindex.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-full-text-reindex", - templateUrl: "./admin-full-text-reindex.component.html", -}) -export class AdminFullTextReindexComponent {} diff --git a/src/app/features/admin-home/admin-home-routing.module.ts b/src/app/features/admin-home/admin-home-routing.module.ts deleted file mode 100644 index c8820c17..00000000 --- a/src/app/features/admin-home/admin-home-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminHomeComponent } from "../admin-home/components/admin-home.component" - -export const AdminHomeRoutes: Route[] = [ - { - path: '', - component: AdminHomeComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminHomeRoutes)], - exports: [RouterModule], -}) -export class AdminHomeRoutingModule { } diff --git a/src/app/features/admin-home/admin-home.module.ts b/src/app/features/admin-home/admin-home.module.ts deleted file mode 100644 index 796a8bb7..00000000 --- a/src/app/features/admin-home/admin-home.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { MatCardModule } from "@angular/material/card"; -import { MatButtonModule } from "@angular/material/button"; -import { AdminHomeComponent } from "./components/admin-home.component"; -import { AdminProbesSummaryComponent } from "./components/admin-probes-summary/admin-probes-summary.component"; -import { AdminRegistrationVersionComponent } from "./components/admin-registration-version/admin-registration-version.component"; -import { AdminHomeRoutingModule } from "./admin-home-routing.module" -@NgModule({ - declarations: [ - AdminHomeComponent, - AdminProbesSummaryComponent, - AdminRegistrationVersionComponent, - ], - imports: [CommonModule, MatCardModule, MatButtonModule, AdminHomeRoutingModule], -}) -export class AdminHomeModule { } diff --git a/src/app/features/admin-home/components/admin-home.component.ts b/src/app/features/admin-home/components/admin-home.component.ts deleted file mode 100644 index 685dde97..00000000 --- a/src/app/features/admin-home/components/admin-home.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-home", - templateUrl: "./admin-home.component.html", - styleUrls: ["./admin-home.component.scss"], -}) -export class AdminHomeComponent {} diff --git a/src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.ts b/src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.ts deleted file mode 100644 index 47163f40..00000000 --- a/src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-probes-summary", - templateUrl: "./admin-probes-summary.component.html", - styleUrls: ["./admin-probes-summary.component.scss"], -}) -export class AdminProbesSummaryComponent {} diff --git a/src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.ts b/src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.ts deleted file mode 100644 index 99c1c599..00000000 --- a/src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-registration-version", - templateUrl: "./admin-registration-version.component.html", - styleUrls: ["./admin-registration-version.component.scss"], -}) -export class AdminRegistrationVersionComponent {} diff --git a/src/app/features/admin-picture-render-generation/admin-picture-render-generation-routing.module.ts b/src/app/features/admin-picture-render-generation/admin-picture-render-generation-routing.module.ts deleted file mode 100644 index 222ca8fd..00000000 --- a/src/app/features/admin-picture-render-generation/admin-picture-render-generation-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminPictureRenderGenerationComponent } from "./components/admin-picture-render-generation.component" - -export const AdminPictureRenderGenerationRoutes: Route[] = [ - { - path: '', - component: AdminPictureRenderGenerationComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminPictureRenderGenerationRoutes)], - exports: [RouterModule], -}) -export class AdminPictureRenderGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/admin-picture-render-generation/admin-picture-render-generation.module.ts b/src/app/features/admin-picture-render-generation/admin-picture-render-generation.module.ts deleted file mode 100644 index 4b62635f..00000000 --- a/src/app/features/admin-picture-render-generation/admin-picture-render-generation.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminPictureRenderGenerationComponent } from "./components/admin-picture-render-generation.component"; -import { AdminPictureRenderGenerationRoutingModule } from "./admin-picture-render-generation-routing.module" -@NgModule({ - declarations: [AdminPictureRenderGenerationComponent], - imports: [CommonModule, AdminPictureRenderGenerationRoutingModule], -}) -export class AdminPictureRenderGenerationModule { } diff --git a/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.html b/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.html deleted file mode 100644 index cfcf2e85..00000000 --- a/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-picture-render-generation works!

\ No newline at end of file diff --git a/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.ts b/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.ts deleted file mode 100644 index aa519596..00000000 --- a/src/app/features/admin-picture-render-generation/components/admin-picture-render-generation.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-picture-render-generation", - templateUrl: "./admin-picture-render-generation.component.html", -}) -export class AdminPictureRenderGenerationComponent {} diff --git a/src/app/features/admin-system-information/admin-system-information-routing.modules.ts b/src/app/features/admin-system-information/admin-system-information-routing.modules.ts deleted file mode 100644 index fa855400..00000000 --- a/src/app/features/admin-system-information/admin-system-information-routing.modules.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminSystemInformationComponent } from "./components/admin-system-information.component" - -export const AdminSystemInformationRoutes: Route[] = [ - { - path: '', - component: AdminSystemInformationComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminSystemInformationRoutes)], - exports: [RouterModule], -}) -export class AdminSystemInformationRoutingModule { } diff --git a/src/app/features/admin-system-information/admin-system-information.module.ts b/src/app/features/admin-system-information/admin-system-information.module.ts deleted file mode 100644 index 46267e1e..00000000 --- a/src/app/features/admin-system-information/admin-system-information.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminSystemInformationComponent } from "./components/admin-system-information.component"; -import { AdminSystemInformationRoutingModule } from "./admin-system-information-routing.modules" -@NgModule({ - declarations: [AdminSystemInformationComponent], - imports: [CommonModule, AdminSystemInformationRoutingModule], -}) -export class AdminSystemInformationModule { } diff --git a/src/app/features/admin-system-information/components/admin-system-information.component.html b/src/app/features/admin-system-information/components/admin-system-information.component.html deleted file mode 100644 index 3a7cf7d7..00000000 --- a/src/app/features/admin-system-information/components/admin-system-information.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-system-information works!

\ No newline at end of file diff --git a/src/app/features/admin-system-information/components/admin-system-information.component.ts b/src/app/features/admin-system-information/components/admin-system-information.component.ts deleted file mode 100644 index c3fc0d74..00000000 --- a/src/app/features/admin-system-information/components/admin-system-information.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-system-information", - templateUrl: "./admin-system-information.component.html", -}) -export class AdminSystemInformationComponent {} diff --git a/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation-routing.module.ts b/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation-routing.module.ts deleted file mode 100644 index e83f2410..00000000 --- a/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminThumbnailGenerationComponent } from "./components/admin-thumbnail-generation.component" - -export const AdminThumbnailGenerationRoutes: Route[] = [ - { - path: '', - component: AdminThumbnailGenerationComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminThumbnailGenerationRoutes)], - exports: [RouterModule], -}) -export class AdminThumbnailGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation.module.ts b/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation.module.ts deleted file mode 100644 index 8ab5735a..00000000 --- a/src/app/features/admin-thumbnail-generation/admin-thumbnail-generation.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminThumbnailGenerationComponent } from "./components/admin-thumbnail-generation.component"; -import { AdminThumbnailGenerationRoutingModule } from "./admin-thumbnail-generation-routing.module" -@NgModule({ - declarations: [AdminThumbnailGenerationComponent], - imports: [CommonModule, AdminThumbnailGenerationRoutingModule], -}) -export class AdminThumbnailGenerationModule { } diff --git a/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.html b/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.html deleted file mode 100644 index daf9ce2c..00000000 --- a/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-thumbnail-generation works!

\ No newline at end of file diff --git a/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.ts b/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.ts deleted file mode 100644 index 508d5c04..00000000 --- a/src/app/features/admin-thumbnail-generation/components/admin-thumbnail-generation.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-thumbnail-generation", - templateUrl: "./admin-thumbnail-generation.component.html", -}) -export class AdminThumbnailGenerationComponent {} diff --git a/src/app/features/admin-video-render-generation/admin-video-render-generation-routing.module.ts b/src/app/features/admin-video-render-generation/admin-video-render-generation-routing.module.ts deleted file mode 100644 index e7ec05bd..00000000 --- a/src/app/features/admin-video-render-generation/admin-video-render-generation-routing.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NgModule } from "@angular/core"; -import { RouterModule } from "@angular/router"; -import { Route } from "@angular/router"; -import { AdminVideoRenderGenerationComponent } from "./components/admin-video-render-generation.component" - -export const AdminVideoRenderGenerationRoutes: Route[] = [ - { - path: '', - component: AdminVideoRenderGenerationComponent, - }, -]; - -@NgModule({ - imports: [RouterModule.forChild(AdminVideoRenderGenerationRoutes)], - exports: [RouterModule], -}) -export class AdminVideoRenderGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/admin-video-render-generation/admin-video-render-generation.module.ts b/src/app/features/admin-video-render-generation/admin-video-render-generation.module.ts deleted file mode 100644 index 35477ef2..00000000 --- a/src/app/features/admin-video-render-generation/admin-video-render-generation.module.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { NgModule } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AdminVideoRenderGenerationComponent } from "./components/admin-video-render-generation.component"; -import { AdminVideoRenderGenerationRoutingModule } from "./admin-video-render-generation-routing.module" -@NgModule({ - declarations: [AdminVideoRenderGenerationComponent], - imports: [CommonModule, AdminVideoRenderGenerationRoutingModule], -}) -export class AdminVideoRenderGenerationModule { } diff --git a/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.html b/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.html deleted file mode 100644 index 7b3f7260..00000000 --- a/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.html +++ /dev/null @@ -1 +0,0 @@ -

admin-video-render-generation works!

\ No newline at end of file diff --git a/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.ts b/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.ts deleted file mode 100644 index 6ce511bb..00000000 --- a/src/app/features/admin-video-render-generation/components/admin-video-render-generation.component.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-video-render-generation", - templateUrl: "./admin-video-render-generation.component.html", -}) -export class AdminVideoRenderGenerationComponent {} diff --git a/src/app/features/bulk-action-monitoring/bulk-action-monitoring-routing.module.ts b/src/app/features/bulk-action-monitoring/bulk-action-monitoring-routing.module.ts new file mode 100644 index 00000000..cf9bd173 --- /dev/null +++ b/src/app/features/bulk-action-monitoring/bulk-action-monitoring-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { BulkActionMonitoringComponent } from "./components/bulk-action-monitoring.component" +export const BulkActionMonitoringRoutes: Route[] = [ + { + path: '', + component: BulkActionMonitoringComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(BulkActionMonitoringRoutes)], + exports: [RouterModule], +}) +export class BulkActionMonitoringRoutingModule { } diff --git a/src/app/features/bulk-action-monitoring/bulk-action-monitoring.module.ts b/src/app/features/bulk-action-monitoring/bulk-action-monitoring.module.ts new file mode 100644 index 00000000..91178923 --- /dev/null +++ b/src/app/features/bulk-action-monitoring/bulk-action-monitoring.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { BulkActionMonitoringComponent } from "./components/bulk-action-monitoring.component"; +import { BulkActionMonitoringRoutingModule } from "../bulk-action-monitoring/bulk-action-monitoring-routing.module" +@NgModule({ + declarations: [BulkActionMonitoringComponent], + imports: [CommonModule, BulkActionMonitoringRoutingModule], +}) +export class BulkActionMonitoringModule { } diff --git a/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.html b/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.html new file mode 100644 index 00000000..47e26c48 --- /dev/null +++ b/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.html @@ -0,0 +1 @@ +

bulk-action-monitoring works!

\ No newline at end of file diff --git a/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.ts b/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.ts new file mode 100644 index 00000000..e139724e --- /dev/null +++ b/src/app/features/bulk-action-monitoring/components/bulk-action-monitoring.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "bulk-action-monitoring", + templateUrl: "./bulk-action-monitoring.component.html", +}) +export class BulkActionMonitoringComponent {} diff --git a/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.html b/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.html new file mode 100644 index 00000000..0678dab4 --- /dev/null +++ b/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.html @@ -0,0 +1 @@ +

elastic-search-reindex works!

\ No newline at end of file diff --git a/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.ts b/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.ts new file mode 100644 index 00000000..35d8799a --- /dev/null +++ b/src/app/features/elastic-search-reindex/components/elastic-search-reindex.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "elastic-search-reindex", + templateUrl: "./elastic-search-reindex.component.html", +}) +export class ElasticSearchReindexComponent {} diff --git a/src/app/features/elastic-search-reindex/elastic-search-reindex-routing.module.ts b/src/app/features/elastic-search-reindex/elastic-search-reindex-routing.module.ts new file mode 100644 index 00000000..b60248d2 --- /dev/null +++ b/src/app/features/elastic-search-reindex/elastic-search-reindex-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { ElasticSearchReindexComponent } from "./components/elastic-search-reindex.component" + +export const ElasticSearchReindexRoutes: Route[] = [ + { + path: '', + component: ElasticSearchReindexComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(ElasticSearchReindexRoutes)], + exports: [RouterModule], +}) +export class ElasticSearchReindexRoutingModule { } \ No newline at end of file diff --git a/src/app/features/elastic-search-reindex/elastic-search-reindex.module.ts b/src/app/features/elastic-search-reindex/elastic-search-reindex.module.ts new file mode 100644 index 00000000..4e2dd091 --- /dev/null +++ b/src/app/features/elastic-search-reindex/elastic-search-reindex.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { ElasticSearchReindexComponent } from "./components/elastic-search-reindex.component"; +import { ElasticSearchReindexRoutingModule } from "../elastic-search-reindex/elastic-search-reindex-routing.module" +@NgModule({ + declarations: [ElasticSearchReindexComponent], + imports: [CommonModule, ElasticSearchReindexRoutingModule], +}) +export class ElasticSearchReindexModule { } diff --git a/src/app/features/full-text-reindex/components/full-text-reindex.component.html b/src/app/features/full-text-reindex/components/full-text-reindex.component.html new file mode 100644 index 00000000..546021a2 --- /dev/null +++ b/src/app/features/full-text-reindex/components/full-text-reindex.component.html @@ -0,0 +1 @@ +

full-text-reindex works!

\ No newline at end of file diff --git a/src/app/features/full-text-reindex/components/full-text-reindex.component.ts b/src/app/features/full-text-reindex/components/full-text-reindex.component.ts new file mode 100644 index 00000000..8b2006fd --- /dev/null +++ b/src/app/features/full-text-reindex/components/full-text-reindex.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "full-text-reindex", + templateUrl: "./full-text-reindex.component.html", +}) +export class FullTextReindexComponent {} diff --git a/src/app/features/full-text-reindex/full-text-reindex-routing.module.ts b/src/app/features/full-text-reindex/full-text-reindex-routing.module.ts new file mode 100644 index 00000000..2a229307 --- /dev/null +++ b/src/app/features/full-text-reindex/full-text-reindex-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { FullTextReindexComponent } from "./components/full-text-reindex.component" + +export const FullTextReindexRoutes: Route[] = [ + { + path: '', + component: FullTextReindexComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(FullTextReindexRoutes)], + exports: [RouterModule], +}) +export class FullTextReindexRoutingModule { } \ No newline at end of file diff --git a/src/app/features/full-text-reindex/full-text-reindex.module.ts b/src/app/features/full-text-reindex/full-text-reindex.module.ts new file mode 100644 index 00000000..dbb0f571 --- /dev/null +++ b/src/app/features/full-text-reindex/full-text-reindex.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { FullTextReindexComponent } from "./components/full-text-reindex.component"; +import { FullTextReindexRoutingModule } from "../full-text-reindex/full-text-reindex-routing.module" +@NgModule({ + declarations: [FullTextReindexComponent], + imports: [CommonModule, FullTextReindexRoutingModule], +}) +export class FullTextReindexModule { } diff --git a/src/app/features/admin-home/components/admin-home.component.html b/src/app/features/home/components/home.component.html similarity index 56% rename from src/app/features/admin-home/components/admin-home.component.html rename to src/app/features/home/components/home.component.html index 654cdc2b..56336b48 100644 --- a/src/app/features/admin-home/components/admin-home.component.html +++ b/src/app/features/home/components/home.component.html @@ -1,8 +1,8 @@
- +
- +
\ No newline at end of file diff --git a/src/app/features/admin-home/components/admin-home.component.scss b/src/app/features/home/components/home.component.scss similarity index 100% rename from src/app/features/admin-home/components/admin-home.component.scss rename to src/app/features/home/components/home.component.scss diff --git a/src/app/features/home/components/home.component.spec.ts b/src/app/features/home/components/home.component.spec.ts new file mode 100644 index 00000000..122b3c60 --- /dev/null +++ b/src/app/features/home/components/home.component.spec.ts @@ -0,0 +1,33 @@ +import { RegistrationVersionComponent } from "./registration-version/registration-version.component"; +import { ProbesSummaryComponent } from "./probes-summary/probes-summary.component"; +import { HomeComponent } from "./home.component"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { MatCardModule } from "@angular/material/card"; +import { MatButtonModule } from "@angular/material/button"; + +describe("HomeComponent", () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ + HomeComponent, + ProbesSummaryComponent, + RegistrationVersionComponent, + ], + imports: [CommonModule, MatCardModule, MatButtonModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + }); + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/features/home/components/home.component.ts b/src/app/features/home/components/home.component.ts new file mode 100644 index 00000000..5fc51102 --- /dev/null +++ b/src/app/features/home/components/home.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "home", + templateUrl: "./home.component.html", + styleUrls: ["./home.component.scss"], +}) +export class HomeComponent {} diff --git a/src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.html b/src/app/features/home/components/probes-summary/probes-summary.component.html similarity index 100% rename from src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.html rename to src/app/features/home/components/probes-summary/probes-summary.component.html diff --git a/src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.scss b/src/app/features/home/components/probes-summary/probes-summary.component.scss similarity index 100% rename from src/app/features/admin-home/components/admin-probes-summary/admin-probes-summary.component.scss rename to src/app/features/home/components/probes-summary/probes-summary.component.scss diff --git a/src/app/features/home/components/probes-summary/probes-summary.component.spec.ts b/src/app/features/home/components/probes-summary/probes-summary.component.spec.ts new file mode 100644 index 00000000..43008c83 --- /dev/null +++ b/src/app/features/home/components/probes-summary/probes-summary.component.spec.ts @@ -0,0 +1,26 @@ +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { MatCardModule } from "@angular/material/card"; +import { ProbesSummaryComponent } from "./probes-summary.component"; + +describe("ProbesSummaryComponent", () => { + let component: ProbesSummaryComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ProbesSummaryComponent], + imports: [CommonModule, MatCardModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(ProbesSummaryComponent); + component = fixture.componentInstance; + }); + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/features/home/components/probes-summary/probes-summary.component.ts b/src/app/features/home/components/probes-summary/probes-summary.component.ts new file mode 100644 index 00000000..6167a814 --- /dev/null +++ b/src/app/features/home/components/probes-summary/probes-summary.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "probes-summary", + templateUrl: "./probes-summary.component.html", + styleUrls: ["./probes-summary.component.scss"], +}) +export class ProbesSummaryComponent {} diff --git a/src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.html b/src/app/features/home/components/registration-version/registration-version.component.html similarity index 100% rename from src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.html rename to src/app/features/home/components/registration-version/registration-version.component.html diff --git a/src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.scss b/src/app/features/home/components/registration-version/registration-version.component.scss similarity index 100% rename from src/app/features/admin-home/components/admin-registration-version/admin-registration-version.component.scss rename to src/app/features/home/components/registration-version/registration-version.component.scss diff --git a/src/app/features/home/components/registration-version/registration-version.component.spec.ts b/src/app/features/home/components/registration-version/registration-version.component.spec.ts new file mode 100644 index 00000000..181d704e --- /dev/null +++ b/src/app/features/home/components/registration-version/registration-version.component.spec.ts @@ -0,0 +1,26 @@ +import { RegistrationVersionComponent } from "./registration-version.component"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { MatCardModule } from "@angular/material/card"; + +describe("RegistrationVersionComponent", () => { + let component: RegistrationVersionComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [RegistrationVersionComponent], + imports: [CommonModule, MatCardModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(RegistrationVersionComponent); + component = fixture.componentInstance; + }); + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/features/home/components/registration-version/registration-version.component.ts b/src/app/features/home/components/registration-version/registration-version.component.ts new file mode 100644 index 00000000..6e2edc51 --- /dev/null +++ b/src/app/features/home/components/registration-version/registration-version.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "registration-version", + templateUrl: "./registration-version.component.html", + styleUrls: ["./registration-version.component.scss"], +}) +export class RegistrationVersionComponent {} diff --git a/src/app/features/home/home-routing.module.ts b/src/app/features/home/home-routing.module.ts new file mode 100644 index 00000000..0c25a16f --- /dev/null +++ b/src/app/features/home/home-routing.module.ts @@ -0,0 +1,16 @@ +import { HomeComponent } from './components/home.component'; +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +export const HomeRoutes: Route[] = [ + { + path: '', + component: HomeComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(HomeRoutes)], + exports: [RouterModule], +}) +export class HomeRoutingModule { } \ No newline at end of file diff --git a/src/app/features/home/home.module.ts b/src/app/features/home/home.module.ts new file mode 100644 index 00000000..4dd333f7 --- /dev/null +++ b/src/app/features/home/home.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { MatCardModule } from "@angular/material/card"; +import { MatButtonModule } from "@angular/material/button"; +import { HomeComponent } from "./components/home.component"; +import { ProbesSummaryComponent } from "./components/probes-summary/probes-summary.component"; +import { RegistrationVersionComponent } from "./components/registration-version/registration-version.component"; +import { HomeRoutingModule } from "./home-routing.module" +@NgModule({ + declarations: [ + HomeComponent, + ProbesSummaryComponent, + RegistrationVersionComponent, + ], + imports: [CommonModule, MatCardModule, MatButtonModule, HomeRoutingModule], +}) +export class HomeModule { } diff --git a/src/app/features/picture-render-generation/components/picture-render-generation.component.html b/src/app/features/picture-render-generation/components/picture-render-generation.component.html new file mode 100644 index 00000000..c6f33e26 --- /dev/null +++ b/src/app/features/picture-render-generation/components/picture-render-generation.component.html @@ -0,0 +1 @@ +

picture-render-generation works!

\ No newline at end of file diff --git a/src/app/features/picture-render-generation/components/picture-render-generation.component.ts b/src/app/features/picture-render-generation/components/picture-render-generation.component.ts new file mode 100644 index 00000000..96f33882 --- /dev/null +++ b/src/app/features/picture-render-generation/components/picture-render-generation.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "picture-render-generation", + templateUrl: "./picture-render-generation.component.html", +}) +export class PictureRenderGenerationComponent {} diff --git a/src/app/features/picture-render-generation/picture-render-generation-routing.module.ts b/src/app/features/picture-render-generation/picture-render-generation-routing.module.ts new file mode 100644 index 00000000..4770c16c --- /dev/null +++ b/src/app/features/picture-render-generation/picture-render-generation-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { PictureRenderGenerationComponent } from "./components/picture-render-generation.component" + +export const PictureRenderGenerationRoutes: Route[] = [ + { + path: '', + component: PictureRenderGenerationComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(PictureRenderGenerationRoutes)], + exports: [RouterModule], +}) +export class PictureRenderGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/picture-render-generation/picture-render-generation.module.ts b/src/app/features/picture-render-generation/picture-render-generation.module.ts new file mode 100644 index 00000000..e769c38a --- /dev/null +++ b/src/app/features/picture-render-generation/picture-render-generation.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { PictureRenderGenerationComponent } from "./components/picture-render-generation.component"; +import { PictureRenderGenerationRoutingModule } from "../picture-render-generation/picture-render-generation-routing.module" +@NgModule({ + declarations: [PictureRenderGenerationComponent], + imports: [CommonModule, PictureRenderGenerationRoutingModule], +}) +export class PictureRenderGenerationModule { } diff --git a/src/app/features/system-information/components/system-information.component.html b/src/app/features/system-information/components/system-information.component.html new file mode 100644 index 00000000..f26ebf7e --- /dev/null +++ b/src/app/features/system-information/components/system-information.component.html @@ -0,0 +1 @@ +

system-information works!

\ No newline at end of file diff --git a/src/app/features/system-information/components/system-information.component.ts b/src/app/features/system-information/components/system-information.component.ts new file mode 100644 index 00000000..eac38de1 --- /dev/null +++ b/src/app/features/system-information/components/system-information.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "system-information", + templateUrl: "./system-information.component.html", +}) +export class SystemInformationComponent {} diff --git a/src/app/features/system-information/system-information-routing.modules.ts b/src/app/features/system-information/system-information-routing.modules.ts new file mode 100644 index 00000000..45ba5dd1 --- /dev/null +++ b/src/app/features/system-information/system-information-routing.modules.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { SystemInformationComponent } from "./components/system-information.component" + +export const SystemInformationRoutes: Route[] = [ + { + path: '', + component: SystemInformationComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(SystemInformationRoutes)], + exports: [RouterModule], +}) +export class SystemInformationRoutingModule { } diff --git a/src/app/features/system-information/system-information.module.ts b/src/app/features/system-information/system-information.module.ts new file mode 100644 index 00000000..51c11f33 --- /dev/null +++ b/src/app/features/system-information/system-information.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { SystemInformationComponent } from "./components/system-information.component"; +import { SystemInformationRoutingModule } from "../system-information/system-information-routing.modules" +@NgModule({ + declarations: [SystemInformationComponent], + imports: [CommonModule, SystemInformationRoutingModule], +}) +export class SystemInformationModule { } diff --git a/src/app/features/thumbnail-generation/components/thumbnail-generation.component.html b/src/app/features/thumbnail-generation/components/thumbnail-generation.component.html new file mode 100644 index 00000000..550e302b --- /dev/null +++ b/src/app/features/thumbnail-generation/components/thumbnail-generation.component.html @@ -0,0 +1 @@ +

thumbnail-generation works!

\ No newline at end of file diff --git a/src/app/features/thumbnail-generation/components/thumbnail-generation.component.ts b/src/app/features/thumbnail-generation/components/thumbnail-generation.component.ts new file mode 100644 index 00000000..b830fe06 --- /dev/null +++ b/src/app/features/thumbnail-generation/components/thumbnail-generation.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "thumbnail-generation", + templateUrl: "./thumbnail-generation.component.html", +}) +export class ThumbnailGenerationComponent {} diff --git a/src/app/features/thumbnail-generation/thumbnail-generation-routing.module.ts b/src/app/features/thumbnail-generation/thumbnail-generation-routing.module.ts new file mode 100644 index 00000000..939dab29 --- /dev/null +++ b/src/app/features/thumbnail-generation/thumbnail-generation-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { ThumbnailGenerationComponent } from "./components/thumbnail-generation.component" + +export const ThumbnailGenerationRoutes: Route[] = [ + { + path: '', + component: ThumbnailGenerationComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(ThumbnailGenerationRoutes)], + exports: [RouterModule], +}) +export class ThumbnailGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/thumbnail-generation/thumbnail-generation.module.ts b/src/app/features/thumbnail-generation/thumbnail-generation.module.ts new file mode 100644 index 00000000..2d67e650 --- /dev/null +++ b/src/app/features/thumbnail-generation/thumbnail-generation.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { ThumbnailGenerationComponent } from "./components/thumbnail-generation.component"; +import { ThumbnailGenerationRoutingModule } from "../thumbnail-generation/thumbnail-generation-routing.module" +@NgModule({ + declarations: [ThumbnailGenerationComponent], + imports: [CommonModule, ThumbnailGenerationRoutingModule], +}) +export class ThumbnailGenerationModule { } diff --git a/src/app/features/video-render-generation/components/video-render-generation.component.html b/src/app/features/video-render-generation/components/video-render-generation.component.html new file mode 100644 index 00000000..0ed31ce0 --- /dev/null +++ b/src/app/features/video-render-generation/components/video-render-generation.component.html @@ -0,0 +1 @@ +

video-render-generation works!

\ No newline at end of file diff --git a/src/app/features/video-render-generation/components/video-render-generation.component.ts b/src/app/features/video-render-generation/components/video-render-generation.component.ts new file mode 100644 index 00000000..e29706e9 --- /dev/null +++ b/src/app/features/video-render-generation/components/video-render-generation.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "video-render-generation", + templateUrl: "./video-render-generation.component.html", +}) +export class VideoRenderGenerationComponent {} diff --git a/src/app/features/video-render-generation/video-render-generation-routing.module.ts b/src/app/features/video-render-generation/video-render-generation-routing.module.ts new file mode 100644 index 00000000..59a9a925 --- /dev/null +++ b/src/app/features/video-render-generation/video-render-generation-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { Route } from "@angular/router"; +import { VideoRenderGenerationComponent } from "./components/video-render-generation.component" + +export const VideoRenderGenerationRoutes: Route[] = [ + { + path: '', + component: VideoRenderGenerationComponent, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(VideoRenderGenerationRoutes)], + exports: [RouterModule], +}) +export class VideoRenderGenerationRoutingModule { } \ No newline at end of file diff --git a/src/app/features/video-render-generation/video-render-generation.module.ts b/src/app/features/video-render-generation/video-render-generation.module.ts new file mode 100644 index 00000000..0dce297c --- /dev/null +++ b/src/app/features/video-render-generation/video-render-generation.module.ts @@ -0,0 +1,9 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { VideoRenderGenerationComponent } from "./components/video-render-generation.component"; +import { VideoRenderGenerationRoutingModule } from "../video-render-generation/video-render-generation-routing.module" +@NgModule({ + declarations: [VideoRenderGenerationComponent], + imports: [CommonModule, VideoRenderGenerationRoutingModule], +}) +export class VideoRenderGenerationModule { } diff --git a/src/app/features/admin-warning/admin-warning.component.html b/src/app/features/warning/warning.component.html similarity index 59% rename from src/app/features/admin-warning/admin-warning.component.html rename to src/app/features/warning/warning.component.html index d41aa245..935c4e22 100644 --- a/src/app/features/admin-warning/admin-warning.component.html +++ b/src/app/features/warning/warning.component.html @@ -1,9 +1,9 @@ - + - Advanced Administration Options + Advanced Administration Options - + This application provides access to advanced tools that can significantly impact the performance of your instance if not used carefully. @@ -14,11 +14,11 @@ -
- Do not warn me again +
+ Do not warn me again
-
+
diff --git a/src/app/features/admin-warning/admin-warning.component.scss b/src/app/features/warning/warning.component.scss similarity index 91% rename from src/app/features/admin-warning/admin-warning.component.scss rename to src/app/features/warning/warning.component.scss index cc78761c..5423a392 100644 --- a/src/app/features/admin-warning/admin-warning.component.scss +++ b/src/app/features/warning/warning.component.scss @@ -1,4 +1,4 @@ -.admin-warning-dialog { +.warning-dialog { width: 564px; &__title { font-style: normal; @@ -39,7 +39,7 @@ :host ::ng-deep hy-dialog-box-footer - .admin-warning-dialog__checkbox-container + .warning-dialog__checkbox-container .mdc-form-field .mdc-label { padding-top: 6px; diff --git a/src/app/features/warning/warning.component.spec.ts b/src/app/features/warning/warning.component.spec.ts new file mode 100644 index 00000000..a29179e7 --- /dev/null +++ b/src/app/features/warning/warning.component.spec.ts @@ -0,0 +1,93 @@ +import { MatCheckboxModule } from "@angular/material/checkbox"; +import { HyDialogBoxModule } from "@hyland/ui"; +import { MatDialogModule } from "@angular/material/dialog"; +import { WarningComponent } from "./warning.component"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { EventEmitter } from "@angular/core"; +import { PersistenceService } from "../../shared/services/persistence.service"; +import { CommonService } from "../../shared/services/common.service"; + +describe("WarningComponent", () => { + let component: WarningComponent; + let fixture: ComponentFixture; + class persistenceServiceStub { + get() { + return null; + } + set() {} + } + + class commonServiceStub { + loadApp = new EventEmitter(); + } + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [WarningComponent], + imports: [ + CommonModule, + MatDialogModule, + HyDialogBoxModule, + MatCheckboxModule, + ], + providers: [ + { provide: ComponentFixtureAutoDetect, useValue: true }, + { provide: PersistenceService, useClass: persistenceServiceStub }, + { provide: CommonService, useClass: commonServiceStub }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(WarningComponent); + component = fixture.componentInstance; + }); + + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); + + it("should initialise the doNotWarn field based on preference saved", () => { + const persistenceServiceGetSpy = spyOn(component.persistenceService, "get"); + persistenceServiceGetSpy.and.returnValue(null); + component.ngOnInit(); + expect(component.doNotWarn).toBe(false); + persistenceServiceGetSpy.and.returnValue("true"); + component.ngOnInit(); + expect(component.doNotWarn).toBe(true); + }); + + describe("should test confirm click actions", () => { + let persistenceServiceSetSpy: jasmine.Spy; + let commonServiceLoadAppEmitSpy: jasmine.Spy; + beforeEach(() => { + persistenceServiceSetSpy = spyOn(component.persistenceService, "set"); + commonServiceLoadAppEmitSpy = spyOn( + component.commonService.loadApp, + "emit" + ); + }); + + it("should set preference as true & close dialog & emit loadApp=true, when doNotWarn field is checked", () => { + component.doNotWarn = true; + spyOn(component.dialogService, "closeAll"); + component.onConfirm(); + expect(persistenceServiceSetSpy).toHaveBeenCalledWith( + "doNotWarn", + "true" + ); + expect(commonServiceLoadAppEmitSpy).toHaveBeenCalledWith(true); + expect(component.dialogService.closeAll).toHaveBeenCalled(); + }); + it("should not set preference & close dialog & emit loadApp=true, when doNotWarn field is unchecked", () => { + component.doNotWarn = false; + spyOn(component.dialogService, "closeAll"); + component.onConfirm(); + expect(commonServiceLoadAppEmitSpy).toHaveBeenCalledWith(true); + expect(component.dialogService.closeAll).toHaveBeenCalled(); + }); + }); +}); diff --git a/src/app/features/admin-warning/admin-warning.component.ts b/src/app/features/warning/warning.component.ts similarity index 53% rename from src/app/features/admin-warning/admin-warning.component.ts rename to src/app/features/warning/warning.component.ts index 67cf57b4..251f98a8 100644 --- a/src/app/features/admin-warning/admin-warning.component.ts +++ b/src/app/features/warning/warning.component.ts @@ -1,20 +1,22 @@ import { Component, OnInit } from "@angular/core"; import { MatDialog } from "@angular/material/dialog"; import { PersistenceService } from "../../shared/services/persistence.service"; -import { AdminCommonService } from "../../shared/services/admin-common.service"; +import { CommonService } from "../../shared/services/common.service"; +import { HyKeyboardFocusService } from "@hyland/ui/keyboard-focus"; @Component({ - selector: "admin-warning", - templateUrl: "./admin-warning.component.html", - styleUrls: ["./admin-warning.component.scss"], + selector: "warning", + templateUrl: "./warning.component.html", + styleUrls: ["./warning.component.scss"], }) -export class AdminWarningComponent implements OnInit { +export class WarningComponent implements OnInit { public doNotWarn: boolean = false; constructor( - private dialogService: MatDialog, - private persistenceService: PersistenceService, - private adminCommonService: AdminCommonService + public dialogService: MatDialog, + public persistenceService: PersistenceService, + public commonService: CommonService, + private _hyKeyboardFocusService: HyKeyboardFocusService ) {} ngOnInit(): void { @@ -27,7 +29,7 @@ export class AdminWarningComponent implements OnInit { this.persistenceService.set("doNotWarn", "true"); } this.closeDialog(); - this.adminCommonService.loadApp.emit(true); + this.commonService.loadApp.emit(true); } closeDialog(): void { diff --git a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.html b/src/app/layouts/admin-base-layout/components/admin-base-layout.component.html deleted file mode 100644 index a1a4bcd8..00000000 --- a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.html +++ /dev/null @@ -1,13 +0,0 @@ -
-
- -
-
-
- -
-
- -
-
-
\ No newline at end of file diff --git a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.ts b/src/app/layouts/admin-base-layout/components/admin-base-layout.component.ts deleted file mode 100644 index fbe091ba..00000000 --- a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-base-layout", - templateUrl: "./admin-base-layout.component.html", - styleUrls: ["./admin-base-layout.component.scss"], -}) -export class AdminBaseLayoutComponent {} diff --git a/src/app/layouts/admin-header/admin-header.component.html b/src/app/layouts/admin-header/admin-header.component.html deleted file mode 100644 index c344a9be..00000000 --- a/src/app/layouts/admin-header/admin-header.component.html +++ /dev/null @@ -1,13 +0,0 @@ - -
- - Admin Console -
- - - -
\ No newline at end of file diff --git a/src/app/layouts/admin-header/admin-header.component.ts b/src/app/layouts/admin-header/admin-header.component.ts deleted file mode 100644 index 72673edd..00000000 --- a/src/app/layouts/admin-header/admin-header.component.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "admin-header", - templateUrl: "./admin-header.component.html", - styleUrls: ["./admin-header.component.scss"], -}) -export class AdminHeaderComponent {} diff --git a/src/app/layouts/admin-menu/admin-menu.component.html b/src/app/layouts/admin-menu/admin-menu.component.html deleted file mode 100644 index f1661b77..00000000 --- a/src/app/layouts/admin-menu/admin-menu.component.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - {{ item.name }} - - - diff --git a/src/app/layouts/admin-menu/admin-menu.component.ts b/src/app/layouts/admin-menu/admin-menu.component.ts deleted file mode 100644 index 92c2d666..00000000 --- a/src/app/layouts/admin-menu/admin-menu.component.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Component } from "@angular/core"; -import { ADMIN_MENU, AdminMenu } from "./admin-menu.constants"; -@Component({ - selector: "admin-menu", - templateUrl: "./admin-menu.component.html", - styleUrls: ['./admin-menu.component.scss'] -}) -export class AdminMenuComponent { - adminMenu: AdminMenu[] = ADMIN_MENU; - menuItemSelected(id: number): void { - this.adminMenu = this.adminMenu.map(menu => ({ - ...menu, - isSelected: menu.id === id - })); - } -} \ No newline at end of file diff --git a/src/app/layouts/admin-base-layout/admin-base-layout.module.ts b/src/app/layouts/base-layout/base-layout.module.ts similarity index 84% rename from src/app/layouts/admin-base-layout/admin-base-layout.module.ts rename to src/app/layouts/base-layout/base-layout.module.ts index 26643b5a..4ba69b35 100644 --- a/src/app/layouts/admin-base-layout/admin-base-layout.module.ts +++ b/src/app/layouts/base-layout/base-layout.module.ts @@ -6,4 +6,4 @@ import { RouterModule } from "@angular/router"; declarations: [], imports: [CommonModule, RouterModule], }) -export class AdminBaseLayoutModule {} +export class BaseLayoutModule {} diff --git a/src/app/layouts/base-layout/components/base-layout.component.html b/src/app/layouts/base-layout/components/base-layout.component.html new file mode 100644 index 00000000..24087057 --- /dev/null +++ b/src/app/layouts/base-layout/components/base-layout.component.html @@ -0,0 +1,13 @@ +
+
+ +
+
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.scss b/src/app/layouts/base-layout/components/base-layout.component.scss similarity index 90% rename from src/app/layouts/admin-base-layout/components/admin-base-layout.component.scss rename to src/app/layouts/base-layout/components/base-layout.component.scss index bd58d30e..6020c635 100644 --- a/src/app/layouts/admin-base-layout/components/admin-base-layout.component.scss +++ b/src/app/layouts/base-layout/components/base-layout.component.scss @@ -1,4 +1,4 @@ -.admin-base-container { +.base-container { display: flex; flex-direction: column; width: 100vw; diff --git a/src/app/layouts/base-layout/components/base-layout.component.spec.ts b/src/app/layouts/base-layout/components/base-layout.component.spec.ts new file mode 100644 index 00000000..dcdd1727 --- /dev/null +++ b/src/app/layouts/base-layout/components/base-layout.component.spec.ts @@ -0,0 +1,35 @@ +import { MatListModule } from '@angular/material/list'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { RouterModule } from '@angular/router'; +import { MenuBarComponent } from "../../menu-bar/menu-bar.component"; +import { HeaderBarComponent } from "../../header-bar/header-bar.component"; +import { BaseLayoutComponent } from "./base-layout.component"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; + +describe("BaseLayoutComponent", () => { + let component: BaseLayoutComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ + BaseLayoutComponent, + HeaderBarComponent, + MenuBarComponent, + ], + imports: [CommonModule, RouterModule, MatToolbarModule, MatListModule, MatSidenavModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(BaseLayoutComponent); + component = fixture.componentInstance; + }); + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/layouts/base-layout/components/base-layout.component.ts b/src/app/layouts/base-layout/components/base-layout.component.ts new file mode 100644 index 00000000..f58a2205 --- /dev/null +++ b/src/app/layouts/base-layout/components/base-layout.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "base-layout", + templateUrl: "./base-layout.component.html", + styleUrls: ["./base-layout.component.scss"], +}) +export class BaseLayoutComponent {} diff --git a/src/app/layouts/header-bar/header-bar.component.html b/src/app/layouts/header-bar/header-bar.component.html new file mode 100644 index 00000000..2532835f --- /dev/null +++ b/src/app/layouts/header-bar/header-bar.component.html @@ -0,0 +1,13 @@ + +
+ + Admin Console +
+ + + +
\ No newline at end of file diff --git a/src/app/layouts/admin-header/admin-header.component.scss b/src/app/layouts/header-bar/header-bar.component.scss similarity index 90% rename from src/app/layouts/admin-header/admin-header.component.scss rename to src/app/layouts/header-bar/header-bar.component.scss index af7a9f54..ac7729df 100644 --- a/src/app/layouts/admin-header/admin-header.component.scss +++ b/src/app/layouts/header-bar/header-bar.component.scss @@ -1,4 +1,4 @@ -.admin-header { +.header-bar { background-color: #fff; &__spacer { flex: 1 1 auto; @@ -16,6 +16,7 @@ outline: 0; background-color: transparent; cursor: default; + --mat-mdc-focus-indicator-display: none; } img { width: 112px; diff --git a/src/app/layouts/header-bar/header-bar.component.spec.ts b/src/app/layouts/header-bar/header-bar.component.spec.ts new file mode 100644 index 00000000..e342238a --- /dev/null +++ b/src/app/layouts/header-bar/header-bar.component.spec.ts @@ -0,0 +1,26 @@ +import { HeaderBarComponent } from "./header-bar.component"; +import { MatToolbarModule } from "@angular/material/toolbar"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; + +describe("HeaderBarComponent", () => { + let component: HeaderBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [HeaderBarComponent], + imports: [CommonModule, MatToolbarModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(HeaderBarComponent); + component = fixture.componentInstance; + }); + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/layouts/header-bar/header-bar.component.ts b/src/app/layouts/header-bar/header-bar.component.ts new file mode 100644 index 00000000..858a3621 --- /dev/null +++ b/src/app/layouts/header-bar/header-bar.component.ts @@ -0,0 +1,8 @@ +import { Component } from "@angular/core"; + +@Component({ + selector: "header-bar", + templateUrl: "./header-bar.component.html", + styleUrls: ["./header-bar.component.scss"], +}) +export class HeaderBarComponent {} diff --git a/src/app/layouts/menu-bar/menu-bar.component.html b/src/app/layouts/menu-bar/menu-bar.component.html new file mode 100644 index 00000000..851ac3df --- /dev/null +++ b/src/app/layouts/menu-bar/menu-bar.component.html @@ -0,0 +1,24 @@ + + + + + + {{ item.name }} + + \ No newline at end of file diff --git a/src/app/layouts/admin-menu/admin-menu.component.scss b/src/app/layouts/menu-bar/menu-bar.component.scss similarity index 91% rename from src/app/layouts/admin-menu/admin-menu.component.scss rename to src/app/layouts/menu-bar/menu-bar.component.scss index 30c39386..e239edd5 100644 --- a/src/app/layouts/admin-menu/admin-menu.component.scss +++ b/src/app/layouts/menu-bar/menu-bar.component.scss @@ -1,7 +1,7 @@ $sidenav-list-item-selected-bg-color: #000000; $selected-line-bg-color: #0C6BD4; -.admin-menu { +.menu-bar { height: 100%; background-color: #212121; padding-top: 24px; @@ -15,7 +15,7 @@ $selected-line-bg-color: #0C6BD4; &:focus { background-color: $sidenav-list-item-selected-bg-color; - .admin-menu__line { + .menu-bar__line { background-color: $selected-line-bg-color; } } @@ -23,12 +23,12 @@ $selected-line-bg-color: #0C6BD4; &--selected { background-color: $sidenav-list-item-selected-bg-color; - .admin-menu__list-item-content { + .menu-bar__list-item-content { font-weight: bold; font-size: 13px; } - .admin-menu__line { + .menu-bar__line { background-color: $selected-line-bg-color; } } diff --git a/src/app/layouts/menu-bar/menu-bar.component.spec.ts b/src/app/layouts/menu-bar/menu-bar.component.spec.ts new file mode 100644 index 00000000..8af363c7 --- /dev/null +++ b/src/app/layouts/menu-bar/menu-bar.component.spec.ts @@ -0,0 +1,42 @@ +import { MatListModule } from "@angular/material/list"; +import { MenuBarComponent } from "./menu-bar.component"; +import { MatToolbarModule } from "@angular/material/toolbar"; +import { + ComponentFixture, + ComponentFixtureAutoDetect, + TestBed, +} from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; + +describe("MenuBarComponent", () => { + let component: MenuBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [MenuBarComponent], + imports: [CommonModule, MatToolbarModule, MatListModule], + providers: [{ provide: ComponentFixtureAutoDetect, useValue: true }], + }).compileComponents(); + fixture = TestBed.createComponent(MenuBarComponent); + component = fixture.componentInstance; + }); + + it("should test if component is created", () => { + expect(component).toBeTruthy(); + }); + + it("should set the spcific menu item state as selected on click", () => { + component.menu = [ + { id: 0, name: "Home", path: "home", isSelected: true }, + { + id: 1, + name: "System Information", + path: "system-information", + isSelected: false, + }, + ]; + component.menuItemSelected(1); + expect(component.menu[1].isSelected).toBe(true); + }); +}); diff --git a/src/app/layouts/menu-bar/menu-bar.component.ts b/src/app/layouts/menu-bar/menu-bar.component.ts new file mode 100644 index 00000000..91d0a492 --- /dev/null +++ b/src/app/layouts/menu-bar/menu-bar.component.ts @@ -0,0 +1,16 @@ +import { Component } from "@angular/core"; +import { ADMIN_MENU, Menu } from "./menu-bar.constants"; +@Component({ + selector: "menu-bar", + templateUrl: "./menu-bar.component.html", + styleUrls: ['./menu-bar.component.scss'] +}) +export class MenuBarComponent { + menu: Menu[] = ADMIN_MENU; + menuItemSelected(id: number): void { + this.menu = this.menu.map(item => ({ + ...item, + isSelected: item.id === id + })); + } +} \ No newline at end of file diff --git a/src/app/layouts/admin-menu/admin-menu.constants.ts b/src/app/layouts/menu-bar/menu-bar.constants.ts similarity index 92% rename from src/app/layouts/admin-menu/admin-menu.constants.ts rename to src/app/layouts/menu-bar/menu-bar.constants.ts index 5a81cad4..a558c7e2 100644 --- a/src/app/layouts/admin-menu/admin-menu.constants.ts +++ b/src/app/layouts/menu-bar/menu-bar.constants.ts @@ -1,11 +1,11 @@ -export interface AdminMenu { +export interface Menu { id: number; name: string; path: string | null; isSelected: boolean; } -export const ADMIN_MENU: AdminMenu[] = [ +export const ADMIN_MENU: Menu[] = [ { id: 0, name: 'Home', path: "", isSelected: false }, { id: 1, name: 'System Information', path: "system-information", isSelected: false }, { id: 2, name: 'Bulk Action Monitoring', path: "bulk-action-monitoring", isSelected: false }, diff --git a/src/app/shared/services/common.service.spec.ts b/src/app/shared/services/common.service.spec.ts new file mode 100644 index 00000000..17a2f328 --- /dev/null +++ b/src/app/shared/services/common.service.spec.ts @@ -0,0 +1,20 @@ +import { CommonService } from "./common.service"; +import { TestBed } from "@angular/core/testing"; +import { EventEmitter } from "@angular/core"; + +describe("CommonService", () => { + let service: CommonService; + + beforeEach(() => { + TestBed.configureTestingModule({ providers: [CommonService] }); + service = TestBed.inject(CommonService); + }); + + it("should test if service is created", () => { + expect(service).toBeTruthy(); + }); + + it("should test if loadApp is initialised", () => { + expect(service.loadApp).toBeInstanceOf(EventEmitter); + }); +}); diff --git a/src/app/shared/services/admin-common.service.ts b/src/app/shared/services/common.service.ts similarity index 80% rename from src/app/shared/services/admin-common.service.ts rename to src/app/shared/services/common.service.ts index 0b58cf9d..a52b7118 100644 --- a/src/app/shared/services/admin-common.service.ts +++ b/src/app/shared/services/common.service.ts @@ -3,6 +3,6 @@ import { EventEmitter, Injectable } from "@angular/core"; @Injectable({ providedIn: "root", }) -export class AdminCommonService { +export class CommonService { loadApp = new EventEmitter(); } diff --git a/src/app/shared/services/persistence.service.spec.ts b/src/app/shared/services/persistence.service.spec.ts new file mode 100644 index 00000000..e48b73dd --- /dev/null +++ b/src/app/shared/services/persistence.service.spec.ts @@ -0,0 +1,54 @@ +import { PersistenceService } from "./persistence.service"; +import { TestBed } from "@angular/core/testing"; + +describe("PersistenceService", () => { + let service: PersistenceService; + let getItemSpy: jasmine.Spy; + + beforeEach(() => { + TestBed.configureTestingModule({ providers: [PersistenceService] }); + service = TestBed.inject(PersistenceService); + }); + + it("should test if service is created", () => { + expect(service).toBeTruthy(); + }); + + describe("should test getting & setting of key value pair in localstorage", () => { + beforeEach(() => { + let store: { [key: string]: any } = {}; + const mockLocalStorage = { + getItem: (key: string): string => { + return key in store ? store[key] : null; + }, + setItem: (key: string, value: string) => { + store[key] = `${value}`; + }, + removeItem: (key: string) => { + delete store[key]; + }, + }; + spyOn(localStorage, "getItem").and.callFake(mockLocalStorage.getItem); + spyOn(localStorage, "setItem").and.callFake(mockLocalStorage.setItem); + spyOn(localStorage, "removeItem").and.callFake( + mockLocalStorage.removeItem + ); + }); + it("should set key-value pair in localstorage successfully, if there is no error", () => { + service.set("doNotWarn", "true"); + expect(localStorage.getItem("doNotWarn")).toBe('"true"'); + }); + + it("should not set key-value pair in localstorage, if there is error", () => { + spyOn(service, "set").and.callFake(() => { + throw new Error(""); + }); + expect(localStorage.getItem("doNotWarn")).toBe(null); + }); + + it("should not return value if getting key-value pair from localstorage thorws an error", () => { + localStorage.removeItem("doNotWarn"); + expect(service.get("doNotWarn")).toBe(null); + }); + }); +}); diff --git a/src/app/shared/types/adminUser.interface.ts b/src/app/shared/types/user.interface.ts similarity index 80% rename from src/app/shared/types/adminUser.interface.ts rename to src/app/shared/types/user.interface.ts index 222099e9..2b8ae156 100644 --- a/src/app/shared/types/adminUser.interface.ts +++ b/src/app/shared/types/user.interface.ts @@ -1,4 +1,4 @@ -export interface AdminUserInterface { +export interface UserInterface { // demo model need to be replaced email: string; token: string; diff --git a/src/index.html b/src/index.html index 7f070740..9bd2c9da 100644 --- a/src/index.html +++ b/src/index.html @@ -16,7 +16,7 @@ - + \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 1f8538a4..709bcd91 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,5 +28,7 @@ "strictInputAccessModifiers": true, "strictTemplates": true }, - "include": ["src/main.ts", "src/polyfills.ts"] + "include": ["src/main.ts", "src/polyfills.ts"], + "files": ["src/polyfills.ts"], + "styles": ["src/styles.scss"] }