diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard-routing.module.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard-routing.module.ts index 447a1fe39a..778815e1fb 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard-routing.module.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard-routing.module.ts @@ -2,8 +2,8 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service'; -import { AuthenticatedGuard } from "../../core/auth/authenticated.guard"; -import { AdminNotifyDashboardComponent } from "./admin-notify-dashboard.component"; +import { AuthenticatedGuard } from '../../core/auth/authenticated.guard'; +import { AdminNotifyDashboardComponent } from './admin-notify-dashboard.component'; @NgModule({ imports: [ diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.spec.ts index 4df980e1df..c5afaa3b59 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.spec.ts @@ -1,6 +1,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AdminNotifyDashboardComponent } from './admin-notify-dashboard.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; describe('AdminNotifyDashboardComponent', () => { let component: AdminNotifyDashboardComponent; @@ -8,6 +10,7 @@ describe('AdminNotifyDashboardComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot(), NgbNavModule], declarations: [ AdminNotifyDashboardComponent ] }) .compileComponents(); diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts index 7959d9917f..56f5091969 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.component.ts @@ -1,10 +1,47 @@ -import { Component } from '@angular/core'; +import { Component, Inject, OnInit } from '@angular/core'; +import { SearchConfigurationService } from "../../core/shared/search/search-configuration.service"; +import { SearchService } from "../../core/shared/search/search.service"; +import { PaginatedSearchOptions } from "../../shared/search/models/paginated-search-options.model"; +import { SEARCH_CONFIG_SERVICE } from "../../my-dspace-page/my-dspace-page.component"; +import { PaginationComponentOptions } from "../../shared/pagination/pagination-component-options.model"; +import { SearchFilterConfig } from "../../shared/search/models/search-filter-config.model"; @Component({ selector: 'ds-admin-notify-dashboard', templateUrl: './admin-notify-dashboard.component.html', - styleUrls: ['./admin-notify-dashboard.component.scss'] + styleUrls: ['./admin-notify-dashboard.component.scss'], + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] }) -export class AdminNotifyDashboardComponent { +export class AdminNotifyDashboardComponent implements OnInit{ + mockFilterConfig : SearchFilterConfig = Object.assign(new SearchFilterConfig(), { + type: { + value: "discovery-filter" + }, + pageSize: 10, + name: "author", + filterType: "text", + _links: { + self: { + href: "https://dspace-coar.4science.cloud/server/api/discover/facets/author" + } + } + }); + mockPaginatedSearchOptions = new PaginatedSearchOptions({ + pagination: Object.assign(new PaginationComponentOptions(), { id: 'page-id', currentPage: 1, pageSize: 20 }), + configuration: '', + }); + + constructor(private searchService: SearchService, + @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, + ) {} + + ngOnInit() { + this.searchService.getFacetValuesFor(this.mockFilterConfig, 1, this.mockPaginatedSearchOptions).subscribe(c => console.log(c)) + } } diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts index 0074d13ce0..ec6d63d8e1 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-dashboard.module.ts @@ -1,18 +1,19 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; -import { SharedModule } from '../../shared/shared.module'; -import { AdminNotifyDashboardComponent } from "./admin-notify-dashboard.component"; -import { AdminNotifyDashboardRoutingModule } from "./admin-notify-dashboard-routing.module"; +import { AdminNotifyDashboardComponent } from './admin-notify-dashboard.component'; +import { AdminNotifyDashboardRoutingModule } from './admin-notify-dashboard-routing.module'; import { AdminNotifyMetricsComponent } from './admin-notify-metrics/admin-notify-metrics.component'; import { AdminNotifyLogsComponent } from './admin-notify-logs/admin-notify-logs.component'; +import { SharedModule } from '../../shared/shared.module'; + @NgModule({ imports: [ CommonModule, - SharedModule, RouterModule, - AdminNotifyDashboardRoutingModule, + SharedModule, + AdminNotifyDashboardRoutingModule ], declarations: [ AdminNotifyDashboardComponent, diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs.component.spec.ts index 12a0feae64..b1f89a4f76 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs.component.spec.ts @@ -1,6 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AdminNotifyLogsComponent } from './admin-notify-logs.component'; +import { TranslateModule } from '@ngx-translate/core'; describe('AdminNotifyLogsComponent', () => { let component: AdminNotifyLogsComponent; @@ -8,6 +9,7 @@ describe('AdminNotifyLogsComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], declarations: [ AdminNotifyLogsComponent ] }) .compileComponents(); diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.html b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.html index f4e0e45279..c3ba6364dc 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.html +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.html @@ -1,11 +1,9 @@ -
-
-
-
- -
0
-
{{ box.title | translate }}
-
+
+
{{ row.title | translate }}
+
+
+
+ diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.spec.ts index 10e256a701..bf3a86ec2e 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.spec.ts @@ -1,6 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AdminNotifyMetricsComponent } from './admin-notify-metrics.component'; +import { TranslateModule } from '@ngx-translate/core'; describe('AdminNotifyMetricsComponent', () => { let component: AdminNotifyMetricsComponent; @@ -8,6 +9,7 @@ describe('AdminNotifyMetricsComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], declarations: [ AdminNotifyMetricsComponent ] }) .compileComponents(); diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts index d1d7ca4bd5..bea0f654ec 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.component.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; -import { AdminNotifyMetricsRow } from "./admin-notify-metrics.model"; -import { AdminNotifyMetricsRowsConfig } from "./admin-notify-metrics.config"; +import { AdminNotifyMetricsRow } from './admin-notify-metrics.model'; +import { AdminNotifyMetricsRowsConfig } from './admin-notify-metrics.config'; @Component({ selector: 'ds-admin-notify-metrics', diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts index 7880e78ebf..6406f91d0b 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.config.ts @@ -1,33 +1,29 @@ -import { AdminNotifyMetricsRow } from "./admin-notify-metrics.model"; +import { AdminNotifyMetricsRow } from './admin-notify-metrics.model'; export const AdminNotifyMetricsRowsConfig: AdminNotifyMetricsRow[] = [ { title: 'Number of received LDN', boxes: [ { - color: 'blue', + color: '#B8DAFF', title: 'Accepted', - index: 0 }, { - color: 'green', + color: '#D4EDDA', title: 'Processed LDN', - index: 1 }, { - color: 'red', + color: '#FDBBC7', title: 'Failure', - index: 2 }, { - color: 'red', + color: '#FDBBC7', title: 'Untrusted', - index: 3 }, { - color: 'grey', + color: '#43515F', title: 'Incoming LDM messages', - index: 4 + textColor: '#fff' }, ] }, @@ -35,30 +31,26 @@ export const AdminNotifyMetricsRowsConfig: AdminNotifyMetricsRow[] = [ title: 'Number of generated LDN', boxes: [ { - color: 'green', + color: '#D4EDDA', title: 'Delivered', - index: 0 }, { - color: 'blue', + color: '#B8DAFF', title: 'Queued', - index: 1 }, { - color: 'yellow', + color: '#FDEEBB', title: 'Queued for retry', - index: 2 }, { - color: 'red', + color: '#FDBBC7', title: 'Failure', - index: 3 }, { - color: 'grey', + color: '#43515F', title: 'Outgoing LDM messages', - index: 4 + textColor: '#fff' }, ] } -] +]; diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts index 3b47deffa1..6fb673575c 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model.ts @@ -1,7 +1,8 @@ export interface AdminNotifyMetricsBox { color: string; + textColor?: string; title: string; - index: number + count?: number } export interface AdminNotifyMetricsRow { diff --git a/src/app/admin/admin-routing.module.ts b/src/app/admin/admin-routing.module.ts index e30a5b20fb..801b698d56 100644 --- a/src/app/admin/admin-routing.module.ts +++ b/src/app/admin/admin-routing.module.ts @@ -13,7 +13,6 @@ import { NOTIFY_DASHBOARD_MODULE_PATH } from './admin-routing-paths'; import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component'; -import { AdminNotifyDashboardComponent } from "./admin-notify-dashboard/admin-notify-dashboard.component"; @NgModule({ imports: [ diff --git a/src/app/shared/notification-box/notification-box.component.html b/src/app/shared/notification-box/notification-box.component.html new file mode 100644 index 0000000000..1c83717f96 --- /dev/null +++ b/src/app/shared/notification-box/notification-box.component.html @@ -0,0 +1,6 @@ +
+
+
{{ boxConfig.count ?? 0 }}
+
{{ boxConfig.title | translate }}
+
+
diff --git a/src/app/shared/notification-box/notification-box.component.scss b/src/app/shared/notification-box/notification-box.component.scss new file mode 100644 index 0000000000..9813f4aa7a --- /dev/null +++ b/src/app/shared/notification-box/notification-box.component.scss @@ -0,0 +1,7 @@ +.box-container { + min-width: max-content; +} +.box-counter { + font-size: calc(var(--bs-font-size-lg) * 1.5); +} + diff --git a/src/app/shared/notification-box/notification-box.component.spec.ts b/src/app/shared/notification-box/notification-box.component.spec.ts new file mode 100644 index 0000000000..2e4346dba6 --- /dev/null +++ b/src/app/shared/notification-box/notification-box.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NotificationBoxComponent } from './notification-box.component'; + +describe('NotificationBoxComponent', () => { + let component: NotificationBoxComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ NotificationBoxComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(NotificationBoxComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/notification-box/notification-box.component.ts b/src/app/shared/notification-box/notification-box.component.ts new file mode 100644 index 0000000000..fc28620cc2 --- /dev/null +++ b/src/app/shared/notification-box/notification-box.component.ts @@ -0,0 +1,13 @@ +import { Component, Input } from '@angular/core'; +import { + AdminNotifyMetricsBox +} from "../../admin/admin-notify-dashboard/admin-notify-metrics/admin-notify-metrics.model"; + +@Component({ + selector: 'ds-notification-box', + templateUrl: './notification-box.component.html', + styleUrls: ['./notification-box.component.scss'] +}) +export class NotificationBoxComponent { + @Input() boxConfig: AdminNotifyMetricsBox; +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 7f59016f8c..61482fb61a 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -285,6 +285,7 @@ import { NgxPaginationModule } from 'ngx-pagination'; import { SplitPipe } from './utils/split.pipe'; import { ThemedUserMenuComponent } from './auth-nav-menu/user-menu/themed-user-menu.component'; import { ThemedLangSwitchComponent } from './lang-switch/themed-lang-switch.component'; +import { NotificationBoxComponent } from './notification-box/notification-box.component'; const MODULES = [ CommonModule, @@ -469,7 +470,8 @@ const ENTRY_COMPONENTS = [ AdvancedClaimedTaskActionRatingComponent, EpersonGroupListComponent, EpersonSearchBoxComponent, - GroupSearchBoxComponent + GroupSearchBoxComponent, + NotificationBoxComponent ]; const PROVIDERS = [