mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
90155: Added queryParams to link menu options
- Made it possible to add queryParams to a link in the menu
This commit is contained in:
@@ -1 +1,3 @@
|
||||
<a href="javascript:void(0);" class="nav-item nav-link" [ngClass]="{'disabled': !hasLink}" [routerLink]="getRouterLink()">{{item.text | translate}}</a>
|
||||
<a href="javascript:void(0);" class="nav-item nav-link" [ngClass]="{'disabled': !hasLink}"
|
||||
[routerLink]="getRouterLink()"
|
||||
[queryParams]="item.queryParams">{{item.text | translate}}</a>
|
||||
|
@@ -5,6 +5,7 @@ import { By } from '@angular/platform-browser';
|
||||
import { LinkMenuItemComponent } from './link-menu-item.component';
|
||||
import { RouterLinkDirectiveStub } from '../../testing/router-link-directive.stub';
|
||||
import { environment } from '../../../../environments/environment';
|
||||
import { QueryParamsDirectiveStub } from '../../testing/query-params-directive.stub';
|
||||
|
||||
describe('LinkMenuItemComponent', () => {
|
||||
let component: LinkMenuItemComponent;
|
||||
@@ -12,19 +13,21 @@ describe('LinkMenuItemComponent', () => {
|
||||
let debugElement: DebugElement;
|
||||
let text;
|
||||
let link;
|
||||
let queryParams;
|
||||
|
||||
function init() {
|
||||
text = 'HELLO';
|
||||
link = 'http://google.com';
|
||||
queryParams = {params: true};
|
||||
}
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
init();
|
||||
TestBed.configureTestingModule({
|
||||
imports: [TranslateModule.forRoot()],
|
||||
declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub],
|
||||
declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub, QueryParamsDirectiveStub],
|
||||
providers: [
|
||||
{ provide: 'itemModelProvider', useValue: { text: text, link: link } },
|
||||
{ provide: 'itemModelProvider', useValue: { text: text, link: link, queryParams: queryParams } },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
})
|
||||
@@ -54,4 +57,12 @@ describe('LinkMenuItemComponent', () => {
|
||||
expect(routerLinkQuery.length).toBe(1);
|
||||
expect(routerLinkQuery[0].routerLink).toBe(environment.ui.nameSpace + link);
|
||||
});
|
||||
|
||||
it('should have the right queryParams attribute', () => {
|
||||
const queryDes = fixture.debugElement.queryAll(By.directive(QueryParamsDirectiveStub));
|
||||
const routerParamsQuery = queryDes.map((de) => de.injector.get(QueryParamsDirectiveStub));
|
||||
|
||||
expect(routerParamsQuery.length).toBe(1);
|
||||
expect(routerParamsQuery[0].queryParams).toBe(queryParams);
|
||||
});
|
||||
});
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { MenuItemModel } from './menu-item.model';
|
||||
import { MenuItemType } from '../../initial-menus-state';
|
||||
import { Params } from '@angular/router';
|
||||
|
||||
/**
|
||||
* Model representing an Link Menu Section
|
||||
@@ -8,4 +9,5 @@ export class LinkMenuItemModel implements MenuItemModel {
|
||||
type = MenuItemType.LINK;
|
||||
text: string;
|
||||
link: string;
|
||||
queryParams?: Params | null;
|
||||
}
|
||||
|
Reference in New Issue
Block a user