mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-06 17:44:11 +00:00
Upgrade to Bootstrap 5 & realign themes (#3506)
* 117631: upgraded bootstrap, ng-bootstrap and installed popper.js * 117631: SASS to CSS variables * 117631: Bootstrap 4 to 5 html/css fixes * 117631: Theming fixes after bootstrap upgrade * 117631: More theming fixes: accordions, spacing, search components etc * 117631: Fixed tests * 117631: Fixed offset issues * 117631: Fixed contrast ratio issue * 117631: Fixed variables, removed unnecessary mapping, fixed tables, upgraded to Bootstrap 5.3.3 * 118113: vertical footer deviders * 118113: remove button shadow * 118113: old checkboxes * 118113: Custom icons font-family * 118113: accordion color * 118113: table striped customizable background-color * 118113: revert vertical deviders in footer bs-secondary change * 118113: modal close button * 118113: add w-100 to btn-block elements * 118113: border radius * 118113: The date selector on the submission page gets squished to the side of its label fix * 118113: adding margins to dynamic-form-control-containers * 118113: adding gaps between sections of item submission form * 118113: icon font-family removed !important * 118113: removed !important from #legend_dc_date_issued * 118113: move --bs-border-radius to $bs-border-radius * 118113: remove new SCSS variable * 118113: reduce size for Item type labels * 118113: date picker border - transparent * 118113: drag-item-container elements on same line * 118113: specific border color for ds-number-picker buttons * Simplify variables & styles * 118627: html files * Fix new SCSS compile issues, remove yarn.lock * 118627: remove footer button shadow * 118627: custom login button radius * 118627: success button - white text * 118627: table alternate colors * Fix ghostly Bootstrap version, again * Override (ng-)bootstrap versions for @ng-dynamic-forms * 118627: Feedback - fix login button radius * 118627: Feedback - fix footer button shadows * 118627: Feedback - login border radius use $bs-border-radius-lg + change to rem * 118627: Tooltip issue * 118627: Metadata white authority badge * 118627: Align Back button * 118627: Bitstreams under Item's Metadata issue fix * 118627: select on edit collection page "arrow icon" * 118627: fix alignment issues * 118627: fix admin sidebar "Managment" label * 118627: Feedback - login button * 118627: Line above table heads * 118627: Remove HMTL accordion expandable arrow * 118627: bitstream table * 118627: notification "close button" * 118627: faint border/shadow around the expand buttons on hierarchical browse pages * 118627: tooltip margin * 118627: Bootstrap 5 changed the default gutter size to 24px * 118627: custom-aligning -> custom-alignment * 118627: lint-fix * 118627: lint fix * 118627: e2e Fix with new "btn-close" * 118627: e2e Fix heading order for access-control-form-container * 118627: access-control-form-container mr-4 to me-4 * 118627: update mr to me & ml to ms & pr to ps & pl to ps * 118627: Access Control "Mode" radiobuttons under Text * 118627: Item submission Publisher select icon positioning * 118627: resolved merge conflict with main (and npm install) * 118627: cherrypicking 3553 commits * Remove unused angular-idle-preload (cherry picked from commitfef5dd72b3
) * 118627: npm install - to fix package-lock.json * 120594: hamberger menu not showing fix * 120594: big logo header issue * 120594: remove faint shadow * 120594: btn-transparent class * 120594: badge-* to bg-* * 120594: add padding-right & -left for rounded-pill * 120594: update test variables to fit the new bootstrap variables * 120594: add missing rss conditions * 120594: fix white badges * 118627: remove shadow on number-picker * 120594: revert white badge fix * 120594: re-add dropdown-button in dynamic-lookup-relation-search-tab * 120594: remove default radio button styling * 120594: full width radio buttons * 120594: edit collection page alignment * 120594: bg -> bg-primary * 120594: revert to old info color * 120594: revert media breakpoints * 120594: recover PR 3227 rss * 120594: remove login & logout from PR * 120594: ds-filter input & label gap * 120594: ds-filter aligning rows * 120594: remove navbar.module.ts * 120594: remove item-edit-bitstream.component.html * 120594: remove item-edit-bitstream-drag-handle.component.html * 120594: Fix vocabulary-treeview styling * 120594: Remove unused browse-by-metadata-page.component.html * 120594: red invalid input label * 120594: use old link color for number-picker: #1f7293 * 120594: move $theme-colors to sass override * 120594: spacing for upload icon * 120594: decrease media-breakpoint-down * 120594: PR 3227 rss * 120594: merge in main bootstrap variable mappings * 120594: restore all mapped variable that have a value * 120594: fix unset variable item-edit-bitstream-bundle.component.scss * 120594: old tooltip color * 120594: edit bitstream render text inline with the icon * Revert "120594: merge in main bootstrap variable mappings" This reverts commit4e61b5fb
* 120594: add non-default mapped variables with references * 120594: add docs in _bootstrap_variables_mapping.scss * 120594: use bootstrap variables instead of hardcoded values --------- Co-authored-by: lotte <lotte_hofstede@hotmail.com> Co-authored-by: Yura Bondarenko <yura.bondarenko@atmire.com> Co-authored-by: Yury Bondarenko <ybnd@tuta.io> Co-authored-by: Tim Donohue <tim.donohue@lyrasis.org>
This commit is contained in:
@@ -217,7 +217,7 @@ describe('New Submission page', () => {
|
||||
});
|
||||
|
||||
// Close popup window
|
||||
cy.get('ds-dynamic-lookup-relation-modal button.close').click();
|
||||
cy.get('ds-dynamic-lookup-relation-modal button.btn-close').click();
|
||||
|
||||
// Back on the form, click the discard button to remove new submission
|
||||
// Clicking it will display a confirmation, which we will confirm with another click
|
||||
|
49
package-lock.json
generated
49
package-lock.json
generated
@@ -23,7 +23,7 @@
|
||||
"@angular/ssr": "^17.3.11",
|
||||
"@babel/runtime": "7.26.7",
|
||||
"@kolkov/ngx-gallery": "^2.0.1",
|
||||
"@ng-bootstrap/ng-bootstrap": "^11.0.0",
|
||||
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
|
||||
"@ng-dynamic-forms/core": "^16.0.0",
|
||||
"@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0",
|
||||
"@ngrx/effects": "^17.1.1",
|
||||
@@ -33,7 +33,7 @@
|
||||
"@nicky-lenaers/ngx-scroll-to": "^14.0.0",
|
||||
"angulartics2": "^12.2.0",
|
||||
"axios": "^1.7.9",
|
||||
"bootstrap": "^4.6.1",
|
||||
"bootstrap": "^5.3",
|
||||
"cerialize": "0.1.18",
|
||||
"cli-progress": "^3.12.0",
|
||||
"colors": "^1.4.0",
|
||||
@@ -5496,9 +5496,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@ng-bootstrap/ng-bootstrap": {
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-11.0.1.tgz",
|
||||
"integrity": "sha512-xpXpW2x2S9ZQhEu5kCmEAFf8WvkVD+rcKb1NLQiLuiZgAQR7GXVexXy5Y+RIvTjAQmPEVyxaSgYiJA6sWNJLNw==",
|
||||
"version": "12.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz",
|
||||
"integrity": "sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
@@ -5507,6 +5507,7 @@
|
||||
"@angular/core": "^13.0.0",
|
||||
"@angular/forms": "^13.0.0",
|
||||
"@angular/localize": "^13.0.0",
|
||||
"@popperjs/core": "^2.10.2",
|
||||
"rxjs": "^6.5.3 || ^7.4.0"
|
||||
}
|
||||
},
|
||||
@@ -6250,6 +6251,16 @@
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/@popperjs/core": {
|
||||
"version": "2.11.8",
|
||||
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
|
||||
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/@react-dnd/asap": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz",
|
||||
@@ -8679,9 +8690,9 @@
|
||||
"integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
|
||||
},
|
||||
"node_modules/bootstrap": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
|
||||
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
|
||||
"version": "5.3.3",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
|
||||
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@@ -8693,8 +8704,7 @@
|
||||
}
|
||||
],
|
||||
"peerDependencies": {
|
||||
"jquery": "1.9.1 - 3",
|
||||
"popper.js": "^1.16.1"
|
||||
"@popperjs/core": "^2.11.8"
|
||||
}
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
@@ -14878,13 +14888,6 @@
|
||||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
},
|
||||
"node_modules/jquery": {
|
||||
"version": "3.7.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/js-cookie": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
|
||||
@@ -18383,18 +18386,6 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/popper.js": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
|
||||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
|
||||
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/popperjs"
|
||||
}
|
||||
},
|
||||
"node_modules/portscanner": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz",
|
||||
|
@@ -73,7 +73,9 @@
|
||||
"@angular/forms": "^17.3.11"
|
||||
},
|
||||
"@ng-dynamic-forms/ui-ng-bootstrap": {
|
||||
"ngx-mask": "14.2.4"
|
||||
"ngx-mask": "14.2.4",
|
||||
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
|
||||
"bootstrap": "^5.3"
|
||||
},
|
||||
"@ngtools/webpack": {
|
||||
"@angular/compiler-cli": "^17.3.11",
|
||||
@@ -110,7 +112,7 @@
|
||||
"@angular/ssr": "^17.3.11",
|
||||
"@babel/runtime": "7.26.7",
|
||||
"@kolkov/ngx-gallery": "^2.0.1",
|
||||
"@ng-bootstrap/ng-bootstrap": "^11.0.0",
|
||||
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
|
||||
"@ng-dynamic-forms/core": "^16.0.0",
|
||||
"@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0",
|
||||
"@ngrx/effects": "^17.1.1",
|
||||
@@ -120,7 +122,7 @@
|
||||
"@nicky-lenaers/ngx-scroll-to": "^14.0.0",
|
||||
"angulartics2": "^12.2.0",
|
||||
"axios": "^1.7.9",
|
||||
"bootstrap": "^4.6.1",
|
||||
"bootstrap": "^5.3",
|
||||
"cerialize": "0.1.18",
|
||||
"cli-progress": "^3.12.0",
|
||||
"colors": "^1.4.0",
|
||||
|
@@ -1,19 +1,13 @@
|
||||
<ngb-accordion #acc="ngbAccordion" [activeIds]="'browse'">
|
||||
<ngb-panel [id]="'browse'">
|
||||
<ng-template ngbPanelHeader>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle('browse')"
|
||||
<ng-template ngbPanelTitle>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" (click)="acc.toggle('browse')"
|
||||
data-test="browse">
|
||||
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()"
|
||||
[attr.aria-expanded]="acc.isExpanded('browse')"
|
||||
aria-controls="bulk-access-browse-panel-content">
|
||||
{{ 'admin.access-control.bulk-access-browse.header' | translate }}
|
||||
</button>
|
||||
<div class="text-right d-flex gap-2">
|
||||
<div class="d-flex my-auto">
|
||||
<span *ngIf="acc.isExpanded('browse')" class="fas fa-chevron-up fa-fw"></span>
|
||||
<span *ngIf="!acc.isExpanded('browse')" class="fas fa-chevron-down fa-fw"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template ngbPanelContent>
|
||||
@@ -22,7 +16,7 @@
|
||||
<li [ngbNavItem]="'search'" role="presentation">
|
||||
<a ngbNavLink>{{'admin.access-control.bulk-access-browse.search.header' | translate}}</a>
|
||||
<ng-template ngbNavContent>
|
||||
<div class="mx-n3">
|
||||
<div class="bulk-access-search">
|
||||
<ds-search [configuration]="'administrativeBulkAccess'"
|
||||
[selectable]="true"
|
||||
[selectionConfig]="{ repeatable: true, listId: listId }"
|
||||
@@ -42,7 +36,7 @@
|
||||
[showPaginator]="false"
|
||||
(prev)="pagePrev()"
|
||||
(next)="pageNext()">
|
||||
<ul *ngIf="(objectsSelected$|async)?.hasSucceeded" class="list-unstyled ml-4">
|
||||
<ul *ngIf="(objectsSelected$|async)?.hasSucceeded" class="list-unstyled ms-4">
|
||||
<li *ngFor='let object of (objectsSelected$|async)?.payload?.page | paginate: { itemsPerPage: (paginationOptions$ | async).pageSize,
|
||||
currentPage: (paginationOptions$ | async).currentPage, totalItems: (objectsSelected$|async)?.payload?.page.length }; let i = index; let last = last '
|
||||
class="mt-4 mb-4 d-flex"
|
||||
|
@@ -0,0 +1,4 @@
|
||||
.bulk-access-search {
|
||||
margin-right: calc(var(--bs-gutter-x, 1.5rem) / -2);
|
||||
margin-left: calc(var(--bs-gutter-x, 1.5rem) / -2);
|
||||
}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<hr>
|
||||
|
||||
<div class="d-flex justify-content-end">
|
||||
<button class="btn btn-outline-primary mr-3" (click)="reset()">
|
||||
<button class="btn btn-outline-primary me-3" (click)="reset()">
|
||||
{{ 'access-control-cancel' | translate }}
|
||||
</button>
|
||||
<button class="btn btn-primary" [dsBtnDisabled]="!canExport()" (click)="submit()">
|
||||
|
@@ -1,17 +1,11 @@
|
||||
<ngb-accordion #acc="ngbAccordion" [activeIds]="'settings'">
|
||||
<ngb-panel [id]="'settings'">
|
||||
<ng-template ngbPanelHeader>
|
||||
<ng-template ngbPanelTitle>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle('settings')" data-test="settings">
|
||||
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()" [attr.aria-expanded]="acc.isExpanded('settings')"
|
||||
aria-controls="bulk-access-settings-panel-content">
|
||||
{{ 'admin.access-control.bulk-access-settings.header' | translate }}
|
||||
</button>
|
||||
<div class="text-right d-flex gap-2">
|
||||
<div class="d-flex my-auto">
|
||||
<span *ngIf="acc.isExpanded('settings')" class="fas fa-chevron-up fa-fw"></span>
|
||||
<span *ngIf="!acc.isExpanded('settings')" class="fas fa-chevron-down fa-fw"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template ngbPanelContent>
|
||||
|
@@ -5,10 +5,10 @@
|
||||
<h1 id="header" class="pb-2">{{labelPrefix + 'head' | translate}}</h1>
|
||||
|
||||
<div>
|
||||
<button class="mr-auto btn btn-success addEPerson-button"
|
||||
<button class="me-auto btn btn-success addEPerson-button"
|
||||
[routerLink]="'create'">
|
||||
<i class="fas fa-plus"></i>
|
||||
<span class="d-none d-sm-inline ml-1">{{labelPrefix + 'button.add' | translate}}</span>
|
||||
<span class="d-none d-sm-inline ms-1">{{labelPrefix + 'button.add' | translate}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -18,17 +18,17 @@
|
||||
</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">
|
||||
<select name="scope" id="scope" formControlName="scope" class="form-select" aria-label="Search scope">
|
||||
<option value="metadata">{{labelPrefix + 'search.scope.metadata' | translate}}</option>
|
||||
<option value="email">{{labelPrefix + 'search.scope.email' | translate}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="flex-grow-1 mr-3 ml-3">
|
||||
<div class="form-group input-group">
|
||||
<div class="flex-grow-1 me-3 ms-3">
|
||||
<div class="mb-3 input-group">
|
||||
<input type="text" name="query" id="query" formControlName="query"
|
||||
class="form-control" [attr.aria-label]="labelPrefix + 'search.placeholder' | translate"
|
||||
[placeholder]="(labelPrefix + 'search.placeholder' | translate)">
|
||||
<span class="input-group-append">
|
||||
<span class="input-group-append">
|
||||
<button type="submit" class="search-button btn btn-primary">
|
||||
<i class="fas fa-search"></i> {{ labelPrefix + 'search.button' | translate }}
|
||||
</button>
|
||||
|
@@ -29,7 +29,7 @@
|
||||
<i class="fa fa-key"></i> {{'admin.access-control.epeople.actions.reset' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="canImpersonate$ | async" between class="btn-group">
|
||||
<div *ngIf="canImpersonate$ | async" between class="btn-group ms-1">
|
||||
<button *ngIf="!isImpersonated" class="btn btn-primary" type="button" (click)="impersonate()">
|
||||
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}}
|
||||
</button>
|
||||
|
@@ -75,8 +75,8 @@
|
||||
</h3>
|
||||
|
||||
<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 mr-3">
|
||||
<div class="flex-grow-1 me-3">
|
||||
<div class="form-group input-group me-3">
|
||||
<input type="text" name="query" id="query" formControlName="query"
|
||||
class="form-control" aria-label="Search input">
|
||||
<span class="input-group-append">
|
||||
|
@@ -62,8 +62,8 @@
|
||||
|
||||
</h4>
|
||||
<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 mr-3">
|
||||
<div class="flex-grow-1 me-3">
|
||||
<div class="mb-3 input-group me-3">
|
||||
<input type="text" name="query" id="query" formControlName="query"
|
||||
class="form-control" aria-label="Search input">
|
||||
<span class="input-group-append">
|
||||
@@ -75,7 +75,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<button (click)="clearFormAndResetResult();" class="btn btn-secondary float-right">
|
||||
<button (click)="clearFormAndResetResult();" class="btn btn-secondary float-end">
|
||||
{{messagePrefix + '.button.see-all' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
|
@@ -4,18 +4,18 @@
|
||||
<div class="d-flex justify-content-between border-bottom mb-3">
|
||||
<h1 id="header" class="pb-2">{{messagePrefix + 'head' | translate}}</h1>
|
||||
<div>
|
||||
<button class="mr-auto btn btn-success"
|
||||
<button class="me-auto btn btn-success"
|
||||
[routerLink]="'create'">
|
||||
<i class="fas fa-plus"></i>
|
||||
<span class="d-none d-sm-inline ml-1">{{messagePrefix + 'button.add' | translate}}</span>
|
||||
<span class="d-none d-sm-inline ms-1">{{messagePrefix + 'button.add' | translate}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<div class="flex-grow-1 me-3">
|
||||
<div class="mb-3 input-group">
|
||||
<input type="text" name="query" id="query" formControlName="query"
|
||||
class="form-control" [attr.aria-label]="messagePrefix + 'search.placeholder' | translate"
|
||||
[placeholder]="(messagePrefix + 'search.placeholder' | translate)" >
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<p>
|
||||
<button class="btn btn-primary" (click)="this.selectCollection();">{{'admin.metadata-import.page.button.select-collection' | translate}}</button>
|
||||
</p>
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="validateOnly" [(ngModel)]="validateOnly">
|
||||
<label class="form-check-label" for="validateOnly">
|
||||
@@ -25,7 +25,7 @@
|
||||
[uncheckedLabel]="'admin.metadata-import.page.toggle.url' | translate"
|
||||
[checked]="isUpload"
|
||||
(change)="toggleUpload()" ></ui-switch>
|
||||
<small class="form-text text-muted">
|
||||
<small class="form-text text-muted d-block">
|
||||
{{'admin.batch-import.page.toggle.help' | translate}}
|
||||
</small>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
[dropMessageLabelReplacement]="'admin.batch-import.page.dropMsgReplace'">
|
||||
</ds-file-dropzone-no-uploader>
|
||||
|
||||
<div class="form-group mt-2" *ngIf="!isUpload">
|
||||
<div class="mb-3 mt-2" *ngIf="!isUpload">
|
||||
<input class="form-control" type="text" placeholder="{{'admin.metadata-import.page.urlMsg' | translate}}"
|
||||
data-test="file-url-input" [(ngModel)]="fileURL">
|
||||
</div>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<div class="container">
|
||||
<h1 id="header">{{'admin.metadata-import.page.header' | translate}}</h1>
|
||||
<p>{{'admin.metadata-import.page.help' | translate}}</p>
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="validateOnly" [(ngModel)]="validateOnly">
|
||||
<label class="form-check-label" for="validateOnly">
|
||||
|
@@ -37,7 +37,7 @@
|
||||
<div class="mb-5 mt-5">
|
||||
<!-- In the url section -->
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex flex-column w-50 mr-2">
|
||||
<div class="d-flex flex-column w-50 me-2">
|
||||
<label for="url" class="font-weight-bold">{{ 'ldn-new-service.form.label.url' | translate }}</label>
|
||||
<input [class.invalid-field]="formModel.get('url').invalid && formModel.get('url').touched"
|
||||
[placeholder]="'ldn-new-service.form.placeholder.url' | translate" class="form-control"
|
||||
@@ -73,7 +73,7 @@
|
||||
<label for="lowerIp" class="font-weight-bold">{{ 'ldn-new-service.form.label.ip-range' | translate }}</label>
|
||||
<div class="d-flex">
|
||||
<input [class.invalid-field]="formModel.get('lowerIp').invalid && formModel.get('lowerIp').touched"
|
||||
[placeholder]="'ldn-new-service.form.placeholder.lowerIp' | translate" class="form-control mr-2"
|
||||
[placeholder]="'ldn-new-service.form.placeholder.lowerIp' | translate" class="form-control me-2"
|
||||
formControlName="lowerIp"
|
||||
id="lowerIp"
|
||||
name="lowerIp"
|
||||
@@ -298,7 +298,7 @@
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div *ngIf="!isNewService">
|
||||
<button (click)="closeModal()" class="btn btn-outline-secondary mr-2"
|
||||
<button (click)="closeModal()" class="btn btn-outline-secondary me-2"
|
||||
id="delete-confirm-edit">{{ 'service.detail.return' | translate }}
|
||||
</button>
|
||||
<button *ngIf="!isNewService" (click)="patchService()"
|
||||
@@ -306,7 +306,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div *ngIf="isNewService">
|
||||
<button (click)="closeModal()" class="btn btn-outline-secondary mr-2 "
|
||||
<button (click)="closeModal()" class="btn btn-outline-secondary me-2 "
|
||||
id="delete-confirm-new">{{ 'service.refuse.create' | translate }}
|
||||
</button>
|
||||
<button (click)="createService()"
|
||||
|
@@ -4,7 +4,7 @@
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<button class="btn btn-success" routerLink="/admin/ldn/services/new"><i
|
||||
class="fas fa-plus pr-2"></i>{{ 'process.overview.new' | translate }}</button>
|
||||
class="fas fa-plus pe-2"></i>{{ 'process.overview.new' | translate }}</button>
|
||||
</div>
|
||||
<ds-pagination *ngIf="(ldnServicesRD$ | async)?.payload?.totalElements > 0"
|
||||
[collectionSize]="(ldnServicesRD$ | async)?.payload?.totalElements"
|
||||
@@ -85,7 +85,7 @@
|
||||
<div class="mt-4 text-right">
|
||||
<button (click)="closeModal()"
|
||||
[attr.aria-label]="'ldn-service-overview-close-modal' | translate"
|
||||
class="btn btn-outline-secondary mr-2">{{ 'service.detail.delete.cancel' | translate }}</button>
|
||||
class="btn btn-outline-secondary me-2">{{ 'service.detail.delete.cancel' | translate }}</button>
|
||||
<button (click)="deleteSelected(this.selectedServiceId.toString(), ldnServicesService)"
|
||||
class="btn btn-danger"
|
||||
[attr.aria-label]="'ldn-service-overview-select-delete' | translate"
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<div class="col-12 col-md-3 text-left h4">{{((isInbound$ | async) ? 'admin.notify.dashboard.inbound' : 'admin.notify.dashboard.outbound') | translate}}</div>
|
||||
<div class="col-md-9">
|
||||
<div class="h4">
|
||||
<button (click)="resetDefaultConfiguration()" *ngIf="(selectedSearchConfig$ | async) !== defaultConfiguration" class="badge badge-primary mr-1 mb-1">
|
||||
<button (click)="resetDefaultConfiguration()" *ngIf="(selectedSearchConfig$ | async) !== defaultConfiguration" class="badge bg-primary me-1 mb-1">
|
||||
{{ 'admin-notify-logs.' + (selectedSearchConfig$ | async) | translate}}
|
||||
<span> ×</span>
|
||||
</button>
|
||||
|
@@ -28,7 +28,7 @@
|
||||
<tbody>
|
||||
<tr *ngFor="let bitstreamFormat of (bitstreamFormats$ | async)?.payload?.page">
|
||||
<td>
|
||||
<label class="mb-0">
|
||||
<label class="form-label mb-0">
|
||||
<input type="checkbox"
|
||||
[attr.aria-label]="'admin.registries.bitstream-formats.select' | translate"
|
||||
[checked]="(selectedBitstreamFormatIDs$ | async)?.includes(bitstreamFormat.id)"
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
<div>
|
||||
<button *ngIf="(bitstreamFormats$ | async)?.payload?.page?.length > 0" class="btn btn-primary deselect" (click)="deselectAll()">{{'admin.registries.bitstream-formats.table.deselect-all' | translate}}</button>
|
||||
<button *ngIf="(bitstreamFormats$ | async)?.payload?.page?.length > 0" type="submit" class="btn btn-danger float-right" (click)="deleteFormats()">{{'admin.registries.bitstream-formats.table.delete' | translate}}</button>
|
||||
<button *ngIf="(bitstreamFormats$ | async)?.payload?.page?.length > 0" type="submit" class="btn btn-danger float-end" (click)="deleteFormats()">{{'admin.registries.bitstream-formats.table.delete' | translate}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -64,7 +64,7 @@ export class FormatFormComponent implements OnInit {
|
||||
*/
|
||||
arrayElementLayout: DynamicFormControlLayout = {
|
||||
grid: {
|
||||
group: 'form-row',
|
||||
group: 'row',
|
||||
},
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@
|
||||
<tr *ngFor="let schema of (metadataSchemas | async)?.payload?.page"
|
||||
[ngClass]="{'table-primary' : (activeMetadataSchema$ | async)?.id === schema.id}">
|
||||
<td>
|
||||
<label class="mb-0">
|
||||
<label class="form-label mb-0">
|
||||
<input type="checkbox"
|
||||
[checked]="(selectedMetadataSchemaIDs$ | async)?.includes(schema.id)"
|
||||
(change)="selectMetadataSchema(schema, $event)"
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button *ngIf="(metadataSchemas | async)?.payload?.page?.length > 0" type="submit" class="btn btn-danger float-right" (click)="deleteSchemas()">{{'admin.registries.metadata.schemas.table.delete' | translate}}</button>
|
||||
<button *ngIf="(metadataSchemas | async)?.payload?.page?.length > 0" type="submit" class="btn btn-danger float-end" (click)="deleteSchemas()">{{'admin.registries.metadata.schemas.table.delete' | translate}}</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
@@ -53,7 +53,7 @@
|
||||
|
||||
<div>
|
||||
<button [routerLink]="['/admin/registries/metadata']" class="btn btn-primary">{{'admin.registries.schema.return' | translate}}</button>
|
||||
<button *ngIf="fields?.page?.length > 0" type="submit" class="btn btn-danger float-right" (click)="deleteFields()">{{'admin.registries.schema.fields.table.delete' | translate}}</button>
|
||||
<button *ngIf="fields?.page?.length > 0" type="submit" class="btn btn-danger float-end" (click)="deleteFields()">{{'admin.registries.schema.fields.table.delete' | translate}}</button>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
|
@@ -13,7 +13,7 @@
|
||||
<legend>{{group.key | translate}}</legend>
|
||||
<ng-container [formGroup]="filtersForm">
|
||||
<div *ngFor="let filter of group.filters" class="col-6">
|
||||
<input type="checkbox" id="flt-{{filter.id}}" value="{{filter.id}}" class="form-check-input col-1 align-baseline" formControlName="{{filter.id}}"><label for="flt-{{filter.id}}" class="col-11 align-middle" title="{{filter.tooltipKey | translate}}">{{filter.key | translate}}</label>
|
||||
<input type="checkbox" id="flt-{{filter.id}}" value="{{filter.id}}" class="form-check-input col-1" formControlName="{{filter.id}}"><label for="flt-{{filter.id}}" class="col-11 align-middle" title="{{filter.tooltipKey | translate}}">{{filter.key | translate}}</label>
|
||||
</div>
|
||||
</ng-container>
|
||||
</fieldset>
|
||||
|
@@ -0,0 +1,8 @@
|
||||
.col-6 > label.col-11.align-middle {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
fieldset.row-cols-2 > legend {
|
||||
float: none !important;
|
||||
}
|
||||
|
@@ -1,14 +1,13 @@
|
||||
<div>
|
||||
<div class="modal-header">{{'supervision-group-selector.header' | translate}}
|
||||
<button type="button" class="close" (click)="close()" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
<button type="button" class="btn-close" (click)="close()" aria-label="Close">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="control-group col-sm-12">
|
||||
<label for="supervisionOrder">{{'supervision-group-selector.select.type-of-order.label' | translate}}</label>
|
||||
<select name="supervisionOrder" id="supervisionOrder" class="form-control"
|
||||
<label for="supervisionOrder" class="form-label">{{'supervision-group-selector.select.type-of-order.label' | translate}}</label>
|
||||
<select name="supervisionOrder" id="supervisionOrder" class="form-select"
|
||||
[(ngModel)]="selectedOrderType"
|
||||
attr.aria-label="{{'supervision-group-selector.select.type-of-order.label' | translate}}">
|
||||
<option value="EDITOR">{{'supervision-group-selector.select.type-of-order.option.editor' | translate}}</option>
|
||||
@@ -20,7 +19,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="control-group col-sm-12">
|
||||
<label for="supervisionGroup">{{'supervision-group-selector.select.group.label' | translate}}</label>
|
||||
<label for="supervisionGroup" class="form-label">{{'supervision-group-selector.select.group.label' | translate}}</label>
|
||||
<ng-container class="mb-3">
|
||||
<input id="supervisionGroup" class="form-control" type="text" [value]="selectedGroup ? dsoNameService.getName(selectedGroup) : ''" disabled>
|
||||
<ds-error *ngIf="isSubmitted && !selectedGroup" message="{{'supervision-group-selector.select.group.error' | translate}}"></ds-error>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<span>{{'workflow-item.search.result.list.element.supervised-by' | translate}} </span>
|
||||
</div>
|
||||
<div>
|
||||
<a class="badge badge-primary mr-1 mb-1 text-capitalize mw-100 text-truncate" *ngFor="let supervisionOrder of supervisionOrders" data-test="soBadge"
|
||||
<a class="badge bg-primary me-1 mb-1 text-capitalize mw-100 text-truncate" *ngFor="let supervisionOrder of supervisionOrders" data-test="soBadge"
|
||||
[ngbTooltip]="'workflow-item.search.result.list.element.supervised.remove-tooltip' | translate"
|
||||
(click)="$event.preventDefault(); $event.stopImmediatePropagation(); deleteSupervisionOrder(supervisionOrder)" aria-label="Close">
|
||||
{{ dsoNameService.getName(supervisionOrder.group) }}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<ng-template dsDynamicComponentLoader>
|
||||
</ng-template>
|
||||
<div #badges class="position-absolute ml-1">
|
||||
<div #badges class="position-absolute ms-1">
|
||||
<div class="workflow-badge">
|
||||
<span class="badge badge-info">{{ "admin.workflow.item.workflow" | translate }}</span>
|
||||
<span class="badge bg-info">{{ "admin.workflow.item.workflow" | translate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<ul #buttons class="list-group list-group-flush">
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<ng-template dsDynamicComponentLoader>
|
||||
</ng-template>
|
||||
<div #badges class="position-absolute ml-1">
|
||||
<div #badges class="position-absolute ms-1">
|
||||
<div class="workflow-badge">
|
||||
<span class="badge badge-info">{{ "admin.workflow.item.workspace" | translate }}</span>
|
||||
<span class="badge bg-info">{{ "admin.workflow.item.workspace" | translate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<ul #buttons class="list-group list-group-flush">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="workflow-badge">
|
||||
<span class="badge badge-info">{{ "admin.workflow.item.workflow" | translate }}</span>
|
||||
<span class="badge bg-info">{{ "admin.workflow.item.workflow" | translate }}</span>
|
||||
</div>
|
||||
<ds-listable-object-component-loader *ngIf="item$ | async"
|
||||
[object]="item$ | async"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<span class="badge badge-info">{{ "admin.workflow.item.workspace" | translate }}</span>
|
||||
<span class="badge bg-info">{{ "admin.workflow.item.workspace" | translate }}</span>
|
||||
<ds-listable-object-component-loader *ngIf="item$ | async"
|
||||
[object]="item$ | async"
|
||||
[viewMode]="viewModes.ListElement"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<div class="container">
|
||||
<ds-resource-policies [resourceType]="'bitstream'" [resourceUUID]="(dsoRD$ | async)?.payload?.id"></ds-resource-policies>
|
||||
<div class="button-row bottom">
|
||||
<div class="text-right">
|
||||
<a [routerLink]="['/bitstreams', (dsoRD$ | async)?.payload?.id, 'edit']" role="button" class="btn btn-outline-secondary mr-1">
|
||||
<div class="text-end">
|
||||
<a [routerLink]="['/bitstreams', (dsoRD$ | async)?.payload?.id, 'edit']" role="button" class="btn btn-outline-secondary me-1">
|
||||
<i class="fas fa-arrow-left"></i> {{'bitstream.edit.return' | translate}}
|
||||
</a>
|
||||
</div>
|
||||
|
@@ -255,7 +255,7 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
|
||||
group: [this.iiifLabelModel],
|
||||
}, {
|
||||
grid: {
|
||||
host: 'form-row',
|
||||
host: 'row',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -273,7 +273,7 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
|
||||
group: [this.iiifTocModel],
|
||||
}, {
|
||||
grid: {
|
||||
host: 'form-row',
|
||||
host: 'row',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -291,7 +291,7 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
|
||||
group: [this.iiifWidthModel],
|
||||
}, {
|
||||
grid: {
|
||||
host: 'form-row',
|
||||
host: 'row',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -309,7 +309,7 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
|
||||
group: [this.iiifHeightModel],
|
||||
}, {
|
||||
grid: {
|
||||
host: 'form-row',
|
||||
host: 'row',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -332,7 +332,7 @@ export class EditBitstreamPageComponent implements OnInit, OnDestroy {
|
||||
],
|
||||
}, {
|
||||
grid: {
|
||||
host: 'form-row',
|
||||
host: 'row',
|
||||
},
|
||||
}),
|
||||
new DynamicFormGroupModel({
|
||||
|
@@ -7,6 +7,8 @@
|
||||
padding-bottom: calc(var(--ds-content-spacing) / 2);
|
||||
padding-top: calc(var(--ds-content-spacing) / 2);
|
||||
background-color: var(--ds-breadcrumb-bg);
|
||||
padding-left: calc(var(--bs-spacer) *.75);
|
||||
padding-right: calc(var(--bs-spacer) *.75);
|
||||
}
|
||||
|
||||
li.breadcrumb-item {
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<div *ngIf="collectionRD?.payload as collection">
|
||||
<ds-view-tracker [object]="collection"></ds-view-tracker>
|
||||
<div class="d-flex flex-row border-bottom mb-4 pb-4">
|
||||
<header class="comcol-header mr-auto">
|
||||
<header class="comcol-header me-auto">
|
||||
<!-- Collection Name -->
|
||||
<ds-comcol-page-header
|
||||
[name]="dsoNameService.getName(collection)">
|
||||
|
@@ -4,8 +4,8 @@
|
||||
<div class="col-12 pb-4">
|
||||
<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">
|
||||
<div class="mb-3 row">
|
||||
<div class="col text-end space-children-mr">
|
||||
<button class="btn btn-outline-secondary" (click)="onCancel(dso)" [dsBtnDisabled]="(processing$ | async)">
|
||||
<i class="fas fa-times"></i> {{'collection.delete.cancel' | translate}}
|
||||
</button>
|
||||
|
@@ -1,6 +1,8 @@
|
||||
<ds-comcol-role
|
||||
*ngFor="let comcolRole of comcolRoles$ | async"
|
||||
[dso]="collection$ | async"
|
||||
[comcolRole]="comcolRole"
|
||||
>
|
||||
</ds-comcol-role>
|
||||
<div class="custom-alignment">
|
||||
<ds-comcol-role
|
||||
*ngFor="let comcolRole of comcolRoles$ | async"
|
||||
[dso]="collection$ | async"
|
||||
[comcolRole]="comcolRole"
|
||||
>
|
||||
</ds-comcol-role>
|
||||
</div>
|
||||
|
@@ -2,19 +2,19 @@
|
||||
<div class="container-fluid space-children-mr" *ngIf="shouldShow">
|
||||
<h3>{{ 'collection.source.controls.head' | translate }}</h3>
|
||||
<div>
|
||||
<span class="font-weight-bold">{{'collection.source.controls.harvest.status' | translate}}</span>
|
||||
<span class="fw-bold">{{'collection.source.controls.harvest.status' | translate}}</span>
|
||||
<span>{{contentSource?.harvestStatus}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-weight-bold">{{'collection.source.controls.harvest.start' | translate}}</span>
|
||||
<span class="fw-bold">{{'collection.source.controls.harvest.start' | translate}}</span>
|
||||
<span>{{contentSource?.harvestStartTime ? contentSource?.harvestStartTime : 'collection.source.controls.harvest.no-information'|translate }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-weight-bold">{{'collection.source.controls.harvest.last' | translate}}</span>
|
||||
<span class="fw-bold">{{'collection.source.controls.harvest.last' | translate}}</span>
|
||||
<span>{{contentSource?.lastHarvested ? contentSource?.lastHarvested : 'collection.source.controls.harvest.no-information'|translate }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="font-weight-bold">{{'collection.source.controls.harvest.message' | translate}}</span>
|
||||
<span class="fw-bold">{{'collection.source.controls.harvest.message' | translate}}</span>
|
||||
<span>{{contentSource?.message ? contentSource?.message: 'collection.source.controls.harvest.no-information'|translate }}</span>
|
||||
</div>
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="container-fluid">
|
||||
<div class="d-inline-block float-right space-children-mr">
|
||||
<div class="d-inline-block float-end space-children-mr">
|
||||
<button class=" btn btn-danger" *ngIf="(isReinstatable$ | async) !== true"
|
||||
[dsBtnDisabled]="(hasChanges$ | async) !== true"
|
||||
(click)="discard()"><i
|
||||
@@ -43,7 +43,7 @@
|
||||
<div class="container mt-2" *ngIf="(contentSource?.harvestType !== harvestTypeNone)">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="d-inline-block float-right ml-1 space-children-mr">
|
||||
<div class="d-inline-block float-end ms-1 space-children-mr">
|
||||
<button class=" btn btn-danger" *ngIf="(isReinstatable$ | async) !== true"
|
||||
[dsBtnDisabled]="(hasChanges$ | async) !== true"
|
||||
(click)="discard()"><i
|
||||
|
@@ -0,0 +1,9 @@
|
||||
:host ::ng-deep #oaiSetContainer {
|
||||
> :first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
> :last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
@@ -23,6 +23,7 @@ import { getCollectionPageRoute } from '../collection-page-routing-paths';
|
||||
@Component({
|
||||
selector: 'ds-edit-collection',
|
||||
templateUrl: '../../shared/comcol/comcol-forms/edit-comcol-page/edit-comcol-page.component.html',
|
||||
styleUrls: ['./edit-collection-page.component.scss'],
|
||||
imports: [
|
||||
RouterLink,
|
||||
TranslateModule,
|
||||
|
@@ -24,7 +24,7 @@
|
||||
<cdk-tree-node *cdkTreeNodeDef="let node; when: hasChild" cdkTreeNodePadding
|
||||
class="example-tree-node expandable-node">
|
||||
<div class="btn-group">
|
||||
<button *ngIf="hasChild(null, node) | async" type="button" class="btn btn-default" cdkTreeNodeToggle
|
||||
<button *ngIf="hasChild(null, node) | async" type="button" class="btn btn-default btn-transparent" cdkTreeNodeToggle
|
||||
[attr.aria-label]="(node.isExpanded ? 'communityList.collapse' : 'communityList.expand') | translate:{ name: dsoNameService.getName(node.payload) }"
|
||||
(click)="toggleExpanded(node)"
|
||||
data-test="expand-button">
|
||||
@@ -39,8 +39,8 @@
|
||||
<div class="d-flex flex-row">
|
||||
<span class="d-flex align-middle my-auto">
|
||||
<a [routerLink]="node.route" class="lead">{{ dsoNameService.getName(node.payload) }}</a>
|
||||
<span class="pr-2"> </span>
|
||||
<span *ngIf="node.payload.archivedItemsCount >= 0" class="badge badge-pill badge-secondary align-top archived-items-lead my-auto">{{node.payload.archivedItemsCount}}</span>
|
||||
<span class="pe-2"> </span>
|
||||
<span *ngIf="node.payload.archivedItemsCount >= 0" class="badge rounded-pill bg-secondary align-top archived-items-lead my-auto ps-2 pe-2">{{node.payload.archivedItemsCount}}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<div *ngIf="communityRD?.payload; let communityPayload">
|
||||
<ds-view-tracker [object]="communityPayload"></ds-view-tracker>
|
||||
<div class="d-flex flex-row border-bottom mb-4 pb-4">
|
||||
<header class="comcol-header mr-auto">
|
||||
<header class="comcol-header me-auto">
|
||||
<!-- Community name -->
|
||||
<ds-comcol-page-header [name]="dsoNameService.getName(communityPayload)"></ds-comcol-page-header>
|
||||
<!-- Community logo -->
|
||||
|
@@ -4,8 +4,8 @@
|
||||
<div class="col-12 pb-4">
|
||||
<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">
|
||||
<div class="mb-3 row">
|
||||
<div class="col text-end space-children-mr">
|
||||
<button class="btn btn-outline-secondary" (click)="onCancel(dso)" [dsBtnDisabled]="(processing$ | async)">
|
||||
<i class="fas fa-times" aria-hidden="true"></i> {{'community.delete.cancel' | translate}}
|
||||
</button>
|
||||
|
@@ -1,6 +1,8 @@
|
||||
<ds-comcol-role
|
||||
*ngFor="let comcolRole of comcolRoles$ | async"
|
||||
[dso]="community$ | async"
|
||||
[comcolRole]="comcolRole"
|
||||
>
|
||||
</ds-comcol-role>
|
||||
<div class="custom-alignment">
|
||||
<ds-comcol-role
|
||||
*ngFor="let comcolRole of comcolRoles$ | async"
|
||||
[dso]="community$ | async"
|
||||
[comcolRole]="comcolRole"
|
||||
>
|
||||
</ds-comcol-role>
|
||||
</div>
|
||||
|
@@ -1,16 +1,16 @@
|
||||
<form [formGroup]="form" (ngSubmit)="submit()">
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div class="row mb-2">
|
||||
<div class="col-12 col-sm-6">
|
||||
<label class="font-weight-bold" for="task">{{'curation.form.task-select.label' |translate }}</label>
|
||||
<select id="task" formControlName="task" class="form-control">
|
||||
<label class="fw-bold form-label" for="task">{{'curation.form.task-select.label' |translate }}</label>
|
||||
<select id="task" formControlName="task" class="form-select">
|
||||
<option *ngFor="let task of tasks" [value]="task">
|
||||
{{ 'curation-task.task.' + task + '.label' | translate }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div *ngIf="!hasHandleValue()" class="col-12 col-sm-6">
|
||||
<label class="font-weight-bold" for="handle">{{'curation.form.handle.label' |translate }}</label>
|
||||
<label class="fw-bold form-label" for="handle">{{'curation.form.handle.label' |translate }}</label>
|
||||
<input id="handle" class="form-control" formControlName="handle">
|
||||
<small class="text-muted">{{'curation.form.handle.hint' |translate }}</small>
|
||||
</div>
|
||||
|
@@ -24,26 +24,26 @@
|
||||
}
|
||||
|
||||
&.ds-warning {
|
||||
background-color: var(--ds-warning-bg);
|
||||
background-color: var(--ds-warning-bg-subtle);
|
||||
|
||||
.ds-flex-cell {
|
||||
border: 1px solid var(--bs-warning);
|
||||
border: 1px solid var(--bs-warning-border-subtle);
|
||||
}
|
||||
}
|
||||
|
||||
&.ds-danger {
|
||||
background-color: var(--ds-danger-bg);
|
||||
background-color: var(--ds-danger-bg-subtle);
|
||||
|
||||
.ds-flex-cell {
|
||||
border: 1px solid var(--bs-danger);
|
||||
border: 1px solid var(--bs-danger-border-subtle);
|
||||
}
|
||||
}
|
||||
|
||||
&.ds-success {
|
||||
background-color: var(--ds-success-bg);
|
||||
background-color: var(--ds-success-bg-subtle);
|
||||
|
||||
.ds-flex-cell {
|
||||
border: 1px solid var(--bs-success);
|
||||
border: 1px solid var(--bs-success-border-subtle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -24,7 +24,7 @@
|
||||
{{ (enabledFreeTextEditing ? dsoType + '.edit.metadata.edit.buttons.disable-free-text-editing' : dsoType + '.edit.metadata.edit.buttons.enable-free-text-editing') | translate }}
|
||||
</button>
|
||||
<div *ngIf="!isVirtual && !mdValue.editing && mdValue.newValue.authority && mdValue.newValue.confidence !== ConfidenceTypeEnum.CF_UNSET && mdValue.newValue.confidence !== ConfidenceTypeEnum.CF_NOVALUE">
|
||||
<span class="badge badge-light border" >
|
||||
<span class="badge bg-light border" >
|
||||
<i dsAuthorityConfidenceState
|
||||
class="fas fa-fw p-0"
|
||||
aria-hidden="true"
|
||||
@@ -37,7 +37,7 @@
|
||||
<div class="mt-2" *ngIf=" mdValue.editing && (isAuthorityControlled() | async) && (isSuggesterVocabulary() | async)">
|
||||
<div class="btn-group w-75">
|
||||
<i dsAuthorityConfidenceState
|
||||
class="fas fa-fw p-0 mr-1 mt-auto mb-auto"
|
||||
class="fas fa-fw p-0 me-1 mt-auto mb-auto"
|
||||
aria-hidden="true"
|
||||
[authorityValue]="mdValue.newValue.confidence"
|
||||
[iconMode]="true"
|
||||
@@ -60,7 +60,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex" *ngIf="mdRepresentation">
|
||||
<a class="mr-2" target="_blank" [routerLink]="mdRepresentationItemRoute$ | async">{{ mdRepresentationName$ | async }}</a>
|
||||
<a class="me-2" target="_blank" [routerLink]="mdRepresentationItemRoute$ | async">{{ mdRepresentationName$ | async }}</a>
|
||||
<ds-type-badge [object]="mdRepresentation"></ds-type-badge>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -14,3 +14,6 @@
|
||||
.cdk-drag-placeholder {
|
||||
opacity: 0;
|
||||
}
|
||||
.badge.bg-light {
|
||||
color: var(--bs-gray-900);
|
||||
}
|
||||
|
@@ -1,24 +1,24 @@
|
||||
<div class="item-metadata" *ngIf="form">
|
||||
<div class="button-row top d-flex my-2 space-children-mr ml-gap">
|
||||
<button class="mr-auto btn btn-success" id="dso-add-btn" [dsBtnDisabled]="form.newValue || (saving$ | async)"
|
||||
<div class="button-row top d-flex my-2 space-children-mr ms-gap">
|
||||
<button class="me-auto btn btn-success" id="dso-add-btn" [dsBtnDisabled]="form.newValue || (saving$ | async)"
|
||||
[attr.aria-label]="dsoType + '.edit.metadata.add-button' | translate"
|
||||
[title]="dsoType + '.edit.metadata.add-button' | translate"
|
||||
(click)="add()"><i class="fas fa-plus" aria-hidden="true"></i>
|
||||
<span class="d-none d-sm-inline"> {{ dsoType + '.edit.metadata.add-button' | translate }}</span>
|
||||
</button>
|
||||
<button class="btn btn-warning ml-1" id="dso-reinstate-btn" *ngIf="isReinstatable" [dsBtnDisabled]="(saving$ | async)"
|
||||
<button class="btn btn-warning ms-1" id="dso-reinstate-btn" *ngIf="isReinstatable" [dsBtnDisabled]="(saving$ | async)"
|
||||
[attr.aria-label]="dsoType + '.edit.metadata.reinstate-button' | translate"
|
||||
[title]="dsoType + '.edit.metadata.reinstate-button' | translate"
|
||||
(click)="reinstate()"><i class="fas fa-undo-alt" aria-hidden="true"></i>
|
||||
<span class="d-none d-sm-inline"> {{ dsoType + '.edit.metadata.reinstate-button' | translate }}</span>
|
||||
</button>
|
||||
<button class="btn btn-primary ml-1" id="dso-save-btn" [dsBtnDisabled]="!hasChanges || (saving$ | async)"
|
||||
<button class="btn btn-primary ms-1" id="dso-save-btn" [dsBtnDisabled]="!hasChanges || (saving$ | async)"
|
||||
[attr.aria-label]="dsoType + '.edit.metadata.save-button' | translate"
|
||||
[title]="dsoType + '.edit.metadata.save-button' | translate"
|
||||
(click)="submit()"><i class="fas fa-save" aria-hidden="true"></i>
|
||||
<span class="d-none d-sm-inline"> {{ dsoType + '.edit.metadata.save-button' | translate }}</span>
|
||||
</button>
|
||||
<button class="btn btn-danger ml-1" id="dso-discard-btn" *ngIf="!isReinstatable"
|
||||
<button class="btn btn-danger ms-1" id="dso-discard-btn" *ngIf="!isReinstatable"
|
||||
[attr.aria-label]="dsoType + '.edit.metadata.discard-button' | translate"
|
||||
[title]="dsoType + '.edit.metadata.discard-button' | translate"
|
||||
[dsBtnDisabled]="!hasChanges || (saving$ | async)"
|
||||
@@ -76,7 +76,7 @@
|
||||
<ds-alert [content]="dsoType + '.edit.metadata.empty'" [type]="AlertTypeEnum.Info"></ds-alert>
|
||||
</div>
|
||||
<div class="button-row bottom d-inline-block w-100">
|
||||
<div class="mt-2 float-right space-children-mr ml-gap">
|
||||
<div class="mt-2 float-end space-children-mr ms-gap">
|
||||
<button class="btn btn-warning" *ngIf="isReinstatable" [dsBtnDisabled]="(saving$ | async)"
|
||||
[attr.aria-label]="dsoType + '.edit.metadata.reinstate-button' | translate"
|
||||
[title]="dsoType + '.edit.metadata.reinstate-button' | translate"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 w-100">
|
||||
<div class="mt-5 w-100 px-0">
|
||||
<ds-tabbed-related-entities-search [item]="object"
|
||||
[relationTypes]="[{
|
||||
label: 'isJournalOfPublication',
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||
<ds-truncatable [id]="dso.id">
|
||||
<div class="position-absolute ml-1">
|
||||
<div class="position-absolute ms-1">
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
<a *ngIf="linkType !== linkTypes.None"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
@@ -59,7 +59,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 w-100">
|
||||
<div class="mt-5 w-100 px-0">
|
||||
<ds-tabbed-related-entities-search [item]="object"
|
||||
[relationTypes]="[{
|
||||
label: 'isOrgUnitOfPerson',
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field class="mr-auto" [item]="object">
|
||||
<ds-item-page-title-field class="me-auto" [item]="object">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
@@ -55,7 +55,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-5 w-100">
|
||||
<div class="mt-5 w-100 px-0">
|
||||
<ds-tabbed-related-entities-search [item]="object"
|
||||
[relationTypes]="[{
|
||||
label: 'isAuthorOfPublication',
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<ds-results-back-button *ngIf="showBackButton$ | async" [back]="back"></ds-results-back-button>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="d-flex">
|
||||
<!-- <div class="person-thumbnail pr-2">-->
|
||||
<!-- <div class="person-thumbnail pe-2">-->
|
||||
<!-- <ds-themed-thumbnail [thumbnail]="dso?.thumbnail | async" [defaultImage]="'assets/images/orgunit-placeholder.svg'"></ds-themed-thumbnail>-->
|
||||
<!-- </div>-->
|
||||
<div class="flex-grow-1">
|
||||
|
@@ -1,7 +1,6 @@
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">New name variant</h4>
|
||||
<button type="button" class="close" aria-label="Close" (click)="modal.dismiss('Cross click')">
|
||||
<span aria-hidden="true">×</span>
|
||||
<button type="button" class="btn-close" aria-label="Close" (click)="modal.dismiss('Cross click')">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
@@ -43,7 +43,7 @@ describe('NameVariantModalComponent', () => {
|
||||
});
|
||||
|
||||
it('when close button is clicked, dismiss should be called on the modal', () => {
|
||||
debugElement.query(By.css('button.close')).triggerEventHandler('click', {});
|
||||
debugElement.query(By.css('button.btn-close')).triggerEventHandler('click', {});
|
||||
expect(modal.dismiss).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<footer class="text-lg-start">
|
||||
<footer>
|
||||
<div *ngIf="showTopFooter" class="top-footer">
|
||||
<!-- Grid container -->
|
||||
<div class=" container p-4">
|
||||
|
@@ -68,6 +68,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<span class="font-weight-bold">{{'forgot-password.form.identification.email' | translate}} </span>
|
||||
<span class="fw-bold form-label">{{'forgot-password.form.identification.email' | translate}} </span>
|
||||
<span [attr.data-test]="'email' | dsBrowserOnly">{{(registration$ |async).email}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -11,7 +11,7 @@
|
||||
<ds-context-help-toggle></ds-context-help-toggle>
|
||||
<ds-auth-nav-menu></ds-auth-nav-menu>
|
||||
<ds-impersonate-navbar></ds-impersonate-navbar>
|
||||
<div *ngIf="isMobile$ | async" class="pl-2">
|
||||
<div *ngIf="isMobile$ | async" class="ps-2">
|
||||
<button class="navbar-toggler px-0" type="button" (click)="toggleNavbar()"
|
||||
aria-controls="collapsingNav"
|
||||
aria-expanded="false" [attr.aria-label]="'nav.toggle' | translate">
|
||||
|
@@ -22,6 +22,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<ng-container *ngIf="entry && isPlainProperty(entry.value)">
|
||||
<p data-test="property"> <span class="font-weight-bold">{{ getPropertyLabel(entry.key) | titlecase }}</span> : {{entry.value}}</p>
|
||||
<p data-test="property"> <span class="fw-bold">{{ getPropertyLabel(entry.key) | titlecase }}</span> : {{entry.value}}</p>
|
||||
</ng-container>
|
||||
</div>
|
||||
|
@@ -1,18 +1,14 @@
|
||||
<ng-container *ngIf="healthInfoResponse">
|
||||
<ngb-accordion #acc="ngbAccordion" [activeIds]="activeId">
|
||||
<ngb-panel [id]="entry.key" *ngFor="let entry of healthInfoResponse | dsObjNgFor">
|
||||
<ng-template ngbPanelHeader>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle(entry.key)" data-test="info-component">
|
||||
<ng-template ngbPanelTitle>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" (click)="acc.toggle(entry.key)" data-test="info-component">
|
||||
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()" [attr.aria-expanded]="acc.isExpanded(entry.key)"
|
||||
[attr.aria-controls]="'health-info-' + entry.key + '-content'">
|
||||
{{ getPanelLabel(entry.key) | titlecase }}
|
||||
</button>
|
||||
<div class="text-right d-flex gap-2">
|
||||
<ds-health-status [status]="entry.value?.status"></ds-health-status>
|
||||
<div class="d-flex my-auto">
|
||||
<span *ngIf="acc.isExpanded(entry.key)" class="fas fa-chevron-up fa-fw"></span>
|
||||
<span *ngIf="!acc.isExpanded(entry.key)" class="fas fa-chevron-down fa-fw"></span>
|
||||
</div>
|
||||
<div class="text-end d-flex gap-2">
|
||||
<ds-health-status class="me-2" [status]="entry.value?.status"></ds-health-status>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
@@ -22,7 +22,7 @@
|
||||
</ng-container>
|
||||
<ng-container *ngIf="healthComponent?.details">
|
||||
<div *ngFor="let item of healthComponent?.details | dsObjNgFor" data-test="details">
|
||||
<p data-test="property"><span class="font-weight-bold">{{ getPropertyLabel(item.key) | titlecase }}</span> : {{item.value}}</p>
|
||||
<p data-test="property"><span class="fw-bold">{{ getPropertyLabel(item.key) | titlecase }}</span> : {{item.value}}</p>
|
||||
</div>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="!healthComponent?.details && !healthComponent?.components">
|
||||
|
@@ -4,18 +4,14 @@
|
||||
</p>
|
||||
<ngb-accordion #acc="ngbAccordion" [activeIds]="activeId">
|
||||
<ngb-panel [id]="entry.key" *ngFor="let entry of healthResponse.components | dsObjNgFor">
|
||||
<ng-template ngbPanelHeader>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" ngbPanelToggle (click)="acc.toggle(entry.key)" data-test="component">
|
||||
<ng-template ngbPanelTitle>
|
||||
<div class="w-100 d-flex gap-3 justify-content-between collapse-toggle" (click)="acc.toggle(entry.key)" data-test="component">
|
||||
<button type="button" class="btn btn-link p-0" (click)="$event.preventDefault()" [attr.aria-expanded]="acc.isExpanded(entry.key)"
|
||||
[attr.aria-controls]="'health-panel-' + entry.key + '-content'">
|
||||
{{ getPanelLabel(entry.key) | titlecase }}
|
||||
</button>
|
||||
<div class="text-right d-flex gap-2">
|
||||
<ds-health-status [status]="entry.value?.status"></ds-health-status>
|
||||
<div class="d-flex my-auto">
|
||||
<span *ngIf="acc.isExpanded(entry.key)" class="fas fa-chevron-up fa-fw"></span>
|
||||
<span *ngIf="!acc.isExpanded(entry.key)" class="fas fa-chevron-down fa-fw"></span>
|
||||
</div>
|
||||
<div class="text-end d-flex gap-2">
|
||||
<ds-health-status class="me-2" [status]="entry.value?.status"></ds-health-status>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
@@ -1,12 +1,12 @@
|
||||
<ng-container [ngSwitch]="status">
|
||||
<i *ngSwitchCase="HealthStatus.UP"
|
||||
class="fa fa-check-circle text-success my-auto"
|
||||
class="fa fa-check-circle text-success ms-2 mt-1"
|
||||
ngbTooltip="{{'health-page.status.ok.info' | translate}}" container="body" ></i>
|
||||
<i *ngSwitchCase="HealthStatus.UP_WITH_ISSUES"
|
||||
class="fa fa-exclamation-triangle text-warning my-auto"
|
||||
class="fa fa-exclamation-triangle text-warning ms-2 mt-1"
|
||||
ngbTooltip="{{'health-page.status.warning.info' | translate}}" container="body"></i>
|
||||
<i *ngSwitchCase="HealthStatus.DOWN"
|
||||
class="fa fa-times-circle text-danger my-auto"
|
||||
class="fa fa-times-circle text-danger ms-2 mt-1"
|
||||
ngbTooltip="{{'health-page.status.error.info' | translate}}" container="body"></i>
|
||||
|
||||
</ng-container>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<div class="jumbotron jumbotron-fluid mt-ncs">
|
||||
<div class="jumbotron py-4 px-2 py-sm-5 px-sm-0 mt-0 mb-4">
|
||||
<div class="container">
|
||||
<div class="d-flex flex-wrap">
|
||||
<div>
|
||||
<h1 class="display-3">DSpace 9</h1>
|
||||
<h1 class="display-2">DSpace 9</h1>
|
||||
<p class="lead">DSpace is the world leading open source repository platform that enables organisations to:</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -13,7 +13,7 @@
|
||||
a {
|
||||
color: var(--ds-home-news-link-color);
|
||||
|
||||
@include hover {
|
||||
&:hover {
|
||||
color: var(--ds-home-news-link-hover-color);
|
||||
}
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
<ds-listable-object-component-loader [object]="item" [viewMode]="viewMode" class="pb-4">
|
||||
</ds-listable-object-component-loader>
|
||||
</div>
|
||||
<button (click)="onLoadMore()" class="btn btn-primary search-button mt-4"> {{'vocabulary-treeview.load-more' | translate }} ...</button>
|
||||
<button (click)="onLoadMore()" class="btn btn-primary search-button mt-4 float-start ng-tns-c290-40"> {{'vocabulary-treeview.load-more' | translate }} ...</button>
|
||||
</div>
|
||||
<ds-error *ngIf="itemRD?.hasFailed" message="{{'error.recent-submissions' | translate}}"></ds-error>
|
||||
<ds-loading *ngIf="!itemRD || itemRD.isLoading" message="{{'loading.recent-submissions' | translate}}">
|
||||
|
@@ -2,11 +2,11 @@
|
||||
<ds-end-user-agreement-content></ds-end-user-agreement-content>
|
||||
|
||||
<form class="form-user-agreement-accept mt-4" (ngSubmit)="submit()" novalidate>
|
||||
<input class="ml-1 mr-2" type="checkbox" id="user-agreement-accept" [(ngModel)]="accepted" [ngModelOptions]="{standalone: true}">
|
||||
<input class="ms-1 me-2" type="checkbox" id="user-agreement-accept" [(ngModel)]="accepted" [ngModelOptions]="{standalone: true}">
|
||||
<label class="col-form-label-lg" for="user-agreement-accept">{{ 'info.end-user-agreement.accept' | translate }}</label>
|
||||
|
||||
<div class="d-flex mt-4">
|
||||
<button id="button-cancel" type="button" (click)="cancel()" class="btn btn-outline-secondary mr-auto">{{ 'info.end-user-agreement.buttons.cancel' | translate }}</button>
|
||||
<button id="button-cancel" type="button" (click)="cancel()" class="btn btn-outline-secondary me-auto">{{ 'info.end-user-agreement.buttons.cancel' | translate }}</button>
|
||||
<button id="button-save" type="submit" class="btn btn-primary" [dsBtnDisabled]="!accepted">{{ 'info.end-user-agreement.buttons.save' | translate }}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<form [formGroup]="feedbackForm" (ngSubmit)="createFeedback()" class="col p-0">
|
||||
<div class="row mt-3">
|
||||
<div class="control-group col-sm-12">
|
||||
<label class="control-label" for="email">{{ 'info.feedback.email-label' | translate }} </label>
|
||||
<label class="control-label form-label" for="email">{{ 'info.feedback.email-label' | translate }} </label>
|
||||
<input id="email" class="form-control" name="email" type="text" value="" formControlName="email" autofocus="autofocus" title="{{ 'info.feedback.email_help' | translate }}">
|
||||
<small class="text-muted">{{ 'info.feedback.email_help' | translate }}</small>
|
||||
</div>
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="control-group col-sm-12">
|
||||
<label class="control-label" for="comments">{{ 'info.feedback.comments' | translate }}: </label>
|
||||
<label class="control-label form-label" for="comments">{{ 'info.feedback.comments' | translate }}: </label>
|
||||
<textarea id="comments" formControlName="message" class="form-control" name="message" cols="20" rows="5"> </textarea>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,14 +33,14 @@
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="control-group col-sm-12">
|
||||
<label class="control-label" for="page">{{ 'info.feedback.page-label' | translate }} </label>
|
||||
<label class="control-label form-labe" for="page">{{ 'info.feedback.page-label' | translate }} </label>
|
||||
<input id="page" readonly class="form-control" name="page" type="text" value="" formControlName="page" autofocus="autofocus" title="{{ 'info.feedback.page_help' | translate }}">
|
||||
<small class="text-muted">{{ 'info.feedback.page_help' | translate }}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="control-group col-sm-12 text-right">
|
||||
<div class="control-group col-sm-12 text-end">
|
||||
<button [dsBtnDisabled]="!feedbackForm.valid" class="btn btn-primary" name="submit" type="submit">{{ 'info.feedback.send' | translate }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -11,10 +11,10 @@
|
||||
</div>
|
||||
<form [class]="'ng-invalid'" [formGroup]="requestCopyForm" (ngSubmit)="onSubmit()">
|
||||
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<label for="name">{{'bitstream-request-a-copy.name.label' | translate}}</label>
|
||||
<label for="name" class="form-label">{{'bitstream-request-a-copy.name.label' | translate}}</label>
|
||||
<input [className]="(name.invalid) && (name.dirty || name.touched) ? 'form-control is-invalid' :'form-control'"
|
||||
type="text" id="name" formControlName="name"/>
|
||||
<div *ngIf="name.invalid && (name.dirty || name.touched)"
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<label
|
||||
for="email">{{'bitstream-request-a-copy.email.label' | translate}}</label>
|
||||
for="email" class="form-label">{{'bitstream-request-a-copy.email.label' | translate}}</label>
|
||||
<input
|
||||
[className]="(email.invalid) && (email.dirty || email.touched) ? 'form-control is-invalid' :'form-control'"
|
||||
id="email" formControlName="email">
|
||||
@@ -44,13 +44,13 @@
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<div>{{'bitstream-request-a-copy.allfiles.label' |translate}}</div>
|
||||
<div class="ml-4">
|
||||
<div class="ms-4 form-check">
|
||||
<input [className]="'form-check-input'" type="radio"
|
||||
id="allfiles-true" formControlName="allfiles" value="true">
|
||||
<label class="form-check-label"
|
||||
for="allfiles-true">{{'bitstream-request-a-copy.files-all-true.label' | translate}}</label>
|
||||
</div>
|
||||
<div class="ml-4">
|
||||
<div class="ms-4">
|
||||
<input [className]="'form-check-input'" type="radio"
|
||||
id="allfiles-false" formControlName="allfiles" value="false" [attr.disabled]="bitstream === undefined ? true : null ">
|
||||
<label class="form-check-label"
|
||||
@@ -61,7 +61,7 @@
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<label
|
||||
for="message">{{'bitstream-request-a-copy.message.label' | translate}}</label>
|
||||
for="message" class="form-label">{{'bitstream-request-a-copy.message.label' | translate}}</label>
|
||||
<textarea rows="5"
|
||||
[className]="'form-control'"
|
||||
id="message" formControlName="message"></textarea>
|
||||
@@ -72,9 +72,9 @@
|
||||
|
||||
<hr>
|
||||
<div class="row">
|
||||
<div class="col-12 text-right">
|
||||
<div class="col-12 text-end">
|
||||
|
||||
<a (click)="navigateBack()" role="button" class="btn btn-outline-secondary mr-1">
|
||||
<a (click)="navigateBack()" role="button" class="btn btn-outline-secondary me-1">
|
||||
<i class="fas fa-arrow-left"></i> {{'bitstream-request-a-copy.return' | translate}}
|
||||
</a>
|
||||
|
||||
|
@@ -5,13 +5,13 @@
|
||||
<h1>{{'item.bitstreams.upload.title' | translate}}</h1>
|
||||
<ng-container *ngVar="(itemRD$ | async)?.payload as item">
|
||||
<div *ngIf="item">
|
||||
<span class="font-weight-bold">{{'item.bitstreams.upload.item' | translate}}</span>
|
||||
<span class="fw-bold">{{'item.bitstreams.upload.item' | translate}}</span>
|
||||
<span>{{ dsoNameService.getName(item) }}</span>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<label class="font-weight-bold">{{'item.bitstreams.upload.bundle' | translate}}</label>
|
||||
<label class="fw-bold form-label">{{'item.bitstreams.upload.bundle' | translate}}</label>
|
||||
<ds-dso-input-suggestions #f id="search-form"
|
||||
[suggestions]="bundles"
|
||||
[placeholder]="'item.bitstreams.upload.bundle.placeholder' | translate"
|
||||
@@ -24,7 +24,7 @@
|
||||
(click)="f.open()"
|
||||
ngDefaultControl>
|
||||
</ds-dso-input-suggestions>
|
||||
<button *ngIf="!selectedBundleId && selectedBundleName?.length > 0" class="btn btn-success mr-2" (click)="createBundle()">
|
||||
<button *ngIf="!selectedBundleId && selectedBundleName?.length > 0" class="btn btn-success me-2" (click)="createBundle()">
|
||||
<i class="fa fa-plus"></i> {{ 'item.bitstreams.upload.bundle.new' | translate }}
|
||||
</button>
|
||||
<ds-uploader class="w-100" *ngIf="selectedBundleId"
|
||||
|
@@ -27,7 +27,7 @@
|
||||
<router-outlet></router-outlet>
|
||||
</div>
|
||||
<div class="button-row bottom">
|
||||
<div class="text-right">
|
||||
<div class="text-end">
|
||||
<a [routerLink]="getItemPage((itemRD$ | async)?.payload)" role="button" class="btn btn-outline-secondary"><i class="fas fa-arrow-left"></i> {{'item.edit.return' | translate}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
</div>
|
||||
|
||||
<div class="button-row top d-flex mt-2 space-children-mr">
|
||||
<button class="mr-auto btn btn-success"
|
||||
<button class="me-auto btn btn-success"
|
||||
[attr.aria-label]="'item.edit.bitstreams.upload-button' | translate"
|
||||
[routerLink]="[itemPageRoute, 'bitstreams', 'new']"><i
|
||||
class="fas fa-upload"></i>
|
||||
@@ -50,7 +50,7 @@
|
||||
<ds-loading *ngIf="!bundles" message="{{'loading.bitstreams' | translate}}"></ds-loading>
|
||||
|
||||
<div class="button-row bottom">
|
||||
<div class="mt-4 float-right space-children-mr ml-gap">
|
||||
<div class="mt-4 float-end space-children-mr ms-gap">
|
||||
<button class="btn btn-warning" *ngIf="isReinstatable$ | async"
|
||||
[attr.aria-label]="'item.edit.bitstreams.reinstate-button' | translate"
|
||||
(click)="reinstate()"><i
|
||||
|
@@ -82,7 +82,7 @@
|
||||
|
||||
<th class="bitstream-name row-element {{ columnSizes.columns[0].buildClasses() }}"
|
||||
scope="row" id="{{ entry.nameStripped }}" headers="{{ bundleName }} name">
|
||||
<div class="drag-handle text-muted float-left p-1 mr-2" tabindex="0" cdkDragHandle
|
||||
<div class="drag-handle text-muted float-left p-1 mr-2 d-inline" tabindex="0" cdkDragHandle
|
||||
(keydown.enter)="select($event, entry)" (keydown.space)="select($event, entry)" (click)="select($event, entry)">
|
||||
<i class="fas fa-grip-vertical fa-fw"
|
||||
[title]="'item.edit.bitstreams.edit.buttons.drag' | translate"></i>
|
||||
|
@@ -1,13 +1,16 @@
|
||||
.header-row {
|
||||
color: var(--bs-table-dark-color);
|
||||
background-color: var(--bs-table-dark-bg);
|
||||
border-color: var(--bs-table-dark-bg);
|
||||
& > th {
|
||||
padding: .75rem;
|
||||
}
|
||||
--bs-table-bg: var(--bs-dark);
|
||||
--bs-table-bg-state: var(--bs-dark);
|
||||
--bs-table-color-state: var(--bs-light);
|
||||
}
|
||||
|
||||
.bundle-row {
|
||||
color: var(--bs-table-head-color);
|
||||
background-color: var(--bs-table-head-bg);
|
||||
border-color: var(--bs-table-border-color);
|
||||
--bs-table-color-state: var(--bs-dark);
|
||||
--bs-table-bg: var(--bs-light-bg-subtle);
|
||||
--bs-table-bg-state: var(--bs-light-bg-subtle);
|
||||
}
|
||||
|
||||
.row-element {
|
||||
|
@@ -35,7 +35,7 @@
|
||||
[object]="relatedItem"
|
||||
[viewMode]="viewMode">
|
||||
</ds-listable-object-component-loader>
|
||||
<div class="ml-auto">
|
||||
<div class="ms-auto">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-outline-info btn-sm"
|
||||
(click)="openVirtualMetadataModal(virtualMetadataModal)">
|
||||
@@ -48,9 +48,8 @@
|
||||
<div class="thumb-font-1">
|
||||
<div class="modal-header">
|
||||
{{'virtual-metadata.delete-item.modal-head' | translate}}
|
||||
<button type="button" class="close"
|
||||
<button type="button" class="btn-close"
|
||||
(click)="closeVirtualMetadataModal()" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -61,7 +60,7 @@
|
||||
</ds-listable-object-component-loader>
|
||||
<div *ngFor="let metadata of (relationshipDto.virtualMetadata$ | async)">
|
||||
<div>
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
{{metadata.metadataField}}
|
||||
</div>
|
||||
<div>
|
||||
|
@@ -20,7 +20,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p>
|
||||
<label for="inheritPoliciesCheckbox">
|
||||
<label class="form-label" for="inheritPoliciesCheckbox">
|
||||
<ng-template #tooltipContent>
|
||||
{{ 'item.edit.move.inheritpolicies.tooltip' | translate }}
|
||||
</ng-template>
|
||||
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
|
||||
<div class="button-row bottom">
|
||||
<div class="float-right space-children-mr">
|
||||
<div class="float-end space-children-mr">
|
||||
<button [routerLink]="[(itemPageRoute$ | async), 'edit']" class="btn btn-outline-secondary">
|
||||
<i class="fas fa-arrow-left"></i> {{'item.edit.move.cancel' | translate}}
|
||||
</button>
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<div class="col-12 col-md-3 h-auto float-left d-flex action-label">
|
||||
<div class="col-12 col-md-3 h-auto float-start d-flex action-label">
|
||||
<span class="justify-content-center align-self-center font-weight-bold">
|
||||
{{'item.edit.tabs.status.buttons.' + operation.operationKey + '.label' | translate}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-12 col-md-9 float-left action-button">
|
||||
<div class="col-12 col-md-9 float-start action-button">
|
||||
<span *ngIf="operation.authorized">
|
||||
<button class="btn btn-outline-primary" [dsBtnDisabled]="operation.disabled" [routerLink]="operation.operationUrl" [attr.aria-label]="'item.edit.tabs.status.buttons.' + operation.operationKey + '.button' | translate">
|
||||
{{'item.edit.tabs.status.buttons.' + operation.operationKey + '.button' | translate}}
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<p>{{descriptionMessage | translate}}</p>
|
||||
<div *ngFor="let identifier of (identifiers$ | async)" class="w-100 p">
|
||||
<div *ngIf="(identifier.identifierType === 'doi')">
|
||||
<p class="float-left">{{doiToUpdateMessage | translate}}: {{identifier.value}}
|
||||
<p class="float-start">{{doiToUpdateMessage | translate}}: {{identifier.value}}
|
||||
({{"item.edit.identifiers.doi.status."+identifier.identifierStatus|translate}})
|
||||
</p>
|
||||
</div>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<h2 class="h4">
|
||||
{{relationshipMessageKey$ | async | translate}}
|
||||
<button class="ml-2 btn btn-success" [dsBtnDisabled]="(hasChanges | async)" (click)="openLookup()">
|
||||
<button class="ms-2 btn btn-success" [dsBtnDisabled]="(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>
|
||||
|
@@ -7,7 +7,7 @@
|
||||
>
|
||||
</ds-listable-object-component-loader>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="col-2 position-relative">
|
||||
<div class="btn-group relationship-action-buttons">
|
||||
<button [dsBtnDisabled]="!canRemove()" (click)="openVirtualMetadataModal(virtualMetadataModal)"
|
||||
class="btn btn-outline-danger btn-sm"
|
||||
|
@@ -15,7 +15,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-row bottom">
|
||||
<div class="float-right ml-gap">
|
||||
<div class="float-end ms-gap">
|
||||
<ng-container *ngTemplateOutlet="buttons"></ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,28 +1,28 @@
|
||||
<p class="mt-2">{{'item.edit.tabs.status.description' | translate}}</p>
|
||||
<div class="row">
|
||||
<div *ngFor="let statusKey of statusDataKeys" class="w-100 pt-1">
|
||||
<div class="col-12 col-md-3 float-left status-label font-weight-bold">
|
||||
<div class="col-12 col-md-3 float-start status-label font-weight-bold">
|
||||
{{'item.edit.tabs.status.labels.' + statusKey | translate}}:
|
||||
</div>
|
||||
<div class="col-12 col-md-9 float-left status-data" id="status-{{statusKey}}">
|
||||
<div class="col-12 col-md-9 float-start status-data" id="status-{{statusKey}}">
|
||||
{{statusData[statusKey]}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngFor="let identifier of (identifiers$ | async)" class="w-100 pt-1">
|
||||
<div *ngIf="(identifier.identifierType==='doi')">
|
||||
<div class="col-12 col-md-3 float-left status-label font-weight-bold">
|
||||
<div class="col-12 col-md-3 float-start status-label font-weight-bold">
|
||||
{{identifier.identifierType.toLocaleUpperCase()}}
|
||||
</div>
|
||||
<div class="col-12 col-md-9 float-left status-label font-weight-bold">{{identifier.value}}
|
||||
<div class="col-12 col-md-9 float-start status-label font-weight-bold">{{identifier.value}}
|
||||
({{"item.edit.identifiers.doi.status."+identifier.identifierStatus|translate}})</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-3 float-left status-label font-weight-bold">
|
||||
<div class="col-12 col-md-3 float-start status-label font-weight-bold">
|
||||
{{'item.edit.tabs.status.labels.itemPage' | translate}}:
|
||||
</div>
|
||||
<div class="col-12 col-md-9 float-left status-data" id="status-itemPage">
|
||||
<div class="col-12 col-md-9 float-start status-data" id="status-itemPage">
|
||||
<a [routerLink]="itemPageRoute$ | async">{{itemPageRoute$ | async}}</a>
|
||||
</div>
|
||||
|
||||
|
@@ -1,7 +1,6 @@
|
||||
<div [ngClass]="showThumbnails ? 'hide-modal-thumbnail-column' : ''">
|
||||
<div class="modal-header">{{'virtual-metadata.delete-relationship.modal-head' | translate}}
|
||||
<button type="button" class="close" (click)="close.emit()" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
<button type="button" class="btn-close" (click)="close.emit()" aria-label="Close">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@@ -18,7 +17,7 @@
|
||||
<ds-listable-object-component-loader [object]="itemDTO.item">
|
||||
</ds-listable-object-component-loader>
|
||||
<div *ngFor="let metadata of virtualMetadata.get(itemDTO.item.uuid)">
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
{{metadata.metadataField}}
|
||||
</div>
|
||||
<div>
|
||||
|
@@ -99,7 +99,7 @@ describe('VirtualMetadataComponent', () => {
|
||||
|
||||
spyOn(comp.close, 'emit');
|
||||
fixture.debugElement
|
||||
.query(By.css('button.close'))
|
||||
.query(By.css('button.btn-close'))
|
||||
.triggerEventHandler('click', null);
|
||||
expect(comp.close.emit).toHaveBeenCalled();
|
||||
});
|
||||
|
@@ -6,7 +6,7 @@
|
||||
<ds-view-tracker [object]="item"></ds-view-tracker>
|
||||
<div *ngIf="!item.isWithdrawn || (isAdmin$|async)" class="full-item-info">
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field class="mr-auto" [item]="item"></ds-item-page-title-field>
|
||||
<ds-item-page-title-field class="me-auto" [item]="item"></ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
<div class="simple-view-link my-3" *ngIf="!fromSubmissionObject">
|
||||
@@ -31,8 +31,8 @@
|
||||
<ds-item-page-collections [item]="item"></ds-item-page-collections>
|
||||
<ds-item-versions class="mt-2" [item]="item"></ds-item-versions>
|
||||
<div class="button-row bottom" *ngIf="fromSubmissionObject">
|
||||
<div class="text-right">
|
||||
<button class="btn btn-outline-secondary mr-1" (click)="back()"><i
|
||||
<div class="text-end">
|
||||
<button class="btn btn-outline-secondary me-1" (click)="back()"><i
|
||||
class="fas fa-arrow-left"></i> {{'item.page.return' | translate}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -47,7 +47,7 @@
|
||||
</ds-alert>
|
||||
<div class="row" *ngIf="(ownerCanDisconnectProfileFromOrcid() | async)" data-test="unlinkOwner">
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-danger float-right" (click)="unlinkOrcid()"
|
||||
<button type="submit" class="btn btn-danger float-end" (click)="unlinkOrcid()"
|
||||
[dsBtnDisabled]="(unlinkProcessing | async)">
|
||||
<span *ngIf="(unlinkProcessing | async) !== true"><i
|
||||
class="fas fa-unlink"></i> {{ 'person.page.orcid.unlink' | translate }}</span>
|
||||
@@ -55,7 +55,7 @@
|
||||
class='fas fa-circle-notch fa-spin'></i> {{'person.page.orcid.unlink.processing' | translate}}</span>
|
||||
</button>
|
||||
<button *ngIf="(hasMissingOrcidAuthorizations() | async)" type="submit"
|
||||
class="btn btn-primary float-right" (click)="linkOrcid()">
|
||||
class="btn btn-primary float-end" (click)="linkOrcid()">
|
||||
<span><i class="fas fa-check"></i> {{ 'person.page.orcid.grant-authorizations' | translate }}</span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-primary float-right" (click)="linkOrcid()">
|
||||
<button class="btn btn-primary float-end" (click)="linkOrcid()">
|
||||
<i class="fas fa-link"></i>
|
||||
{{'person.page.orcid.link' | translate}}
|
||||
</button>
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
<div *ngIf="(processingConnection | async) !== true && (item | async)" class="container">
|
||||
<div class="button-row bottom mb-3">
|
||||
<div class="text-right">
|
||||
<div class="text-end">
|
||||
<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>
|
||||
|
@@ -12,9 +12,9 @@
|
||||
{{ 'person.page.orcid.synchronization-mode-message' | translate}}
|
||||
</ds-alert>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<label for="syncMode">{{ 'person.page.orcid.synchronization-mode.label'| translate }}</label>
|
||||
<select class="form-control" [(ngModel)]="currentSyncMode" name="syncMode" id="syncMode"
|
||||
<div class="mb-3 row">
|
||||
<label class="form-label" for="syncMode">{{ 'person.page.orcid.synchronization-mode.label'| translate }}</label>
|
||||
<select class="form-select" [(ngModel)]="currentSyncMode" name="syncMode" id="syncMode"
|
||||
required>
|
||||
<option *ngFor="let syncMode of syncModes"
|
||||
[value]="syncMode.value">{{ syncMode.label | translate }}</option>
|
||||
@@ -36,13 +36,13 @@
|
||||
{{ 'person.page.orcid.synchronization-mode-publication-message' | translate}}
|
||||
</ds-alert>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div *ngFor="let option of syncPublicationOptions" class="row form-check">
|
||||
<input type="radio" [(ngModel)]="currentSyncPublications"
|
||||
name="syncPublications" id="publicationOption_{{option.value}}" [value]="option.value"
|
||||
required>
|
||||
<label for="publicationOption_{{option.value}}"
|
||||
class="ml-2">{{option.label | translate}}</label>
|
||||
class="ms-2 form-label">{{option.label | translate}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,12 +59,12 @@
|
||||
{{ 'person.page.orcid.synchronization-mode-funding-message' | translate}}
|
||||
</ds-alert>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div *ngFor="let option of syncFundingOptions" class="row form-check">
|
||||
<input type="radio" [(ngModel)]="currentSyncFunding"
|
||||
name="syncFundings" id="fundingOption_{{option.value}}" [value]="option.value"
|
||||
required>
|
||||
<label for="fundingOption_{{option.value}}" class="ml-2">{{option.label | translate}}</label>
|
||||
<label for="fundingOption_{{option.value}}" class="ms-2 form-label">{{option.label | translate}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -81,12 +81,12 @@
|
||||
{{ 'person.page.orcid.synchronization-mode-profile-message' | translate}}
|
||||
</ds-alert>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="mb-3">
|
||||
<div *ngFor="let option of syncProfileOptions" class="row form-check">
|
||||
<input type="checkbox" [(ngModel)]="option.checked"
|
||||
name="syncProfile_{{option.value}}" id="profileOption_{{option.value}}"
|
||||
[value]="option.value">
|
||||
<label for="profileOption_{{option.value}}" class="ml-2">{{option.label | translate}}</label>
|
||||
<label for="profileOption_{{option.value}}" class="ms-2 form-label">{{option.label | translate}}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-primary float-right">
|
||||
<button type="submit" class="btn btn-primary float-end">
|
||||
<i class="fas fa-edit"></i>
|
||||
{{ 'person.page.orcid.save.preference.changes' | translate }}
|
||||
</button>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<div class="file-section">
|
||||
<ds-file-download-link *ngFor="let file of bitstreams; let last=last;" [bitstream]="file" [item]="item">
|
||||
<span>
|
||||
<span *ngIf="primaryBitsreamId === file.id" class="badge badge-primary">{{ 'item.page.bitstreams.primary' | translate }}</span>
|
||||
<span *ngIf="primaryBitsreamId === file.id" class="badge bg-primary">{{ 'item.page.bitstreams.primary' | translate }}</span>
|
||||
{{ dsoNameService.getName(file) }}
|
||||
</span>
|
||||
<span> ({{(file?.sizeBytes) | dsFileSize }})</span>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
@include media-breakpoint-down(md) {
|
||||
@include media-breakpoint-down(lg) {
|
||||
.container {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
|
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row">
|
||||
<ds-item-page-title-field [item]="object" class="mr-auto">
|
||||
<ds-item-page-title-field [item]="object" class="me-auto">
|
||||
</ds-item-page-title-field>
|
||||
<ds-dso-edit-menu></ds-dso-edit-menu>
|
||||
</div>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user