Skip to content

Commit c914b42

Browse files
authored
Merge pull request DSpace#2196 from atmire/w2p-101198_in-place-links_contribute-main
Replace in-place links with buttons
2 parents d67cfaa + ed24204 commit c914b42

9 files changed

Lines changed: 156 additions & 130 deletions

File tree

src/app/community-list-page/community-list/community-list.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
<span class="fa fa-chevron-right invisible" aria-hidden="true"></span>
99
</button>
1010
<div class="align-middle pt-2">
11-
<a *ngIf="node!==loadingNode" [routerLink]="[]" (click)="getNextPage(node)"
11+
<button *ngIf="node!==loadingNode" (click)="getNextPage(node)"
1212
class="btn btn-outline-primary btn-sm" role="button">
1313
<i class="fas fa-angle-down"></i> {{ 'communityList.showMore' | translate }}
14-
</a>
14+
</button>
1515
<ds-themed-loading *ngIf="node===loadingNode && dataSource.loading$ | async" class="ds-themed-loading"></ds-themed-loading>
1616
</div>
1717
</div>

src/app/community-list-page/community-list/community-list.component.spec.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { of as observableOf } from 'rxjs';
1616
import { By } from '@angular/platform-browser';
1717
import { isEmpty, isNotEmpty } from '../../shared/empty.util';
1818
import { FlatNode } from '../flat-node.model';
19+
import { RouterLinkWithHref } from '@angular/router';
1920

2021
describe('CommunityListComponent', () => {
2122
let component: CommunityListComponent;
@@ -194,7 +195,7 @@ describe('CommunityListComponent', () => {
194195
}),
195196
CdkTreeModule,
196197
RouterTestingModule],
197-
declarations: [CommunityListComponent],
198+
declarations: [CommunityListComponent, RouterLinkWithHref],
198199
providers: [CommunityListComponent,
199200
{ provide: CommunityListService, useValue: communityListServiceStub },],
200201
schemas: [CUSTOM_ELEMENTS_SCHEMA],
@@ -230,16 +231,22 @@ describe('CommunityListComponent', () => {
230231
expect(showMoreEl).toBeTruthy();
231232
});
232233

234+
it('should not render the show more button as an empty link', () => {
235+
const debugElements = fixture.debugElement.queryAll(By.directive(RouterLinkWithHref));
236+
expect(debugElements).toBeTruthy();
237+
});
238+
233239
describe('when show more of top communities is clicked', () => {
234240
beforeEach(fakeAsync(() => {
235-
const showMoreLink = fixture.debugElement.query(By.css('.show-more-node a'));
241+
const showMoreLink = fixture.debugElement.query(By.css('.show-more-node .btn-outline-primary'));
236242
showMoreLink.triggerEventHandler('click', {
237243
preventDefault: () => {/**/
238244
}
239245
});
240246
tick();
241247
fixture.detectChanges();
242248
}));
249+
243250
it('tree contains maximum of currentPage (2) * (2) elementsPerPage of first top communities, or less if there are less communities (3)', () => {
244251
const expandableNodesFound = fixture.debugElement.queryAll(By.css('.expandable-node a'));
245252
const childlessNodesFound = fixture.debugElement.queryAll(By.css('.childless-node a'));

src/app/item-page/simple/field-components/file-section/file-section.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
</ds-themed-file-download-link>
99
<ds-themed-loading *ngIf="isLoading" message="{{'loading.default' | translate}}" [showMessage]="false"></ds-themed-loading>
1010
<div *ngIf="!isLastPage" class="mt-1" id="view-more">
11-
<a class="bitstream-view-more btn btn-outline-secondary btn-sm" [routerLink]="[]" (click)="getNextPage()">{{'item.page.bitstreams.view-more' | translate}}</a>
11+
<button class="bitstream-view-more btn btn-outline-secondary btn-sm" (click)="getNextPage()">{{'item.page.bitstreams.view-more' | translate}}</button>
1212
</div>
1313
<div *ngIf="isLastPage && currentPage != 1" class="mt-1" id="collapse">
14-
<a class="bitstream-collapse btn btn-outline-secondary btn-sm" [routerLink]="[]" (click)="currentPage = undefined; getNextPage();">{{'item.page.bitstreams.collapse' | translate}}</a>
14+
<button class="bitstream-collapse btn btn-outline-secondary btn-sm" (click)="currentPage = undefined; getNextPage();">{{'item.page.bitstreams.collapse' | translate}}</button>
1515
</div>
1616
</div>
1717
</ds-metadata-field-wrapper>

src/app/item-page/simple/metadata-representation-list/metadata-representation-list.component.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
<ds-themed-loading *ngIf="(i + 1) === objects.length && (i > 0) && (!representations || representations?.length === 0)" message="{{'loading.default' | translate}}"></ds-themed-loading>
88
<div class="d-inline-block w-100 mt-2" *ngIf="(i + 1) === objects.length && representations?.length > 0">
99
<div *ngIf="(objects.length * incrementBy) < total" class="float-left">
10-
<a [routerLink]="[]" (click)="increase()">{{'item.page.related-items.view-more' |
11-
translate:{ amount: (total - (objects.length * incrementBy) < incrementBy) ? total - (objects.length * incrementBy) : incrementBy } }}</a>
10+
<button class="btn btn-link btn-link-inline" (click)="increase()">{{'item.page.related-items.view-more' |
11+
translate:{ amount: (total - (objects.length * incrementBy) < incrementBy) ? total - (objects.length * incrementBy) : incrementBy } }}</button>
1212
</div>
1313
<div *ngIf="objects.length > 1" class="float-right">
14-
<a [routerLink]="[]" (click)="decrease()">{{'item.page.related-items.view-less' |
15-
translate:{ amount: representations?.length } }}</a>
14+
<button class="btn btn-link btn-link-inline" (click)="decrease()">{{'item.page.related-items.view-less' |
15+
translate:{ amount: representations?.length } }}</button>
1616
</div>
1717
</div>
1818
</ng-container>

src/app/item-page/simple/related-items/related-items.component.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
<ds-themed-loading *ngIf="(i + 1) === objects.length && (itemsRD || i > 0) && !(itemsRD?.hasSucceeded && itemsRD?.payload && itemsRD?.payload?.page?.length > 0)" message="{{'loading.default' | translate}}"></ds-themed-loading>
88
<div class="d-inline-block w-100 mt-2" *ngIf="(i + 1) === objects.length && itemsRD?.payload?.page?.length > 0">
99
<div *ngIf="itemsRD?.payload?.totalPages > objects.length" class="float-left" id="view-more">
10-
<a [routerLink]="[]" (click)="increase()">{{'item.page.related-items.view-more' |
11-
translate:{ amount: (itemsRD?.payload?.totalElements - (incrementBy * objects.length) < incrementBy) ? itemsRD?.payload?.totalElements - (incrementBy * objects.length) : incrementBy } }}</a>
10+
<button class="btn btn-link btn-link-inline" (click)="increase()">{{'item.page.related-items.view-more' |
11+
translate:{ amount: (itemsRD?.payload?.totalElements - (incrementBy * objects.length) < incrementBy) ? itemsRD?.payload?.totalElements - (incrementBy * objects.length) : incrementBy } }}</button>
1212
</div>
1313
<div *ngIf="objects.length > 1" class="float-right" id="view-less">
14-
<a [routerLink]="[]" (click)="decrease()">{{'item.page.related-items.view-less' |
15-
translate:{ amount: itemsRD?.payload?.page?.length } }}</a>
14+
<button class="btn btn-link btn-link-inline" (click)="decrease()">{{'item.page.related-items.view-less' |
15+
translate:{ amount: itemsRD?.payload?.page?.length } }}</button>
1616
</div>
1717
</div>
1818
</ng-container>

src/app/search-navbar/search-navbar.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
<input #searchInput [@toggleAnimation]="isExpanded" [attr.aria-label]="('nav.search' | translate)" name="query"
55
formControlName="query" type="text" placeholder="{{searchExpanded ? ('nav.search' | translate) : ''}}"
66
class="d-inline-block bg-transparent position-absolute form-control dropdown-menu-right p-1" [attr.data-test]="'header-search-box' | dsBrowserOnly">
7-
<a class="submit-icon" [routerLink]="" (click)="searchExpanded ? onSubmit(searchForm.value) : expand()" [attr.data-test]="'header-search-icon' | dsBrowserOnly">
7+
<button class="submit-icon btn btn-link btn-link-inline" [attr.aria-label]="'nav.search.button' | translate" type="button" (click)="searchExpanded ? onSubmit(searchForm.value) : expand()" [attr.data-test]="'header-search-icon' | dsBrowserOnly">
88
<em class="fas fa-search fa-lg fa-fw"></em>
9-
</a>
9+
</button>
1010
</form>
1111
</div>
1212
</div>

src/app/search-navbar/search-navbar.component.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ input[type="text"] {
88
}
99
}
1010

11-
a.submit-icon {
11+
.submit-icon {
1212
cursor: pointer;
1313
position: sticky;
1414
top: 0;

src/assets/i18n/en.json5

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3147,6 +3147,9 @@
31473147

31483148
"nav.search": "Search",
31493149

3150+
"nav.search.button": "Submit search",
3151+
3152+
31503153
"nav.statistics.header": "Statistics",
31513154

31523155
"nav.stop-impersonating": "Stop impersonating EPerson",

0 commit comments

Comments
 (0)