mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
Fixed accessibility issues about header ordering
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<div class="epeople-registry row">
|
||||
<div class="col-12">
|
||||
<div class="d-flex justify-content-between border-bottom mb-3">
|
||||
<h2 id="header" class="pb-2">{{labelPrefix + 'head' | translate}}</h2>
|
||||
<h1 id="header" class="pb-2">{{labelPrefix + 'head' | translate}}</h1>
|
||||
|
||||
<div>
|
||||
<button class="mr-auto btn btn-success addEPerson-button"
|
||||
@@ -13,9 +13,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 id="search" class="border-bottom pb-2">{{labelPrefix + 'search.head' | translate}}
|
||||
|
||||
</h3>
|
||||
<h2 id="search" class="border-bottom pb-2">
|
||||
{{labelPrefix + 'search.head' | translate}}
|
||||
</h2>
|
||||
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
|
||||
<div>
|
||||
<select name="scope" id="scope" formControlName="scope" class="form-control" aria-label="Search scope">
|
||||
|
@@ -5,11 +5,11 @@
|
||||
<div *ngIf="epersonService.getActiveEPerson() | async; then editHeader; else createHeader"></div>
|
||||
|
||||
<ng-template #createHeader>
|
||||
<h2 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h2>
|
||||
<h1 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h1>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #editHeader>
|
||||
<h2 class="border-bottom pb-2">{{messagePrefix + '.edit' | translate}}</h2>
|
||||
<h1 class="border-bottom pb-2">{{messagePrefix + '.edit' | translate}}</h1>
|
||||
</ng-template>
|
||||
|
||||
<ds-form [formId]="formId"
|
||||
@@ -45,7 +45,7 @@
|
||||
<ds-themed-loading [showMessage]="false" *ngIf="!formGroup"></ds-themed-loading>
|
||||
|
||||
<div *ngIf="epersonService.getActiveEPerson() | async">
|
||||
<h5>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h5>
|
||||
<h2>{{messagePrefix + '.groupsEPersonIsMemberOf' | translate}}</h2>
|
||||
|
||||
<ds-themed-loading [showMessage]="false" *ngIf="!(groups | async)"></ds-themed-loading>
|
||||
|
||||
|
@@ -5,11 +5,11 @@
|
||||
<div *ngIf="groupDataService.getActiveGroup() | async; then editHeader; else createHeader"></div>
|
||||
|
||||
<ng-template #createHeader>
|
||||
<h2 class="border-bottom pb-2">{{messagePrefix + '.head.create' | translate}}</h2>
|
||||
<h1 class="border-bottom pb-2">{{messagePrefix + '.head.create' | translate}}</h1>
|
||||
</ng-template>
|
||||
|
||||
<ng-template #editHeader>
|
||||
<h2 class="border-bottom pb-2">
|
||||
<h1 class="border-bottom pb-2">
|
||||
<span
|
||||
*dsContextHelp="{
|
||||
content: 'admin.access-control.groups.form.tooltip.editGroupPage',
|
||||
@@ -20,7 +20,7 @@
|
||||
>
|
||||
{{messagePrefix + '.head.edit' | translate}}
|
||||
</span>
|
||||
</h2>
|
||||
</h1>
|
||||
</ng-template>
|
||||
|
||||
<ds-alert *ngIf="groupBeingEdited?.permanent" [type]="AlertTypeEnum.Warning"
|
||||
@@ -39,9 +39,8 @@
|
||||
<button (click)="onCancel()" type="button"
|
||||
class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{messagePrefix + '.return' | translate}}</button>
|
||||
</div>
|
||||
<div after *ngIf="(canEdit$ | async) && !groupBeingEdited.permanent" class="btn-group">
|
||||
<button class="btn btn-danger delete-button" [disabled]="!(canEdit$ | async) || groupBeingEdited.permanent"
|
||||
(click)="delete()" type="button">
|
||||
<div after *ngIf="(canEdit$ | async) && !groupBeingEdited?.permanent" class="btn-group">
|
||||
<button (click)="delete()" class="btn btn-danger delete-button" type="button">
|
||||
<i class="fa fa-trash"></i> {{ messagePrefix + '.actions.delete' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<ng-container>
|
||||
<h3 class="border-bottom pb-2">{{messagePrefix + '.head' | translate}}</h3>
|
||||
<h2 class="border-bottom pb-2">{{messagePrefix + '.head' | translate}}</h2>
|
||||
|
||||
<h4>{{messagePrefix + '.headMembers' | translate}}</h4>
|
||||
<h3>{{messagePrefix + '.headMembers' | translate}}</h3>
|
||||
|
||||
<ds-pagination *ngIf="(ePeopleMembersOfGroup | async)?.totalElements > 0"
|
||||
[paginationOptions]="config"
|
||||
@@ -55,7 +55,7 @@
|
||||
{{messagePrefix + '.no-members-yet' | translate}}
|
||||
</div>
|
||||
|
||||
<h4 id="search" class="border-bottom pb-2">
|
||||
<h3 id="search" class="border-bottom pb-2">
|
||||
<span
|
||||
*dsContextHelp="{
|
||||
content: 'admin.access-control.groups.form.tooltip.editGroup.addEpeople',
|
||||
@@ -66,7 +66,7 @@
|
||||
>
|
||||
{{messagePrefix + '.search.head' | translate}}
|
||||
</span>
|
||||
</h4>
|
||||
</h3>
|
||||
|
||||
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
|
||||
<div class="flex-grow-1 mr-3">
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="groups-registry row">
|
||||
<div class="col-12">
|
||||
<div class="d-flex justify-content-between border-bottom mb-3">
|
||||
<h2 id="header" class="pb-2">{{messagePrefix + 'head' | translate}}</h2>
|
||||
<h1 id="header" class="pb-2">{{messagePrefix + 'head' | translate}}</h1>
|
||||
<div>
|
||||
<button class="mr-auto btn btn-success"
|
||||
[routerLink]="'create'">
|
||||
@@ -12,7 +12,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 id="search" class="border-bottom pb-2">{{messagePrefix + 'search.head' | translate}}</h3>
|
||||
<h2 id="search" class="border-bottom pb-2">{{messagePrefix + 'search.head' | translate}}</h2>
|
||||
<form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)" class="d-flex justify-content-between">
|
||||
<div class="flex-grow-1 mr-3">
|
||||
<div class="form-group input-group">
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<div class="container">
|
||||
<h2>{{'admin.curation-tasks.header' |translate }}</h2>
|
||||
<h1>{{'admin.curation-tasks.header' |translate }}</h1>
|
||||
<ds-curation-form></ds-curation-form>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h2 id="header">{{'admin.metadata-import.page.header' | translate}}</h2>
|
||||
<h1 id="header">{{'admin.metadata-import.page.header' | translate}}</h1>
|
||||
<p>{{'admin.metadata-import.page.help' | translate}}</p>
|
||||
<div class="form-group">
|
||||
<div class="form-check">
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 mb-4">
|
||||
<h2 id="sub-header"
|
||||
class="border-bottom pb-2">{{ 'admin.registries.bitstream-formats.create.new' | translate }}</h2>
|
||||
<h1 id="sub-header"
|
||||
class="border-bottom pb-2">{{ 'admin.registries.bitstream-formats.create.new' | translate }}</h1>
|
||||
|
||||
<ds-bitstream-format-form (updatedFormat)="createBitstreamFormat($event)"></ds-bitstream-format-form>
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="bitstream-formats row">
|
||||
<div class="col-12">
|
||||
|
||||
<h2 id="header" class="border-bottom pb-2">{{'admin.registries.bitstream-formats.head' | translate}}</h2>
|
||||
<h1 id="header" class="border-bottom pb-2">{{'admin.registries.bitstream-formats.head' | translate}}</h1>
|
||||
|
||||
<p id="description">{{'admin.registries.bitstream-formats.description' | translate}}</p>
|
||||
<p id="create-new" class="mb-2"><a [routerLink]="'add'" class="btn btn-success">{{'admin.registries.bitstream-formats.create.new' | translate}}</a></p>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 mb-4">
|
||||
<h2 id="sub-header"
|
||||
class="border-bottom pb-2">{{'admin.registries.bitstream-formats.edit.head' | translate:{format: (bitstreamFormatRD$ | async)?.payload.shortDescription} }}</h2>
|
||||
<h1 id="sub-header"
|
||||
class="border-bottom pb-2">{{'admin.registries.bitstream-formats.edit.head' | translate:{format: (bitstreamFormatRD$ | async)?.payload.shortDescription} }}</h1>
|
||||
|
||||
<ds-bitstream-format-form [bitstreamFormat]="(bitstreamFormatRD$ | async)?.payload" (updatedFormat)="updateFormat($event)"></ds-bitstream-format-form>
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h3>{{dsoNameService.getName(bitstreamRD?.payload)}} <span class="text-muted">({{bitstreamRD?.payload?.sizeBytes | dsFileSize}})</span></h3>
|
||||
<h1 class="h2">{{dsoNameService.getName(bitstreamRD?.payload)}} <span class="text-muted">({{bitstreamRD?.payload?.sizeBytes | dsFileSize}})</span></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,4 +1,5 @@
|
||||
<div class="container">
|
||||
<h1>{{ ('browse.taxonomy_' + vocabularyName + '.title') | translate }}</h1>
|
||||
<div class="mb-3">
|
||||
<ds-vocabulary-treeview [vocabularyOptions]=vocabularyOptions
|
||||
[multiSelect]="true"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<ng-container *ngVar="(dsoRD$ | async)?.payload as dso">
|
||||
<div class="col-12 pb-4">
|
||||
<h2 id="header" class="border-bottom pb-2">{{ 'collection.delete.head' | translate}}</h2>
|
||||
<h1 id="header" class="border-bottom pb-2">{{ 'collection.delete.head' | translate}}</h1>
|
||||
<p class="pb-2">{{ 'collection.delete.text' | translate:{ dso: dsoNameService.getName(dso) } }}</p>
|
||||
<div class="form-group row">
|
||||
<div class="col text-right space-children-mr">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h3>{{'collection.curate.header' |translate:{collection: (collectionName$ |async)} }}</h3>
|
||||
<h2>{{'collection.curate.header' |translate:{collection: (collectionName$ |async)} }}</h2>
|
||||
<ds-curation-form
|
||||
[dsoHandle]="(dsoRD$|async)?.payload.handle"
|
||||
></ds-curation-form>
|
||||
|
@@ -18,7 +18,7 @@
|
||||
<span class="d-none d-sm-inline"> {{"item.edit.metadata.save-button" | translate}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<h4>{{ 'collection.edit.tabs.source.head' | translate }}</h4>
|
||||
<h2>{{ 'collection.edit.tabs.source.head' | translate }}</h2>
|
||||
<div *ngIf="contentSource" class="form-check mb-4">
|
||||
<input type="checkbox" class="form-check-input" id="externalSourceCheck"
|
||||
[checked]="(contentSource?.harvestType !== harvestTypeNone)" (change)="changeExternalSource()">
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12" *ngVar="(itemRD$ | async) as itemRD">
|
||||
<ng-container *ngIf="itemRD?.hasSucceeded">
|
||||
<h2 class="border-bottom">{{ 'collection.edit.template.head' | translate:{ collection: dsoNameService.getName(collection) } }}</h2>
|
||||
<h1 class="border-bottom">{{ 'collection.edit.template.head' | translate:{ collection: dsoNameService.getName(collection) } }}</h1>
|
||||
<ds-themed-dso-edit-metadata [updateDataService]="itemTemplateService" [dso]="itemRD?.payload"></ds-themed-dso-edit-metadata>
|
||||
<button [routerLink]="getCollectionEditUrl(collection)" class="btn btn-outline-secondary">{{ 'collection.edit.template.cancel' | translate }}</button>
|
||||
</ng-container>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<ng-container *ngVar="(dsoRD$ | async)?.payload as dso">
|
||||
<div class="col-12 pb-4">
|
||||
<h2 id="header" class="border-bottom pb-2">{{ 'community.delete.head' | translate}}</h2>
|
||||
<h1 id="header" class="border-bottom pb-2">{{ 'community.delete.head' | translate}}</h1>
|
||||
<p class="pb-2">{{ 'community.delete.text' | translate:{ dso: dsoNameService.getName(dso) } }}</p>
|
||||
<div class="form-group row">
|
||||
<div class="col text-right space-children-mr">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h3>{{'community.curate.header' |translate:{community: (communityName$ |async)} }}</h3>
|
||||
<h2>{{'community.curate.header' |translate:{community: (communityName$ |async)} }}</h2>
|
||||
<ds-curation-form
|
||||
[dsoHandle]="(dsoRD$|async)?.payload.handle"
|
||||
></ds-curation-form>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="row row-offcanvas row-offcanvas-right">
|
||||
<div class="col-xs-12 col-sm-12 col-md-9">
|
||||
<form class="primary" [formGroup]="feedbackForm" (ngSubmit)="createFeedback()">
|
||||
<h2>{{ 'info.feedback.head' | translate }}</h2>
|
||||
<h1>{{ 'info.feedback.head' | translate }}</h1>
|
||||
<p>{{ 'info.feedback.info' | translate }}</p>
|
||||
<fieldset class="col p-0">
|
||||
<div class="row">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h3 class="mb-4">{{'bitstream-request-a-copy.header' | translate}}</h3>
|
||||
<h1 class="mb-4">{{'bitstream-request-a-copy.header' | translate}}</h1>
|
||||
<div *ngIf="canDownload$|async" class="alert alert-success">
|
||||
<span>{{'bitstream-request-a-copy.alert.canDownload1' | translate}}</span>
|
||||
<a [routerLink]="getBitstreamLink()">{{'bitstream-request-a-copy.alert.canDownload2'| translate}}</a>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="border-bottom">{{'item.edit.head' | translate}}</h2>
|
||||
<h1 class="border-bottom">{{'item.edit.head' | translate}}</h1>
|
||||
<div class="pt-2">
|
||||
<ul class="nav nav-tabs justify-content-start" role="tablist">
|
||||
<li *ngFor="let page of pages" class="nav-item" role="presentation">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container mt-3">
|
||||
<h3>{{'item.edit.curate.title' |translate:{item: (itemName$ |async)} }}</h3>
|
||||
<h2>{{'item.edit.curate.title' |translate:{item: (itemName$ |async)} }}</h2>
|
||||
<ds-curation-form
|
||||
*ngIf="dsoRD$ | async as dsoRD"
|
||||
[dsoHandle]="dsoRD?.payload.handle"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
|
||||
<h2>{{headerMessage | translate: {id: item.handle} }}</h2>
|
||||
<h1>{{headerMessage | translate: {id: item.handle} }}</h1>
|
||||
<p>{{descriptionMessage | translate}}</p>
|
||||
<ds-modify-item-overview [item]="item"></ds-modify-item-overview>
|
||||
|
||||
|
@@ -171,7 +171,7 @@ describe('ItemDeleteComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the \'delete\' messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.delete.header');
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
expect(description.innerHTML).toContain('item.edit.delete.description');
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2>{{'item.edit.move.head' | translate: {id: (itemRD$ | async)?.payload?.handle} }}</h2>
|
||||
<h1>{{'item.edit.move.head' | translate: {id: (itemRD$ | async)?.payload?.handle} }}</h1>
|
||||
<p>{{'item.edit.move.description' | translate}}</p>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
|
@@ -80,7 +80,7 @@ describe('ItemPrivateComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the \'private\' messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.private.header');
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
expect(description.innerHTML).toContain('item.edit.private.description');
|
||||
|
@@ -74,7 +74,7 @@ describe('ItemPublicComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the \'public\' messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.public.header');
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
expect(description.innerHTML).toContain('item.edit.public.description');
|
||||
|
@@ -76,7 +76,7 @@ describe('ItemReinstateComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the \'reinstate\' messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.reinstate.header');
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
expect(description.innerHTML).toContain('item.edit.reinstate.description');
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<h5>
|
||||
<h2 class="h4">
|
||||
{{getRelationshipMessageKey() | async | translate}}
|
||||
<button class="ml-2 btn btn-success" [disabled]="(hasChanges | async)" (click)="openLookup()">
|
||||
<i class="fas fa-plus"></i>
|
||||
<span class="d-none d-sm-inline"> {{"item.edit.relationships.edit.buttons.add" | translate}}</span>
|
||||
</button>
|
||||
</h5>
|
||||
</h2>
|
||||
<ng-container *ngVar="updates$ | async as updates">
|
||||
<ng-container *ngIf="updates && !(loading$ | async)">
|
||||
<ng-container *ngVar="updates | dsObjectValues as updateValues">
|
||||
|
@@ -74,7 +74,7 @@ describe('ItemWithdrawComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the \'withdraw\' messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.withdraw.header');
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
expect(description.innerHTML).toContain('item.edit.withdraw.description');
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2>{{headerMessage | translate: {id: item.handle} }}</h2>
|
||||
<h1>{{headerMessage | translate: {id: item.handle} }}</h1>
|
||||
<p>{{descriptionMessage | translate}}</p>
|
||||
<ds-modify-item-overview [item]="item"></ds-modify-item-overview>
|
||||
<div class="space-children-mr">
|
||||
|
@@ -111,7 +111,7 @@ describe('AbstractSimpleItemActionComponent', () => {
|
||||
});
|
||||
|
||||
it('should render a page with messages based on the provided messageKey', () => {
|
||||
const header = fixture.debugElement.query(By.css('h2')).nativeElement;
|
||||
const header = fixture.debugElement.query(By.css('h1')).nativeElement;
|
||||
expect(header.innerHTML).toContain('item.edit.myEditAction.header');
|
||||
|
||||
const description = fixture.debugElement.query(By.css('p')).nativeElement;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container mb-5">
|
||||
<h2>{{'person.orcid.registry.auth' | translate}}</h2>
|
||||
<h1>{{'person.orcid.registry.auth' | translate}}</h1>
|
||||
<ng-container *ngIf="(isLinkedToOrcid() | async); then orcidLinked; else orcidNotLinked"></ng-container>
|
||||
</div>
|
||||
|
||||
|
@@ -1,13 +1,3 @@
|
||||
<div *ngIf="!(processingConnection | async) && (item | async)" class="container">
|
||||
<div class="button-row bottom mb-3">
|
||||
<div class="text-right">
|
||||
<a [routerLink]="getItemPage()" role="button" class="btn btn-outline-secondary" data-test="back-button">
|
||||
<i class="fas fa-arrow-left"></i> {{'item.orcid.return' | translate}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ds-loading *ngIf="(processingConnection | async)" [message]="'person.page.orcid.link.processing' | translate"></ds-loading>
|
||||
<div class="container" *ngIf="!(processingConnection | async) && !(connectionStatus | async)" data-test="error-box">
|
||||
<ds-alert [type]="'alert-danger'">{{'person.page.orcid.link.error.message' | translate}}</ds-alert>
|
||||
@@ -17,3 +7,13 @@
|
||||
<ds-orcid-sync-setting *ngIf="isLinkedToOrcid()" [item]="(item | async)" (settingsUpdated)="updateItem()" data-test="orcid-sync-setting"></ds-orcid-sync-setting>
|
||||
<ds-orcid-queue *ngIf="isLinkedToOrcid()" [item]="(item | async)"></ds-orcid-queue>
|
||||
</ng-container>
|
||||
|
||||
<div *ngIf="!(processingConnection | async) && (item | async)" class="container">
|
||||
<div class="button-row bottom mb-3">
|
||||
<div class="text-right">
|
||||
<a [routerLink]="getItemPage()" role="button" class="btn btn-outline-secondary" data-test="back-button">
|
||||
<i class="fas fa-arrow-left"></i> {{'item.orcid.return' | translate}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,2 +1,2 @@
|
||||
<h4 class="mt-4">{{title | translate}}</h4>
|
||||
<h2 class="h3 mt-4">{{title | translate}}</h2>
|
||||
<ng-content></ng-content>
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<div class="container" *ngIf="(processRD$ | async)?.payload as process">
|
||||
<div class="row">
|
||||
<div class="col-10">
|
||||
<h2 class="flex-grow-1">
|
||||
<h1 class="flex-grow-1">
|
||||
{{ 'process.detail.title' | translate:{ id: process?.processId, name: process?.scriptName } }}
|
||||
</h2>
|
||||
</h1>
|
||||
</div>
|
||||
<div *ngIf="refreshCounter$ | async as seconds" class="col-2 refresh-counter">
|
||||
Refreshing in {{ seconds }}s <i class="fas fa-sync-alt fa-spin"></i>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<h2 class="col-12">
|
||||
<h1 class="col-12">
|
||||
{{headerKey | translate}}
|
||||
</h2>
|
||||
</h1>
|
||||
<div class="col-12 col-md-6 mb-2">
|
||||
<form #form="ngForm" (ngSubmit)="submitForm(form)">
|
||||
<ds-scripts-select [script]="selectedScript" (select)="selectedScript = $event; parameters = undefined"></ds-scripts-select>
|
||||
@@ -12,7 +12,7 @@
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<ds-script-help [script]="selectedScript"></ds-script-help>
|
||||
<ds-script-help *ngIf="selectedScript" [script]="selectedScript"></ds-script-help>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="text-secondary">
|
||||
<h3>{{script?.name}}</h3>
|
||||
<h2>{{script?.name}}</h2>
|
||||
<span>{{script?.description}}</span>
|
||||
|
||||
<table class="table-borderless mt-3">
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="container">
|
||||
<div class="d-flex">
|
||||
<h2 class="flex-grow-1">{{'process.overview.title' | translate}}</h2>
|
||||
<h1 class="flex-grow-1">{{'process.overview.title' | translate}}</h1>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<button *ngIf="processBulkDeleteService.hasSelected()" class="btn btn-primary mr-2"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<ng-container *ngVar="(user$ | async) as user">
|
||||
<div class="container" *ngIf="user">
|
||||
<ng-container *ngIf="isResearcherProfileEnabled() | async">
|
||||
<h3 class="mb-4">{{'profile.head' | translate}}</h3>
|
||||
<h2 class="mb-4">{{'profile.head' | translate}}</h2>
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">{{'profile.card.researcher' | translate}}</div>
|
||||
<div class="card-body">
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
<ng-container *ngVar="(groupsRD$ | async)?.payload?.page as groups">
|
||||
<div *ngIf="groups?.length > 0">
|
||||
<h3 class="mt-4">{{'profile.groups.head' | translate}}</h3>
|
||||
<h2 class="mt-4">{{'profile.groups.head' | translate}}</h2>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li *ngFor="let group of groups" class="list-group-item">{{ dsoNameService.getName(group) }}</li>
|
||||
</ul>
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
<ng-container *ngVar="(specialGroupsRD$ | async)?.payload?.page as specialGroups">
|
||||
<div *ngIf="specialGroups?.length > 0" data-test="specialGroups">
|
||||
<h3 class="mt-4">{{'profile.special.groups.head' | translate}}</h3>
|
||||
<h2 class="mt-4">{{'profile.special.groups.head' | translate}}</h2>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li *ngFor="let specialGroup of specialGroups" class="list-group-item">
|
||||
{{ dsoNameService.getName(specialGroup) }}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h2>{{MESSAGE_PREFIX + '.header'|translate}}</h2>
|
||||
<h1>{{MESSAGE_PREFIX + '.header'|translate}}</h1>
|
||||
<p>{{MESSAGE_PREFIX + '.info' | translate}}</p>
|
||||
|
||||
<p *ngIf="validMailDomains.length != 0 && typeRequest === TYPE_REQUEST_REGISTER">
|
||||
|
@@ -13,9 +13,9 @@
|
||||
|
||||
<div>
|
||||
<div class="d-flex align-items-center">
|
||||
<h4 class="mb-0 mr-4">
|
||||
<h2 class="h3 mb-0 mr-4">
|
||||
{{ 'access-control-item-header-toggle' | translate }}
|
||||
</h4>
|
||||
</h2>
|
||||
<ui-switch
|
||||
[ariaLabel]="(state.bitstream.toggleStatus ? 'access-control-item-toggle.disable' : 'access-control-item-toggle.enable') | translate"
|
||||
[(ngModel)]="state.item.toggleStatus"
|
||||
@@ -51,7 +51,7 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h5 class="mt-3">{{'access-control-access-conditions' | translate}}</h5>
|
||||
<h3 class="h4 mt-3">{{'access-control-access-conditions' | translate}}</h3>
|
||||
|
||||
<ds-access-control-array-form
|
||||
#itemAccessCmp
|
||||
@@ -67,9 +67,9 @@
|
||||
|
||||
<div>
|
||||
<div class="d-flex align-items-center">
|
||||
<h4 class="mb-0 mr-4">
|
||||
<h2 class="h3 mb-0 mr-4">
|
||||
{{'access-control-bitstream-header-toggle' | translate}}
|
||||
</h4>
|
||||
</h2>
|
||||
<ui-switch
|
||||
[ariaLabel]="(state.bitstream.toggleStatus ? 'access-control-bitstream-toggle.disable' : 'access-control-bitstream-toggle.enable') | translate"
|
||||
[(ngModel)]="state.bitstream.toggleStatus"
|
||||
@@ -142,7 +142,7 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h5 class="mt-3">{{'access-control-access-conditions' | translate}}</h5>
|
||||
<h3 class="h4 mt-3">{{'access-control-access-conditions' | translate}}</h3>
|
||||
|
||||
<ds-access-control-array-form
|
||||
#bitstreamAccessCmp
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<ng-container *ngVar="(objects$ | async) as objects">
|
||||
<h3 [ngClass]="{'sr-only': parentname }">{{title | translate}}</h3>
|
||||
<h1 [ngClass]="{'sr-only': parentname }">{{title | translate}}</h1>
|
||||
<ng-container *ngComponentOutlet="getStartsWithComponent(); injector: objectInjector;"></ng-container>
|
||||
<div *ngIf="objects?.hasSucceeded && !objects?.isLoading && objects?.payload?.page.length > 0" @fadeIn>
|
||||
<div *ngIf="shouldDisplayResetButton$ |async" class="mb-2 reset">
|
||||
|
@@ -3,9 +3,9 @@
|
||||
<div class="card-body d-flex flex-column"
|
||||
*ngVar="group$ | async as group">
|
||||
|
||||
<h5 class="w-100">
|
||||
<h2 class="h4 w-100">
|
||||
{{ roleName$ | async }}
|
||||
</h5>
|
||||
</h2>
|
||||
|
||||
<div class="mt-2 mb-2">
|
||||
<ds-alert [type]="'alert-info'" >{{'comcol-role.edit.' + (comcolRole$ | async)?.name + '.description' | translate}}</ds-alert>
|
||||
|
@@ -2,8 +2,8 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="d-flex justify-content-between border-bottom">
|
||||
<h2>{{ type + '.edit.head' | translate }}</h2>
|
||||
<div>
|
||||
<h1>{{ type + '.edit.head' | translate }}</h1>
|
||||
<div class="my-auto">
|
||||
<a class="btn btn-danger"
|
||||
[routerLink]="((type === 'community') ? '/communities/' : '/collections/') + (dsoRD$ | async)?.payload.uuid + '/delete'">
|
||||
<i class="fas fa-trash"></i> {{type + '.edit.delete' | translate}}</a>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<div *ngIf="content" class="content-with-optional-title mb-2">
|
||||
<h2 class="d-inline-block h6" *ngIf="title">{{ title | translate }}</h2>
|
||||
<div class="d-inline-block px-2"><a href="{{getHandle()}}">{{getHandle()}}</a></div>
|
||||
</div>
|
||||
<p *ngIf="content" class="d-flex flex-wrap gapx-2 text-break">
|
||||
<span class="mb-0" *ngIf="title">{{ title | translate }}</span>
|
||||
<a [href]="getHandle()">{{getHandle()}}</a>
|
||||
</p>
|
||||
|
@@ -1,5 +0,0 @@
|
||||
div {
|
||||
word-break: break-word;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h4 class="mb-3">{{'resource-policies.edit.page.heading' | translate}} {{resourcePolicy.id}}</h4>
|
||||
<h1 class="mb-3">{{'resource-policies.edit.page.heading' | translate}} {{resourcePolicy.id}}</h1>
|
||||
|
||||
<ds-resource-policy-form [resourcePolicy]="resourcePolicy"
|
||||
[isProcessing]="isProcessing()"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div *ngIf="configurationList?.length > 1" class="search-switch-configuration">
|
||||
<h5 id="configuration-switch">{{ 'search.switch-configuration.title' | translate}}</h5>
|
||||
<h3 id="configuration-switch">{{ 'search.switch-configuration.title' | translate}}</h3>
|
||||
|
||||
<select class="form-control"
|
||||
aria-labelledby="configuration-switch"
|
||||
|
@@ -1,11 +1,11 @@
|
||||
<div class="container">
|
||||
|
||||
<ng-container *ngVar="(scope$ | async) as scope">
|
||||
<h2 *ngIf="scope"
|
||||
<h1 *ngIf="scope"
|
||||
class="header"
|
||||
id="{{ scope.id }}">
|
||||
{{ 'statistics.header' | translate: { scope: getName(scope) } }}
|
||||
</h2>
|
||||
</h1>
|
||||
</ng-container>
|
||||
|
||||
<ng-container *ngVar="reports$ | async as reports">
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<div *ngIf="hasData"
|
||||
class="m-1">
|
||||
|
||||
<h3 class="m-1">
|
||||
<h2 class="m-1">
|
||||
{{ 'statistics.table.title.' + report.reportType | translate }}
|
||||
</h3>
|
||||
</h2>
|
||||
|
||||
<table class="table table-striped" [attr.data-test]="report.reportType">
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2 id="header" class="pb-2">{{'submission.import-external.title' + ((label) ? '.' + label : '') | translate}}</h2>
|
||||
<h1 id="header" class="pb-2">{{'submission.import-external.title' + ((label) ? '.' + label : '') | translate}}</h1>
|
||||
<ds-submission-import-external-searchbar
|
||||
[initExternalSourceData]="reload$.value"
|
||||
(externalSourceData) = "getExternalSourceData($event)">
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="row" *ngIf="reload$.value.entity">
|
||||
<div *ngIf="reload$.value.sourceId !== ''" class="col-md-12">
|
||||
<ng-container *ngVar="(entriesRD$ | async) as entriesRD">
|
||||
<h3 *ngIf="entriesRD && entriesRD?.payload?.page?.length !== 0">{{ 'submission.sections.describe.relationship-lookup.selection-tab.title' | translate}}</h3>
|
||||
<h2 *ngIf="entriesRD && entriesRD?.payload?.page?.length !== 0">{{ 'submission.sections.describe.relationship-lookup.selection-tab.title' | translate}}</h2>
|
||||
<ds-viewable-collection *ngIf="entriesRD?.hasSucceeded && !(isLoading$ | async) && entriesRD?.payload?.page?.length > 0" @fadeIn
|
||||
[objects]="entriesRD"
|
||||
[selectionConfig]="{ repeatable: repeatable, listId: listId }"
|
||||
@@ -25,15 +25,15 @@
|
||||
<ds-themed-loading *ngIf="(isLoading$ | async)"
|
||||
message="{{'loading.search-results' | translate}}"></ds-themed-loading>
|
||||
<div *ngIf="!(isLoading$ | async) && entriesRD?.payload?.page?.length === 0" data-test="empty-external-entry-list">
|
||||
<ds-alert [type]="'alert-info'">{{ 'search.results.empty' | translate }}</ds-alert>
|
||||
<ds-alert [type]="AlertType.Info">{{ 'search.results.empty' | translate }}</ds-alert>
|
||||
</div>
|
||||
<div *ngIf="!(isLoading$ | async) && entriesRD.statusCode === 500" data-test="empty-external-error-500">
|
||||
<ds-alert [type]="'alert-info'">{{ 'search.results.response.500' | translate }}</ds-alert>
|
||||
<ds-alert [type]="AlertType.Info">{{ 'search.results.response.500' | translate }}</ds-alert>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
<div *ngIf="reload$.value.sourceId === ''" class="col-md-12">
|
||||
<ds-alert [type]="'alert-info'">
|
||||
<ds-alert [type]="AlertType.Info">
|
||||
<p class="lead mb-0">{{'submission.import-external.page.hint' | translate}}</p>
|
||||
</ds-alert>
|
||||
</div>
|
||||
|
@@ -23,6 +23,7 @@ import { PageInfo } from '../../core/shared/page-info.model';
|
||||
import { hasValue, isNotEmpty } from '../../shared/empty.util';
|
||||
import { getFinishedRemoteData } from '../../core/shared/operators';
|
||||
import { NONE_ENTITY_TYPE } from '../../core/shared/item-relationships/item-type.resource-type';
|
||||
import { AlertType } from 'src/app/shared/alert/alert-type';
|
||||
|
||||
/**
|
||||
* This component allows to submit a new workspaceitem importing the data from an external source.
|
||||
@@ -92,6 +93,8 @@ export class SubmissionImportExternalComponent implements OnInit, OnDestroy {
|
||||
|
||||
private retrieveExternalSourcesSub: Subscription;
|
||||
|
||||
public readonly AlertType = AlertType;
|
||||
|
||||
/**
|
||||
* Initialize the component variables.
|
||||
* @param {SearchConfigurationService} searchConfigService
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 m-40">
|
||||
<h2>{{'subscriptions.title' | translate}}</h2>
|
||||
<h1>{{'subscriptions.title' | translate}}</h1>
|
||||
<div class="row">
|
||||
<div class="col-md-12 m-40">
|
||||
<ds-themed-loading *ngIf="loading$ | async"></ds-themed-loading>
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
</ds-pagination>
|
||||
|
||||
<ds-alert *ngIf="subscriptions?.pageInfo?.totalElements == 0 && !(loading$ | async)" [type]="'alert-info'" data-test="empty-alert">
|
||||
<ds-alert *ngIf="subscriptions?.pageInfo?.totalElements == 0 && !(loading$ | async)" [type]="AlertType.Info" data-test="empty-alert">
|
||||
{{ 'subscriptions.table.empty.message' | translate }}
|
||||
</ds-alert>
|
||||
|
||||
|
@@ -14,6 +14,7 @@ import { EPerson } from '../core/eperson/models/eperson.model';
|
||||
import { getAllCompletedRemoteData } from '../core/shared/operators';
|
||||
import { RemoteData } from '../core/data/remote-data';
|
||||
import { hasValue } from '../shared/empty.util';
|
||||
import { AlertType } from '../shared/alert/alert-type';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-subscriptions-page',
|
||||
@@ -54,6 +55,8 @@ export class SubscriptionsPageComponent implements OnInit, OnDestroy {
|
||||
*/
|
||||
sub: rxjsSubscription = null;
|
||||
|
||||
readonly AlertType = AlertType;
|
||||
|
||||
constructor(
|
||||
private paginationService: PaginationService,
|
||||
private authService: AuthService,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container">
|
||||
<h2 id="header">{{'system-wide-alert.form.header' | translate}}</h2>
|
||||
<h1 id="header">{{'system-wide-alert.form.header' | translate}}</h1>
|
||||
<div [formGroup]="alertForm" [class]="'ng-invalid'">
|
||||
<div class="form-group">
|
||||
<div class="row mb-2">
|
||||
|
@@ -864,6 +864,8 @@
|
||||
|
||||
"browse.startsWith.input": "Filter",
|
||||
|
||||
"browse.taxonomy_srsc.title": "Browsing by Subject Category",
|
||||
|
||||
"browse.taxonomy.button": "Browse",
|
||||
|
||||
"browse.title": "Browsing {{ collection }} by {{ field }}{{ startsWith }} {{ value }}",
|
||||
|
@@ -12,6 +12,14 @@ $fa-font-path: "^assets/fonts" !default;
|
||||
/* Images */
|
||||
$image-path: "../assets/images" !default;
|
||||
|
||||
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
|
||||
$h1-font-size: $font-size-base * 2.125 !default;
|
||||
$h2-font-size: $font-size-base * 1.75 !default;
|
||||
$h3-font-size: $font-size-base * 1.5 !default;
|
||||
$h4-font-size: $font-size-base * 1.25 !default;
|
||||
$h5-font-size: $font-size-base * 1.125 !default;
|
||||
$h6-font-size: $font-size-base !default;
|
||||
|
||||
// enable-responsive-font-sizes allows text to scale more naturally across device and viewport sizes
|
||||
$enable-responsive-font-sizes: true;
|
||||
|
||||
|
Reference in New Issue
Block a user