1
0

Work for signposting

This commit is contained in:
Alban Imami
2023-04-27 16:51:41 +02:00
parent 4847fc6f7a
commit 90a1f25ba9
7 changed files with 115 additions and 2 deletions

View File

@@ -180,6 +180,15 @@ export function app() {
changeOrigin: true changeOrigin: true
})); }));
/**
* Proxy the linksets
*/
router.use('/linksets**', createProxyMiddleware({
target: `${environment.rest.baseUrl}/linksets`,
pathRewrite: path => path.replace(environment.ui.nameSpace, '/'),
changeOrigin: true
}));
/** /**
* Checks if the rateLimiter property is present * Checks if the rateLimiter property is present
* When it is present, the rateLimiter will be enabled. When it is undefined, the rateLimiter will be disabled. * When it is present, the rateLimiter will be enabled. When it is undefined, the rateLimiter will be disabled.

View File

@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { MetadataItemService } from './metadata-item.service';
describe('MetadataItemService', () => {
let service: MetadataItemService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(MetadataItemService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@@ -0,0 +1,70 @@
import { Inject, Injectable } from '@angular/core';
import { MetadataService } from '../metadata/metadata.service';
import { ActivatedRoute, NavigationEnd, Event as NavigationEvent, NavigationStart, Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Meta, Title } from '@angular/platform-browser';
import { DSONameService } from '../breadcrumbs/dso-name.service';
import { BundleDataService } from '../data/bundle-data.service';
import { BitstreamDataService } from '../data/bitstream-data.service';
import { BitstreamFormatDataService } from '../data/bitstream-format-data.service';
import { RootDataService } from '../data/root-data.service';
import { CoreState } from '../core-state.model';
import { Store } from '@ngrx/store';
import { HardRedirectService } from '../services/hard-redirect.service';
import { APP_CONFIG, AppConfig } from 'src/config/app-config.interface';
import { AuthorizationDataService } from '../data/feature-authorization/authorization-data.service';
import { filter, map, switchMap, take, mergeMap } from 'rxjs/operators';
import { DOCUMENT } from '@angular/common';
@Injectable({
providedIn: 'root'
})
export class MetadataItemService extends MetadataService {
constructor(
private router1: ActivatedRoute,
router: Router,
translate: TranslateService,
meta: Meta,
title: Title,
dsoNameService: DSONameService,
bundleDataService: BundleDataService,
bitstreamDataService: BitstreamDataService,
bitstreamFormatDataService: BitstreamFormatDataService,
rootService: RootDataService,
store: Store<CoreState>,
hardRedirectService: HardRedirectService,
@Inject(APP_CONFIG) appConfig: AppConfig,
authorizationService: AuthorizationDataService,
@Inject(DOCUMENT) private document: Document
) {
super(router, translate, meta, title, dsoNameService, bundleDataService, bitstreamDataService, bitstreamFormatDataService, rootService, store, hardRedirectService, appConfig, authorizationService);
}
public checkCurrentRoute(){
console.log(this.router);
this.router1.url.subscribe(url => {
console.log(url);
console.log(url[0].path);
});
// this.router.events.subscribe((event: NavigationEvent) => {
// if(event instanceof NavigationStart) {
// if(event.url.startsWith('/entities')){
// console.log('We are on ENTITIES!');
// }
// }
// });
}
setLinkTag(){
this.clearMetaTags();
let link: HTMLLinkElement = this.document.createElement('link');
link.setAttribute('rel', '');
link.setAttribute('href', '');
this.document.head.appendChild(link);
}
}

View File

@@ -84,7 +84,7 @@ export class MetadataService {
]; ];
constructor( constructor(
private router: Router, protected router: Router,
private translate: TranslateService, private translate: TranslateService,
private meta: Meta, private meta: Meta,
private title: Title, private title: Title,
@@ -363,6 +363,15 @@ export class MetadataService {
} }
} }
/**
* Add <meta name="link" ... > to the <head>
*/
// private setLinkTag(): void {
// const value = this.getMetaTagValue('dc.link');
// this.meta.addTag({ name: 'Link', content: value });
// this.addMetaTag('Link', value);
// }
getBitLinkIfDownloadable(bitstream: Bitstream, bitstreamRd: RemoteData<PaginatedList<Bitstream>>): Observable<string> { getBitLinkIfDownloadable(bitstream: Bitstream, bitstreamRd: RemoteData<PaginatedList<Bitstream>>): Observable<string> {
return observableOf(bitstream).pipe( return observableOf(bitstream).pipe(
getDownloadableBitstream(this.authorizationService), getDownloadableBitstream(this.authorizationService),

View File

@@ -24,6 +24,7 @@ import { isAuthenticationBlocking } from './core/auth/selectors';
import { distinctUntilChanged, find } from 'rxjs/operators'; import { distinctUntilChanged, find } from 'rxjs/operators';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { MenuService } from './shared/menu/menu.service'; import { MenuService } from './shared/menu/menu.service';
import { MetadataItemService } from './core/metadata-item/metadata-item.service';
/** /**
* Performs the initialization of the app. * Performs the initialization of the app.
@@ -50,6 +51,7 @@ export abstract class InitService {
protected localeService: LocaleService, protected localeService: LocaleService,
protected angulartics2DSpace: Angulartics2DSpace, protected angulartics2DSpace: Angulartics2DSpace,
protected metadata: MetadataService, protected metadata: MetadataService,
protected metadataItem: MetadataItemService,
protected breadcrumbsService: BreadcrumbsService, protected breadcrumbsService: BreadcrumbsService,
protected themeService: ThemeService, protected themeService: ThemeService,
protected menuService: MenuService, protected menuService: MenuService,
@@ -188,6 +190,7 @@ export abstract class InitService {
this.breadcrumbsService.listenForRouteChanges(); this.breadcrumbsService.listenForRouteChanges();
this.themeService.listenForRouteChanges(); this.themeService.listenForRouteChanges();
this.menuService.listenForRouteChanges(); this.menuService.listenForRouteChanges();
this.metadataItem.checkCurrentRoute();
} }
/** /**

View File

@@ -32,6 +32,7 @@ import { logStartupMessage } from '../../../startup-message';
import { MenuService } from '../../app/shared/menu/menu.service'; import { MenuService } from '../../app/shared/menu/menu.service';
import { RootDataService } from '../../app/core/data/root-data.service'; import { RootDataService } from '../../app/core/data/root-data.service';
import { firstValueFrom, Subscription } from 'rxjs'; import { firstValueFrom, Subscription } from 'rxjs';
import { MetadataItemService } from 'src/app/core/metadata-item/metadata-item.service';
/** /**
* Performs client-side initialization. * Performs client-side initialization.
@@ -51,6 +52,7 @@ export class BrowserInitService extends InitService {
protected angulartics2DSpace: Angulartics2DSpace, protected angulartics2DSpace: Angulartics2DSpace,
protected googleAnalyticsService: GoogleAnalyticsService, protected googleAnalyticsService: GoogleAnalyticsService,
protected metadata: MetadataService, protected metadata: MetadataService,
protected metadataItem: MetadataItemService,
protected breadcrumbsService: BreadcrumbsService, protected breadcrumbsService: BreadcrumbsService,
protected klaroService: KlaroService, protected klaroService: KlaroService,
protected authService: AuthService, protected authService: AuthService,
@@ -66,6 +68,7 @@ export class BrowserInitService extends InitService {
localeService, localeService,
angulartics2DSpace, angulartics2DSpace,
metadata, metadata,
metadataItem,
breadcrumbsService, breadcrumbsService,
themeService, themeService,
menuService, menuService,

View File

@@ -21,6 +21,7 @@ import { BreadcrumbsService } from '../../app/breadcrumbs/breadcrumbs.service';
import { ThemeService } from '../../app/shared/theme-support/theme.service'; import { ThemeService } from '../../app/shared/theme-support/theme.service';
import { take } from 'rxjs/operators'; import { take } from 'rxjs/operators';
import { MenuService } from '../../app/shared/menu/menu.service'; import { MenuService } from '../../app/shared/menu/menu.service';
import { MetadataItemService } from 'src/app/core/metadata-item/metadata-item.service';
/** /**
* Performs server-side initialization. * Performs server-side initialization.
@@ -36,9 +37,10 @@ export class ServerInitService extends InitService {
protected localeService: LocaleService, protected localeService: LocaleService,
protected angulartics2DSpace: Angulartics2DSpace, protected angulartics2DSpace: Angulartics2DSpace,
protected metadata: MetadataService, protected metadata: MetadataService,
protected metadataItem: MetadataItemService,
protected breadcrumbsService: BreadcrumbsService, protected breadcrumbsService: BreadcrumbsService,
protected themeService: ThemeService, protected themeService: ThemeService,
protected menuService: MenuService, protected menuService: MenuService
) { ) {
super( super(
store, store,
@@ -48,6 +50,7 @@ export class ServerInitService extends InitService {
localeService, localeService,
angulartics2DSpace, angulartics2DSpace,
metadata, metadata,
metadataItem,
breadcrumbsService, breadcrumbsService,
themeService, themeService,
menuService, menuService,