expect(dispatchSpy).toHaveBeenCalledTimes(2) // once for keydown, second for click
})
+ it('should support using base href in navigateOrOpenInNewWindow', () => {
+ jest
+ .spyOn(component['locationStrategy'], 'getBaseHref')
+ .mockReturnValue('/base/')
+ const openSpy = jest.spyOn(window, 'open')
+ const event = new Event('click')
+ event['ctrlKey'] = true
+ component.primaryAction(DataType.Document, { id: 1 }, event as any)
+ expect(openSpy).toHaveBeenCalledWith('/base/documents/1', '_blank')
+ })
+
it('should support title content search and advanced search', () => {
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.query = 'test'
-import { NgTemplateOutlet } from '@angular/common'
+import { LocationStrategy, NgTemplateOutlet } from '@angular/common'
import {
Component,
ElementRef,
private permissionsService: PermissionsService,
private toastService: ToastService,
private hotkeyService: HotKeyService,
- private settingsService: SettingsService
+ private settingsService: SettingsService,
+ private locationStrategy: LocationStrategy
) {
this.queryDebounce = new Subject<string>()
extras: Object = {}
) {
if (newWindow) {
- const url = this.router.serializeUrl(
+ const serializedUrl = this.router.serializeUrl(
this.router.createUrlTree(commands, extras)
)
- window.open(url, '_blank')
+ const baseHref = this.locationStrategy.getBaseHref()
+ const fullUrl =
+ baseHref.replace(/\/+$/, '') + '/' + serializedUrl.replace(/^\/+/, '')
+ window.open(fullUrl, '_blank')
} else {
this.router.navigate(commands, extras)
}