[DURACOM-191] Provide resolver in root

This commit is contained in:
Giuseppe Digilio
2024-03-14 18:06:35 +01:00
parent 56fc0a7cfb
commit 748febdb88
45 changed files with 27 additions and 79 deletions

View File

@@ -26,9 +26,7 @@ import {
const providers = [
I18nBreadcrumbResolver,
I18nBreadcrumbsService,
SourceDataResolver,
QualityAssuranceTopicsPageResolver,
QualityAssuranceEventsPageResolver,
QualityAssuranceSourcePageResolver,
QualityAssuranceBreadcrumbResolver,
QualityAssuranceBreadcrumbService,

View File

@@ -9,7 +9,7 @@ import { EditBitstreamFormatComponent } from './edit-bitstream-format/edit-bitst
const BITSTREAMFORMAT_EDIT_PATH = ':id/edit';
const BITSTREAMFORMAT_ADD_PATH = 'add';
const providers = [BitstreamFormatsResolver];
const providers = [];
export const ROUTES: Route[] = [
{

View File

@@ -14,7 +14,7 @@ import { getFirstCompletedRemoteData } from '../../../core/shared/operators';
/**
* This class represents a resolver that requests a specific bitstreamFormat before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class BitstreamFormatsResolver implements Resolve<RemoteData<BitstreamFormat>> {
constructor(private bitstreamFormatDataService: BitstreamFormatDataService) {
}

View File

@@ -22,7 +22,6 @@ const EDIT_BITSTREAM_AUTHORIZATIONS_PATH = ':id/authorizations';
*/
const providers = [
BitstreamPageResolver,
BitstreamBreadcrumbResolver,
BitstreamBreadcrumbsService,
];

View File

@@ -27,7 +27,7 @@ export const BITSTREAM_PAGE_LINKS_TO_FOLLOW: FollowLinkConfig<Bitstream>[] = [
/**
* This class represents a resolver that requests a specific bitstream before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class BitstreamPageResolver implements Resolve<RemoteData<Bitstream>> {
constructor(private bitstreamService: BitstreamDataService) {
}

View File

@@ -21,7 +21,7 @@ import { hasValue } from '../shared/empty.util';
/**
* The class that resolves the BreadcrumbConfig object for a DSpaceObject on a browse by page
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class BrowseByDSOBreadcrumbResolver {
constructor(protected breadcrumbService: DSOBreadcrumbsService, protected dataService: DSpaceObjectDataService) {
}

View File

@@ -12,7 +12,7 @@ import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.ser
* This class resolves a BreadcrumbConfig object with an i18n key string for a route
* It adds the metadata field of the current browse-by page
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class BrowseByI18nBreadcrumbResolver extends I18nBreadcrumbResolver {
constructor(protected breadcrumbService: I18nBreadcrumbsService) {
super(breadcrumbService);

View File

@@ -13,10 +13,6 @@ export const ROUTES: Route[] = [
breadcrumb: BrowseByDSOBreadcrumbResolver,
menu: DSOEditMenuResolver,
},
providers: [
BrowseByI18nBreadcrumbResolver,
BrowseByDSOBreadcrumbResolver,
],
children: [
{
path: ':id',

View File

@@ -34,8 +34,6 @@ export const ROUTES: Route[] = [
component: CreateCollectionPageComponent,
canActivate: [AuthenticatedGuard, CreateCollectionPageGuard],
providers: [
CollectionPageResolver,
ItemTemplatePageResolver,
CollectionBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,
@@ -52,8 +50,6 @@ export const ROUTES: Route[] = [
menu: DSOEditMenuResolver,
},
providers: [
CollectionPageResolver,
ItemTemplatePageResolver,
CollectionBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,

View File

@@ -31,7 +31,7 @@ export const COLLECTION_PAGE_LINKS_TO_FOLLOW: FollowLinkConfig<Collection>[] = [
/**
* This class represents a resolver that requests a specific collection before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class CollectionPageResolver implements Resolve<RemoteData<Collection>> {
constructor(
private collectionService: CollectionDataService,

View File

@@ -25,10 +25,6 @@ export const ROUTES: Route[] = [
resolve: {
breadcrumb: I18nBreadcrumbResolver,
},
providers: [
ResourcePolicyResolver,
ResourcePolicyTargetResolver,
],
data: { breadcrumbKey: 'collection.edit' },
component: EditCollectionPageComponent,
canActivate: [CollectionAdministratorGuard],

View File

@@ -16,7 +16,7 @@ import { followLink } from '../../shared/utils/follow-link-config.model';
/**
* This class represents a resolver that requests a specific collection's item template before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ItemTemplatePageResolver implements Resolve<RemoteData<Item>> {
constructor(
public dsoNameService: DSONameService,

View File

@@ -30,7 +30,6 @@ export const ROUTES: Route[] = [
component: CreateCommunityPageComponent,
canActivate: [AuthenticatedGuard, CreateCommunityPageGuard],
providers: [
CommunityPageResolver,
CommunityBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,
@@ -46,7 +45,6 @@ export const ROUTES: Route[] = [
menu: DSOEditMenuResolver,
},
providers: [
CommunityPageResolver,
CommunityBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,

View File

@@ -31,7 +31,7 @@ export const COMMUNITY_PAGE_LINKS_TO_FOLLOW: FollowLinkConfig<Community>[] = [
/**
* This class represents a resolver that requests a specific community before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class CommunityPageResolver implements Resolve<RemoteData<Community>> {
constructor(
private communityService: CommunityDataService,

View File

@@ -23,10 +23,6 @@ export const ROUTES: Route[] = [
resolve: {
breadcrumb: I18nBreadcrumbResolver,
},
providers: [
ResourcePolicyResolver,
ResourcePolicyTargetResolver,
],
data: { breadcrumbKey: 'community.edit' },
component: EditCommunityPageComponent,
canActivate: [CommunityAdministratorGuard],

View File

@@ -16,7 +16,7 @@ import { getFirstCompletedRemoteData } from '../../shared/operators';
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class SubmissionObjectResolver<T> implements Resolve<RemoteData<T>> {
constructor(
protected dataService: IdentifiableDataService<any>,

View File

@@ -10,16 +10,10 @@ export const ROUTES: Route[] = [
path: '',
component: ThemedForgotEmailComponent,
data: { title: 'forgot-password.title' },
providers: [
ItemPageResolver,
],
},
{
path: ':token',
component: ThemedForgotPasswordFormComponent,
canActivate: [RegistrationGuard],
providers: [
ItemPageResolver,
],
},
];

View File

@@ -11,7 +11,6 @@ export const ROUTES: Route[] = [
path: '',
component: ThemedHomePageComponent,
providers: [
HomePageResolver,
provideSuggestionNotifications(),
],
pathMatch: 'full',

View File

@@ -13,7 +13,7 @@ import { Site } from '../core/shared/site.model';
/**
* The class that resolve the Site object for a route
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class HomePageResolver implements Resolve<Site> {
constructor(private siteService: SiteDataService) {
}

View File

@@ -59,8 +59,6 @@ export const ROUTES: Route[] = [
providers: [
I18nBreadcrumbResolver,
I18nBreadcrumbsService,
ResourcePolicyResolver,
ResourcePolicyTargetResolver,
ItemPageReinstateGuard,
ItemPageWithdrawGuard,
ItemPageAdministratorGuard,

View File

@@ -33,12 +33,10 @@ export const ROUTES: Route[] = [
menu: DSOEditMenuResolver,
},
providers: [
ItemPageResolver,
ItemBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,
ItemPageAdministratorGuard,
VersionResolver,
OrcidPageGuard,
],
runGuardsAndResolvers: 'always',
@@ -100,12 +98,10 @@ export const ROUTES: Route[] = [
},
],
providers: [
ItemPageResolver,
ItemBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,
ItemPageAdministratorGuard,
VersionResolver,
OrcidPageGuard,
],
},

View File

@@ -19,7 +19,7 @@ import { getItemPageRoute } from './item-page-routing-paths';
* This class represents a resolver that requests a specific item before the route is activated and will redirect to the
* entity page
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ItemPageResolver extends ItemResolver {
constructor(
protected itemService: ItemDataService,

View File

@@ -35,7 +35,7 @@ export const ITEM_PAGE_LINKS_TO_FOLLOW: FollowLinkConfig<Item>[] = [
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ItemResolver implements Resolve<RemoteData<Item>> {
constructor(
protected itemService: ItemDataService,

View File

@@ -29,7 +29,7 @@ export const VERSION_PAGE_LINKS_TO_FOLLOW: FollowLinkConfig<Version>[] = [
/**
* This class represents a resolver that requests a specific version before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class VersionResolver implements Resolve<RemoteData<Version>> {
constructor(
protected versionService: VersionDataService,

View File

@@ -18,7 +18,7 @@ import { Process } from './processes/process.model';
/**
* This class represents a resolver that requests a specific process before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ProcessBreadcrumbResolver implements Resolve<BreadcrumbConfig<Process>> {
constructor(protected breadcrumbService: ProcessBreadcrumbsService, private processService: ProcessDataService) {
}

View File

@@ -11,9 +11,6 @@ import { ProcessPageResolver } from './process-page.resolver';
export const ROUTES: Route[] = [
{
path: '',
providers: [
ProcessPageResolver,
],
resolve: { breadcrumb: I18nBreadcrumbResolver },
data: { breadcrumbKey: 'process.overview' },
canActivate: [AuthenticatedGuard],

View File

@@ -19,7 +19,7 @@ export const PROCESS_PAGE_FOLLOW_LINKS = [
/**
* This class represents a resolver that requests a specific process before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ProcessPageResolver implements Resolve<RemoteData<Process>> {
constructor(private processService: ProcessDataService) {
}

View File

@@ -24,10 +24,8 @@ const providers = [
I18nBreadcrumbResolver,
I18nBreadcrumbsService,
AdminNotificationsPublicationClaimPageResolver,
SourceDataResolver,
QualityAssuranceSourcePageResolver,
QualityAssuranceTopicsPageResolver,
QualityAssuranceEventsPageResolver,
QualityAssuranceSourcePageResolver,
QualityAssuranceBreadcrumbResolver,
QualityAssuranceBreadcrumbService,

View File

@@ -17,7 +17,7 @@ export interface AssuranceEventsPageParams {
/**
* This class represents a resolver that retrieve the route data before the route is activated.
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class QualityAssuranceEventsPageResolver implements Resolve<AssuranceEventsPageParams> {
/**

View File

@@ -16,7 +16,7 @@ import { QualityAssuranceSourceService } from '../../notifications/qa/source/qua
/**
* This class represents a resolver that retrieve the route data before the route is activated.
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class SourceDataResolver implements Resolve<Observable<QualityAssuranceSourceObject[]>> {
private pageSize = environment.qualityAssuranceConfig.pageSize;
/**

View File

@@ -11,7 +11,7 @@ import { RemoteData } from '../core/data/remote-data';
import { getFirstCompletedRemoteData } from '../core/shared/operators';
import { Registration } from '../core/shared/registration.model';
@Injectable()
@Injectable({ providedIn: 'root' })
/**
* Resolver to resolve a Registration object based on the provided token
*/

View File

@@ -11,17 +11,11 @@ export const ROUTES: Route[] = [
{
path: '',
component: ThemedRegisterEmailComponent,
providers: [
ItemPageResolver,
],
data: { title: 'register-email.title' },
},
{
path: ':token',
component: ThemedCreateProfileComponent,
providers: [
ItemPageResolver,
],
canActivate: [
RegistrationGuard,
EndUserAgreementCookieGuard,

View File

@@ -13,7 +13,6 @@ export const ROUTES: Route[] = [
{
path: ':token',
providers: [
RequestCopyResolver,
GrantDenyRequestCopyComponent,
],
resolve: {

View File

@@ -14,7 +14,7 @@ import { getFirstCompletedRemoteData } from '../core/shared/operators';
/**
* Resolves an {@link ItemRequest} from the token found in the route's parameters
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class RequestCopyResolver implements Resolve<RemoteData<ItemRequest>> {
constructor(

View File

@@ -21,7 +21,7 @@ import { isEmpty } from '../../empty.util';
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ResourcePolicyTargetResolver implements Resolve<RemoteData<DSpaceObject>> {
/**
* The data service used to make request.

View File

@@ -17,7 +17,7 @@ import { followLink } from '../../utils/follow-link-config.model';
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ResourcePolicyResolver implements Resolve<RemoteData<ResourcePolicy>> {
constructor(private resourcePolicyService: ResourcePolicyDataService, private router: Router) {

View File

@@ -14,9 +14,6 @@ import { ThemedSiteStatisticsPageComponent } from './site-statistics-page/themed
const providers = [
I18nBreadcrumbResolver,
I18nBreadcrumbsService,
CollectionPageResolver,
CommunityPageResolver,
ItemResolver,
];
export const ROUTES: Route[] = [

View File

@@ -19,7 +19,6 @@ export const ROUTES: Route[] = [
showBreadcrumbsFluid: false,
},
providers: [
SuggestionsPageResolver,
PublicationClaimBreadcrumbResolver,
provideSuggestionNotifications(),
],

View File

@@ -15,7 +15,7 @@ import { hasValue } from '../shared/empty.util';
/**
* This class represents a resolver that requests a specific collection before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class SuggestionsPageResolver implements Resolve<RemoteData<SuggestionTarget>> {
constructor(private suggestionsDataService: SuggestionTargetDataService) {
}

View File

@@ -10,7 +10,7 @@ import { WorkflowItemDataService } from '../core/submission/workflowitem-data.se
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ItemFromWorkflowResolver extends SubmissionObjectResolver<Item> implements Resolve<RemoteData<Item>> {
constructor(
private workflowItemService: WorkflowItemDataService,

View File

@@ -15,7 +15,7 @@ import { followLink } from '../shared/utils/follow-link-config.model';
/**
* This class represents a resolver that requests a specific workflow item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class WorkflowItemPageResolver implements Resolve<RemoteData<WorkflowItem>> {
constructor(private workflowItemService: WorkflowItemDataService) {
}

View File

@@ -22,7 +22,7 @@ export const ROUTES: Routes = [
{
path: ':id',
resolve: { wfi: WorkflowItemPageResolver },
providers: [WorkflowItemPageResolver, ItemFromWorkflowResolver, provideSubmission()],
providers: [provideSubmission()],
children: [
{
canActivate: [AuthenticatedGuard],

View File

@@ -10,7 +10,7 @@ import { WorkspaceitemDataService } from '../core/submission/workspaceitem-data.
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class ItemFromWorkspaceResolver extends SubmissionObjectResolver<Item> implements Resolve<RemoteData<Item>> {
constructor(
private workspaceItemService: WorkspaceitemDataService,

View File

@@ -15,7 +15,7 @@ import { followLink } from '../shared/utils/follow-link-config.model';
/**
* This class represents a resolver that requests a specific workflow item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class WorkspaceItemPageResolver implements Resolve<RemoteData<WorkflowItem>> {
constructor(private workspaceItemService: WorkspaceitemDataService) {
}

View File

@@ -11,8 +11,6 @@ import { ThemedWorkspaceItemsDeletePageComponent } from './workspaceitems-delete
import { WorkspaceItemsDeletePageComponent } from './workspaceitems-delete-page/workspaceitems-delete-page.component';
const providers = [
WorkspaceItemPageResolver,
ItemFromWorkspaceResolver,
provideSubmission(),
];