1
0

62180: fixed issues wih 404 pages

This commit is contained in:
lotte
2019-05-09 11:43:37 +02:00
parent 487339d9ef
commit ee5a9c7df5
7 changed files with 45 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
import { Observable } from 'rxjs';
import { filter, find, flatMap, map, tap } from 'rxjs/operators';
import { filter, find, flatMap, map, take, tap } from 'rxjs/operators';
import { hasValue, hasValueOperator, isNotEmpty } from '../../shared/empty.util';
import { DSOSuccessResponse, RestResponse } from '../cache/response.models';
import { RemoteData } from '../data/remote-data';
@@ -10,6 +10,8 @@ import { BrowseDefinition } from './browse-definition.model';
import { DSpaceObject } from './dspace-object.model';
import { PaginatedList } from '../data/paginated-list';
import { SearchResult } from '../../+search-page/search-result.model';
import { Item } from './item.model';
import { Router } from '@angular/router';
/**
* This file contains custom RxJS operators that can be used in multiple places
@@ -62,6 +64,15 @@ export const getSucceededRemoteData = () =>
<T>(source: Observable<RemoteData<T>>): Observable<RemoteData<T>> =>
source.pipe(find((rd: RemoteData<T>) => rd.hasSucceeded));
export const renderPageNotFoundOn404 = (router: Router) =>
<T>(source: Observable<RemoteData<T>>): Observable<RemoteData<T>> =>
source.pipe(
tap((rd: RemoteData<T>) => {
if (rd.hasFailed && rd.error.statusCode === 404) {
router.navigateByUrl('/404', { skipLocationChange: true });
}
}));
export const getFinishedRemoteData = () =>
<T>(source: Observable<RemoteData<T>>): Observable<RemoteData<T>> =>
source.pipe(find((rd: RemoteData<T>) => !rd.isLoading));