mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
Merge pull request #1403 from tdonohue/angular_11
Upgrade to Angular 11
This commit is contained in:
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -3,5 +3,6 @@
|
|||||||
"i18n-ally.localesPaths": [
|
"i18n-ally.localesPaths": [
|
||||||
"src/assets/i18n",
|
"src/assets/i18n",
|
||||||
"src/app/core/locale"
|
"src/app/core/locale"
|
||||||
]
|
],
|
||||||
|
"typescript.tsdk": "node_modules\\typescript\\lib"
|
||||||
}
|
}
|
66
package.json
66
package.json
@@ -63,26 +63,26 @@
|
|||||||
"webdriver-manager": "^12.1.8"
|
"webdriver-manager": "^12.1.8"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "~10.2.3",
|
"@angular/animations": "~11.2.14",
|
||||||
"@angular/cdk": "^10.2.6",
|
"@angular/cdk": "^11.2.13",
|
||||||
"@angular/common": "~10.2.3",
|
"@angular/common": "~11.2.14",
|
||||||
"@angular/compiler": "~10.2.3",
|
"@angular/compiler": "~11.2.14",
|
||||||
"@angular/core": "~10.2.3",
|
"@angular/core": "~11.2.14",
|
||||||
"@angular/forms": "~10.2.3",
|
"@angular/forms": "~11.2.14",
|
||||||
"@angular/localize": "10.2.3",
|
"@angular/localize": "11.2.14",
|
||||||
"@angular/platform-browser": "~10.2.3",
|
"@angular/platform-browser": "~11.2.14",
|
||||||
"@angular/platform-browser-dynamic": "~10.2.3",
|
"@angular/platform-browser-dynamic": "~11.2.14",
|
||||||
"@angular/platform-server": "~10.2.3",
|
"@angular/platform-server": "~11.2.14",
|
||||||
"@angular/router": "~10.2.3",
|
"@angular/router": "~11.2.14",
|
||||||
"@angularclass/bootloader": "1.0.1",
|
"@angularclass/bootloader": "1.0.1",
|
||||||
"@kolkov/ngx-gallery": "^1.2.3",
|
"@kolkov/ngx-gallery": "^1.2.3",
|
||||||
"@ng-bootstrap/ng-bootstrap": "7.0.0",
|
"@ng-bootstrap/ng-bootstrap": "9.1.3",
|
||||||
"@ng-dynamic-forms/core": "^12.0.0",
|
"@ng-dynamic-forms/core": "^13.0.0",
|
||||||
"@ng-dynamic-forms/ui-ng-bootstrap": "^12.0.0",
|
"@ng-dynamic-forms/ui-ng-bootstrap": "^13.0.0",
|
||||||
"@ngrx/effects": "^10.0.1",
|
"@ngrx/effects": "^11.1.1",
|
||||||
"@ngrx/router-store": "^10.0.1",
|
"@ngrx/router-store": "^11.1.1",
|
||||||
"@ngrx/store": "^10.0.1",
|
"@ngrx/store": "^11.1.1",
|
||||||
"@nguniversal/express-engine": "10.1.0",
|
"@nguniversal/express-engine": "11.2.1",
|
||||||
"@ngx-translate/core": "^13.0.0",
|
"@ngx-translate/core": "^13.0.0",
|
||||||
"@nicky-lenaers/ngx-scroll-to": "^9.0.0",
|
"@nicky-lenaers/ngx-scroll-to": "^9.0.0",
|
||||||
"angular-idle-preload": "3.0.0",
|
"angular-idle-preload": "3.0.0",
|
||||||
@@ -115,13 +115,13 @@
|
|||||||
"mirador-share-plugin": "^0.10.0",
|
"mirador-share-plugin": "^0.10.0",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
"ng-mocks": "10.5.4",
|
"ng-mocks": "11.11.2",
|
||||||
"ng2-file-upload": "1.4.0",
|
"ng2-file-upload": "1.4.0",
|
||||||
"ng2-nouislider": "^1.8.3",
|
"ng2-nouislider": "^1.8.3",
|
||||||
"ngx-infinite-scroll": "^10.0.1",
|
"ngx-infinite-scroll": "^10.0.1",
|
||||||
"ngx-moment": "^5.0.0",
|
"ngx-moment": "^5.0.0",
|
||||||
"ngx-pagination": "5.0.0",
|
"ngx-pagination": "5.0.0",
|
||||||
"ngx-sortablejs": "^10.0.0",
|
"ngx-sortablejs": "^11.1.0",
|
||||||
"nouislider": "^14.6.3",
|
"nouislider": "^14.6.3",
|
||||||
"pem": "1.14.4",
|
"pem": "1.14.4",
|
||||||
"postcss-cli": "^8.3.0",
|
"postcss-cli": "^8.3.0",
|
||||||
@@ -138,25 +138,25 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-builders/custom-webpack": "10.0.1",
|
"@angular-builders/custom-webpack": "10.0.1",
|
||||||
"@angular-devkit/build-angular": "~0.1002.3",
|
"@angular-devkit/build-angular": "~0.1102.15",
|
||||||
"@angular/cli": "~10.2.0",
|
"@angular/cli": "~11.2.15",
|
||||||
"@angular/compiler-cli": "~10.2.3",
|
"@angular/compiler-cli": "~11.2.14",
|
||||||
"@angular/language-service": "~10.2.3",
|
"@angular/language-service": "~11.2.14",
|
||||||
"@cypress/schematic": "^1.5.0",
|
"@cypress/schematic": "^1.5.0",
|
||||||
"@fortawesome/fontawesome-free": "^5.5.0",
|
"@fortawesome/fontawesome-free": "^5.5.0",
|
||||||
"@ngrx/store-devtools": "^10.0.1",
|
"@ngrx/store-devtools": "^11.1.1",
|
||||||
"@ngtools/webpack": "10.2.3",
|
"@ngtools/webpack": "10.2.3",
|
||||||
"@nguniversal/builders": "~10.1.0",
|
"@nguniversal/builders": "~11.2.1",
|
||||||
"@types/deep-freeze": "0.1.2",
|
"@types/deep-freeze": "0.1.2",
|
||||||
"@types/express": "^4.17.9",
|
"@types/express": "^4.17.9",
|
||||||
"@types/file-saver": "^2.0.1",
|
"@types/file-saver": "^2.0.1",
|
||||||
"@types/jasmine": "^3.6.2",
|
"@types/jasmine": "~3.6.0",
|
||||||
"@types/jasminewd2": "~2.0.8",
|
"@types/jasminewd2": "~2.0.8",
|
||||||
"@types/js-cookie": "2.2.6",
|
"@types/js-cookie": "2.2.6",
|
||||||
"@types/lodash": "^4.14.165",
|
"@types/lodash": "^4.14.165",
|
||||||
"@types/node": "^14.14.9",
|
"@types/node": "^14.14.9",
|
||||||
"axe-core": "^4.3.3",
|
"axe-core": "^4.3.3",
|
||||||
"codelyzer": "^6.0.1",
|
"codelyzer": "^6.0.0",
|
||||||
"compression-webpack-plugin": "^3.0.1",
|
"compression-webpack-plugin": "^3.0.1",
|
||||||
"copy-webpack-plugin": "^6.4.1",
|
"copy-webpack-plugin": "^6.4.1",
|
||||||
"css-loader": "3.4.0",
|
"css-loader": "3.4.0",
|
||||||
@@ -169,14 +169,14 @@
|
|||||||
"fork-ts-checker-webpack-plugin": "^6.0.3",
|
"fork-ts-checker-webpack-plugin": "^6.0.3",
|
||||||
"html-loader": "^1.3.2",
|
"html-loader": "^1.3.2",
|
||||||
"html-webpack-plugin": "^4.5.0",
|
"html-webpack-plugin": "^4.5.0",
|
||||||
"jasmine-core": "^3.6.0",
|
"jasmine-core": "~3.6.0",
|
||||||
"jasmine-marbles": "0.6.0",
|
"jasmine-marbles": "0.6.0",
|
||||||
"jasmine-spec-reporter": "^6.0.0",
|
"jasmine-spec-reporter": "~5.0.0",
|
||||||
"karma": "^5.2.3",
|
"karma": "^5.2.3",
|
||||||
"karma-chrome-launcher": "^3.1.0",
|
"karma-chrome-launcher": "~3.1.0",
|
||||||
"karma-coverage-istanbul-reporter": "~3.0.2",
|
"karma-coverage-istanbul-reporter": "~3.0.2",
|
||||||
"karma-jasmine": "^4.0.1",
|
"karma-jasmine": "~4.0.0",
|
||||||
"karma-jasmine-html-reporter": "^1.5.4",
|
"karma-jasmine-html-reporter": "^1.5.0",
|
||||||
"karma-mocha-reporter": "2.2.5",
|
"karma-mocha-reporter": "2.2.5",
|
||||||
"nodemon": "^2.0.2",
|
"nodemon": "^2.0.2",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
|
@@ -203,7 +203,8 @@ import { GroupAdministratorGuard } from './core/data/feature-authorization/featu
|
|||||||
]}
|
]}
|
||||||
],{
|
],{
|
||||||
onSameUrlNavigation: 'reload',
|
onSameUrlNavigation: 'reload',
|
||||||
})
|
relativeLinkResolution: 'legacy'
|
||||||
|
})
|
||||||
],
|
],
|
||||||
exports: [RouterModule],
|
exports: [RouterModule],
|
||||||
})
|
})
|
||||||
|
@@ -5,9 +5,10 @@
|
|||||||
<p [innerHTML]="'collection.edit.item-mapper.collection' | translate:{ name: (collectionName$ |async) }" id="collection-name"></p>
|
<p [innerHTML]="'collection.edit.item-mapper.collection' | translate:{ name: (collectionName$ |async) }" id="collection-name"></p>
|
||||||
<p>{{'collection.edit.item-mapper.description' | translate}}</p>
|
<p>{{'collection.edit.item-mapper.description' | translate}}</p>
|
||||||
|
|
||||||
<ngb-tabset (tabChange)="tabChange($event)" [destroyOnHide]="true" #tabs="ngbTabset">
|
<ul ngbNav (navChange)="tabChange($event)" [destroyOnHide]="true" #tabs="ngbNav" class="nav-tabs">
|
||||||
<ngb-tab title="{{'collection.edit.item-mapper.tabs.browse' | translate}}" id="browseTab">
|
<li [ngbNavItem]="'browseTab'">
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'collection.edit.item-mapper.tabs.browse' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<ds-item-select class="mt-2"
|
<ds-item-select class="mt-2"
|
||||||
[key]="'browse'"
|
[key]="'browse'"
|
||||||
@@ -21,9 +22,10 @@
|
|||||||
(cancel)="onCancel()"></ds-item-select>
|
(cancel)="onCancel()"></ds-item-select>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
<ngb-tab title="{{'collection.edit.item-mapper.tabs.map' | translate}}" id="mapTab">
|
<li [ngbNavItem]="'mapTab'">
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'collection.edit.item-mapper.tabs.map' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<div class="row mt-2">
|
<div class="row mt-2">
|
||||||
<div class="col-12 col-lg-6">
|
<div class="col-12 col-lg-6">
|
||||||
<ds-search-form id="search-form"
|
<ds-search-form id="search-form"
|
||||||
@@ -52,8 +54,9 @@
|
|||||||
{{'collection.edit.item-mapper.no-search' | translate}}
|
{{'collection.edit.item-mapper.no-search' | translate}}
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
</ngb-tabset>
|
</ul>
|
||||||
|
<div [ngbNavOutlet]="tabs"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -5,9 +5,10 @@
|
|||||||
<p [innerHTML]="'item.edit.item-mapper.item' | translate:{ name: (itemName$ | async) }" id="item-name"></p>
|
<p [innerHTML]="'item.edit.item-mapper.item' | translate:{ name: (itemName$ | async) }" id="item-name"></p>
|
||||||
<p>{{'item.edit.item-mapper.description' | translate}}</p>
|
<p>{{'item.edit.item-mapper.description' | translate}}</p>
|
||||||
|
|
||||||
<ngb-tabset (tabChange)="tabChange($event)" [destroyOnHide]="true" #tabs="ngbTabset">
|
<ul ngbNav (navChange)="tabChange($event)" [destroyOnHide]="true" #tabs="ngbNav" class="nav-tabs">
|
||||||
<ngb-tab title="{{'item.edit.item-mapper.tabs.browse' | translate}}" id="browseTab">
|
<li [ngbNavItem]="'browseTab'">
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'item.edit.item-mapper.tabs.browse' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<div class="mt-2">
|
<div class="mt-2">
|
||||||
<ds-collection-select class="mt-2"
|
<ds-collection-select class="mt-2"
|
||||||
[key]="'browse'"
|
[key]="'browse'"
|
||||||
@@ -20,9 +21,10 @@
|
|||||||
(cancel)="onCancel()"></ds-collection-select>
|
(cancel)="onCancel()"></ds-collection-select>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
<ngb-tab title="{{'item.edit.item-mapper.tabs.map' | translate}}" id="mapTab">
|
<li [ngbNavItem]="'mapTab'">
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'item.edit.item-mapper.tabs.map' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<div class="row mt-2">
|
<div class="row mt-2">
|
||||||
<div class="col-12 col-lg-6">
|
<div class="col-12 col-lg-6">
|
||||||
<ds-search-form id="search-form"
|
<ds-search-form id="search-form"
|
||||||
@@ -50,8 +52,9 @@
|
|||||||
{{'item.edit.item-mapper.no-search' | translate}}
|
{{'item.edit.item-mapper.no-search' | translate}}
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
</ngb-tabset>
|
</ul>
|
||||||
|
<div [ngbNavOutlet]="tabs"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { NgxGalleryOptions } from '@kolkov/ngx-gallery';
|
import { NgxGalleryOptions } from '@kolkov/ngx-gallery';
|
||||||
import { Bitstream } from '../../../core/shared/bitstream.model';
|
import { Bitstream } from '../../../core/shared/bitstream.model';
|
||||||
import { MediaViewerItem } from '../../../core/shared/media-viewer-item.model';
|
import { MediaViewerItem } from '../../../core/shared/media-viewer-item.model';
|
||||||
@@ -55,7 +55,7 @@ describe('MediaViewerImageComponent', () => {
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports:[],
|
imports:[],
|
||||||
declarations: [MediaViewerImageComponent],
|
declarations: [MediaViewerImageComponent],
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -17,7 +17,7 @@ describe('MediaViewerVideoComponent', () => {
|
|||||||
let component: MediaViewerVideoComponent;
|
let component: MediaViewerVideoComponent;
|
||||||
let fixture: ComponentFixture<MediaViewerVideoComponent>;
|
let fixture: ComponentFixture<MediaViewerVideoComponent>;
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { Bitstream } from '../../core/shared/bitstream.model';
|
import { Bitstream } from '../../core/shared/bitstream.model';
|
||||||
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
|
import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
|
||||||
import { createPaginatedList } from '../../shared/testing/utils.test';
|
import { createPaginatedList } from '../../shared/testing/utils.test';
|
||||||
@@ -60,7 +60,7 @@ describe('MediaViewerComponent', () => {
|
|||||||
{ bitstream: mockBitstream, format: 'image', thumbnail: null }
|
{ bitstream: mockBitstream, format: 'image', thumbnail: null }
|
||||||
);
|
);
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
<ngb-tabset *ngIf="relationTypes.length > 1" [destroyOnHide]="true" #tabs="ngbTabset" [activeId]="activeTab$ | async" (tabChange)="onTabChange($event)">
|
<ng-container *ngIf="relationTypes.length > 1">
|
||||||
<ngb-tab *ngFor="let relationType of relationTypes" title="{{'item.page.relationships.' + relationType.label | translate}}" [id]="relationType.filter">
|
<ul ngbNav #tabs="ngbNav" [destroyOnHide]="true" [activeId]="activeTab$ | async" (navChange)="onTabChange($event)" class="nav-tabs">
|
||||||
<ng-template ngbTabContent>
|
<li *ngFor="let relationType of relationTypes" [ngbNavItem]="relationType.filter">
|
||||||
|
<a ngbNavLink>{{'item.page.relationships.' + relationType.label | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<ds-related-entities-search [item]="item"
|
<ds-related-entities-search [item]="item"
|
||||||
[relationType]="relationType.filter"
|
[relationType]="relationType.filter"
|
||||||
@@ -10,8 +12,10 @@
|
|||||||
</ds-related-entities-search>
|
</ds-related-entities-search>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
</ngb-tabset>
|
</ul>
|
||||||
|
<div [ngbNavOutlet]="tabs"></div>
|
||||||
|
</ng-container>
|
||||||
<div *ngIf="relationTypes.length === 1" class="mt-4">
|
<div *ngIf="relationTypes.length === 1" class="mt-4">
|
||||||
<ds-related-entities-search *ngVar="relationTypes[0] as relationType" [item]="item"
|
<ds-related-entities-search *ngVar="relationTypes[0] as relationType" [item]="item"
|
||||||
[relationType]="relationType.filter"
|
[relationType]="relationType.filter"
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, inject, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
@@ -75,7 +75,7 @@ describe('MyDSpaceNewExternalDropdownComponent test', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
describe('With only one Entity', () => {
|
describe('With only one Entity', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
@@ -126,7 +126,7 @@ describe('MyDSpaceNewExternalDropdownComponent test', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('With more than one Entity', () => {
|
describe('With more than one Entity', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, inject, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
@@ -79,7 +79,7 @@ describe('MyDSpaceNewSubmissionDropdownComponent test', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
describe('With only one Entity', () => {
|
describe('With only one Entity', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
@@ -130,7 +130,7 @@ describe('MyDSpaceNewSubmissionDropdownComponent test', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('With more than one Entity', () => {
|
describe('With more than one Entity', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { AuthService } from '../../core/auth/auth.service';
|
import { AuthService } from '../../core/auth/auth.service';
|
||||||
import { FileService } from '../../core/shared/file.service';
|
import { FileService } from '../../core/shared/file.service';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -77,7 +77,7 @@ describe('BitstreamDownloadPageComponent', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe('init', () => {
|
describe('init', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
init();
|
init();
|
||||||
initTestbed();
|
initTestbed();
|
||||||
}));
|
}));
|
||||||
@@ -93,7 +93,7 @@ describe('BitstreamDownloadPageComponent', () => {
|
|||||||
|
|
||||||
describe('bitstream retrieval', () => {
|
describe('bitstream retrieval', () => {
|
||||||
describe('when the user is authorized and not logged in', () => {
|
describe('when the user is authorized and not logged in', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
init();
|
init();
|
||||||
(authService.isAuthenticated as jasmine.Spy).and.returnValue(observableOf(false));
|
(authService.isAuthenticated as jasmine.Spy).and.returnValue(observableOf(false));
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ describe('BitstreamDownloadPageComponent', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('when the user is authorized and logged in', () => {
|
describe('when the user is authorized and logged in', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
init();
|
init();
|
||||||
initTestbed();
|
initTestbed();
|
||||||
}));
|
}));
|
||||||
@@ -123,7 +123,7 @@ describe('BitstreamDownloadPageComponent', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('when the user is not authorized and logged in', () => {
|
describe('when the user is not authorized and logged in', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
init();
|
init();
|
||||||
(authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(false));
|
(authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(false));
|
||||||
initTestbed();
|
initTestbed();
|
||||||
@@ -138,7 +138,7 @@ describe('BitstreamDownloadPageComponent', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('when the user is not authorized and not logged in', () => {
|
describe('when the user is not authorized and not logged in', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
init();
|
init();
|
||||||
(authService.isAuthenticated as jasmine.Spy).and.returnValue(observableOf(false));
|
(authService.isAuthenticated as jasmine.Spy).and.returnValue(observableOf(false));
|
||||||
(authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(false));
|
(authorizationService.isAuthorized as jasmine.Spy).and.returnValue(observableOf(false));
|
||||||
|
@@ -7,9 +7,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<ds-loading *ngIf="!item || !collection"></ds-loading>
|
<ds-loading *ngIf="!item || !collection"></ds-loading>
|
||||||
<ngb-tabset *ngIf="item && collection">
|
<ng-container *ngIf="item && collection">
|
||||||
<ngb-tab [title]="'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + relationshipOptions.relationshipType | translate : {count: (totalInternal$ | async)}">
|
<ul ngbNav #nav="ngbNav" class="nav-tabs">
|
||||||
<ng-template ngbTabContent>
|
<li ngbNavItem>
|
||||||
|
<a ngbNavLink>{{'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + relationshipOptions.relationshipType | translate : { count: (totalInternal$ | async)} }}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<ds-dynamic-lookup-relation-search-tab
|
<ds-dynamic-lookup-relation-search-tab
|
||||||
[selection$]="selection$"
|
[selection$]="selection$"
|
||||||
[listId]="listId"
|
[listId]="listId"
|
||||||
@@ -27,10 +29,10 @@
|
|||||||
class="d-block pt-3">
|
class="d-block pt-3">
|
||||||
</ds-dynamic-lookup-relation-search-tab>
|
</ds-dynamic-lookup-relation-search-tab>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
<ngb-tab *ngFor="let source of (externalSourcesRD$ | async); let idx = index"
|
<li ngbNavItem *ngFor="let source of (externalSourcesRD$ | async); let idx = index">
|
||||||
[title]="'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + source.id | translate : {count: (totalExternal$ | async)[idx]}">
|
<a ngbNavLink>{{'submission.sections.describe.relationship-lookup.search-tab.tab-title.' + source.id | translate : { count: (totalExternal$ | async)[idx] } }}</a>
|
||||||
<ng-template ngbTabContent>
|
<ng-template ngbNavContent>
|
||||||
<ds-dynamic-lookup-relation-external-source-tab
|
<ds-dynamic-lookup-relation-external-source-tab
|
||||||
[label]="label"
|
[label]="label"
|
||||||
[listId]="listId"
|
[listId]="listId"
|
||||||
@@ -44,9 +46,10 @@
|
|||||||
class="d-block pt-3">
|
class="d-block pt-3">
|
||||||
</ds-dynamic-lookup-relation-external-source-tab>
|
</ds-dynamic-lookup-relation-external-source-tab>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
<ngb-tab *ngIf="!isEditRelationship" [title]="'submission.sections.describe.relationship-lookup.selection-tab.tab-title' | translate : {count: (selection$ | async)?.length}">
|
<li ngbNavItem *ngIf="!isEditRelationship">
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'submission.sections.describe.relationship-lookup.selection-tab.tab-title' | translate : { count: (selection$ | async)?.length } }}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<ds-dynamic-lookup-relation-selection-tab
|
<ds-dynamic-lookup-relation-selection-tab
|
||||||
[selection$]="selection$"
|
[selection$]="selection$"
|
||||||
[listId]="listId"
|
[listId]="listId"
|
||||||
@@ -58,8 +61,10 @@
|
|||||||
class="d-block pt-3">
|
class="d-block pt-3">
|
||||||
</ds-dynamic-lookup-relation-selection-tab>
|
</ds-dynamic-lookup-relation-selection-tab>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
</ngb-tabset>
|
</ul>
|
||||||
|
<div [ngbNavOutlet]="nav"></div>
|
||||||
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<small>{{ ('submission.sections.describe.relationship-lookup.selected' | translate: {size: (selection$ | async)?.length || 0}) }}</small>
|
<small>{{ ('submission.sections.describe.relationship-lookup.selected' | translate: {size: (selection$ | async)?.length || 0}) }}</small>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -60,7 +60,7 @@ mockResultObject.indexableObject = Object.assign(new ClaimedTask(), { workflowit
|
|||||||
const linkService = getMockLinkService();
|
const linkService = getMockLinkService();
|
||||||
|
|
||||||
describe('ClaimedApprovedSearchResultListElementComponent', () => {
|
describe('ClaimedApprovedSearchResultListElementComponent', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ClaimedApprovedSearchResultListElementComponent, VarDirective],
|
declarations: [ClaimedApprovedSearchResultListElementComponent, VarDirective],
|
||||||
@@ -75,7 +75,7 @@ describe('ClaimedApprovedSearchResultListElementComponent', () => {
|
|||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
fixture = TestBed.createComponent(ClaimedApprovedSearchResultListElementComponent);
|
fixture = TestBed.createComponent(ClaimedApprovedSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -60,7 +60,7 @@ mockResultObject.indexableObject = Object.assign(new ClaimedTask(), { workflowit
|
|||||||
const linkService = getMockLinkService();
|
const linkService = getMockLinkService();
|
||||||
|
|
||||||
describe('ClaimedDeclinedSearchResultListElementComponent', () => {
|
describe('ClaimedDeclinedSearchResultListElementComponent', () => {
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ClaimedDeclinedSearchResultListElementComponent, VarDirective],
|
declarations: [ClaimedDeclinedSearchResultListElementComponent, VarDirective],
|
||||||
@@ -75,7 +75,7 @@ describe('ClaimedDeclinedSearchResultListElementComponent', () => {
|
|||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
fixture = TestBed.createComponent(ClaimedDeclinedSearchResultListElementComponent);
|
fixture = TestBed.createComponent(ClaimedDeclinedSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
@@ -8,19 +8,24 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<label for="ResourcePolicyObject">{{'resource-policies.form.eperson-group-list.label' | translate}}</label>
|
<label for="ResourcePolicyObject">{{'resource-policies.form.eperson-group-list.label' | translate}}</label>
|
||||||
<input id="ResourcePolicyObject" class="form-control mb-3" type="text" readonly [value]="resourcePolicyTargetName$ | async">
|
<input id="ResourcePolicyObject" class="form-control mb-3" type="text" readonly [value]="resourcePolicyTargetName$ | async">
|
||||||
<ngb-tabset *ngIf="canSetGrant()" type="pills">
|
<ng-container *ngIf="canSetGrant()">
|
||||||
<ngb-tab [title]="'resource-policies.form.eperson-group-list.tab.eperson' | translate">
|
<ul ngbNav #nav="ngbNav" class="nav-pills">
|
||||||
<ng-template ngbTabContent>
|
<li ngbNavItem>
|
||||||
|
<a ngbNavLink>{{'resource-policies.form.eperson-group-list.tab.eperson' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<ds-eperson-group-list (select)="updateObjectSelected($event, true)"></ds-eperson-group-list>
|
<ds-eperson-group-list (select)="updateObjectSelected($event, true)"></ds-eperson-group-list>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
<ngb-tab [title]="'resource-policies.form.eperson-group-list.tab.group' | translate">
|
<li ngbNavItem>
|
||||||
<ng-template ngbTabContent>
|
<a ngbNavLink>{{'resource-policies.form.eperson-group-list.tab.group' | translate}}</a>
|
||||||
|
<ng-template ngbNavContent>
|
||||||
<ds-eperson-group-list [isListOfEPerson]="false"
|
<ds-eperson-group-list [isListOfEPerson]="false"
|
||||||
(select)="updateObjectSelected($event, false)"></ds-eperson-group-list>
|
(select)="updateObjectSelected($event, false)"></ds-eperson-group-list>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</ngb-tab>
|
</li>
|
||||||
</ngb-tabset>
|
</ul>
|
||||||
|
<div [ngbNavOutlet]="nav"></div>
|
||||||
|
</ng-container>
|
||||||
<div>
|
<div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
@@ -3,6 +3,7 @@ import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
|||||||
import { BrowserModule, By } from '@angular/platform-browser';
|
import { BrowserModule, By } from '@angular/platform-browser';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
|
||||||
import { getTestScheduler } from 'jasmine-marbles';
|
import { getTestScheduler } from 'jasmine-marbles';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -30,6 +31,14 @@ import { ResourcePolicy } from '../../../core/resource-policy/models/resource-po
|
|||||||
import { RESOURCE_POLICY } from '../../../core/resource-policy/models/resource-policy.resource-type';
|
import { RESOURCE_POLICY } from '../../../core/resource-policy/models/resource-policy.resource-type';
|
||||||
import { EPersonMock } from '../../testing/eperson.mock';
|
import { EPersonMock } from '../../testing/eperson.mock';
|
||||||
import { isNotEmptyOperator } from '../../empty.util';
|
import { isNotEmptyOperator } from '../../empty.util';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { RemoteData } from 'src/app/core/data/remote-data';
|
||||||
|
import { RouterMock } from '../../mocks/router.mock';
|
||||||
|
import { Store } from '@ngrx/store';
|
||||||
|
import { PaginationServiceStub } from '../../testing/pagination-service.stub';
|
||||||
|
import { PaginationService } from 'src/app/core/pagination/pagination.service';
|
||||||
|
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
import { StoreMock } from '../../testing/store.mock';
|
||||||
|
|
||||||
export const mockResourcePolicyFormData = {
|
export const mockResourcePolicyFormData = {
|
||||||
name: [
|
name: [
|
||||||
@@ -156,12 +165,23 @@ describe('ResourcePolicyFormComponent test suite', () => {
|
|||||||
findAll: jasmine.createSpy('findAll')
|
findAll: jasmine.createSpy('findAll')
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const mockPolicyRD: RemoteData<ResourcePolicy> = createSuccessfulRemoteDataObject(resourcePolicy);
|
||||||
|
const activatedRouteStub = {
|
||||||
|
parent: {
|
||||||
|
data: observableOf({
|
||||||
|
dso: mockPolicyRD
|
||||||
|
})
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
CommonModule,
|
CommonModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
|
NgbModule,
|
||||||
|
NoopAnimationsModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
TranslateModule.forRoot()
|
TranslateModule.forRoot()
|
||||||
],
|
],
|
||||||
@@ -172,9 +192,13 @@ describe('ResourcePolicyFormComponent test suite', () => {
|
|||||||
TestComponent
|
TestComponent
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
|
{ provide: ActivatedRoute, useValue: activatedRouteStub },
|
||||||
|
{ provide: Router, useValue: new RouterMock() },
|
||||||
|
{ provide: Store, useValue: StoreMock },
|
||||||
{ provide: EPersonDataService, useValue: epersonService },
|
{ provide: EPersonDataService, useValue: epersonService },
|
||||||
{ provide: FormService, useValue: formService },
|
{ provide: FormService, useValue: formService },
|
||||||
{ provide: GroupDataService, useValue: groupService },
|
{ provide: GroupDataService, useValue: groupService },
|
||||||
|
{ provide: PaginationService, useValue: new PaginationServiceStub() },
|
||||||
{ provide: RequestService, useValue: getMockRequestService() },
|
{ provide: RequestService, useValue: getMockRequestService() },
|
||||||
FormBuilderService,
|
FormBuilderService,
|
||||||
ChangeDetectorRef,
|
ChangeDetectorRef,
|
||||||
|
@@ -59,7 +59,7 @@ export function getRequest(transferState: TransferState): any {
|
|||||||
scrollPositionRestoration: 'enabled',
|
scrollPositionRestoration: 'enabled',
|
||||||
anchorScrolling: 'enabled',
|
anchorScrolling: 'enabled',
|
||||||
preloadingStrategy: NoPreloading
|
preloadingStrategy: NoPreloading
|
||||||
}),
|
}),
|
||||||
StatisticsModule.forRoot(),
|
StatisticsModule.forRoot(),
|
||||||
Angulartics2RouterlessModule.forRoot(),
|
Angulartics2RouterlessModule.forRoot(),
|
||||||
BrowserAnimationsModule,
|
BrowserAnimationsModule,
|
||||||
|
Reference in New Issue
Block a user