90155: Added queryParams to link menu options

- Made it possible to add queryParams to a link in the menu
This commit is contained in:
Jens Vannerum
2022-04-05 15:24:32 +02:00
parent 28622a82dd
commit c8235ddb6b
3 changed files with 18 additions and 3 deletions

View File

@@ -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>

View File

@@ -5,6 +5,7 @@ import { By } from '@angular/platform-browser';
import { LinkMenuItemComponent } from './link-menu-item.component'; import { LinkMenuItemComponent } from './link-menu-item.component';
import { RouterLinkDirectiveStub } from '../../testing/router-link-directive.stub'; import { RouterLinkDirectiveStub } from '../../testing/router-link-directive.stub';
import { environment } from '../../../../environments/environment'; import { environment } from '../../../../environments/environment';
import { QueryParamsDirectiveStub } from '../../testing/query-params-directive.stub';
describe('LinkMenuItemComponent', () => { describe('LinkMenuItemComponent', () => {
let component: LinkMenuItemComponent; let component: LinkMenuItemComponent;
@@ -12,19 +13,21 @@ describe('LinkMenuItemComponent', () => {
let debugElement: DebugElement; let debugElement: DebugElement;
let text; let text;
let link; let link;
let queryParams;
function init() { function init() {
text = 'HELLO'; text = 'HELLO';
link = 'http://google.com'; link = 'http://google.com';
queryParams = {params: true};
} }
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
init(); init();
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [TranslateModule.forRoot()], imports: [TranslateModule.forRoot()],
declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub], declarations: [LinkMenuItemComponent, RouterLinkDirectiveStub, QueryParamsDirectiveStub],
providers: [ providers: [
{ provide: 'itemModelProvider', useValue: { text: text, link: link } }, { provide: 'itemModelProvider', useValue: { text: text, link: link, queryParams: queryParams } },
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}) })
@@ -54,4 +57,12 @@ describe('LinkMenuItemComponent', () => {
expect(routerLinkQuery.length).toBe(1); expect(routerLinkQuery.length).toBe(1);
expect(routerLinkQuery[0].routerLink).toBe(environment.ui.nameSpace + link); 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);
});
}); });

View File

@@ -1,5 +1,6 @@
import { MenuItemModel } from './menu-item.model'; import { MenuItemModel } from './menu-item.model';
import { MenuItemType } from '../../initial-menus-state'; import { MenuItemType } from '../../initial-menus-state';
import { Params } from '@angular/router';
/** /**
* Model representing an Link Menu Section * Model representing an Link Menu Section
@@ -8,4 +9,5 @@ export class LinkMenuItemModel implements MenuItemModel {
type = MenuItemType.LINK; type = MenuItemType.LINK;
text: string; text: string;
link: string; link: string;
queryParams?: Params | null;
} }