diff --git a/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts b/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts index d7cbf846e4..f524cd56c2 100644 --- a/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts +++ b/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts @@ -4,11 +4,7 @@ import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/r /** * Interface for the route parameters. */ -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts export interface NotificationsSuggestionTargetsPageParams { -======== -export interface AdminNotificationsPublicationClaimPageParams { ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts pageId?: string; pageSize?: number; currentPage?: number; @@ -18,11 +14,7 @@ export interface AdminNotificationsPublicationClaimPageParams { * This class represents a resolver that retrieve the route data before the route is activated. */ @Injectable() -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts export class NotificationsSuggestionTargetsPageResolver implements Resolve { -======== -export class AdminNotificationsPublicationClaimPageResolver implements Resolve { ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts /** * Method for resolving the parameters in the current route. @@ -30,11 +22,7 @@ export class AdminNotificationsPublicationClaimPageResolver implements Resolve>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts return { pageId: route.queryParams.pageId, pageSize: parseInt(route.queryParams.pageSize, 10), diff --git a/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts b/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts index 6061bda063..cec8ddc00b 100644 --- a/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts +++ b/src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts @@ -1,23 +1,15 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts -import { NotificationsSuggestionTargetsPageComponent } from './notifications-suggestion-targets-page.component'; -======== -import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page.component'; ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts import { NO_ERRORS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; +import { + NotificationsSuggestionTargetsPageComponent +} from '../../../quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component'; -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts describe('NotificationsSuggestionTargetsPageComponent', () => { let component: NotificationsSuggestionTargetsPageComponent; let fixture: ComponentFixture; -======== -describe('AdminNotificationsPublicationClaimPageComponent', () => { - let component: AdminNotificationsPublicationClaimPageComponent; - let fixture: ComponentFixture; ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts beforeEach(async(() => { TestBed.configureTestingModule({ @@ -26,17 +18,10 @@ describe('AdminNotificationsPublicationClaimPageComponent', () => { TranslateModule.forRoot() ], declarations: [ -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts NotificationsSuggestionTargetsPageComponent ], providers: [ NotificationsSuggestionTargetsPageComponent -======== - AdminNotificationsPublicationClaimPageComponent - ], - providers: [ - AdminNotificationsPublicationClaimPageComponent ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts ], schemas: [NO_ERRORS_SCHEMA] }) @@ -44,11 +29,7 @@ describe('AdminNotificationsPublicationClaimPageComponent', () => { })); beforeEach(() => { -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts fixture = TestBed.createComponent(NotificationsSuggestionTargetsPageComponent); -======== - fixture = TestBed.createComponent(AdminNotificationsPublicationClaimPageComponent); ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/admin/admin-notifications/admin-notifications-routing.module.ts b/src/app/admin/admin-notifications/admin-notifications-routing.module.ts index 07a98aa080..755f2e784b 100644 --- a/src/app/admin/admin-notifications/admin-notifications-routing.module.ts +++ b/src/app/admin/admin-notifications/admin-notifications-routing.module.ts @@ -6,19 +6,34 @@ import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.r import { I18nBreadcrumbsService } from '../../core/breadcrumbs/i18n-breadcrumbs.service'; import { PUBLICATION_CLAIMS_PATH } from './admin-notifications-routing-paths'; import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component'; -import { AdminNotificationsPublicationClaimPageResolver } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service'; import { QUALITY_ASSURANCE_EDIT_PATH } from './admin-notifications-routing-paths'; -import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component'; -import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component'; -import { AdminQualityAssuranceTopicsPageResolver } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page-resolver.service'; -import { AdminQualityAssuranceEventsPageResolver } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.resolver'; -import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component'; -import { AdminQualityAssuranceSourcePageResolver } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page-resolver.service'; import { QualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver'; import { QualityAssuranceBreadcrumbService } from '../../core/breadcrumbs/quality-assurance-breadcrumb.service'; +import { + AdminNotificationsPublicationClaimPageResolver +} from '../../quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service'; +import { + QualityAssuranceTopicsPageComponent +} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page.component'; +import { + QualityAssuranceTopicsPageResolver +} from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page-resolver.service'; import { SourceDataResolver -} from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-data.resolver'; +} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver'; +import { + QualityAssuranceEventsPageResolver +} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver'; +import { + QualityAssuranceEventsPageComponent +} from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.component'; +import { + QualityAssuranceSourcePageResolver +} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page-resolver.service'; +import { + QualityAssuranceSourcePageComponent +} from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page.component'; + @NgModule({ imports: [ @@ -41,11 +56,11 @@ import { { canActivate: [ AuthenticatedGuard ], path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`, - component: AdminQualityAssuranceTopicsPageComponent, + component: QualityAssuranceTopicsPageComponent, pathMatch: 'full', resolve: { breadcrumb: QualityAssuranceBreadcrumbResolver, - openaireQualityAssuranceTopicsParams: AdminQualityAssuranceTopicsPageResolver + openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver }, data: { title: 'admin.quality-assurance.page.title', @@ -56,11 +71,11 @@ import { { canActivate: [ AuthenticatedGuard ], path: `${QUALITY_ASSURANCE_EDIT_PATH}`, - component: AdminQualityAssuranceSourcePageComponent, + component: QualityAssuranceSourcePageComponent, pathMatch: 'full', resolve: { breadcrumb: I18nBreadcrumbResolver, - openaireQualityAssuranceSourceParams: AdminQualityAssuranceSourcePageResolver, + openaireQualityAssuranceSourceParams: QualityAssuranceSourcePageResolver, sourceData: SourceDataResolver }, data: { @@ -72,11 +87,11 @@ import { { canActivate: [ AuthenticatedGuard ], path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/:topicId`, - component: AdminQualityAssuranceEventsPageComponent, + component: QualityAssuranceEventsPageComponent, pathMatch: 'full', resolve: { breadcrumb: QualityAssuranceBreadcrumbResolver, - openaireQualityAssuranceEventsParams: AdminQualityAssuranceEventsPageResolver + openaireQualityAssuranceEventsParams: QualityAssuranceEventsPageResolver }, data: { title: 'admin.notifications.event.page.title', @@ -91,10 +106,10 @@ import { I18nBreadcrumbsService, AdminNotificationsPublicationClaimPageResolver, SourceDataResolver, - AdminQualityAssuranceSourcePageResolver, - AdminQualityAssuranceTopicsPageResolver, - AdminQualityAssuranceEventsPageResolver, - AdminQualityAssuranceSourcePageResolver, + QualityAssuranceSourcePageResolver, + QualityAssuranceTopicsPageResolver, + QualityAssuranceEventsPageResolver, + QualityAssuranceSourcePageResolver, QualityAssuranceBreadcrumbResolver, QualityAssuranceBreadcrumbService ] diff --git a/src/app/admin/admin-notifications/admin-notifications.module.ts b/src/app/admin/admin-notifications/admin-notifications.module.ts index d9efb4c288..ea670d222c 100644 --- a/src/app/admin/admin-notifications/admin-notifications.module.ts +++ b/src/app/admin/admin-notifications/admin-notifications.module.ts @@ -4,11 +4,14 @@ import { CoreModule } from '../../core/core.module'; import { SharedModule } from '../../shared/shared.module'; import { AdminNotificationsRoutingModule } from './admin-notifications-routing.module'; import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component'; -import { AdminQualityAssuranceTopicsPageComponent } from './admin-quality-assurance-topics-page/admin-quality-assurance-topics-page.component'; -import { AdminQualityAssuranceEventsPageComponent } from './admin-quality-assurance-events-page/admin-quality-assurance-events-page.component'; -import { AdminQualityAssuranceSourcePageComponent } from './admin-quality-assurance-source-page-component/admin-quality-assurance-source-page.component'; import { NotificationsModule } from '../../notifications/notifications.module'; + + + + + + @NgModule({ imports: [ CommonModule, @@ -19,9 +22,6 @@ import { NotificationsModule } from '../../notifications/notifications.module'; ], declarations: [ AdminNotificationsPublicationClaimPageComponent, - AdminQualityAssuranceTopicsPageComponent, - AdminQualityAssuranceEventsPageComponent, - AdminQualityAssuranceSourcePageComponent ], entryComponents: [] }) diff --git a/src/app/admin/admin-routing-paths.ts b/src/app/admin/admin-routing-paths.ts index 064e28f594..508d352c50 100644 --- a/src/app/admin/admin-routing-paths.ts +++ b/src/app/admin/admin-routing-paths.ts @@ -18,3 +18,8 @@ export function getLdnServicesModuleRoute() { export function getNotificatioQualityAssuranceRoute() { return new URLCombiner(`/${NOTIFICATIONS_MODULE_PATH}`, getQualityAssuranceEditRoute()).toString(); } + + +export function getNotificationsModuleRoute() { + return new URLCombiner(getAdminModuleRoute(), NOTIFICATIONS_MODULE_PATH).toString(); +} diff --git a/src/app/admin/admin-routing.module.ts b/src/app/admin/admin-routing.module.ts index b590df69ca..23350e4043 100644 --- a/src/app/admin/admin-routing.module.ts +++ b/src/app/admin/admin-routing.module.ts @@ -6,12 +6,17 @@ import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.reso import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component'; import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service'; import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component'; -import { LDN_PATH, REGISTRIES_MODULE_PATH } from './admin-routing-paths'; +import { LDN_PATH, NOTIFICATIONS_MODULE_PATH, REGISTRIES_MODULE_PATH } from './admin-routing-paths'; import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component'; @NgModule({ imports: [ RouterModule.forChild([ + { + path: NOTIFICATIONS_MODULE_PATH, + loadChildren: () => import('./admin-notifications/admin-notifications.module') + .then((m) => m.AdminNotificationsModule), + }, { path: REGISTRIES_MODULE_PATH, loadChildren: () => import('./admin-registries/admin-registries.module') diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 5df1908642..dd8419634f 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -185,8 +185,6 @@ import { FlatBrowseDefinition } from './shared/flat-browse-definition.model'; import { ValueListBrowseDefinition } from './shared/value-list-browse-definition.model'; import { NonHierarchicalBrowseDefinition } from './shared/non-hierarchical-browse-definition'; import { BulkAccessConditionOptions } from './config/models/bulk-access-condition-options.model'; -import { SuggestionTarget } from './notifications/reciter-suggestions/models/suggestion-target.model'; -import { SuggestionSource } from './notifications/reciter-suggestions/models/suggestion-source.model'; import { LdnServicesService } from '../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service'; import { LdnService } from '../admin/admin-ldn-services/ldn-services-model/ldn-services.model'; import { LdnItemfiltersService } from '../admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service'; @@ -197,6 +195,8 @@ import { import { SubmissionCoarNotifyConfig } from '../submission/sections/section-coar-notify/submission-coar-notify.config'; import { NotifyRequestsStatus } from '../item-page/simple/notify-requests-status/notify-requests-status.model'; import { NotifyRequestsStatusDataService } from './data/notify-services-status-data.service'; +import { SuggestionTarget } from './notifications/models/suggestion-target.model'; +import { SuggestionSource } from './notifications/models/suggestion-source.model'; /** diff --git a/src/app/core/submission/workspaceitem-data.service.ts b/src/app/core/submission/workspaceitem-data.service.ts index 91a9115c52..38810d8fd6 100644 --- a/src/app/core/submission/workspaceitem-data.service.ts +++ b/src/app/core/submission/workspaceitem-data.service.ts @@ -110,19 +110,6 @@ export class WorkspaceitemDataService extends IdentifiableDataService> { - return this.deleteData.deleteByHref(href, copyVirtualMetadata); - } - /** * Make a new FindListRequest with given search method * diff --git a/src/app/item-page/field-components/metadata-values/metadata-values.component.ts b/src/app/item-page/field-components/metadata-values/metadata-values.component.ts index 29c20c6e2a..34dd8cf351 100644 --- a/src/app/item-page/field-components/metadata-values/metadata-values.component.ts +++ b/src/app/item-page/field-components/metadata-values/metadata-values.component.ts @@ -5,6 +5,7 @@ import { BrowseDefinition } from '../../../core/shared/browse-definition.model'; import { hasValue } from '../../../shared/empty.util'; import { VALUE_LIST_BROWSE_DEFINITION } from '../../../core/shared/value-list-browse-definition.resource-type'; import { ImageField } from '../../simple/field-components/specific-field/item-page-field.component'; +import { environment } from '../../../../environments/environment'; /** * This component renders the configured 'values' into the ds-metadata-field-wrapper component. @@ -96,4 +97,14 @@ export class MetadataValuesComponent implements OnChanges { } return queryParams; } + + + /** + * Checks if the given link value is an internal link. + * @param linkValue - The link value to check. + * @returns True if the link value starts with the base URL defined in the environment configuration, false otherwise. + */ + hasInternalLink(linkValue: string): boolean { + return linkValue.startsWith(environment.ui.baseUrl); + } } diff --git a/src/app/menu.resolver.ts b/src/app/menu.resolver.ts index 75e72470c6..52a9617865 100644 --- a/src/app/menu.resolver.ts +++ b/src/app/menu.resolver.ts @@ -47,7 +47,7 @@ import { import { ExportBatchSelectorComponent } from './shared/dso-selector/modal-wrappers/export-batch-selector/export-batch-selector.component'; -import { NOTIFICATIONS_RECITER_SUGGESTION_PATH } from './quality-assurance-notifications-pages/notifications-pages-routing-paths'; +import { PUBLICATION_CLAIMS_PATH } from './admin/admin-notifications/admin-notifications-routing-paths'; /** * Creates all of the app's menus @@ -171,7 +171,8 @@ export class MenuResolver implements Resolve { this.authorizationService.isAuthorized(FeatureID.AdministratorOf), this.authorizationService.isAuthorized(FeatureID.CanSubmit), this.authorizationService.isAuthorized(FeatureID.CanEditItem), - ]).subscribe(([isCollectionAdmin, isCommunityAdmin, isSiteAdmin, canSubmit, canEditItem]) => { + this.authorizationService.isAuthorized(FeatureID.CanSeeQA) + ]).subscribe(([isCollectionAdmin, isCommunityAdmin, isSiteAdmin, canSubmit, canEditItem, canSeeQa]) => { const newSubMenuList = [ { id: 'new_community', @@ -387,6 +388,41 @@ export class MenuResolver implements Resolve { icon: 'heartbeat', index: 11 }, + /* Notifications */ + { + id: 'notifications', + active: false, + visible: canSeeQa || isSiteAdmin, + model: { + type: MenuItemType.TEXT, + text: 'menu.section.notifications' + } as TextMenuItemModel, + icon: 'bell', + index: 4 + }, + { + id: 'notifications_quality-assurance', + parentID: 'notifications', + active: false, + visible: canSeeQa, + model: { + type: MenuItemType.LINK, + text: 'menu.section.quality-assurance', + link: '/notifications/quality-assurance' + } as LinkMenuItemModel, + }, + { + id: 'notifications_publication-claim', + parentID: 'notifications', + active: false, + visible: isSiteAdmin, + model: { + type: MenuItemType.LINK, + text: 'menu.section.notifications_publication-claim', + link: '/admin/notifications/' + PUBLICATION_CLAIMS_PATH + } as LinkMenuItemModel, + }, + /* Admin Search */ ]; menuList.forEach((menuSection) => this.menuService.addSection(MenuID.ADMIN, Object.assign(menuSection, { shouldPersistOnRouteChange: true @@ -556,47 +592,9 @@ export class MenuResolver implements Resolve { * Create menu sections dependent on whether or not the current user is a site administrator */ createSiteAdministratorMenuSections() { - combineLatest([ - this.authorizationService.isAuthorized(FeatureID.AdministratorOf), - this.authorizationService.isAuthorized(FeatureID.CanSeeQA) - ]) - .subscribe(([authorized, canSeeQA]) => { + this.authorizationService.isAuthorized(FeatureID.AdministratorOf) + .subscribe((authorized) => { const menuList = [ - /* Notifications */ - { - id: 'notifications', - active: false, - visible: authorized && canSeeQA, - model: { - type: MenuItemType.TEXT, - text: 'menu.section.notifications' - } as TextMenuItemModel, - icon: 'bell', - index: 4 - }, - { - id: 'notifications_quality-assurance', - parentID: 'notifications', - active: false, - visible: authorized, - model: { - type: MenuItemType.LINK, - text: 'menu.section.quality-assurance', - link: '/notifications/quality-assurance' - } as LinkMenuItemModel, - }, - { - id: 'notifications_reciter', - parentID: 'notifications', - active: false, - visible: authorized, - model: { - type: MenuItemType.LINK, - text: 'menu.section.notifications_reciter', - link: '/notifications/' + NOTIFICATIONS_RECITER_SUGGESTION_PATH - } as LinkMenuItemModel, - }, - /* Admin Search */ { id: 'admin_search', active: false, diff --git a/src/app/notifications/notifications-effects.ts b/src/app/notifications/notifications-effects.ts index a73fd04fc0..9c446cb66a 100644 --- a/src/app/notifications/notifications-effects.ts +++ b/src/app/notifications/notifications-effects.ts @@ -1,6 +1,6 @@ import { QualityAssuranceSourceEffects } from './qa/source/quality-assurance-source.effects'; import { QualityAssuranceTopicsEffects } from './qa/topics/quality-assurance-topics.effects'; -import { SuggestionTargetsEffects } from '../suggestion-notifications/suggestion-targets/suggestion-targets.effects'; +import { SuggestionTargetsEffects } from './suggestion-targets/suggestion-targets.effects'; export const notificationsEffects = [ QualityAssuranceTopicsEffects, diff --git a/src/app/notifications/notifications.module.ts b/src/app/notifications/notifications.module.ts index 00c7582b2f..0ecd491a19 100644 --- a/src/app/notifications/notifications.module.ts +++ b/src/app/notifications/notifications.module.ts @@ -26,29 +26,23 @@ import { QualityAssuranceSourceService } from './qa/source/quality-assurance-sou import { QualityAssuranceSourceDataService } from '../core/notifications/qa/source/quality-assurance-source-data.service'; -import { PublicationClaimComponent } from '../suggestion-notifications/suggestion-targets/publication-claim/publication-claim.component'; -import { SuggestionActionsComponent } from '../suggestion-notifications/suggestion-actions/suggestion-actions.component'; -import { - SuggestionListElementComponent -} from '../suggestion-notifications/suggestion-list-element/suggestion-list-element.component'; + +import { SuggestionsPopupComponent } from './suggestions-popup/suggestions-popup.component'; +import { SuggestionSourceDataService } from '../core/notifications/source/suggestion-source-data.service'; +import { SuggestionTargetDataService } from '../core/notifications/target/suggestion-target-data.service'; +import { SuggestionsDataService } from '../core/notifications/suggestions-data.service'; +import { PublicationClaimComponent } from '../notifications/suggestion-targets/publication-claim/publication-claim.component'; + +import { SuggestionsNotificationComponent } from './suggestions-notification/suggestions-notification.component'; +import { SuggestionsService } from './suggestions.service'; +import { SuggestionTargetsStateService } from './suggestion-targets/suggestion-targets.state.service'; +import { SuggestionActionsComponent } from './suggestion-actions/suggestion-actions.component'; +import { SuggestionListElementComponent } from './suggestion-list-element/suggestion-list-element.component'; import { SuggestionEvidencesComponent -} from '../suggestion-notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component'; -import { SuggestionsPopupComponent } from '../suggestion-notifications/suggestions-popup/suggestions-popup.component'; -import { - SuggestionsNotificationComponent -} from '../suggestion-notifications/suggestions-notification/suggestions-notification.component'; -import { SuggestionsService } from '../suggestion-notifications/suggestions.service'; -import { SuggestionsDataService } from '../core/suggestion-notifications/suggestions-data.service'; -import { - SuggestionSourceDataService -} from '../core/suggestion-notifications/source/suggestion-source-data.service'; -import { - SuggestionTargetDataService -} from '../core/suggestion-notifications/target/suggestion-target-data.service'; -import { - SuggestionTargetsStateService -} from '../suggestion-notifications/suggestion-targets/suggestion-targets.state.service'; +} from './suggestion-list-element/suggestion-evidences/suggestion-evidences.component'; + + const MODULES = [ diff --git a/src/app/notifications/notifications.reducer.ts b/src/app/notifications/notifications.reducer.ts index cced6755fa..665c5d7392 100644 --- a/src/app/notifications/notifications.reducer.ts +++ b/src/app/notifications/notifications.reducer.ts @@ -1,7 +1,7 @@ import { ActionReducerMap, createFeatureSelector } from '@ngrx/store'; import { qualityAssuranceSourceReducer, QualityAssuranceSourceState } from './qa/source/quality-assurance-source.reducer'; import { qualityAssuranceTopicsReducer, QualityAssuranceTopicState, } from './qa/topics/quality-assurance-topics.reducer'; -import { SuggestionTargetsReducer, SuggestionTargetState } from '../suggestion-notifications/suggestion-targets/suggestion-targets.reducer'; +import { SuggestionTargetsReducer, SuggestionTargetState } from './suggestion-targets/suggestion-targets.reducer'; /** * The OpenAIRE State diff --git a/src/app/notifications/suggestion-actions/suggestion-actions.component.ts b/src/app/notifications/suggestion-actions/suggestion-actions.component.ts index 6af1e2c67a..5f1443794c 100644 --- a/src/app/notifications/suggestion-actions/suggestion-actions.component.ts +++ b/src/app/notifications/suggestion-actions/suggestion-actions.component.ts @@ -1,15 +1,12 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { ItemType } from '../../core/shared/item-relationships/item-type.model'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-actions/suggestion-actions.component.ts -import { Suggestion } from '../../../core/notifications/reciter-suggestions/models/suggestion.model'; -======== -import { Suggestion } from '../../core/suggestion-notifications/models/suggestion.model'; ->>>>>>>> main:src/app/notifications/suggestion-actions/suggestion-actions.component.ts -import { SuggestionApproveAndImport } from '../suggestion-list-element/suggestion-list-element.component'; + import { Collection } from '../../core/shared/collection.model'; import { take } from 'rxjs/operators'; import { CreateItemParentSelectorComponent } from '../../shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component'; +import { Suggestion } from '../../core/notifications/models/suggestion.model'; +import { SuggestionApproveAndImport } from '../suggestion-list-element/suggestion-list-element.component'; /** * Show and trigger the actions to submit for a suggestion diff --git a/src/app/notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts b/src/app/notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts index 2346c86257..d58f8d39c1 100644 --- a/src/app/notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts +++ b/src/app/notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts @@ -1,11 +1,7 @@ import { Component, Input } from '@angular/core'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts -import { fadeIn } from '../../../../shared/animations/fade'; -import { SuggestionEvidences } from '../../../../core/notifications/reciter-suggestions/models/suggestion.model'; -======== import { fadeIn } from '../../../shared/animations/fade'; -import { SuggestionEvidences } from '../../../core/suggestion-notifications/models/suggestion.model'; ->>>>>>>> main:src/app/notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component.ts +import { SuggestionEvidences } from '../../../core/notifications/models/suggestion.model'; + /** * Show suggestion evidences such as score (authorScore, dateScore) diff --git a/src/app/notifications/suggestion-list-element/suggestion-list-element.component.ts b/src/app/notifications/suggestion-list-element/suggestion-list-element.component.ts index 76d1314417..bc5db3d1bf 100644 --- a/src/app/notifications/suggestion-list-element/suggestion-list-element.component.ts +++ b/src/app/notifications/suggestion-list-element/suggestion-list-element.component.ts @@ -1,18 +1,12 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; - -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-list-element/suggestion-list-element.component.ts -import { fadeIn } from '../../../shared/animations/fade'; -import { Suggestion } from '../../../core/notifications/reciter-suggestions/models/suggestion.model'; -import { Item } from '../../../core/shared/item.model'; -import { isNotEmpty } from '../../../shared/empty.util'; -======== +import { Suggestion } from 'src/app/core/notifications/models/suggestion.model'; import { fadeIn } from '../../shared/animations/fade'; -import { Suggestion } from '../../core/suggestion-notifications/models/suggestion.model'; import { Item } from '../../core/shared/item.model'; import { isNotEmpty } from '../../shared/empty.util'; ->>>>>>>> main:src/app/notifications/suggestion-list-element/suggestion-list-element.component.ts + + /** * A simple interface to unite a specific suggestion and the id of the chosen collection diff --git a/src/app/notifications/suggestion-targets/publication-claim/publication-claim.component.ts b/src/app/notifications/suggestion-targets/publication-claim/publication-claim.component.ts index b9474911bc..1b6d70cba4 100644 --- a/src/app/notifications/suggestion-targets/publication-claim/publication-claim.component.ts +++ b/src/app/notifications/suggestion-targets/publication-claim/publication-claim.component.ts @@ -4,17 +4,14 @@ import { Router } from '@angular/router'; import { Observable, Subscription } from 'rxjs'; import { distinctUntilChanged, take } from 'rxjs/operators'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.component.ts -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== -import { SuggestionTarget } from '../../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestion-targets/publication-claim/publication-claim.component.ts + import { hasValue } from '../../../shared/empty.util'; import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; -import { SuggestionTargetsStateService } from '../suggestion-targets.state.service'; import { getSuggestionPageRoute } from '../../../suggestions-page/suggestions-page-routing-paths'; -import { SuggestionsService } from '../../suggestions.service'; import { PaginationService } from '../../../core/pagination/pagination.service'; +import { SuggestionTarget } from '../../../core/notifications/models/suggestion-target.model'; +import { SuggestionTargetsStateService } from '../suggestion-targets.state.service'; +import { SuggestionsService } from '../../suggestions.service'; /** * Component to display the Suggestion Target list. diff --git a/src/app/notifications/suggestion-targets/suggestion-targets.actions.ts b/src/app/notifications/suggestion-targets/suggestion-targets.actions.ts index fe631f65da..281e07d99e 100644 --- a/src/app/notifications/suggestion-targets/suggestion-targets.actions.ts +++ b/src/app/notifications/suggestion-targets/suggestion-targets.actions.ts @@ -1,12 +1,8 @@ /* eslint-disable max-classes-per-file */ import { Action } from '@ngrx/store'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.actions.ts -import { type } from '../../../shared/ngrx/type'; -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== import { type } from '../../shared/ngrx/type'; -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.actions.ts +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; + /** * For each action type in an action group, make a simple diff --git a/src/app/notifications/suggestion-targets/suggestion-targets.effects.ts b/src/app/notifications/suggestion-targets/suggestion-targets.effects.ts index 257501dee9..f8be925d8b 100644 --- a/src/app/notifications/suggestion-targets/suggestion-targets.effects.ts +++ b/src/app/notifications/suggestion-targets/suggestion-targets.effects.ts @@ -15,13 +15,9 @@ import { } from './suggestion-targets.actions'; import { PaginatedList } from '../../core/data/paginated-list.model'; import { SuggestionsService } from '../suggestions.service'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.effects.ts -import { NotificationsService } from '../../../shared/notifications/notifications.service'; -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; import { NotificationsService } from '../../shared/notifications/notifications.service'; -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.effects.ts + /** * Provides effect methods for the Suggestion Targets actions. @@ -80,12 +76,8 @@ export class SuggestionTargetsEffects { }), catchError((errors) => of(errors)) ); -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.effects.ts - })), { dispatch: false }); -======== })) ); ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.effects.ts /** * Initialize the effect class variables. diff --git a/src/app/notifications/suggestion-targets/suggestion-targets.reducer.ts b/src/app/notifications/suggestion-targets/suggestion-targets.reducer.ts index 05f7ac7351..6ba29303b3 100644 --- a/src/app/notifications/suggestion-targets/suggestion-targets.reducer.ts +++ b/src/app/notifications/suggestion-targets/suggestion-targets.reducer.ts @@ -1,9 +1,6 @@ +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; import { SuggestionTargetActionTypes, SuggestionTargetsActions } from './suggestion-targets.actions'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.reducer.ts -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.reducer.ts + /** * The interface representing the OpenAIRE suggestion targets state. diff --git a/src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts b/src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts index 56668812a3..1ca01b10f2 100644 --- a/src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts +++ b/src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts @@ -4,31 +4,23 @@ import { select, Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; -import { - getCurrentUserSuggestionTargetsSelector, - getCurrentUserSuggestionTargetsVisitedSelector, - getSuggestionTargetCurrentPageSelector, - getSuggestionTargetTotalsSelector, - isSuggestionTargetLoadedSelector, - isReciterSuggestionTargetProcessingSelector, - suggestionTargetObjectSelector -} from '../selectors'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.state.service.ts -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts + import { ClearSuggestionTargetsAction, MarkUserSuggestionsAsVisitedAction, RefreshUserSuggestionsAction, RetrieveTargetsBySourceAction } from './suggestion-targets.actions'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestion-targets/suggestion-targets.state.service.ts -import { SuggestionNotificationsState } from '../../notifications.reducer'; -======== import { SuggestionNotificationsState } from '../../notifications/notifications.reducer'; ->>>>>>>> main:src/app/notifications/suggestion-targets/suggestion-targets.state.service.ts +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; +import { + getCurrentUserSuggestionTargetsSelector, getCurrentUserSuggestionTargetsVisitedSelector, + getSuggestionTargetCurrentPageSelector, + getSuggestionTargetTotalsSelector, + isReciterSuggestionTargetProcessingSelector, + isSuggestionTargetLoadedSelector, + suggestionTargetObjectSelector +} from '../../suggestion-notifications/selectors'; /** * The service handling the Suggestion targets State. diff --git a/src/app/notifications/suggestion.service.spec.ts b/src/app/notifications/suggestion.service.spec.ts index 268eb59ddd..082c7c3f04 100644 --- a/src/app/notifications/suggestion.service.spec.ts +++ b/src/app/notifications/suggestion.service.spec.ts @@ -1,13 +1,6 @@ import { SuggestionsService } from './suggestions.service'; import { ResearcherProfileDataService } from '../core/profile/researcher-profile-data.service'; -import { - SuggestionsDataService -} from '../core/suggestion-notifications/suggestions-data.service'; - -import { - SuggestionTargetDataService -} from '../core/suggestion-notifications/target/suggestion-target-data.service'; import { TestScheduler } from 'rxjs/testing'; import { getTestScheduler } from 'jasmine-marbles'; import { of as observableOf } from 'rxjs'; @@ -18,11 +11,11 @@ import { createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils'; import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service'; import { mockSuggestionPublicationOne } from '../shared/mocks/publication-claim.mock'; import { ResourceType } from '../core/shared/resource-type'; +import { SuggestionsDataService } from '../core/notifications/suggestions-data.service'; +import { SuggestionTargetDataService } from '../core/notifications/target/suggestion-target-data.service'; +import { SuggestionTarget } from '../core/notifications/models/suggestion-target.model'; -import { - SuggestionTarget -} from '../core/suggestion-notifications/models/suggestion-target.model'; describe('SuggestionsService test', () => { let scheduler: TestScheduler; diff --git a/src/app/notifications/suggestions-notification/suggestions-notification.component.ts b/src/app/notifications/suggestions-notification/suggestions-notification.component.ts index 3d0e233ad7..107da67fce 100644 --- a/src/app/notifications/suggestions-notification/suggestions-notification.component.ts +++ b/src/app/notifications/suggestions-notification/suggestions-notification.component.ts @@ -1,13 +1,9 @@ import { Component, OnInit } from '@angular/core'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestions-notification/suggestions-notification.component.ts -import { SuggestionTarget } from '../../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -import { TranslateService } from '@ngx-translate/core'; -======== -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/notifications/suggestions-notification/suggestions-notification.component.ts + import { SuggestionTargetsStateService } from '../suggestion-targets/suggestion-targets.state.service'; import { SuggestionsService } from '../suggestions.service'; import { Observable } from 'rxjs'; +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; /** * Show suggestions notification, used on myDSpace and Profile pages diff --git a/src/app/notifications/suggestions-popup/suggestions-popup.component.ts b/src/app/notifications/suggestions-popup/suggestions-popup.component.ts index 2cf3db128e..1921c4fe93 100644 --- a/src/app/notifications/suggestions-popup/suggestions-popup.component.ts +++ b/src/app/notifications/suggestions-popup/suggestions-popup.component.ts @@ -2,13 +2,13 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { SuggestionTargetsStateService } from '../suggestion-targets/suggestion-targets.state.service'; import { SuggestionsService } from '../suggestions.service'; import { take, takeUntil } from 'rxjs/operators'; -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; import { isNotEmpty } from '../../shared/empty.util'; import { combineLatest, Observable, of, Subject } from 'rxjs'; import { trigger } from '@angular/animations'; import { fromTopEnter } from '../../shared/animations/fromTop'; +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; /** * Show suggestions on a popover window, used on the homepage diff --git a/src/app/notifications/suggestions.service.ts b/src/app/notifications/suggestions.service.ts index b1b03915f7..e2b32b38ec 100644 --- a/src/app/notifications/suggestions.service.ts +++ b/src/app/notifications/suggestions.service.ts @@ -1,68 +1,27 @@ import { Injectable } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; import { of, forkJoin, Observable } from 'rxjs'; import { catchError, map, mergeMap, take } from 'rxjs/operators'; - -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestions.service.ts -import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; -import { RemoteData } from '../../core/data/remote-data'; -import { PaginatedList } from '../../core/data/paginated-list.model'; -import { SuggestionTarget } from '../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -import { AuthService } from '../../core/auth/auth.service'; -import { hasValue, isNotEmpty } from '../../shared/empty.util'; -import { ResearcherProfile } from '../../core/profile/model/researcher-profile.model'; -======== import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model'; -import { RemoteData } from '../core/data/remote-data'; +import { FindListOptions } from '../core/data/find-list-options.model'; import { PaginatedList } from '../core/data/paginated-list.model'; -import { SuggestionTarget } from '../core/suggestion-notifications/models/suggestion-target.model'; -import { hasValue, isNotEmpty } from '../shared/empty.util'; -import { ResearcherProfile } from '../core/profile/model/researcher-profile.model'; ->>>>>>>> main:src/app/notifications/suggestions.service.ts -import { - getAllSucceededRemoteDataPayload, - getFinishedRemoteData, - getFirstSucceededRemoteDataPayload, - getFirstSucceededRemoteListPayload -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/suggestions.service.ts -} from '../../core/shared/operators'; -import { Suggestion } from '../../core/notifications/reciter-suggestions/models/suggestion.model'; -import { WorkspaceitemDataService } from '../../core/submission/workspaceitem-data.service'; -import { TranslateService } from '@ngx-translate/core'; -import { NoContent } from '../../core/shared/NoContent.model'; -import { environment } from '../../../environments/environment'; -import { WorkspaceItem } from '../../core/submission/models/workspaceitem.model'; -import {FindListOptions} from '../../core/data/find-list-options.model'; -import {SuggestionConfig} from '../../../config/layout-config.interfaces'; -import { ResearcherProfileDataService } from '../../core/profile/researcher-profile-data.service'; -import { - SuggestionSourceDataService -} from '../../core/notifications/reciter-suggestions/source/suggestion-source-data.service'; -import { - SuggestionTargetDataService -} from '../../core/notifications/reciter-suggestions/target/suggestion-target-data.service'; -import { - SuggestionsDataService -} from '../../core/notifications/reciter-suggestions/suggestions-data.service'; -======== -} from '../core/shared/operators'; -import { Suggestion } from '../core/suggestion-notifications/models/suggestion.model'; -import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service'; -import { TranslateService } from '@ngx-translate/core'; -import { NoContent } from '../core/shared/NoContent.model'; -import { environment } from '../../environments/environment'; -import { WorkspaceItem } from '../core/submission/models/workspaceitem.model'; -import {FindListOptions} from '../core/data/find-list-options.model'; -import {SuggestionConfig} from '../../config/suggestion-config.interfaces'; +import { RemoteData } from '../core/data/remote-data'; +import { SuggestionTarget } from '../core/notifications/models/suggestion-target.model'; +import { SuggestionsDataService } from '../core/notifications/suggestions-data.service'; +import { SuggestionTargetDataService } from '../core/notifications/target/suggestion-target-data.service'; import { ResearcherProfileDataService } from '../core/profile/researcher-profile-data.service'; -import { - SuggestionTargetDataService -} from '../core/suggestion-notifications/target/suggestion-target-data.service'; -import { - SuggestionsDataService -} from '../core/suggestion-notifications/suggestions-data.service'; +import { NoContent } from '../core/shared/NoContent.model'; +import { getFirstSucceededRemoteListPayload, getFirstSucceededRemoteDataPayload, getAllSucceededRemoteDataPayload, getFinishedRemoteData } from '../core/shared/operators'; import { getSuggestionPageRoute } from '../suggestions-page/suggestions-page-routing-paths'; ->>>>>>>> main:src/app/notifications/suggestions.service.ts +import { environment } from '../../environments/environment'; +import { SuggestionConfig } from '../../config/suggestion-config.interfaces'; +import { Suggestion } from '../core/notifications/models/suggestion.model'; +import { ResearcherProfile } from '../core/profile/model/researcher-profile.model'; +import { hasValue, isNotEmpty } from '../shared/empty.util'; +import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service'; +import { WorkspaceItem } from '../core/submission/models/workspaceitem.model'; + /** * useful for multiple approvals and ignores operation diff --git a/src/app/quality-assurance-notifications-pages/notifications-pages-routing.module.ts b/src/app/quality-assurance-notifications-pages/notifications-pages-routing.module.ts index c64ae6381a..c57b22a028 100644 --- a/src/app/quality-assurance-notifications-pages/notifications-pages-routing.module.ts +++ b/src/app/quality-assurance-notifications-pages/notifications-pages-routing.module.ts @@ -6,7 +6,7 @@ import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.reso import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service'; import { NOTIFICATIONS_RECITER_SUGGESTION_PATH } from './notifications-pages-routing-paths'; import { NotificationsSuggestionTargetsPageComponent } from './notifications-suggestion-targets-page/notifications-suggestion-targets-page.component'; -import { NotificationsSuggestionTargetsPageResolver } from './notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service'; +import { AdminNotificationsPublicationClaimPageResolver } from './notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service'; import { QUALITY_ASSURANCE_EDIT_PATH } from './notifications-pages-routing-paths'; import { QualityAssuranceTopicsPageComponent } from './quality-assurance-topics-page/quality-assurance-topics-page.component'; import { QualityAssuranceEventsPageComponent } from './quality-assurance-events-page/quality-assurance-events-page.component'; @@ -30,7 +30,7 @@ import { pathMatch: 'full', resolve: { breadcrumb: I18nBreadcrumbResolver, - reciterSuggestionTargetParams: NotificationsSuggestionTargetsPageResolver + reciterSuggestionTargetParams: AdminNotificationsPublicationClaimPageResolver }, data: { title: 'admin.notifications.recitersuggestion.page.title', @@ -104,7 +104,7 @@ import { providers: [ I18nBreadcrumbResolver, I18nBreadcrumbsService, - NotificationsSuggestionTargetsPageResolver, + AdminNotificationsPublicationClaimPageResolver, SourceDataResolver, QualityAssuranceSourcePageResolver, QualityAssuranceTopicsPageResolver, diff --git a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts index d7cbf846e4..783387281e 100644 --- a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts +++ b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts @@ -4,11 +4,8 @@ import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/r /** * Interface for the route parameters. */ -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts -export interface NotificationsSuggestionTargetsPageParams { -======== + export interface AdminNotificationsPublicationClaimPageParams { ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts pageId?: string; pageSize?: number; currentPage?: number; @@ -18,11 +15,8 @@ export interface AdminNotificationsPublicationClaimPageParams { * This class represents a resolver that retrieve the route data before the route is activated. */ @Injectable() -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service.ts -export class NotificationsSuggestionTargetsPageResolver implements Resolve { -======== + export class AdminNotificationsPublicationClaimPageResolver implements Resolve { ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts /** * Method for resolving the parameters in the current route. @@ -30,11 +24,8 @@ export class AdminNotificationsPublicationClaimPageResolver implements Resolve>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page-resolver.service.ts return { pageId: route.queryParams.pageId, pageSize: parseInt(route.queryParams.pageSize, 10), diff --git a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.html b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.html index 5d06a1a6bd..11db25fa7b 100644 --- a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.html +++ b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.html @@ -1 +1 @@ - + diff --git a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts index 6061bda063..bbca7f8d39 100644 --- a/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts +++ b/src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts @@ -1,23 +1,16 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts import { NotificationsSuggestionTargetsPageComponent } from './notifications-suggestion-targets-page.component'; -======== -import { AdminNotificationsPublicationClaimPageComponent } from './admin-notifications-publication-claim-page.component'; ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts import { NO_ERRORS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; import { TranslateModule } from '@ngx-translate/core'; +import { + AdminNotificationsPublicationClaimPageComponent +} from '../../admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component'; -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts describe('NotificationsSuggestionTargetsPageComponent', () => { let component: NotificationsSuggestionTargetsPageComponent; let fixture: ComponentFixture; -======== -describe('AdminNotificationsPublicationClaimPageComponent', () => { - let component: AdminNotificationsPublicationClaimPageComponent; - let fixture: ComponentFixture; ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts beforeEach(async(() => { TestBed.configureTestingModule({ @@ -26,29 +19,18 @@ describe('AdminNotificationsPublicationClaimPageComponent', () => { TranslateModule.forRoot() ], declarations: [ -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts NotificationsSuggestionTargetsPageComponent ], providers: [ - NotificationsSuggestionTargetsPageComponent -======== AdminNotificationsPublicationClaimPageComponent ], - providers: [ - AdminNotificationsPublicationClaimPageComponent ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts - ], schemas: [NO_ERRORS_SCHEMA] }) .compileComponents(); })); beforeEach(() => { -<<<<<<<< HEAD:src/app/quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page.component.spec.ts fixture = TestBed.createComponent(NotificationsSuggestionTargetsPageComponent); -======== - fixture = TestBed.createComponent(AdminNotificationsPublicationClaimPageComponent); ->>>>>>>> main:src/app/admin/admin-notifications/admin-notifications-publication-claim-page/admin-notifications-publication-claim-page.component.spec.ts component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/shared/mocks/publication-claim-targets.mock.ts b/src/app/shared/mocks/publication-claim-targets.mock.ts index 1d7688c1e3..932a98bee5 100644 --- a/src/app/shared/mocks/publication-claim-targets.mock.ts +++ b/src/app/shared/mocks/publication-claim-targets.mock.ts @@ -1,5 +1,5 @@ import { ResourceType } from '../../core/shared/resource-type'; -import { SuggestionTarget } from '../../core/suggestion-notifications/models/suggestion-target.model'; +import { SuggestionTarget } from '../../core/notifications/models/suggestion-target.model'; // REST Mock --------------------------------------------------------------------- // ------------------------------------------------------------------------------- diff --git a/src/app/shared/mocks/publication-claim.mock.ts b/src/app/shared/mocks/publication-claim.mock.ts index 143b54d8dd..02364347f4 100644 --- a/src/app/shared/mocks/publication-claim.mock.ts +++ b/src/app/shared/mocks/publication-claim.mock.ts @@ -2,8 +2,9 @@ // REST Mock --------------------------------------------------------------------- // ------------------------------------------------------------------------------- -import { Suggestion } from '../../core/suggestion-notifications/models/suggestion.model'; -import { SUGGESTION } from '../../core/suggestion-notifications/models/suggestion-objects.resource-type'; + +import { Suggestion } from '../../core/notifications/models/suggestion.model'; +import { SUGGESTION } from '../../core/notifications/models/suggestion-objects.resource-type'; export const mockSuggestionPublicationOne: Suggestion = { id: '24694773', diff --git a/src/app/suggestion-notifications/selectors.ts b/src/app/suggestion-notifications/selectors.ts index 45d56a6793..1dd0df11a7 100644 --- a/src/app/suggestion-notifications/selectors.ts +++ b/src/app/suggestion-notifications/selectors.ts @@ -1,13 +1,9 @@ import {createFeatureSelector, createSelector, MemoizedSelector} from '@ngrx/store'; -<<<<<<<< HEAD:src/app/notifications/reciter-suggestions/selectors.ts -import { suggestionNotificationsSelector, SuggestionNotificationsState } from '../notifications.reducer'; -import { SuggestionTarget } from '../../core/notifications/reciter-suggestions/models/suggestion-target.model'; -======== import { suggestionNotificationsSelector, SuggestionNotificationsState } from '../notifications/notifications.reducer'; -import { SuggestionTarget } from '../core/suggestion-notifications/models/suggestion-target.model'; ->>>>>>>> main:src/app/suggestion-notifications/selectors.ts -import { SuggestionTargetState } from './suggestion-targets/suggestion-targets.reducer'; + import {subStateSelector} from '../submission/selectors'; +import { SuggestionTargetState } from '../notifications/suggestion-targets/suggestion-targets.reducer'; +import { SuggestionTarget } from '../core/notifications/models/suggestion-target.model'; /** * Returns the Reciter Suggestion Target state. diff --git a/src/app/suggestions-page/suggestions-page.component.spec.ts b/src/app/suggestions-page/suggestions-page.component.spec.ts index 98535297a2..7cdeaddc78 100644 --- a/src/app/suggestions-page/suggestions-page.component.spec.ts +++ b/src/app/suggestions-page/suggestions-page.component.spec.ts @@ -7,14 +7,9 @@ import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { of as observableOf } from 'rxjs'; import { SuggestionsPageComponent } from './suggestions-page.component'; -import { - SuggestionApproveAndImport, - SuggestionListElementComponent -} from '../suggestion-notifications/suggestion-list-element/suggestion-list-element.component'; -import { SuggestionsService } from '../suggestion-notifications/suggestions.service'; + import { getMockSuggestionNotificationsStateService, getMockSuggestionsService } from '../shared/mocks/suggestion.mock'; import { mockSuggestionPublicationOne, mockSuggestionPublicationTwo } from '../shared/mocks/publication-claim.mock'; -import { SuggestionEvidencesComponent } from '../suggestion-notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component'; import { ObjectKeysPipe } from '../shared/utils/object-keys-pipe'; import { VarDirective } from '../shared/utils/var.directive'; import { ActivatedRoute, Router } from '@angular/router'; @@ -24,13 +19,21 @@ import { AuthService } from '../core/auth/auth.service'; import { NotificationsService } from '../shared/notifications/notifications.service'; import { NotificationsServiceStub } from '../shared/testing/notifications-service.stub'; import { getMockTranslateService } from '../shared/mocks/translate.service.mock'; -import { SuggestionTargetsStateService } from '../suggestion-notifications/suggestion-targets/suggestion-targets.state.service'; import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service'; import { createSuccessfulRemoteDataObject } from '../shared/remote-data.utils'; import { TestScheduler } from 'rxjs/testing'; import { getTestScheduler } from 'jasmine-marbles'; import { PaginationServiceStub } from '../shared/testing/pagination-service.stub'; import { PaginationService } from '../core/pagination/pagination.service'; +import { + SuggestionEvidencesComponent +} from '../notifications/suggestion-list-element/suggestion-evidences/suggestion-evidences.component'; +import { + SuggestionApproveAndImport, + SuggestionListElementComponent +} from '../notifications/suggestion-list-element/suggestion-list-element.component'; +import { SuggestionsService } from '../notifications/suggestions.service'; +import { SuggestionTargetsStateService } from '../notifications/suggestion-targets/suggestion-targets.state.service'; describe('SuggestionPageComponent', () => { let component: SuggestionsPageComponent; diff --git a/src/app/suggestions-page/suggestions-page.component.ts b/src/app/suggestions-page/suggestions-page.component.ts index fdbf131e59..e4305cc226 100644 --- a/src/app/suggestions-page/suggestions-page.component.ts +++ b/src/app/suggestions-page/suggestions-page.component.ts @@ -9,14 +9,9 @@ import { SortDirection, SortOptions, } from '../core/cache/models/sort-options.m import { PaginatedList } from '../core/data/paginated-list.model'; import { RemoteData } from '../core/data/remote-data'; import { getFirstSucceededRemoteDataPayload } from '../core/shared/operators'; -import { SuggestionBulkResult, SuggestionsService } from '../suggestion-notifications/suggestions.service'; import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model'; -import { Suggestion } from '../core/suggestion-notifications/models/suggestion.model'; -import { SuggestionTarget } from '../core/suggestion-notifications/models/suggestion-target.model'; import { AuthService } from '../core/auth/auth.service'; -import { SuggestionApproveAndImport } from '../suggestion-notifications/suggestion-list-element/suggestion-list-element.component'; import { NotificationsService } from '../shared/notifications/notifications.service'; -import { SuggestionTargetsStateService } from '../suggestion-notifications/suggestion-targets/suggestion-targets.state.service'; import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.service'; import { PaginationService } from '../core/pagination/pagination.service'; import { WorkspaceItem } from '../core/submission/models/workspaceitem.model'; @@ -25,6 +20,11 @@ import {redirectOn4xx} from '../core/shared/authorized.operators'; import { getWorkspaceItemEditRoute } from '../workflowitems-edit-page/workflowitems-edit-page-routing-paths'; +import { Suggestion } from '../core/notifications/models/suggestion.model'; +import { SuggestionTarget } from '../core/notifications/models/suggestion-target.model'; +import { SuggestionBulkResult, SuggestionsService } from '../notifications/suggestions.service'; +import { SuggestionTargetsStateService } from '../notifications/suggestion-targets/suggestion-targets.state.service'; +import { SuggestionApproveAndImport } from '../notifications/suggestion-list-element/suggestion-list-element.component'; @Component({ selector: 'ds-suggestion-page', diff --git a/src/app/suggestions-page/suggestions-page.module.ts b/src/app/suggestions-page/suggestions-page.module.ts index e25e483e39..90fbdbcf70 100644 --- a/src/app/suggestions-page/suggestions-page.module.ts +++ b/src/app/suggestions-page/suggestions-page.module.ts @@ -4,9 +4,9 @@ import { CommonModule } from '@angular/common'; import { SuggestionsPageComponent } from './suggestions-page.component'; import { SharedModule } from '../shared/shared.module'; import { SuggestionsPageRoutingModule } from './suggestions-page-routing.module'; -import { SuggestionsService } from '../suggestion-notifications/suggestions.service'; -import { SuggestionsDataService } from '../core/suggestion-notifications/suggestions-data.service'; import { NotificationsModule } from '../notifications/notifications.module'; +import { SuggestionsDataService } from '../core/notifications/suggestions-data.service'; +import { SuggestionsService } from '../notifications/suggestions.service'; @NgModule({ declarations: [SuggestionsPageComponent], diff --git a/src/app/suggestions-page/suggestions-page.resolver.ts b/src/app/suggestions-page/suggestions-page.resolver.ts index dde5b847f5..a2074d38bf 100644 --- a/src/app/suggestions-page/suggestions-page.resolver.ts +++ b/src/app/suggestions-page/suggestions-page.resolver.ts @@ -6,10 +6,9 @@ import { find } from 'rxjs/operators'; import { RemoteData } from '../core/data/remote-data'; import { hasValue } from '../shared/empty.util'; -import { SuggestionTarget } from '../core/suggestion-notifications/models/suggestion-target.model'; -import { - SuggestionTargetDataService -} from '../core/suggestion-notifications/target/suggestion-target-data.service'; +import { SuggestionTarget } from '../core/notifications/models/suggestion-target.model'; +import { SuggestionTargetDataService } from '../core/notifications/target/suggestion-target-data.service'; + /** * This class represents a resolver that requests a specific collection before the route is activated diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index e20a724158..89c53543ab 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -5639,4 +5639,332 @@ "admin.notifications.publicationclaim.breadcrumbs": "Publication Claim", "admin.notifications.publicationclaim.page.title": "Publication Claim", + + "coar-notify-support.title": "COAR Notify Protocol", + + "coar-notify-support-title.content": "Here, we fully support the COAR Notify protocol, which is designed to enhance the communication between repositories. To learn more about the COAR Notify protocol, you can visit their official website here.", + + "coar-notify-support.ldn-inbox.title": "LDN InBox", + + "coar-notify-support.ldn-inbox.content": "For your convenience, our LDN (Linked Data Notifications) InBox is easily accessible at {ldnInboxUrl}. The LDN InBox enables seamless communication and data exchange, ensuring efficient and effective collaboration.", + + "coar-notify-support.message-moderation.title": "Message Moderation", + + "coar-notify-support.message-moderation.content": "To ensure a secure and productive environment, all incoming LDN messages are moderated. If you are planning to exchange information with us, kindly reach out via our dedicated Feedback form. You can access the Feedback form by clicking here.", + + "service.overview.delete.header": "Delete Service", + + "ldn-registered-services.title": "Registered Services", + "ldn-registered-services.table.name": "Name", + "ldn-registered-services.table.description": "Description", + "ldn-registered-services.table.status": "Status", + "ldn-registered-services.table.action": "Action", + "ldn-registered-services.new": "NEW", + "ldn-registered-services.new.breadcrumbs": "Registered Services", + + "ldn-service.overview.table.enabled": "Enabled", + "ldn-service.overview.table.disabled": "Disabled", + "ldn-service.overview.table.clickToEnable": "Click to enable", + "ldn-service.overview.table.clickToDisable": "Click to disable", + + "ldn-edit-registered-service.title": "Edit Service", + "ldn-create-service.title": "Create service", + "service.overview.create.modal": "Create Service", + "service.overview.create.body": "Please confirm the creation of this service.", + "ldn-service-status": "Status", + "service.confirm.create": "Create", + "service.refuse.create": "Cancel", + "ldn-register-new-service.title": "Register a new service", + "ldn-new-service.form.label.submit": "Save", + "ldn-new-service.form.label.name": "Name", + "ldn-new-service.form.label.description": "Description", + "ldn-new-service.form.label.url": "Service URL", + "ldn-new-service.form.label.ip-range": "Service IP range", + "ldn-new-service.form.label.score": "Level of trust", + "ldn-new-service.form.label.ldnUrl": "LDN Inbox URL", + "ldn-new-service.form.placeholder.name": "Please provide service name", + "ldn-new-service.form.placeholder.description": "Please provide a description regarding your service", + "ldn-new-service.form.placeholder.url": "Please input the URL for users to check out more information about the service", + "ldn-new-service.form.placeholder.lowerIp": "IPv4 range lower bound", + "ldn-new-service.form.placeholder.upperIp": "IPv4 range upper bound", + "ldn-new-service.form.placeholder.ldnUrl": "Please specify the URL of the LDN Inbox", + "ldn-new-service.form.placeholder.score": "Please enter a value between 0 and 1. Use the “.” as decimal separator", + "ldn-service.form.label.placeholder.default-select": "Select a pattern", + + "ldn-service.form.pattern.ack-accept.label": "Acknowledge and Accept", + "ldn-service.form.pattern.ack-accept.description": "This pattern is used to acknowledge and accept a request (offer). It implies an intention to act on the request.", + "ldn-service.form.pattern.ack-accept.category": "Acknowledgements", + + "ldn-service.form.pattern.ack-reject.label": "Acknowledge and Reject", + "ldn-service.form.pattern.ack-reject.description": "This pattern is used to acknowledge and reject a request (offer). It signifies no further action regarding the request.", + "ldn-service.form.pattern.ack-reject.category": "Acknowledgements", + + "ldn-service.form.pattern.ack-tentative-accept.label": "Acknowledge and Tentatively Accept", + "ldn-service.form.pattern.ack-tentative-accept.description": "This pattern is used to acknowledge and tentatively accept a request (offer). It implies an intention to act, which may change.", + "ldn-service.form.pattern.ack-tentative-accept.category": "Acknowledgements", + + "ldn-service.form.pattern.ack-tentative-reject.label": "Acknowledge and Tentatively Reject", + "ldn-service.form.pattern.ack-tentative-reject.description": "This pattern is used to acknowledge and tentatively reject a request (offer). It signifies no further action, subject to change.", + "ldn-service.form.pattern.ack-tentative-reject.category": "Acknowledgements", + + "ldn-service.form.pattern.announce-endorsement.label": "Announce Endorsement", + "ldn-service.form.pattern.announce-endorsement.description": "This pattern is used to announce the existence of an endorsement, referencing the endorsed resource.", + "ldn-service.form.pattern.announce-endorsement.category": "Announcements", + + "ldn-service.form.pattern.announce-ingest.label": "Announce Ingest", + "ldn-service.form.pattern.announce-ingest.description": "This pattern is used to announce that a resource has been ingested.", + "ldn-service.form.pattern.announce-ingest.category": "Announcements", + + "ldn-service.form.pattern.announce-relationship.label": "Announce Relationship", + "ldn-service.form.pattern.announce-relationship.description": "This pattern is used to announce a relationship between two resources.", + "ldn-service.form.pattern.announce-relationship.category": "Announcements", + + "ldn-service.form.pattern.announce-review.label": "Announce Review", + "ldn-service.form.pattern.announce-review.description": "This pattern is used to announce the existence of a review, referencing the reviewed resource.", + "ldn-service.form.pattern.announce-review.category": "Announcements", + + "ldn-service.form.pattern.announce-service-result.label": "Announce Service Result", + "ldn-service.form.pattern.announce-service-result.description": "This pattern is used to announce the existence of a 'service result', referencing the relevant resource.", + "ldn-service.form.pattern.announce-service-result.category": "Announcements", + + "ldn-service.form.pattern.request-endorsement.label": "Request Endorsement", + "ldn-service.form.pattern.request-endorsement.description": "This pattern is used to request endorsement of a resource owned by the origin system.", + "ldn-service.form.pattern.request-endorsement.category": "Requests", + + "ldn-service.form.pattern.request-ingest.label": "Request Ingest", + "ldn-service.form.pattern.request-ingest.description": "This pattern is used to request that the target system ingest a resource.", + "ldn-service.form.pattern.request-ingest.category": "Requests", + + "ldn-service.form.pattern.request-review.label": "Request Review", + "ldn-service.form.pattern.request-review.description": "This pattern is used to request a review of a resource owned by the origin system.", + "ldn-service.form.pattern.request-review.category": "Requests", + + "ldn-service.form.pattern.undo-offer.label": "Undo Offer", + "ldn-service.form.pattern.undo-offer.description": "This pattern is used to undo (retract) an offer previously made.", + "ldn-service.form.pattern.undo-offer.category": "Undo", + + "ldn-new-service.form.label.placeholder.selectedItemFilter": "No Item Filter Selected", + "ldn-new-service.form.label.ItemFilter": "Item Filter", + "ldn-new-service.form.label.automatic": "Automatic", + "ldn-new-service.form.error.name": "Name is required", + "ldn-new-service.form.error.url": "URL is required", + "ldn-new-service.form.error.ipRange": "Please enter a valid IP range", + "ldn-new-service.form.hint.ipRange": "Please enter a valid IpV4 in both range bounds (note: for single IP, please enter the same value in both fields)", + "ldn-new-service.form.error.ldnurl": "LDN URL is required", + "ldn-new-service.form.error.patterns": "At least a pattern is required", + "ldn-new-service.form.error.score": "Please enter a valid score (between 0 and 1). Use the “.” as decimal separator", + + "ldn-new-service.form.label.inboundPattern": "Inbound Pattern", + "ldn-new-service.form.label.addPattern": "+ Add more", + "ldn-new-service.form.label.removeItemFilter": "Remove", + "ldn-register-new-service.breadcrumbs": "New Service", + "service.overview.delete.body": "Are you sure you want to delete this service?", + "service.overview.edit.body": "Do you confirm the changes?", + "service.overview.edit.modal": "Edit Service", + "service.detail.update": "Confirm", + "service.detail.return": "Cancel", + "service.overview.reset-form.body": "Are you sure you want to discard the changes and leave?", + "service.overview.reset-form.modal": "Discard Changes", + "service.overview.reset-form.reset-confirm": "Discard", + "admin.registries.services-formats.modify.success.head": "Successful Edit", + "admin.registries.services-formats.modify.success.content": "The service has been edited", + "admin.registries.services-formats.modify.failure.head": "Failed Edit", + "admin.registries.services-formats.modify.failure.content": "The service has not been edited", + "ldn-service-notification.created.success.title": "Successful Create", + "ldn-service-notification.created.success.body": "The service has been created", + "ldn-service-notification.created.failure.title": "Failed Create", + "ldn-service-notification.created.failure.body": "The service has not been created", + "ldn-service-notification.created.warning.title": "Please select at least one Inbound Pattern", + "ldn-enable-service.notification.success.title": "Successful status updated", + "ldn-enable-service.notification.success.content": "The service status has been updated", + "ldn-service-delete.notification.success.title": "Successful Deletion", + "ldn-service-delete.notification.success.content": "The service has been deleted", + "ldn-service-delete.notification.error.title": "Failed Deletion", + "ldn-service-delete.notification.error.content": "The service has not been deleted", + "service.overview.reset-form.reset-return": "Cancel", + "service.overview.delete": "Delete service", + "ldn-edit-service.title": "Edit service", + "ldn-edit-service.form.label.name": "Name", + "ldn-edit-service.form.label.description": "Description", + "ldn-edit-service.form.label.url": "Service URL", + "ldn-edit-service.form.label.ldnUrl": "LDN Inbox URL", + "ldn-edit-service.form.label.inboundPattern": "Inbound Pattern", + "ldn-edit-service.form.label.noInboundPatternSelected": "No Inbound Pattern", + "ldn-edit-service.form.label.selectedItemFilter": "Selected Item Filter", + "ldn-edit-service.form.label.selectItemFilter": "No Item Filter", + "ldn-edit-service.form.label.automatic": "Automatic", + "ldn-edit-service.form.label.addInboundPattern": "+ Add more", + "ldn-edit-service.form.label.submit": "Save", + "ldn-edit-service.breadcrumbs": "Edit Service", + "ldn-service.control-constaint-select-none": "Select none", + + "ldn-register-new-service.notification.error.title": "Error", + "ldn-register-new-service.notification.error.content": "An error occurred while creating this process", + "ldn-register-new-service.notification.success.title": "Success", + "ldn-register-new-service.notification.success.content": "The process was successfully created", + + "info.coar-notify-support.title": "Notify Support", + + "info.coar-notify.breadcrumbs": "Notify Support", + + "submission.sections.notify.info": "The selected service is compatible with the item according to its current status. {{ service.name }}: {{ service.description }}", + + "item.qa-event-notification.check.notification-info": "There are {{num}} pending review to check", + + "item.qa-event-notification-info.check.button": "Check", + + "mydspace.qa-event-notification.check.notification-info": "There are {{num}} pending review to check", + + "mydspace.qa-event-notification-info.check.button": "Check", + + "item.page.endorsed-by": "Endorsement", + + "item.page.is-reviewed-by": "Review", + + "item.page.is-supplemented-by": "Dataset", + + "item.page.endorsment": "Endorsment", + + "item.page.review": "Review", + + "item.page.dataset": "Dataset", + "menu.section.icon.ldn_services": "LDN Services overview", + "menu.section.services": "LDN Services", + + "menu.section.services_new": "LDN Service", + + "mydspace.import": "Import", + + "mydspace.notification.suggestion": "We found {{count}} publications
in the {{source}} that seems to be related to your profile.
Please review the suggestions", + + "mydspace.notification.suggestion.page": "We found {{count}} {{type}} in the {{source}} that seems to be related to your profile. Please review the suggestions.", + + "quality-assurance.topics.description-with-target": "Below you can see all the topics received from the subscriptions to {{source}} in regards to the", + "quality-assurance.events.description": "Below the list of all the suggestions for the selected topic {{topic}}, related to {{source}}.", + + "quality-assurance.events.description-with-topic-and-target": "Below the list of all the suggestions for the selected topic {{topic}}, related to {{source}} and ", + + "quality-assurance.event.table.event.message.serviceUrl": "Service URL:", + + "quality-assurance.event.table.event.message.link": "Link:", + + "service.detail.delete.cancel": "Cancel", + + "service.detail.delete.button": "Delete service", + + "service.detail.delete.header": "Delete service", + + "service.detail.delete.body": "Are you sure you want to delete the current service?", + + "service.detail.delete.confirm": "Delete service", + + "service.detail.delete.success": "The service was successfully deleted.", + + "service.detail.delete.error": "Something went wrong when deleting the service", + + "service.overview.table.id": "Services ID", + + "service.overview.table.name": "Name", + + "service.overview.table.start": "Start time (UTC)", + + "service.overview.table.status": "Status", + + "service.overview.table.user": "User", + + "service.overview.title": "Services Overview", + + "service.overview.breadcrumbs": "Services Overview", + + "service.overview.table.actions": "Actions", + + "service.overview.table.description": "Description", + + "reciter.suggestion.loading": "Loading ...", + + "reciter.suggestion.title": "Suggestions", + + "reciter.suggestion.targets.description": "Below you can see all the suggestions ", + + "reciter.suggestion.targets": "Current Suggestions", + + "reciter.suggestion.table.name": "Researcher Name", + + "reciter.suggestion.table.actions": "Actions", + + "reciter.suggestion.button.review": "Review {{ total }} suggestion(s)", + + "reciter.suggestion.noTargets": "No target found.", + + "reciter.suggestion.target.error.service.retrieve": "An error occurred while loading the Suggestion targets", + + "reciter.suggestion.evidence.type": "Type", + + "reciter.suggestion.evidence.score": "Score", + + "reciter.suggestion.evidence.notes": "Notes", + + "reciter.suggestion.approveAndImport": "Approve & import", + + "reciter.suggestion.approveAndImport.success": "The suggestion has been imported successfully. View.", + + "reciter.suggestion.approveAndImport.bulk": "Approve & import Selected", + + "reciter.suggestion.approveAndImport.bulk.success": "{{ count }} suggestions have been imported successfully ", + + "reciter.suggestion.approveAndImport.bulk.error": "{{ count }} suggestions haven't been imported due to unexpected server errors", + + "reciter.suggestion.notMine": "Not mine", + + "reciter.suggestion.notMine.success": "The suggestion has been discarded", + + "reciter.suggestion.notMine.bulk": "Not mine Selected", + + "reciter.suggestion.notMine.bulk.success": "{{ count }} suggestions have been discarded ", + + "reciter.suggestion.notMine.bulk.error": "{{ count }} suggestions haven't been discarded due to unexpected server errors", + + "reciter.suggestion.seeEvidence": "See evidence", + + "reciter.suggestion.hideEvidence": "Hide evidence", + + "reciter.suggestion.suggestionFor": "Suggestion for", + + "reciter.suggestion.source.oaire": "OpenAIRE Graph", + + "reciter.suggestion.from.source": "from the ", + + "reciter.suggestion.totalScore": "Total Score", + + "reciter.suggestion.type.oaire": "OpenAIRE", + + "submission.sections.submit.progressbar.coarnotify": "COAR Notify", + + "submission.section.section-coar-notify.control.request-review.label": "You can request a review to one of the following services", + + "submission.section.section-coar-notify.control.request-endorsement.label": "You can request an Endorsement to one of the following overlay journals", + + "submission.section.section-coar-notify.control.request-ingest.label": "You can request to ingest a copy of your submission to one of the following services", + + "submission.section.section-coar-notify.dropdown.no-data": "No data available", + + "submission.section.section-coar-notify.dropdown.select-none": "Select none", + + "submission.section.section-coar-notify.small.notification": "Select a service for {{ pattern }} of this item", + + "submission.section.section-coar-notify.selection.description": "Selected service's description:", + + "submission.section.section-coar-notify.selection.no-description": "No further information is available", + + "submission.section.section-coar-notify.notification.error": "The selected service is not suitable for the current item. Please check the description for details about which record can be managed by this service.", + + "submission.section.section-coar-notify.info.no-pattern": "No patterns found in the submission.", + + "error.validation.coarnotify.invalidfilter": "Invalid filter, try to select another service or none.", + + "request-status-alert-box.accepted": "The requested {{ offerType }} for {{ serviceName }} has been taken in charge.", + + "request-status-alert-box.rejected": "The requested {{ offerType }} for {{ serviceName }} has been rejected.", + + "request-status-alert-box.requested": "The requested {{ offerType }} for {{ serviceName }} is pending.", } diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts index 76b3d90138..3908dd71dd 100644 --- a/src/environments/environment.test.ts +++ b/src/environments/environment.test.ts @@ -324,6 +324,4 @@ export const environment: BuildConfig = { enabled: true } ], - - suggestion: [] };