diff --git a/src/app/+admin/admin-sidebar/admin-sidebar.component.ts b/src/app/+admin/admin-sidebar/admin-sidebar.component.ts index f148627297..3ad1bd4272 100644 --- a/src/app/+admin/admin-sidebar/admin-sidebar.component.ts +++ b/src/app/+admin/admin-sidebar/admin-sidebar.component.ts @@ -138,13 +138,18 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { parentID: 'new', active: false, visible: true, + // model: { + // type: MenuItemType.ONCLICK, + // text: 'menu.section.new_item', + // function: () => { + // this.modalService.open(CreateItemParentSelectorComponent); + // } + // } as OnClickMenuItemModel, model: { - type: MenuItemType.ONCLICK, + type: MenuItemType.LINK, text: 'menu.section.new_item', - function: () => { - this.modalService.open(CreateItemParentSelectorComponent); - } - } as OnClickMenuItemModel, + link: '/submit' + } as LinkMenuItemModel, }, { id: 'new_item_version', @@ -154,7 +159,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.new_item_version', - link: '#' + link: '' } as LinkMenuItemModel, }, @@ -230,7 +235,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.import_metadata', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -241,7 +246,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.import_batch', - link: '#' + link: '' } as LinkMenuItemModel, }, /* Export */ @@ -264,7 +269,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.export_community', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -275,7 +280,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.export_collection', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -286,7 +291,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.export_item', - link: '#' + link: '' } as LinkMenuItemModel, }, { id: 'export_metadata', @@ -296,7 +301,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.export_metadata', - link: '#' + link: '' } as LinkMenuItemModel, }, @@ -320,7 +325,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.access_control_people', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -331,7 +336,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.access_control_groups', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -342,7 +347,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.access_control_authorizations', - link: '#' + link: '' } as LinkMenuItemModel, }, @@ -377,7 +382,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.find_withdrawn_items', - link: '#' + link: '' } as LinkMenuItemModel, }, { @@ -388,7 +393,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.find_private_items', - link: '/admin/items' + link: '' } as LinkMenuItemModel, }, @@ -435,7 +440,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.curation_task', - link: '/curation' + link: '' } as LinkMenuItemModel, icon: 'filter', index: 7 @@ -449,7 +454,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.statistics_task', - link: '#' + link: '' } as LinkMenuItemModel, icon: 'chart-bar', index: 8 @@ -463,7 +468,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit { model: { type: MenuItemType.LINK, text: 'menu.section.control_panel', - link: '#' + link: '' } as LinkMenuItemModel, icon: 'cogs', index: 9 diff --git a/src/app/+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts b/src/app/+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts index 4921be77e2..112560de16 100644 --- a/src/app/+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts +++ b/src/app/+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component.ts @@ -18,8 +18,8 @@ import { rendersSectionForMenu } from '../../../shared/menu/menu-section.decorat templateUrl: './expandable-admin-sidebar-section.component.html', styleUrls: ['./expandable-admin-sidebar-section.component.scss'], animations: [rotate, slide, bgColor] - }) + @rendersSectionForMenu(MenuID.ADMIN, true) export class ExpandableAdminSidebarSectionComponent extends AdminSidebarSectionComponent implements OnInit { /** diff --git a/src/app/+item-page/item-page.resolver.ts b/src/app/+item-page/item-page.resolver.ts index 9743346c3c..219c14d73c 100644 --- a/src/app/+item-page/item-page.resolver.ts +++ b/src/app/+item-page/item-page.resolver.ts @@ -1,18 +1,19 @@ import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; -import { Observable } from 'rxjs'; +import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router'; +import { EMPTY, Observable } from 'rxjs'; import { RemoteData } from '../core/data/remote-data'; import { getSucceededRemoteData } from '../core/shared/operators'; import { ItemDataService } from '../core/data/item-data.service'; import { Item } from '../core/shared/item.model'; -import { tap } from 'rxjs/operators'; +import { hasValue } from '../shared/empty.util'; +import { find, map } from 'rxjs/operators'; /** * This class represents a resolver that requests a specific item before the route is activated */ @Injectable() export class ItemPageResolver implements Resolve> { - constructor(private itemService: ItemDataService) { + constructor(private itemService: ItemDataService, private router: Router) { } /** @@ -22,8 +23,16 @@ export class ItemPageResolver implements Resolve> { * @returns Observable<> Emits the found item based on the parameters in the current route */ resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable> { - return this.itemService.findById(route.params.id).pipe( - getSucceededRemoteData() - ); + return this.itemService.findById(route.params.id) + .pipe( + find((RD) => hasValue(RD.error) || RD.hasSucceeded), + map((RD) => { + if (hasValue(RD.error)) { + this.router.navigateByUrl('/404', { skipLocationChange: true }); + return null; + } + return RD; + }) + ); } } diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html index 402eb7a44d..0c0e07de50 100644 --- a/src/app/header/header.component.html +++ b/src/app/header/header.component.html @@ -5,7 +5,7 @@