Skip to content

Commit 2eaf3d8

Browse files
author
Andrea Barbasso
committed
Merge branch 'dspace-cris-7' into DSC-1352
# Conflicts: # src/config/default-app-config.ts # src/environments/environment.test.ts
2 parents 6a8e20c + 358ee7c commit 2eaf3d8

File tree

44 files changed

+660
-375
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+660
-375
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dspace-angular",
3-
"version": "2023.02.00-SNAPSHOT",
3+
"version": "2023.02.01-SNAPSHOT",
44
"scripts": {
55
"ng": "ng",
66
"config:watch": "nodemon",

src/app/breadcrumbs/breadcrumbs.component.html

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,11 @@
1010
</nav>
1111

1212
<ng-template #breadcrumb let-text="text" let-url="url">
13-
<li class="breadcrumb-item" *ngVar="(text | translate) as label">
14-
<div class="breadcrumb-item-limiter">
15-
<a [routerLink]="url" class="text-truncate"
16-
[ngbTooltip]="label | dsBreadcrumbTooltip"
17-
placement="bottom"
18-
>{{label | dsTruncateText}}</a>
19-
</div>
20-
</li>
13+
<li class="breadcrumb-item"><div class="breadcrumb-item-limiter"><a [routerLink]="url" class="text-truncate" [ngbTooltip]="text | translate" placement="bottom" >{{text | translate}}</a></div></li>
2114
</ng-template>
2215

2316
<ng-template #activeBreadcrumb let-text="text">
24-
<li class="breadcrumb-item active" aria-current="page" *ngVar="(text | translate) as label">
25-
<div class="breadcrumb-item-limiter">
26-
<div class="text-truncate"
27-
[ngbTooltip]="label | dsBreadcrumbTooltip"
28-
placement="bottom"
29-
>{{label | dsTruncateText}}</div>
30-
</div>
31-
</li>
17+
<li class="breadcrumb-item active" aria-current="page"><div class="breadcrumb-item-limiter"><div class="text-truncate">{{text | translate}}</div></div></li>
3218
</ng-template>
3319
</ng-container>
3420

src/app/breadcrumbs/breadcrumbs.component.spec.ts

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,22 @@ import { TranslateLoaderMock } from '../shared/testing/translate-loader.mock';
1010
import { RouterTestingModule } from '@angular/router/testing';
1111
import { of as observableOf } from 'rxjs';
1212
import { DebugElement } from '@angular/core';
13-
import { BreadcrumbTooltipPipe } from './breadcrumb/breadcrumb-tooltip.pipe';
14-
import { TruncateBreadcrumbItemCharactersPipe } from './breadcrumb/truncate-breadcrumb-item-characters.pipe';
15-
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
1613

1714
describe('BreadcrumbsComponent', () => {
1815
let component: BreadcrumbsComponent;
1916
let fixture: ComponentFixture<BreadcrumbsComponent>;
2017
let breadcrumbsServiceMock: BreadcrumbsService;
21-
let truncateTextPipe: TruncateBreadcrumbItemCharactersPipe;
2218

2319
const expectBreadcrumb = (listItem: DebugElement, text: string, url: string) => {
2420
const anchor = listItem.query(By.css('a'));
25-
const truncatedText = truncateTextPipe.transform(text);
21+
2622
if (url == null) {
2723
expect(anchor).toBeNull();
28-
// remove leading whitespace characters
29-
const textWithoutSpaces = listItem.nativeElement.innerHTML.trimStart().replace(/^\s+/, '');
30-
expect(textWithoutSpaces).toEqual(truncatedText);
24+
expect(listItem.nativeElement.innerHTML).toEqual(text);
3125
} else {
3226
expect(anchor).toBeInstanceOf(DebugElement);
3327
expect(anchor.attributes.href).toEqual(url);
34-
// remove leading whitespace characters
35-
const textWithoutSpaces = anchor.nativeElement.innerHTML.trimStart().replace(/^\s+/, '');
36-
expect(textWithoutSpaces).toEqual(truncatedText);
28+
expect(anchor.nativeElement.innerHTML).toEqual(text);
3729
}
3830
};
3931

@@ -43,7 +35,6 @@ describe('BreadcrumbsComponent', () => {
4335
// NOTE: a root breadcrumb is automatically rendered
4436
new Breadcrumb('bc 1', 'example.com'),
4537
new Breadcrumb('bc 2', 'another.com'),
46-
new Breadcrumb('breadcrumb to be truncated', 'truncated.com'),
4738
]),
4839
showBreadcrumbs$: observableOf(true),
4940
} as BreadcrumbsService;
@@ -52,11 +43,8 @@ describe('BreadcrumbsComponent', () => {
5243
declarations: [
5344
BreadcrumbsComponent,
5445
VarDirective,
55-
BreadcrumbTooltipPipe,
56-
TruncateBreadcrumbItemCharactersPipe,
5746
],
5847
imports: [
59-
NgbTooltipModule,
6048
RouterTestingModule.withRoutes([]),
6149
TranslateModule.forRoot({
6250
loader: {
@@ -67,12 +55,10 @@ describe('BreadcrumbsComponent', () => {
6755
],
6856
providers: [
6957
{ provide: BreadcrumbsService, useValue: breadcrumbsServiceMock },
70-
{ provide: TruncateBreadcrumbItemCharactersPipe, useClass: TruncateBreadcrumbItemCharactersPipe },
7158
],
7259
}).compileComponents();
7360

7461
fixture = TestBed.createComponent(BreadcrumbsComponent);
75-
truncateTextPipe = TestBed.inject(TruncateBreadcrumbItemCharactersPipe);
7662
component = fixture.componentInstance;
7763
fixture.detectChanges();
7864
}));
@@ -81,35 +67,12 @@ describe('BreadcrumbsComponent', () => {
8167
expect(component).toBeTruthy();
8268
});
8369

84-
it('should render the breadcrumbs accordingly', () => {
70+
it('should render the breadcrumbs', () => {
8571
const breadcrumbs = fixture.debugElement.queryAll(By.css('.breadcrumb-item'));
86-
expect(breadcrumbs.length).toBe(4);
72+
expect(breadcrumbs.length).toBe(3);
8773
expectBreadcrumb(breadcrumbs[0], 'home.breadcrumbs', '/');
8874
expectBreadcrumb(breadcrumbs[1], 'bc 1', '/example.com');
8975
expectBreadcrumb(breadcrumbs[2].query(By.css('.text-truncate')), 'bc 2', null);
90-
expectBreadcrumb(breadcrumbs[3].query(By.css('.text-truncate')), 'breadcrumb...', null);
91-
});
92-
93-
it('should show tooltip only for truncated text', () => {
94-
const breadcrumbs = fixture.debugElement.queryAll(By.css('.breadcrumb-item .text-truncate'));
95-
expect(breadcrumbs.length).toBe(4);
96-
97-
const truncatable = breadcrumbs[3];
98-
truncatable.triggerEventHandler('mouseenter', null);
99-
fixture.detectChanges();
100-
let tooltip = truncatable.parent.query(By.css('div.tooltip-inner'));
101-
expect(tooltip).not.toBeNull();
102-
expect(tooltip.nativeElement.innerText).toBe('breadcrumb to be truncated');
103-
truncatable.triggerEventHandler('mouseleave', null);
104-
fixture.detectChanges();
105-
106-
const notTruncatable = breadcrumbs[2];
107-
notTruncatable.triggerEventHandler('mouseenter', null);
108-
fixture.detectChanges();
109-
const tooltip2 = notTruncatable.parent.query(By.css('div.tooltip-inner'));
110-
expect(tooltip2).toBeNull();
111-
notTruncatable.triggerEventHandler('mouseleave', null);
112-
fixture.detectChanges();
11376
});
11477

11578
});

src/app/collection-page/collection-page.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ <h3 class="sr-only">{{'collection.page.browse.recent.head' | translate}}</h3>
7474
</div>
7575
<ds-error *ngIf="collectionRD?.hasFailed"
7676
message="{{'error.collection' | translate}}"></ds-error>
77-
<ds-themed-loading *ngIf="collectionRD?.isLoading"
77+
<ds-themed-loading *ngIf="!collectionRD || collectionRD?.isLoading"
7878
message="{{'loading.collection' | translate}}"></ds-themed-loading>
7979
</div>
8080
</div>

src/app/collection-page/collection-page.component.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { ChangeDetectionStrategy, Component, OnInit, Inject } from '@angular/core';
1+
import { ChangeDetectionStrategy, Component, OnInit, Inject, PLATFORM_ID } from '@angular/core';
2+
import { isPlatformServer } from '@angular/common';
23
import { ActivatedRoute, Router } from '@angular/router';
34
import { BehaviorSubject, combineLatest as observableCombineLatest, Observable, Subject } from 'rxjs';
45
import { filter, map, mergeMap, startWith, switchMap, take } from 'rxjs/operators';
@@ -62,6 +63,7 @@ export class CollectionPageComponent implements OnInit {
6263
collectionPageRoute$: Observable<string>;
6364

6465
constructor(
66+
@Inject(PLATFORM_ID) private platformId: Object,
6567
private collectionDataService: CollectionDataService,
6668
private searchService: SearchService,
6769
private route: ActivatedRoute,
@@ -82,6 +84,10 @@ export class CollectionPageComponent implements OnInit {
8284
}
8385

8486
ngOnInit(): void {
87+
if (isPlatformServer(this.platformId)) {
88+
return;
89+
}
90+
8591
this.collectionRD$ = this.route.data.pipe(
8692
map((data) => data.dso as RemoteData<Collection>),
8793
redirectOn4xx(this.router, this.authService),

src/app/cris-item-page/cris-item-page-routing.module.ts

Lines changed: 0 additions & 68 deletions
This file was deleted.

src/app/cris-item-page/cris-item-page.module.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { CrisItemPageRoutingModule } from './cris-item-page-routing.module';
21
import { NgModule } from '@angular/core';
32
import { CommonModule } from '@angular/common';
43
import { SharedModule } from '../shared/shared.module';
@@ -17,7 +16,6 @@ import { ItemSharedModule } from '../item-page/item-shared.module';
1716
SharedModule,
1817
CrisLayoutModule,
1918
StatisticsModule,
20-
CrisItemPageRoutingModule,
2119
ItemSharedModule
2220
],
2321
exports: [

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,13 @@ export abstract class CrisLayoutTabsComponent {
108108
abstract emitSelected(selectedTab): void;
109109

110110
setActiveTab(tab) {
111+
const itemPageRoute = getItemPageRoute(this.item);
111112
this.activeTab$.next(tab);
112113
this.emitSelected(tab);
113-
if (isNotNull(this.route.snapshot.paramMap.get('tab'))) {
114-
this.location.replaceState(getItemPageRoute(this.item) + '/' + tab.shortname);
114+
if (this.tabs[0].shortname === tab.shortname) {
115+
this.location.replaceState(itemPageRoute);
116+
} else {
117+
this.location.replaceState(itemPageRoute + '/' + tab.shortname);
115118
}
116119
}
117120

src/app/cris-layout/cris-layout-matrix/cris-layout-box-container/boxes/relation/cris-layout-relation-box.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<ds-configuration-search-page *ngIf="configuration" class="w-100"
22
[fixedFilterQuery]="searchFilter"
33
[configuration]="configuration"
4+
[renderOnServerSide]="false"
45
[searchEnabled]="searchEnabled"
56
[showCharts]="true"
67
[showScopeSelector]="false"

src/app/home-page/recent-item-list/recent-item-list.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { ChangeDetectionStrategy, Component, ElementRef, Inject, OnInit, PLATFORM_ID } from '@angular/core';
2+
import { isPlatformServer } from '@angular/common';
3+
24
import { PaginatedSearchOptions } from '../../shared/search/models/paginated-search-options.model';
35
import { fadeIn, fadeInOut } from '../../shared/animations/fade';
46
import { RemoteData } from '../../core/data/remote-data';
@@ -62,6 +64,10 @@ export class RecentItemListComponent implements OnInit {
6264
this.sortConfig = new SortOptions(environment.homePage.recentSubmissions.sortField, SortDirection.DESC);
6365
}
6466
ngOnInit(): void {
67+
if (isPlatformServer(this.platformId)) {
68+
return;
69+
}
70+
6571
const linksToFollow: FollowLinkConfig<Item>[] = [];
6672
if (this.appConfig.browseBy.showThumbnails) {
6773
linksToFollow.push(followLink('thumbnail'));

0 commit comments

Comments
 (0)