Skip to content

Commit d718295

Browse files
committed
Updated SubmitNewItemMenuProvider in order to depend on the showSubmitButton configuration.
1 parent d046277 commit d718295

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/app/shared/menu/providers/submit-new-item.menu.spec.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import { TestBed } from '@angular/core/testing';
2+
import { APP_CONFIG } from '@dspace/config/app-config.interface';
23
import { AuthorizationDataService } from '@dspace/core/data/feature-authorization/authorization-data.service';
34
import { Collection } from '@dspace/core/shared/collection.model';
45
import { COLLECTION } from '@dspace/core/shared/collection.resource-type';
5-
import { of } from 'rxjs';
6+
import {
7+
Observable,
8+
of,
9+
} from 'rxjs';
610

11+
import { environment } from '../../../../environments/environment';
712
import { MenuItemType } from '../menu-item-type.model';
813
import { PartialMenuSection } from '../menu-provider.model';
914
import { SubmitNewItemMenuProvider } from './submit-new-item.menu';
@@ -34,7 +39,7 @@ describe('SubmitNewItemMenuProvider', () => {
3439
});
3540

3641

37-
let authorizationService;
42+
let authorizationService: { isAuthorized: Observable<boolean> ; };
3843

3944
beforeEach(() => {
4045

@@ -46,6 +51,7 @@ describe('SubmitNewItemMenuProvider', () => {
4651
providers: [
4752
SubmitNewItemMenuProvider,
4853
{ provide: AuthorizationDataService, useValue: authorizationService },
54+
{ provide: APP_CONFIG, useValue: environment },
4955
],
5056
});
5157
provider = TestBed.inject(SubmitNewItemMenuProvider);
@@ -62,6 +68,12 @@ describe('SubmitNewItemMenuProvider', () => {
6268
done();
6369
});
6470
});
65-
});
6671

72+
it('should set visibility depending on authorization and collection.showSubmitButton', done => {
73+
provider.getSectionsForContext(dso).subscribe((sections) => {
74+
expect(sections[0].visible).toEqual(authorizationService.isAuthorized && !environment.collection.showSubmitButton);
75+
done();
76+
});
77+
});
78+
});
6779
});

src/app/shared/menu/providers/submit-new-item.menu.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@
55
*
66
* http://www.dspace.org/license/
77
*/
8-
import { Injectable } from '@angular/core';
8+
import {
9+
Inject,
10+
Injectable,
11+
} from '@angular/core';
12+
import {
13+
APP_CONFIG,
14+
AppConfig,
15+
} from '@dspace/config/app-config.interface';
916
import { AuthorizationDataService } from '@dspace/core/data/feature-authorization/authorization-data.service';
1017
import { FeatureID } from '@dspace/core/data/feature-authorization/feature-id';
1118
import { DSpaceObject } from '@dspace/core/shared/dspace-object.model';
@@ -27,6 +34,7 @@ import { DSpaceObjectPageMenuProvider } from './helper-providers/dso.menu';
2734
export class SubmitNewItemMenuProvider extends DSpaceObjectPageMenuProvider {
2835
constructor(
2936
protected authorizationDataService: AuthorizationDataService,
37+
@Inject(APP_CONFIG) protected appConfig: AppConfig,
3038
) {
3139
super();
3240
}
@@ -38,7 +46,7 @@ export class SubmitNewItemMenuProvider extends DSpaceObjectPageMenuProvider {
3846
map(([canSubmitItem]) => {
3947
return [
4048
{
41-
visible: canSubmitItem,
49+
visible: canSubmitItem && !this.appConfig.collection.showSubmitButton,
4250
model: {
4351
type: MenuItemType.LINK,
4452
text: 'collection.submit.item',

0 commit comments

Comments
 (0)