Skip to content

Commit 3ff917f

Browse files
atarix83Andrea Barbasso
authored andcommitted
Merged in task/dspace-cris-2023_02_x/DSC-2017 (pull request DSpace#2512)
[DSC-2017] Fix problem with link in the item page navbar Approved-by: Andrea Barbasso
2 parents f9b04ef + ca02b2b commit 3ff917f

File tree

5 files changed

+28
-11
lines changed

5 files changed

+28
-11
lines changed

src/app/cris-layout/cris-layout-loader/cris-layout-horizontal/cris-layout-navbar/cris-layout-navbar.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
<div id="collapsingNav">
1212
<ul class="navbar-nav mr-auto shadow-none">
1313
<ng-container *ngIf="!!(activeTab$ |async)">
14-
<ds-cris-layout-sidebar-item *ngFor="let tab of tabs;" [tab]="tab" [layout]="'horizontal'" [activeTab]="(activeTab$ |async)"
14+
<ds-cris-layout-sidebar-item *ngFor="let tab of tabs;" [itemBaseUrl]="itemBaseUrl" [tab]="tab" [layout]="'horizontal'" [activeTab]="(activeTab$ |async)"
1515
(tabSelectedChange)="setActiveTab($event)"></ds-cris-layout-sidebar-item>
1616
</ng-container>
1717
</ul>
1818
</div>
1919
</div>
2020
</div>
21-
</nav>
21+
</nav>

src/app/cris-layout/cris-layout-loader/cris-layout-vertical/cris-layout-sidebar/cris-layout-sidebar.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div>
55
<ul class="list-unstyled components mb-5">
66
<ng-container *ngIf="!!(activeTab$ |async)">
7-
<ds-cris-layout-sidebar-item *ngFor="let tab of tabs;" [tab]="tab" [layout]="'vertical'" [activeTab]="(activeTab$ |async)"
7+
<ds-cris-layout-sidebar-item *ngFor="let tab of tabs;" [itemBaseUrl]="itemBaseUrl" [tab]="tab" [layout]="'vertical'" [activeTab]="(activeTab$ |async)"
88
(tabSelectedChange)="setActiveTab($event)"></ds-cris-layout-sidebar-item>
99
</ng-container>
1010
</ul>

src/app/cris-layout/cris-layout-loader/shared/cris-layout-tabs/cris-layout-tabs.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,16 @@ export abstract class CrisLayoutTabsComponent {
4747
*/
4848
@Output() selectedTab = new EventEmitter<CrisLayoutTab>();
4949

50+
/**
51+
* The item base url
52+
*/
53+
itemBaseUrl: string;
5054

5155
constructor(public location: Location, public router: Router, public route: ActivatedRoute) {
5256
}
5357

5458
init(): void {
59+
this.itemBaseUrl = getItemPageRoute(this.item) + '/';
5560
if (this.tabs && this.tabs.length > 0) {
5661
if (isNotNull(this.route.snapshot.paramMap.get('tab'))) {
5762
this.parseTabs(this.route.snapshot.paramMap.get('tab'));

src/app/cris-layout/cris-layout-loader/shared/sidebar-item/cris-layout-sidebar-item.component.html

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<li class="sidebar-section h-100" [ngClass]="{ 'active' : !!tab && !!activeTab && (tab.isActive || tab.id == activeTab.id), 'expanded': expanded, 'vertical': layout == 'vertical', 'horizontal': layout == 'horizontal' }">
22
<div class="icon-wrapper" *ngIf="!tab.children || tab.children.length == 0 ">
3-
<a class="nav-item shortcut-icon" href="javascript:;" [ngClass]="{ 'px-4 justify-content-between' : layout == 'vertical' }"
4-
[title]="getTabHeader(tab)" (click)="$event.preventDefault();selectTab(tab)" [innerHTML]="getTabHeader(tab)">
5-
6-
</a>
3+
<a class="nav-item shortcut-icon"
4+
href="javascript:void(0);"
5+
[ngClass]="{ 'px-4 justify-content-between' : layout == 'vertical' }"
6+
[title]="getTabHeader(tab)"
7+
[routerLink]="itemBaseUrl + tab.shortname"
8+
(click)="$event.stopPropagation();$event.preventDefault();selectTab(tab)"
9+
[innerHTML]="getTabHeader(tab)"></a>
710
</div>
811
<div *ngIf="!!tab.children && tab.children.length > 0 " class="sidebar-collapsible h-100">
912
<a class="nav-item shortcut-icon" href="javascript:;" [ngClass]="{ 'px-4 justify-content-between' : layout == 'vertical' }"
@@ -19,10 +22,14 @@
1922
</a>
2023
<ul class="sidebar-sub-level-items list-unstyled" @slide *ngIf="expanded">
2124
<li *ngFor="let subTab of tab.children" [ngClass]="{'active' : !!subTab && !!activeTab && subTab.id == activeTab.id}">
22-
<a class="nav-item shortcut-icon" href="javascript:;" [ngClass]="{ 'px-4 justify-content-between' : layout == 'vertical' }"
23-
(click)="$event.preventDefault();selectTab(subTab)">
24-
<span id="sidebarName-{{subTab.id}}" class="pl-3 section-header-text" [innerHTML]="getTabHeader(subTab)">
25-
</span>
25+
<a class="nav-item shortcut-icon"
26+
href="javascript:void(0);"
27+
[ngClass]="{ 'px-4 justify-content-between' : layout == 'vertical' }"
28+
[routerLink]="itemBaseUrl + subTab.shortname"
29+
(click)="$event.stopPropagation();$event.preventDefault();selectTab(subTab)">
30+
<span id="sidebarName-{{subTab.id}}"
31+
class="pl-3 section-header-text"
32+
[innerHTML]="getTabHeader(subTab)"></span>
2633
</a>
2734
</li>
2835
</ul>

src/app/cris-layout/cris-layout-loader/shared/sidebar-item/cris-layout-sidebar-item.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ import { TranslateService } from '@ngx-translate/core';
1717
animations: [rotate, slide, rotateNavbar]
1818
})
1919
export class CrisLayoutSidebarItemComponent {
20+
/**
21+
* Contains the items base url
22+
*/
23+
@Input() itemBaseUrl: string;
24+
2025
/**
2126
* The tab that will be shown
2227
*/

0 commit comments

Comments
 (0)