mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 23:13:04 +00:00
[DURACOM-191] run optimize imports and lint fix
This commit is contained in:
@@ -1,12 +1,10 @@
|
||||
import { Component, Inject, ViewChild, } from '@angular/core';
|
||||
import { NgIf } from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Inject,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
|
||||
import { filter, map, mergeMap, take } from 'rxjs/operators';
|
||||
import { combineLatest, Observable, of, Subscription } from 'rxjs';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import {
|
||||
DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX,
|
||||
DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER,
|
||||
@@ -22,24 +20,40 @@ import {
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { DynamicDateControlValue } from '@ng-dynamic-forms/core/lib/model/dynamic-date-control.model';
|
||||
import { DynamicFormControlCondition } from '@ng-dynamic-forms/core/lib/model/misc/dynamic-form-control-relation.model';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import {
|
||||
combineLatest,
|
||||
Observable,
|
||||
of,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
filter,
|
||||
map,
|
||||
mergeMap,
|
||||
take,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import { AccessesConditionOption } from '../../../core/config/models/config-accesses-conditions-options.model';
|
||||
import { SubmissionAccessesConfigDataService } from '../../../core/config/submission-accesses-config-data.service';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { getFirstSucceededRemoteData } from '../../../core/shared/operators';
|
||||
import {
|
||||
WorkspaceitemSectionAccessesObject
|
||||
} from '../../../core/submission/models/workspaceitem-section-accesses.model';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsService
|
||||
} from '../../../core/submission/submission-json-patch-operations.service';
|
||||
import { WorkspaceitemSectionAccessesObject } from '../../../core/submission/models/workspaceitem-section-accesses.model';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../../core/submission/submission-json-patch-operations.service';
|
||||
import { dateToISOFormat } from '../../../shared/date.util';
|
||||
import { hasValue, isNotEmpty, isNotNull, } from '../../../shared/empty.util';
|
||||
import {
|
||||
hasValue,
|
||||
isNotEmpty,
|
||||
isNotNull,
|
||||
} from '../../../shared/empty.util';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormComponent } from '../../../shared/form/form.component';
|
||||
import { FormService } from '../../../shared/form/form.service';
|
||||
import { SectionFormOperationsService } from '../form/section-form-operations.service';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import {
|
||||
ACCESS_CONDITION_GROUP_CONFIG,
|
||||
ACCESS_CONDITION_GROUP_LAYOUT,
|
||||
@@ -54,7 +68,6 @@ import {
|
||||
FORM_ACCESS_CONDITION_TYPE_CONFIG,
|
||||
FORM_ACCESS_CONDITION_TYPE_LAYOUT,
|
||||
} from './section-accesses.model';
|
||||
import { NgIf } from '@angular/common';
|
||||
import { SectionAccessesService } from './section-accesses.service';
|
||||
|
||||
/**
|
||||
@@ -66,9 +79,9 @@ import { SectionAccessesService } from './section-accesses.service';
|
||||
styleUrls: ['./section-accesses.component.scss'],
|
||||
imports: [
|
||||
FormComponent,
|
||||
NgIf
|
||||
NgIf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionAccessesComponent extends SectionModelComponent {
|
||||
|
||||
|
@@ -14,7 +14,7 @@ import { SubmissionState } from '../../submission.reducers';
|
||||
/**
|
||||
* A service that provides methods to handle submission item's accesses condition state.
|
||||
*/
|
||||
@Injectable({providedIn: 'root'})
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SectionAccessesService {
|
||||
|
||||
/**
|
||||
|
@@ -1,12 +1,14 @@
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { ComponentFixture, TestBed, waitForAsync, } from '@angular/core/testing';
|
||||
import {
|
||||
ComponentFixture,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
import { FormBuilderService } from 'src/app/shared/form/builder/form-builder.service';
|
||||
|
||||
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
@@ -15,11 +17,13 @@ import { SUBMISSION_CC_LICENSE } from '../../../core/submission/models/submissio
|
||||
import { SubmissionCcLicence } from '../../../core/submission/models/submission-cc-license.model';
|
||||
import { SubmissionCcLicenseDataService } from '../../../core/submission/submission-cc-license-data.service';
|
||||
import { SubmissionCcLicenseUrlDataService } from '../../../core/submission/submission-cc-license-url-data.service';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
|
||||
import { createPaginatedList } from '../../../shared/testing/utils.test';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { SubmissionSectionCcLicensesComponent } from './submission-section-cc-licenses.component';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { FormBuilderService } from 'src/app/shared/form/builder/form-builder.service';
|
||||
|
||||
describe('SubmissionSectionCcLicensesComponent', () => {
|
||||
|
||||
@@ -170,11 +174,11 @@ describe('SubmissionSectionCcLicensesComponent', () => {
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
SubmissionSectionCcLicensesComponent
|
||||
],
|
||||
providers: [
|
||||
SubmissionSectionCcLicensesComponent,
|
||||
],
|
||||
providers: [
|
||||
{ provide: SubmissionCcLicenseDataService, useValue: submissionCcLicensesDataService },
|
||||
{ provide: SubmissionCcLicenseUrlDataService, useValue: submissionCcLicenseUrlDataService },
|
||||
{ provide: SectionsService, useValue: sectionService },
|
||||
@@ -184,15 +188,15 @@ describe('SubmissionSectionCcLicensesComponent', () => {
|
||||
{ provide: 'sectionDataProvider', useValue: Object.assign({}, sectionObject) },
|
||||
{ provide: 'submissionIdProvider', useValue: 'test submission id' },
|
||||
{ provide: FormBuilderService, useValue: {} },
|
||||
]
|
||||
})
|
||||
.overrideComponent(SubmissionSectionCcLicensesComponent, {
|
||||
remove: {
|
||||
imports:[
|
||||
ThemedLoadingComponent,
|
||||
]
|
||||
}
|
||||
})
|
||||
],
|
||||
})
|
||||
.overrideComponent(SubmissionSectionCcLicensesComponent, {
|
||||
remove: {
|
||||
imports:[
|
||||
ThemedLoadingComponent,
|
||||
],
|
||||
},
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
|
@@ -1,7 +1,28 @@
|
||||
import { Component, Inject, } from '@angular/core';
|
||||
import { NgbModal, NgbModalRef, } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { Observable, of as observableOf, Subscription, } from 'rxjs';
|
||||
import { distinctUntilChanged, filter, map, take, } from 'rxjs/operators';
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Inject,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
NgbModal,
|
||||
NgbModalRef,
|
||||
} from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
Observable,
|
||||
of as observableOf,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
distinctUntilChanged,
|
||||
filter,
|
||||
map,
|
||||
take,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
@@ -11,22 +32,22 @@ import {
|
||||
getFirstSucceededRemoteData,
|
||||
getRemoteDataPayload,
|
||||
} from '../../../core/shared/operators';
|
||||
import { Field, Option, SubmissionCcLicence, } from '../../../core/submission/models/submission-cc-license.model';
|
||||
import {
|
||||
WorkspaceitemSectionCcLicenseObject
|
||||
} from '../../../core/submission/models/workspaceitem-section-cc-license.model';
|
||||
Field,
|
||||
Option,
|
||||
SubmissionCcLicence,
|
||||
} from '../../../core/submission/models/submission-cc-license.model';
|
||||
import { WorkspaceitemSectionCcLicenseObject } from '../../../core/submission/models/workspaceitem-section-cc-license.model';
|
||||
import { SubmissionCcLicenseDataService } from '../../../core/submission/submission-cc-license-data.service';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { SubmissionCcLicenseUrlDataService } from '../../../core/submission/submission-cc-license-url-data.service';
|
||||
import { DsSelectComponent } from '../../../shared/ds-select/ds-select.component';
|
||||
import { isNotEmpty } from '../../../shared/empty.util';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
import { DsSelectComponent } from '../../../shared/ds-select/ds-select.component';
|
||||
import { SectionsType } from '../sections-type';
|
||||
|
||||
/**
|
||||
* This component represents the submission section to select the Creative Commons license.
|
||||
@@ -42,9 +63,9 @@ import { DsSelectComponent } from '../../../shared/ds-select/ds-select.component
|
||||
AsyncPipe,
|
||||
VarDirective,
|
||||
NgForOf,
|
||||
DsSelectComponent
|
||||
DsSelectComponent,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionCcLicensesComponent extends SectionModelComponent {
|
||||
|
||||
|
@@ -1,12 +1,23 @@
|
||||
// Load the implementations that should be tested
|
||||
import { Component, CUSTOM_ELEMENTS_SCHEMA, } from '@angular/core';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/testing';
|
||||
import {
|
||||
Component,
|
||||
CUSTOM_ELEMENTS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { mockSubmissionCollectionId, mockSubmissionId, } from '../../../shared/mocks/submission.mock';
|
||||
import {
|
||||
mockSubmissionCollectionId,
|
||||
mockSubmissionId,
|
||||
} from '../../../shared/mocks/submission.mock';
|
||||
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../shared/testing/utils.test';
|
||||
@@ -65,20 +76,20 @@ describe('SubmissionSectionContainerComponent test suite', () => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
NgbModule,
|
||||
TranslateModule.forRoot(),
|
||||
SubmissionSectionContainerComponent,
|
||||
SectionsDirective,
|
||||
TestComponent
|
||||
],
|
||||
providers: [
|
||||
TestComponent,
|
||||
],
|
||||
providers: [
|
||||
{ provide: SectionsService, useValue: sectionsServiceStub },
|
||||
{ provide: SubmissionService, useValue: submissionServiceStub },
|
||||
SubmissionSectionContainerComponent,
|
||||
],
|
||||
],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
}).compileComponents();
|
||||
}).compileComponents();
|
||||
|
||||
}));
|
||||
|
||||
@@ -221,11 +232,11 @@ describe('SubmissionSectionContainerComponent test suite', () => {
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
// eslint-disable-next-line @angular-eslint/component-selector
|
||||
selector: '',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [NgbModule]
|
||||
// eslint-disable-next-line @angular-eslint/component-selector
|
||||
selector: '',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [NgbModule],
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,13 +1,25 @@
|
||||
import { Component, Injector, Input, OnInit, ViewChild, } from '@angular/core';
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgClass,
|
||||
NgComponentOutlet,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Injector,
|
||||
Input,
|
||||
OnInit,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { AlertType } from '../../../shared/alert/alert-type';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsDirective } from '../sections.directive';
|
||||
import { rendersSectionType } from '../sections-decorator';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { AsyncPipe, NgClass, NgComponentOutlet, NgForOf, NgIf } from '@angular/common';
|
||||
import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the submission license form.
|
||||
@@ -25,9 +37,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
||||
NgClass,
|
||||
NgIf,
|
||||
AsyncPipe,
|
||||
SectionsDirective
|
||||
SectionsDirective,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionContainerComponent implements OnInit {
|
||||
|
||||
|
@@ -13,6 +13,7 @@ import {
|
||||
TranslateModule,
|
||||
} from '@ngx-translate/core';
|
||||
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { VocabularyEntry } from '../../../core/submission/vocabularies/models/vocabulary-entry.model';
|
||||
@@ -35,7 +36,6 @@ import {
|
||||
} from '../../../shared/mocks/form-models.mock';
|
||||
import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock';
|
||||
import { SectionFormOperationsService } from './section-form-operations.service';
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
|
||||
describe('SectionFormOperationsService test suite', () => {
|
||||
let formBuilderService: any;
|
||||
|
@@ -39,7 +39,7 @@ import { FormFieldPreviousValueObject } from '../../../shared/form/builder/model
|
||||
/**
|
||||
* The service handling all form section operations
|
||||
*/
|
||||
@Injectable({providedIn: 'root'})
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SectionFormOperationsService {
|
||||
|
||||
/**
|
||||
|
@@ -1,9 +1,27 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA, } from '@angular/core';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/testing';
|
||||
import { FormsModule, ReactiveFormsModule, } from '@angular/forms';
|
||||
import { DynamicFormControlEvent, DynamicFormControlEventType, } from '@ng-dynamic-forms/core';
|
||||
import { TranslateModule, TranslateService, } from '@ngx-translate/core';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import {
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
} from '@angular/forms';
|
||||
import {
|
||||
DynamicFormControlEvent,
|
||||
DynamicFormControlEventType,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import {
|
||||
TranslateModule,
|
||||
TranslateService,
|
||||
} from '@ngx-translate/core';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
@@ -16,9 +34,7 @@ import { WorkflowItem } from '../../../core/submission/models/workflowitem.model
|
||||
import { WorkspaceItem } from '../../../core/submission/models/workspaceitem.model';
|
||||
import { SubmissionObjectDataService } from '../../../core/submission/submission-object-data.service';
|
||||
import { DsDynamicInputModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-input.model';
|
||||
import {
|
||||
DynamicRowGroupModel
|
||||
} from '../../../shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-row-group-model';
|
||||
import { DynamicRowGroupModel } from '../../../shared/form/builder/ds-dynamic-form-ui/models/ds-dynamic-row-group-model';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormFieldModel } from '../../../shared/form/builder/models/form-field.model';
|
||||
import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model';
|
||||
@@ -32,6 +48,7 @@ import {
|
||||
mockSubmissionId,
|
||||
mockUploadResponse1ParsedErrors,
|
||||
} from '../../../shared/mocks/submission.mock';
|
||||
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
|
||||
import { getMockTranslateService } from '../../../shared/mocks/translate.service.mock';
|
||||
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
|
||||
@@ -39,6 +56,7 @@ import { NotificationsServiceStub } from '../../../shared/testing/notifications-
|
||||
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../shared/testing/utils.test';
|
||||
import { ThemeService } from '../../../shared/theme-support/theme.service';
|
||||
import { SubmissionSectionError } from '../../objects/submission-section-error.model';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
@@ -46,8 +64,6 @@ import { SectionsService } from '../sections.service';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { SubmissionSectionFormComponent } from './section-form.component';
|
||||
import { SectionFormOperationsService } from './section-form-operations.service';
|
||||
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
|
||||
import { ThemeService } from '../../../shared/theme-support/theme.service';
|
||||
|
||||
function getMockSubmissionFormsConfigService(): SubmissionFormsConfigDataService {
|
||||
return jasmine.createSpyObj('FormOperationsService', {
|
||||
@@ -162,7 +178,7 @@ describe('SubmissionSectionFormComponent test suite', () => {
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
@@ -170,8 +186,8 @@ describe('SubmissionSectionFormComponent test suite', () => {
|
||||
FormComponent,
|
||||
SubmissionSectionFormComponent,
|
||||
TestComponent,
|
||||
],
|
||||
providers: [
|
||||
],
|
||||
providers: [
|
||||
{ provide: FormBuilderService, useValue: getMockFormBuilderService() },
|
||||
{ provide: SectionFormOperationsService, useValue: getMockFormOperationsService() },
|
||||
{ provide: FormService, useValue: formService },
|
||||
@@ -191,9 +207,9 @@ describe('SubmissionSectionFormComponent test suite', () => {
|
||||
{ provide: SubmissionObjectDataService, useValue: { getHrefByID: () => observableOf('testUrl'), findById: () => createSuccessfulRemoteDataObject$(new WorkspaceItem()) } },
|
||||
ChangeDetectorRef,
|
||||
SubmissionSectionFormComponent,
|
||||
],
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
}).compileComponents().then();
|
||||
}).compileComponents().then();
|
||||
}));
|
||||
|
||||
describe('', () => {
|
||||
@@ -635,9 +651,9 @@ describe('SubmissionSectionFormComponent test suite', () => {
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [CommonModule, FormsModule, ReactiveFormsModule]
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [CommonModule, FormsModule, ReactiveFormsModule],
|
||||
})
|
||||
class TestComponent {}
|
||||
|
@@ -1,10 +1,31 @@
|
||||
import { ChangeDetectorRef, Component, Inject, ViewChild, } from '@angular/core';
|
||||
import { DynamicFormControlEvent, DynamicFormControlModel, } from '@ng-dynamic-forms/core';
|
||||
import { NgIf } from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
Inject,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
DynamicFormControlEvent,
|
||||
DynamicFormControlModel,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import findIndex from 'lodash/findIndex';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import { combineLatest as observableCombineLatest, Observable, Subscription, } from 'rxjs';
|
||||
import { distinctUntilChanged, filter, find, map, mergeMap, take, tap, } from 'rxjs/operators';
|
||||
import {
|
||||
combineLatest as observableCombineLatest,
|
||||
Observable,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
distinctUntilChanged,
|
||||
filter,
|
||||
find,
|
||||
map,
|
||||
mergeMap,
|
||||
take,
|
||||
tap,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import { environment } from '../../../../environments/environment';
|
||||
import { ObjectCacheService } from '../../../core/cache/object-cache.service';
|
||||
@@ -15,18 +36,27 @@ import { SubmissionFormsConfigDataService } from '../../../core/config/submissio
|
||||
import { RemoteData } from '../../../core/data/remote-data';
|
||||
import { RequestService } from '../../../core/data/request.service';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { getFirstSucceededRemoteData, getRemoteDataPayload, } from '../../../core/shared/operators';
|
||||
import {
|
||||
getFirstSucceededRemoteData,
|
||||
getRemoteDataPayload,
|
||||
} from '../../../core/shared/operators';
|
||||
import { SubmissionObject } from '../../../core/submission/models/submission-object.model';
|
||||
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
|
||||
import { WorkspaceItem } from '../../../core/submission/models/workspaceitem.model';
|
||||
import { WorkspaceitemSectionFormObject } from '../../../core/submission/models/workspaceitem-section-form.model';
|
||||
import { SubmissionObjectDataService } from '../../../core/submission/submission-object-data.service';
|
||||
import { SubmissionScopeType } from '../../../core/submission/submission-scope-type';
|
||||
import { hasValue, isEmpty, isNotEmpty, isUndefined, } from '../../../shared/empty.util';
|
||||
import {
|
||||
hasValue,
|
||||
isEmpty,
|
||||
isNotEmpty,
|
||||
isUndefined,
|
||||
} from '../../../shared/empty.util';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormFieldPreviousValueObject } from '../../../shared/form/builder/models/form-field-previous-value-object';
|
||||
import { FormComponent } from '../../../shared/form/form.component';
|
||||
import { FormService } from '../../../shared/form/form.service';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||
import { difference } from '../../../shared/object.util';
|
||||
import { followLink } from '../../../shared/utils/follow-link-config.model';
|
||||
@@ -37,8 +67,6 @@ import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionFormOperationsService } from './section-form-operations.service';
|
||||
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
|
||||
import { NgIf } from '@angular/common';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains a Form.
|
||||
@@ -50,9 +78,9 @@ import { NgIf } from '@angular/common';
|
||||
imports: [
|
||||
FormComponent,
|
||||
ThemedLoadingComponent,
|
||||
NgIf
|
||||
NgIf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionFormComponent extends SectionModelComponent {
|
||||
|
||||
|
@@ -1,7 +1,19 @@
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import {
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
} from '@angular/forms';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
@@ -10,27 +22,28 @@ import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { SubmissionFormsConfigDataService } from '../../../core/config/submission-forms-config-data.service';
|
||||
import { CollectionDataService } from '../../../core/data/collection-data.service';
|
||||
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import { ConfigurationProperty } from '../../../core/shared/configuration-property.model';
|
||||
import { Item } from '../../../core/shared/item.model';
|
||||
import { License } from '../../../core/shared/license.model';
|
||||
import {
|
||||
WorkspaceitemSectionIdentifiersObject
|
||||
} from '../../../core/submission/models/workspaceitem-section-identifiers.model';
|
||||
import { WorkspaceitemSectionIdentifiersObject } from '../../../core/submission/models/workspaceitem-section-identifiers.model';
|
||||
import { SubmissionScopeType } from '../../../core/submission/submission-scope-type';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormService } from '../../../shared/form/form.service';
|
||||
import { getMockFormOperationsService } from '../../../shared/mocks/form-operations-service.mock';
|
||||
import { getMockFormService } from '../../../shared/mocks/form-service.mock';
|
||||
import { mockSubmissionCollectionId, mockSubmissionId, } from '../../../shared/mocks/submission.mock';
|
||||
import {
|
||||
mockSubmissionCollectionId,
|
||||
mockSubmissionId,
|
||||
} from '../../../shared/mocks/submission.mock';
|
||||
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
|
||||
import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub';
|
||||
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
|
||||
import { ConfigurationDataService } from '../../../core/data/configuration-data.service';
|
||||
import { ConfigurationProperty } from '../../../core/shared/configuration-property.model';
|
||||
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../shared/testing/utils.test';
|
||||
@@ -127,9 +140,9 @@ describe('SubmissionSectionIdentifiersComponent test suite', () => {
|
||||
findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), {
|
||||
name: 'test',
|
||||
values: [
|
||||
'org.dspace.ctask.general.ProfileFormats = test'
|
||||
]
|
||||
}))
|
||||
'org.dspace.ctask.general.ProfileFormats = test',
|
||||
],
|
||||
})),
|
||||
});
|
||||
|
||||
const licenseText = 'License text';
|
||||
@@ -148,7 +161,7 @@ describe('SubmissionSectionIdentifiersComponent test suite', () => {
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
@@ -158,9 +171,9 @@ describe('SubmissionSectionIdentifiersComponent test suite', () => {
|
||||
SubmissionSectionIdentifiersComponent,
|
||||
TestComponent,
|
||||
ObjNgFor,
|
||||
VarDirective
|
||||
],
|
||||
providers: [
|
||||
VarDirective,
|
||||
],
|
||||
providers: [
|
||||
{ provide: CollectionDataService, useValue: getMockCollectionDataService() },
|
||||
{ provide: SectionFormOperationsService, useValue: getMockFormOperationsService() },
|
||||
{ provide: FormService, useValue: getMockFormService() },
|
||||
@@ -177,9 +190,9 @@ describe('SubmissionSectionIdentifiersComponent test suite', () => {
|
||||
ChangeDetectorRef,
|
||||
FormBuilderService,
|
||||
SubmissionSectionIdentifiersComponent,
|
||||
],
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
}).compileComponents().then();
|
||||
}).compileComponents().then();
|
||||
}));
|
||||
|
||||
// First test to check the correct component creation
|
||||
@@ -259,14 +272,14 @@ describe('SubmissionSectionIdentifiersComponent test suite', () => {
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
NgxPaginationModule]
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
NgxPaginationModule],
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,18 +1,30 @@
|
||||
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
||||
|
||||
import { Observable, of as observableOf, Subscription } from 'rxjs';
|
||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||
|
||||
import {
|
||||
WorkspaceitemSectionIdentifiersObject
|
||||
} from '../../../core/submission/models/workspaceitem-section-identifiers.model';
|
||||
AsyncPipe,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
ChangeDetectionStrategy,
|
||||
Component,
|
||||
Inject,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
TranslateModule,
|
||||
TranslateService,
|
||||
} from '@ngx-translate/core';
|
||||
import {
|
||||
Observable,
|
||||
of as observableOf,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
|
||||
import { WorkspaceitemSectionIdentifiersObject } from '../../../core/submission/models/workspaceitem-section-identifiers.model';
|
||||
import { AlertType } from '../../../shared/alert/alert-type';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
|
||||
/**
|
||||
* This simple component displays DOI, handle and other identifiers that are already minted for the item in
|
||||
@@ -30,9 +42,9 @@ import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
NgForOf,
|
||||
NgIf,
|
||||
AsyncPipe,
|
||||
VarDirective
|
||||
VarDirective,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
|
||||
export class SubmissionSectionIdentifiersComponent extends SectionModelComponent {
|
||||
|
@@ -1,11 +1,35 @@
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/testing';
|
||||
import { FormsModule, ReactiveFormsModule, } from '@angular/forms';
|
||||
import { DynamicCheckboxModel, DynamicFormControlEvent, DynamicFormControlEventType, } from '@ng-dynamic-forms/core';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import {
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
} from '@angular/forms';
|
||||
import {
|
||||
DynamicCheckboxModel,
|
||||
DynamicFormControlEvent,
|
||||
DynamicFormControlEventType,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { provideMockStore } from '@ngrx/store/testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
import { DsDynamicTypeBindRelationService } from 'src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service';
|
||||
import {
|
||||
APP_CONFIG,
|
||||
APP_DATA_SERVICES_MAP,
|
||||
APP_DYNAMIC_FORM_CONTROL_FN,
|
||||
} from 'src/config/app-config.interface';
|
||||
import { environment } from 'src/environments/environment.test';
|
||||
|
||||
import { SubmissionFormsConfigDataService } from '../../../core/config/submission-forms-config-data.service';
|
||||
import { CollectionDataService } from '../../../core/data/collection-data.service';
|
||||
@@ -13,6 +37,7 @@ import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import { License } from '../../../core/shared/license.model';
|
||||
import { dsDynamicFormControlMapFn } from '../../../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-map-fn';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model';
|
||||
import { FormComponent } from '../../../shared/form/form.component';
|
||||
@@ -36,21 +61,12 @@ import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { SubmissionSectionLicenseComponent } from './section-license.component';
|
||||
import { provideMockStore } from '@ngrx/store/testing';
|
||||
import {
|
||||
DsDynamicTypeBindRelationService
|
||||
} from 'src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service';
|
||||
import { APP_CONFIG, APP_DATA_SERVICES_MAP, APP_DYNAMIC_FORM_CONTROL_FN } from 'src/config/app-config.interface';
|
||||
import { environment } from 'src/environments/environment.test';
|
||||
import {
|
||||
dsDynamicFormControlMapFn
|
||||
} from '../../../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-map-fn';
|
||||
|
||||
function getMockDsDynamicTypeBindRelationService(): DsDynamicTypeBindRelationService {
|
||||
return jasmine.createSpyObj('DsDynamicTypeBindRelationService', {
|
||||
getRelatedFormModel: jasmine.createSpy('getRelatedFormModel'),
|
||||
matchesCondition: jasmine.createSpy('matchesCondition'),
|
||||
subscribeRelations: jasmine.createSpy('subscribeRelations')
|
||||
subscribeRelations: jasmine.createSpy('subscribeRelations'),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -132,7 +148,7 @@ describe('SubmissionSectionLicenseComponent test suite', () => {
|
||||
'cache/object-updates': {},
|
||||
'data/request': {},
|
||||
'index': {},
|
||||
}
|
||||
},
|
||||
};
|
||||
beforeEach(waitForAsync(() => {
|
||||
void TestBed.configureTestingModule({
|
||||
@@ -158,7 +174,7 @@ describe('SubmissionSectionLicenseComponent test suite', () => {
|
||||
{ provide: 'sectionDataProvider', useValue: Object.assign({}, sectionObject) },
|
||||
{ provide: 'submissionIdProvider', useValue: submissionId },
|
||||
ChangeDetectorRef,
|
||||
provideMockStore({initialState}),
|
||||
provideMockStore({ initialState }),
|
||||
FormBuilderService,
|
||||
{ provide: DsDynamicTypeBindRelationService, useValue: getMockDsDynamicTypeBindRelationService() },
|
||||
{ provide: APP_CONFIG, useValue: environment },
|
||||
@@ -351,8 +367,8 @@ describe('SubmissionSectionLicenseComponent test suite', () => {
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
FormComponent,
|
||||
ReactiveFormsModule
|
||||
]
|
||||
ReactiveFormsModule,
|
||||
],
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,4 +1,14 @@
|
||||
import { AfterViewChecked, ChangeDetectorRef, Component, Inject, ViewChild, } from '@angular/core';
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
AfterViewChecked,
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
Inject,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
DynamicCheckboxModel,
|
||||
DynamicFormControlEvent,
|
||||
@@ -6,8 +16,19 @@ import {
|
||||
DynamicFormLayout,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { Observable, Subscription, } from 'rxjs';
|
||||
import { distinctUntilChanged, filter, find, map, mergeMap, startWith, take, } from 'rxjs/operators';
|
||||
import {
|
||||
Observable,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
distinctUntilChanged,
|
||||
filter,
|
||||
find,
|
||||
map,
|
||||
mergeMap,
|
||||
startWith,
|
||||
take,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import { CollectionDataService } from '../../../core/data/collection-data.service';
|
||||
import { RemoteData } from '../../../core/data/remote-data';
|
||||
@@ -16,7 +37,12 @@ import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/jso
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import { License } from '../../../core/shared/license.model';
|
||||
import { WorkspaceitemSectionLicenseObject } from '../../../core/submission/models/workspaceitem-section-license.model';
|
||||
import { hasValue, isNotEmpty, isNotNull, isNotUndefined, } from '../../../shared/empty.util';
|
||||
import {
|
||||
hasValue,
|
||||
isNotEmpty,
|
||||
isNotNull,
|
||||
isNotUndefined,
|
||||
} from '../../../shared/empty.util';
|
||||
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
|
||||
import { FormComponent } from '../../../shared/form/form.component';
|
||||
import { FormService } from '../../../shared/form/form.service';
|
||||
@@ -26,8 +52,10 @@ import { SectionFormOperationsService } from '../form/section-form-operations.se
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SECTION_LICENSE_FORM_LAYOUT, SECTION_LICENSE_FORM_MODEL } from './section-license.model';
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import {
|
||||
SECTION_LICENSE_FORM_LAYOUT,
|
||||
SECTION_LICENSE_FORM_MODEL,
|
||||
} from './section-license.model';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the submission license form.
|
||||
@@ -42,7 +70,7 @@ import { AsyncPipe, NgIf } from '@angular/common';
|
||||
NgIf,
|
||||
AsyncPipe,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionLicenseComponent extends SectionModelComponent implements AfterViewChecked {
|
||||
|
||||
@@ -187,7 +215,7 @@ export class SubmissionSectionLicenseComponent extends SectionModelComponent i
|
||||
// Remove any section's errors
|
||||
this.sectionService.dispatchRemoveSectionErrors(this.submissionId, this.sectionData.id);
|
||||
}
|
||||
})
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -47,7 +47,7 @@ import { SubmissionCoarNotifyConfig } from './submission-coar-notify.config';
|
||||
/**
|
||||
* A service responsible for fetching/sending data from/to the REST API on the CoarNotifyConfig endpoint
|
||||
*/
|
||||
@Injectable({providedIn: 'root'})
|
||||
@Injectable({ providedIn: 'root' })
|
||||
@dataService(SUBMISSION_COAR_NOTIFY_CONFIG)
|
||||
export class CoarNotifyConfigDataService extends IdentifiableDataService<SubmissionCoarNotifyConfig> implements FindAllData<SubmissionCoarNotifyConfig>, DeleteData<SubmissionCoarNotifyConfig>, PatchData<SubmissionCoarNotifyConfig>, CreateData<SubmissionCoarNotifyConfig> {
|
||||
createData: CreateDataImpl<SubmissionCoarNotifyConfig>;
|
||||
|
@@ -66,8 +66,8 @@ describe('SubmissionSectionCoarNotifyComponent', () => {
|
||||
});
|
||||
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [TranslateModule.forRoot(), SubmissionSectionCoarNotifyComponent],
|
||||
providers: [
|
||||
imports: [TranslateModule.forRoot(), SubmissionSectionCoarNotifyComponent],
|
||||
providers: [
|
||||
{ provide: LdnServicesService, useValue: ldnServicesService },
|
||||
{ provide: CoarNotifyConfigDataService, useValue: coarNotifyConfigDataService },
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
|
||||
@@ -77,8 +77,8 @@ describe('SubmissionSectionCoarNotifyComponent', () => {
|
||||
{ provide: 'sectionDataProvider', useValue: { id: 'sectionId', data: {} } },
|
||||
{ provide: 'submissionIdProvider', useValue: 'submissionId' },
|
||||
NgbDropdown,
|
||||
]
|
||||
}).compileComponents();
|
||||
],
|
||||
}).compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(SubmissionSectionCoarNotifyComponent);
|
||||
component = fixture.componentInstance;
|
||||
|
@@ -1,31 +1,54 @@
|
||||
import { ChangeDetectorRef, Component, Inject } from '@angular/core';
|
||||
import { Observable, Subscription } from 'rxjs';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { NgbDropdown, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { filter, map, take, tap, } from 'rxjs/operators';
|
||||
|
||||
import { hasValue, isEmpty, isNotEmpty } from '../../../shared/empty.util';
|
||||
|
||||
import {
|
||||
getFirstCompletedRemoteData,
|
||||
getPaginatedListPayload,
|
||||
getRemoteDataPayload
|
||||
} from '../../../core/shared/operators';
|
||||
AsyncPipe,
|
||||
NgClass,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
Inject,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
NgbDropdown,
|
||||
NgbDropdownModule,
|
||||
} from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
||||
import {
|
||||
Observable,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
filter,
|
||||
map,
|
||||
take,
|
||||
tap,
|
||||
} from 'rxjs/operators';
|
||||
|
||||
import { LdnServicesService } from '../../../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service';
|
||||
import {
|
||||
LdnService,
|
||||
LdnServiceByPattern,
|
||||
} from '../../../admin/admin-ldn-services/ldn-services-model/ldn-services.model';
|
||||
import { CoarNotifyConfigDataService } from './coar-notify-config-data.service';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import {
|
||||
getFirstCompletedRemoteData,
|
||||
getPaginatedListPayload,
|
||||
getRemoteDataPayload,
|
||||
} from '../../../core/shared/operators';
|
||||
import {
|
||||
hasValue,
|
||||
isEmpty,
|
||||
isNotEmpty,
|
||||
} from '../../../shared/empty.util';
|
||||
import { SubmissionSectionError } from '../../objects/submission-section-error.model';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { CoarNotifyConfigDataService } from './coar-notify-config-data.service';
|
||||
import { LdnPattern } from './submission-coar-notify.config';
|
||||
import { AsyncPipe, NgClass, NgForOf, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the submission section-coar-notify form.
|
||||
@@ -42,7 +65,7 @@ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
||||
TranslateModule,
|
||||
NgbDropdownModule,
|
||||
NgClass,
|
||||
InfiniteScrollModule
|
||||
InfiniteScrollModule,
|
||||
],
|
||||
providers: [NgbDropdown],
|
||||
})
|
||||
|
@@ -1,12 +1,12 @@
|
||||
import { SectionsType } from './sections-type';
|
||||
import { SubmissionSectionAccessesComponent } from './accesses/section-accesses.component';
|
||||
import { SubmissionSectionLicenseComponent } from './license/section-license.component';
|
||||
import { SubmissionSectionCcLicensesComponent } from './cc-license/submission-section-cc-licenses.component';
|
||||
import { SubmissionSectionSherpaPoliciesComponent } from './sherpa-policies/section-sherpa-policies.component';
|
||||
import { SubmissionSectionUploadComponent } from './upload/section-upload.component';
|
||||
import { SubmissionSectionFormComponent } from './form/section-form.component';
|
||||
import { SubmissionSectionIdentifiersComponent } from './identifiers/section-identifiers.component';
|
||||
import { SubmissionSectionLicenseComponent } from './license/section-license.component';
|
||||
import { SubmissionSectionCoarNotifyComponent } from './section-coar-notify/section-coar-notify.component';
|
||||
import { SectionsType } from './sections-type';
|
||||
import { SubmissionSectionSherpaPoliciesComponent } from './sherpa-policies/section-sherpa-policies.component';
|
||||
import { SubmissionSectionUploadComponent } from './upload/section-upload.component';
|
||||
|
||||
const submissionSectionsMap = new Map();
|
||||
|
||||
|
@@ -27,9 +27,9 @@ import { SectionsType } from './sections-type';
|
||||
* Directive for handling generic section functionality
|
||||
*/
|
||||
@Directive({
|
||||
selector: '[dsSection]',
|
||||
exportAs: 'sectionRef',
|
||||
standalone: true
|
||||
selector: '[dsSection]',
|
||||
exportAs: 'sectionRef',
|
||||
standalone: true,
|
||||
})
|
||||
export class SectionsDirective implements OnDestroy, OnInit {
|
||||
|
||||
|
@@ -63,7 +63,7 @@ import { SectionsType } from './sections-type';
|
||||
/**
|
||||
* A service that provides methods used in submission process.
|
||||
*/
|
||||
@Injectable({providedIn: 'root'})
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SectionsService {
|
||||
|
||||
/**
|
||||
|
@@ -21,17 +21,17 @@ describe('ContentAccordionComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
useClass: TranslateLoaderMock,
|
||||
},
|
||||
}),
|
||||
NgbCollapseModule,
|
||||
ContentAccordionComponent
|
||||
],
|
||||
})
|
||||
ContentAccordionComponent,
|
||||
],
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
|
@@ -1,12 +1,16 @@
|
||||
import {
|
||||
NgForOf,
|
||||
NgIf,
|
||||
TitleCasePipe,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
} from '@angular/core';
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { PermittedVersions } from '../../../../core/submission/models/sherpa-policies-details.model';
|
||||
import { NgForOf, NgIf, TitleCasePipe } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the inner accordions for the publisher policy versions.
|
||||
@@ -20,9 +24,9 @@ import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
TranslateModule,
|
||||
NgIf,
|
||||
NgbCollapseModule,
|
||||
TitleCasePipe
|
||||
TitleCasePipe,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class ContentAccordionComponent {
|
||||
/**
|
||||
|
@@ -20,16 +20,16 @@ describe('MetadataInformationComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
useClass: TranslateLoaderMock,
|
||||
},
|
||||
}),
|
||||
MetadataInformationComponent
|
||||
],
|
||||
})
|
||||
MetadataInformationComponent,
|
||||
],
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
|
@@ -1,11 +1,14 @@
|
||||
import {
|
||||
DatePipe,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
} from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { Metadata } from '../../../../core/submission/models/sherpa-policies-details.model';
|
||||
import { DatePipe, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the matadata informations.
|
||||
@@ -17,9 +20,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
||||
imports: [
|
||||
NgIf,
|
||||
TranslateModule,
|
||||
DatePipe
|
||||
DatePipe,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class MetadataInformationComponent {
|
||||
/**
|
||||
|
@@ -1,7 +1,13 @@
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { ComponentFixture, TestBed, } from '@angular/core/testing';
|
||||
import {
|
||||
ComponentFixture,
|
||||
TestBed,
|
||||
} from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { TranslateLoader, TranslateModule, } from '@ngx-translate/core';
|
||||
import {
|
||||
TranslateLoader,
|
||||
TranslateModule,
|
||||
} from '@ngx-translate/core';
|
||||
|
||||
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
|
||||
import { TranslateLoaderMock } from '../../../../shared/testing/translate-loader.mock';
|
||||
@@ -15,16 +21,16 @@ describe('PublicationInformationComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
useClass: TranslateLoaderMock,
|
||||
},
|
||||
}),
|
||||
PublicationInformationComponent
|
||||
],
|
||||
})
|
||||
PublicationInformationComponent,
|
||||
],
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
|
@@ -1,8 +1,14 @@
|
||||
import { Component, Input, } from '@angular/core';
|
||||
import {
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
} from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { Journal } from '../../../../core/submission/models/sherpa-policies-details.model';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the journal publication information.
|
||||
@@ -14,9 +20,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
||||
imports: [
|
||||
NgIf,
|
||||
TranslateModule,
|
||||
NgForOf
|
||||
NgForOf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class PublicationInformationComponent {
|
||||
/**
|
||||
|
@@ -1,7 +1,13 @@
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { ComponentFixture, TestBed, } from '@angular/core/testing';
|
||||
import {
|
||||
ComponentFixture,
|
||||
TestBed,
|
||||
} from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { TranslateLoader, TranslateModule, } from '@ngx-translate/core';
|
||||
import {
|
||||
TranslateLoader,
|
||||
TranslateModule,
|
||||
} from '@ngx-translate/core';
|
||||
|
||||
import { SherpaDataResponse } from '../../../../shared/mocks/section-sherpa-policies.service.mock';
|
||||
import { TranslateLoaderMock } from '../../../../shared/mocks/translate-loader.mock';
|
||||
@@ -15,21 +21,21 @@ describe('PublisherPolicyComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
useClass: TranslateLoaderMock,
|
||||
},
|
||||
}),
|
||||
PublisherPolicyComponent,
|
||||
]
|
||||
})
|
||||
.overrideComponent(PublisherPolicyComponent, {
|
||||
remove: {
|
||||
imports: [ContentAccordionComponent]
|
||||
}
|
||||
})
|
||||
],
|
||||
})
|
||||
.overrideComponent(PublisherPolicyComponent, {
|
||||
remove: {
|
||||
imports: [ContentAccordionComponent],
|
||||
},
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
|
@@ -1,10 +1,17 @@
|
||||
import { Component, Input, } from '@angular/core';
|
||||
import {
|
||||
KeyValuePipe,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
} from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { Policy } from '../../../../core/submission/models/sherpa-policies-details.model';
|
||||
import { AlertType } from '../../../../shared/alert/alert-type';
|
||||
import { ContentAccordionComponent } from '../content-accordion/content-accordion.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { KeyValuePipe, NgForOf, NgIf } from '@angular/common';
|
||||
|
||||
/**
|
||||
* This component represents a section that contains the publisher policy informations.
|
||||
@@ -18,9 +25,9 @@ import { KeyValuePipe, NgForOf, NgIf } from '@angular/common';
|
||||
TranslateModule,
|
||||
KeyValuePipe,
|
||||
NgForOf,
|
||||
NgIf
|
||||
NgIf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class PublisherPolicyComponent {
|
||||
|
||||
|
@@ -1,26 +1,36 @@
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { DebugElement } from '@angular/core';
|
||||
import { ComponentFixture, inject, TestBed, } from '@angular/core/testing';
|
||||
import { BrowserModule, By, } from '@angular/platform-browser';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
} from '@angular/core/testing';
|
||||
import {
|
||||
BrowserModule,
|
||||
By,
|
||||
} from '@angular/platform-browser';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { TranslateLoader, TranslateModule, } from '@ngx-translate/core';
|
||||
import {
|
||||
TranslateLoader,
|
||||
TranslateModule,
|
||||
} from '@ngx-translate/core';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
import { AppState } from '../../../app.reducer';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { SherpaDataResponse } from '../../../shared/mocks/section-sherpa-policies.service.mock';
|
||||
import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock';
|
||||
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SubmissionSectionSherpaPoliciesComponent } from './section-sherpa-policies.component';
|
||||
import { MetadataInformationComponent } from './metadata-information/metadata-information.component';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { PublisherPolicyComponent } from './publisher-policy/publisher-policy.component';
|
||||
import { PublicationInformationComponent } from './publication-information/publication-information.component';
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
import { PublisherPolicyComponent } from './publisher-policy/publisher-policy.component';
|
||||
import { SubmissionSectionSherpaPoliciesComponent } from './section-sherpa-policies.component';
|
||||
|
||||
describe('SubmissionSectionSherpaPoliciesComponent', () => {
|
||||
let component: SubmissionSectionSherpaPoliciesComponent;
|
||||
@@ -55,35 +65,35 @@ describe('SubmissionSectionSherpaPoliciesComponent', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [
|
||||
BrowserModule,
|
||||
NoopAnimationsModule,
|
||||
TranslateModule.forRoot({
|
||||
imports: [
|
||||
BrowserModule,
|
||||
NoopAnimationsModule,
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
provide: TranslateLoader,
|
||||
useClass: TranslateLoaderMock,
|
||||
},
|
||||
}),
|
||||
NgbCollapseModule,
|
||||
SubmissionSectionSherpaPoliciesComponent
|
||||
],
|
||||
providers: [
|
||||
{ provide: SectionsService, useValue: sectionsServiceStub },
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
|
||||
{ provide: SubmissionService, useValue: SubmissionServiceStub },
|
||||
{ provide: Store, useValue: storeStub },
|
||||
{ provide: 'sectionDataProvider', useValue: sectionData },
|
||||
{ provide: 'submissionIdProvider', useValue: '1508' },
|
||||
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
|
||||
]
|
||||
})
|
||||
}),
|
||||
NgbCollapseModule,
|
||||
SubmissionSectionSherpaPoliciesComponent,
|
||||
],
|
||||
providers: [
|
||||
{ provide: SectionsService, useValue: sectionsServiceStub },
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
|
||||
{ provide: SubmissionService, useValue: SubmissionServiceStub },
|
||||
{ provide: Store, useValue: storeStub },
|
||||
{ provide: 'sectionDataProvider', useValue: sectionData },
|
||||
{ provide: 'submissionIdProvider', useValue: '1508' },
|
||||
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
|
||||
],
|
||||
})
|
||||
.overrideComponent(SubmissionSectionSherpaPoliciesComponent, {
|
||||
remove: { imports: [
|
||||
MetadataInformationComponent,
|
||||
AlertComponent,
|
||||
PublisherPolicyComponent,
|
||||
PublicationInformationComponent,
|
||||
]}
|
||||
MetadataInformationComponent,
|
||||
AlertComponent,
|
||||
PublisherPolicyComponent,
|
||||
PublicationInformationComponent,
|
||||
] },
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
@@ -1,25 +1,38 @@
|
||||
import { Component, Inject, } from '@angular/core';
|
||||
import { BehaviorSubject, Observable, of, Subscription, } from 'rxjs';
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Inject,
|
||||
} from '@angular/core';
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
BehaviorSubject,
|
||||
Observable,
|
||||
of,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
|
||||
import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import {
|
||||
WorkspaceitemSectionSherpaPoliciesObject
|
||||
} from '../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
|
||||
import { WorkspaceitemSectionSherpaPoliciesObject } from '../../../core/submission/models/workspaceitem-section-sherpa-policies.model';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { AlertType } from '../../../shared/alert/alert-type';
|
||||
import {
|
||||
hasValue,
|
||||
isEmpty,
|
||||
} from '../../../shared/empty.util';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { MetadataInformationComponent } from './metadata-information/metadata-information.component';
|
||||
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { PublisherPolicyComponent } from './publisher-policy/publisher-policy.component';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { PublicationInformationComponent } from './publication-information/publication-information.component';
|
||||
import { VarDirective } from '../../../shared/utils/var.directive';
|
||||
import { hasValue, isEmpty } from '../../../shared/empty.util';
|
||||
import { PublisherPolicyComponent } from './publisher-policy/publisher-policy.component';
|
||||
|
||||
/**
|
||||
* This component represents a section for the sherpa policy informations structure.
|
||||
@@ -38,9 +51,9 @@ import { hasValue, isEmpty } from '../../../shared/empty.util';
|
||||
PublicationInformationComponent,
|
||||
AsyncPipe,
|
||||
VarDirective,
|
||||
NgForOf
|
||||
NgForOf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionSherpaPoliciesComponent extends SectionModelComponent {
|
||||
|
||||
|
@@ -1,4 +1,12 @@
|
||||
import { Component, Input, OnInit, } from '@angular/core';
|
||||
import {
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
OnInit,
|
||||
} from '@angular/core';
|
||||
import { find } from 'rxjs/operators';
|
||||
|
||||
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
@@ -7,7 +15,6 @@ import { GroupDataService } from '../../../../core/eperson/group-data.service';
|
||||
import { Group } from '../../../../core/eperson/models/group.model';
|
||||
import { ResourcePolicy } from '../../../../core/resource-policy/models/resource-policy.model';
|
||||
import { isEmpty } from '../../../../shared/empty.util';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
|
||||
/**
|
||||
* This component represents a badge that describe an access condition
|
||||
@@ -17,9 +24,9 @@ import { NgForOf, NgIf } from '@angular/common';
|
||||
templateUrl: './submission-section-upload-access-conditions.component.html',
|
||||
imports: [
|
||||
NgForOf,
|
||||
NgIf
|
||||
NgIf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionUploadAccessConditionsComponent implements OnInit {
|
||||
|
||||
|
@@ -1,35 +1,48 @@
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { FormsModule, ReactiveFormsModule, } from '@angular/forms';
|
||||
import { NgbActiveModal, NgbModal, } from '@ng-bootstrap/ng-bootstrap';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
fakeAsync,
|
||||
TestBed,
|
||||
tick,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import {
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
} from '@angular/forms';
|
||||
import {
|
||||
NgbActiveModal,
|
||||
NgbModal,
|
||||
} from '@ng-bootstrap/ng-bootstrap';
|
||||
import {
|
||||
DynamicFormArrayModel,
|
||||
DynamicFormControlEvent,
|
||||
DynamicFormGroupModel,
|
||||
DynamicSelectModel,
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { provideMockStore } from '@ngrx/store/testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { NgxMaskModule } from 'ngx-mask';
|
||||
import { of } from 'rxjs';
|
||||
|
||||
import {
|
||||
JsonPatchOperationPathCombiner
|
||||
} from '../../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
APP_CONFIG,
|
||||
APP_DATA_SERVICES_MAP,
|
||||
} from '../../../../../../config/app-config.interface';
|
||||
import { environment } from '../../../../../../environments/environment.test';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsService
|
||||
} from '../../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { dateToISOFormat } from '../../../../../shared/date.util';
|
||||
import {
|
||||
DynamicCustomSwitchModel
|
||||
} from '../../../../../shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.model';
|
||||
import { DsDynamicTypeBindRelationService } from '../../../../../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service';
|
||||
import { DynamicCustomSwitchModel } from '../../../../../shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.model';
|
||||
import { FormBuilderService } from '../../../../../shared/form/builder/form-builder.service';
|
||||
import { SubmissionServiceStub } from '../../../../../shared/testing/submission-service.stub';
|
||||
import { SubmissionService } from '../../../../submission.service';
|
||||
import { SubmissionSectionUploadFileEditComponent } from './section-upload-file-edit.component';
|
||||
import {
|
||||
FormFieldMetadataValueObject
|
||||
} from '../../../../../shared/form/builder/models/form-field-metadata-value.model';
|
||||
import { FormFieldMetadataValueObject } from '../../../../../shared/form/builder/models/form-field-metadata-value.model';
|
||||
import { FormComponent } from '../../../../../shared/form/form.component';
|
||||
import { FormService } from '../../../../../shared/form/form.service';
|
||||
import { getMockFormService } from '../../../../../shared/mocks/form-service.mock';
|
||||
@@ -43,25 +56,19 @@ import {
|
||||
mockUploadConfigResponseMetadata,
|
||||
mockUploadFiles,
|
||||
} from '../../../../../shared/mocks/submission.mock';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsServiceStub
|
||||
} from '../../../../../shared/testing/submission-json-patch-operations-service.stub';
|
||||
import { SubmissionJsonPatchOperationsServiceStub } from '../../../../../shared/testing/submission-json-patch-operations-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../../../shared/testing/utils.test';
|
||||
import { SubmissionService } from '../../../../submission.service';
|
||||
import { SectionUploadService } from '../../section-upload.service';
|
||||
import { provideMockStore } from '@ngrx/store/testing';
|
||||
import {
|
||||
DsDynamicTypeBindRelationService
|
||||
} from '../../../../../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service';
|
||||
import { APP_CONFIG, APP_DATA_SERVICES_MAP } from '../../../../../../config/app-config.interface';
|
||||
import { environment } from '../../../../../../environments/environment.test';
|
||||
import { NgxMaskModule } from 'ngx-mask';
|
||||
import { POLICY_DEFAULT_WITH_LIST } from '../../section-upload-constants';
|
||||
import { SubmissionSectionUploadFileEditComponent } from './section-upload-file-edit.component';
|
||||
|
||||
function getMockDsDynamicTypeBindRelationService(): DsDynamicTypeBindRelationService {
|
||||
return jasmine.createSpyObj('DsDynamicTypeBindRelationService', {
|
||||
getRelatedFormModel: jasmine.createSpy('getRelatedFormModel'),
|
||||
matchesCondition: jasmine.createSpy('matchesCondition'),
|
||||
subscribeRelations: jasmine.createSpy('subscribeRelations')
|
||||
subscribeRelations: jasmine.createSpy('subscribeRelations'),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -86,7 +93,7 @@ const initialState: any = {
|
||||
'json/patch': {},
|
||||
'metaTag': {},
|
||||
'route': {},
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
describe('SubmissionSectionUploadFileEditComponent test suite', () => {
|
||||
@@ -117,12 +124,12 @@ describe('SubmissionSectionUploadFileEditComponent test suite', () => {
|
||||
delete noAccessConditionsMock.accessConditions;
|
||||
|
||||
const mockCdRef = Object.assign({
|
||||
detectChanges: () => undefined
|
||||
detectChanges: () => undefined,
|
||||
});
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
@@ -131,25 +138,25 @@ describe('SubmissionSectionUploadFileEditComponent test suite', () => {
|
||||
SubmissionSectionUploadFileEditComponent,
|
||||
TestComponent,
|
||||
NgxMaskModule.forRoot(),
|
||||
],
|
||||
providers: [
|
||||
],
|
||||
providers: [
|
||||
{ provide: FormService, useValue: getMockFormService() },
|
||||
{ provide: SubmissionService, useClass: SubmissionServiceStub },
|
||||
{ provide: SubmissionJsonPatchOperationsService, useValue: submissionJsonPatchOperationsServiceStub },
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: jsonPatchOpBuilder },
|
||||
{ provide: SectionUploadService, useValue: getMockSectionUploadService() },
|
||||
provideMockStore({initialState}),
|
||||
provideMockStore({ initialState }),
|
||||
FormBuilderService,
|
||||
{provide: ChangeDetectorRef, useValue: mockCdRef},
|
||||
{ provide: ChangeDetectorRef, useValue: mockCdRef },
|
||||
SubmissionSectionUploadFileEditComponent,
|
||||
NgbModal,
|
||||
NgbActiveModal,
|
||||
{ provide: DsDynamicTypeBindRelationService, useValue: getMockDsDynamicTypeBindRelationService() },
|
||||
{ provide: APP_CONFIG, useValue: environment },
|
||||
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
|
||||
],
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
}).compileComponents().then();
|
||||
}).compileComponents().then();
|
||||
}));
|
||||
|
||||
describe('', () => {
|
||||
@@ -397,8 +404,8 @@ describe('SubmissionSectionUploadFileEditComponent test suite', () => {
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
FormComponent,
|
||||
ReactiveFormsModule
|
||||
]
|
||||
ReactiveFormsModule,
|
||||
],
|
||||
})
|
||||
class TestComponent {
|
||||
}
|
||||
|
@@ -1,4 +1,11 @@
|
||||
import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, } from '@angular/core';
|
||||
import { NgIf } from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
OnDestroy,
|
||||
OnInit,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
||||
import {
|
||||
@@ -14,36 +21,39 @@ import {
|
||||
} from '@ng-dynamic-forms/core';
|
||||
import { DynamicDateControlValue } from '@ng-dynamic-forms/core/lib/model/dynamic-date-control.model';
|
||||
import { DynamicFormControlCondition } from '@ng-dynamic-forms/core/lib/model/misc/dynamic-form-control-relation.model';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { filter, mergeMap, take, } from 'rxjs/operators';
|
||||
import {
|
||||
DynamicCustomSwitchModel
|
||||
} from 'src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.model';
|
||||
filter,
|
||||
mergeMap,
|
||||
take,
|
||||
} from 'rxjs/operators';
|
||||
import { SubmissionObject } from 'src/app/core/submission/models/submission-object.model';
|
||||
import { WorkspaceitemSectionUploadObject } from 'src/app/core/submission/models/workspaceitem-section-upload.model';
|
||||
import { DynamicCustomSwitchModel } from 'src/app/shared/form/builder/ds-dynamic-form-ui/models/custom-switch/custom-switch.model';
|
||||
|
||||
import { AccessConditionOption } from '../../../../../core/config/models/config-access-condition-option.model';
|
||||
import { SubmissionFormsModel } from '../../../../../core/config/models/config-submission-forms.model';
|
||||
import {
|
||||
JsonPatchOperationPathCombiner
|
||||
} from '../../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { SubmissionObject } from '../../../../../core/submission/models/submission-object.model';
|
||||
import {
|
||||
WorkspaceitemSectionUploadObject
|
||||
} from '../../../../../core/submission/models/workspaceitem-section-upload.model';
|
||||
import {
|
||||
WorkspaceitemSectionUploadFileObject
|
||||
} from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsService
|
||||
} from '../../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { WorkspaceitemSectionUploadObject } from '../../../../../core/submission/models/workspaceitem-section-upload.model';
|
||||
import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { dateToISOFormat } from '../../../../../shared/date.util';
|
||||
import { hasNoValue, hasValue, isNotEmpty, isNotNull, } from '../../../../../shared/empty.util';
|
||||
import {
|
||||
hasNoValue,
|
||||
hasValue,
|
||||
isNotEmpty,
|
||||
isNotNull,
|
||||
} from '../../../../../shared/empty.util';
|
||||
import { FormBuilderService } from '../../../../../shared/form/builder/form-builder.service';
|
||||
import { FormFieldModel } from '../../../../../shared/form/builder/models/form-field.model';
|
||||
import { FormComponent } from '../../../../../shared/form/form.component';
|
||||
import { FormService } from '../../../../../shared/form/form.service';
|
||||
import { SubmissionService } from '../../../../submission.service';
|
||||
import { SectionUploadService } from '../../section-upload.service';
|
||||
import { POLICY_DEFAULT_WITH_LIST } from '../../section-upload-constants';
|
||||
import {
|
||||
BITSTREAM_ACCESS_CONDITION_GROUP_CONFIG,
|
||||
BITSTREAM_ACCESS_CONDITION_GROUP_LAYOUT,
|
||||
@@ -60,11 +70,6 @@ import {
|
||||
BITSTREAM_METADATA_FORM_GROUP_CONFIG,
|
||||
BITSTREAM_METADATA_FORM_GROUP_LAYOUT,
|
||||
} from './section-upload-file-edit.model';
|
||||
import { NgIf } from '@angular/common';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { POLICY_DEFAULT_WITH_LIST } from '../../section-upload-constants';
|
||||
import { SubmissionObject } from 'src/app/core/submission/models/submission-object.model';
|
||||
import { WorkspaceitemSectionUploadObject } from 'src/app/core/submission/models/workspaceitem-section-upload.model';
|
||||
|
||||
/**
|
||||
* This component represents the edit form for bitstream
|
||||
@@ -76,9 +81,9 @@ import { WorkspaceitemSectionUploadObject } from 'src/app/core/submission/models
|
||||
imports: [
|
||||
FormComponent,
|
||||
NgIf,
|
||||
TranslateModule
|
||||
TranslateModule,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionUploadFileEditComponent
|
||||
implements OnInit, OnDestroy {
|
||||
|
@@ -1,18 +1,33 @@
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import {
|
||||
AsyncPipe,
|
||||
CommonModule,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { AsyncPipe, CommonModule } from '@angular/common';
|
||||
|
||||
import { of, of as observableOf } from 'rxjs';
|
||||
import { NgbModal, NgbModule, } from '@ng-bootstrap/ng-bootstrap';
|
||||
import {
|
||||
NgbModal,
|
||||
NgbModule,
|
||||
} from '@ng-bootstrap/ng-bootstrap';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
of as observableOf,
|
||||
of,
|
||||
} from 'rxjs';
|
||||
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../../config/app-config.interface';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsService
|
||||
} from '../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../../../core/submission/submission-json-patch-operations.service';
|
||||
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
|
||||
import { FormService } from '../../../../shared/form/form.service';
|
||||
import { getMockFormService } from '../../../../shared/mocks/form-service.mock';
|
||||
@@ -23,22 +38,19 @@ import {
|
||||
mockUploadConfigResponse,
|
||||
mockUploadFiles,
|
||||
} from '../../../../shared/mocks/submission.mock';
|
||||
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
|
||||
import { HALEndpointServiceStub } from '../../../../shared/testing/hal-endpoint-service.stub';
|
||||
import {
|
||||
SubmissionJsonPatchOperationsServiceStub
|
||||
} from '../../../../shared/testing/submission-json-patch-operations-service.stub';
|
||||
import { SubmissionJsonPatchOperationsServiceStub } from '../../../../shared/testing/submission-json-patch-operations-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../../shared/testing/utils.test';
|
||||
import { ThemeService } from '../../../../shared/theme-support/theme.service';
|
||||
import { FileSizePipe } from '../../../../shared/utils/file-size-pipe';
|
||||
import { SubmissionService } from '../../../submission.service';
|
||||
import { SectionUploadService } from '../section-upload.service';
|
||||
import { POLICY_DEFAULT_WITH_LIST } from '../section-upload-constants';
|
||||
import { SubmissionSectionUploadFileEditComponent } from './edit/section-upload-file-edit.component';
|
||||
import { SubmissionSectionUploadFileComponent } from './section-upload-file.component';
|
||||
import { SubmissionSectionUploadFileViewComponent } from './view/section-upload-file-view.component';
|
||||
import { ThemeService } from '../../../../shared/theme-support/theme.service';
|
||||
import { getMockThemeService } from '../../../../shared/mocks/theme-service.mock';
|
||||
import { POLICY_DEFAULT_WITH_LIST } from '../section-upload-constants';
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../../config/app-config.interface';
|
||||
|
||||
const configMetadataFormMock = {
|
||||
rows: [{
|
||||
@@ -83,15 +95,15 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
CommonModule,
|
||||
NgbModule,
|
||||
TranslateModule.forRoot(),
|
||||
FileSizePipe,
|
||||
SubmissionSectionUploadFileComponent,
|
||||
TestComponent,
|
||||
],
|
||||
providers: [
|
||||
],
|
||||
providers: [
|
||||
{ provide: FormService, useValue: getMockFormService() },
|
||||
{ provide: HALEndpointService, useValue: new HALEndpointServiceStub('workspaceitems') },
|
||||
{ provide: JsonPatchOperationsBuilder, useValue: jsonPatchOpBuilder },
|
||||
@@ -105,13 +117,13 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
||||
SubmissionSectionUploadFileComponent,
|
||||
SubmissionSectionUploadFileEditComponent,
|
||||
FormBuilderService,
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
})
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
})
|
||||
.overrideComponent(SubmissionSectionUploadFileComponent, {
|
||||
remove: { imports: [
|
||||
SubmissionSectionUploadFileViewComponent,
|
||||
]}
|
||||
SubmissionSectionUploadFileViewComponent,
|
||||
] },
|
||||
})
|
||||
.compileComponents().then();
|
||||
}));
|
||||
@@ -266,14 +278,14 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
SubmissionSectionUploadFileComponent,
|
||||
CommonModule,
|
||||
AsyncPipe,
|
||||
NgbModule]
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
SubmissionSectionUploadFileComponent,
|
||||
CommonModule,
|
||||
AsyncPipe,
|
||||
NgbModule],
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,3 +1,7 @@
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
Component,
|
||||
Input,
|
||||
@@ -8,8 +12,12 @@ import {
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||
import { NgbModalOptions } from '@ng-bootstrap/ng-bootstrap/modal/modal-config';
|
||||
import {
|
||||
NgbModalOptions,
|
||||
NgbModalOptions,
|
||||
} from '@ng-bootstrap/ng-bootstrap/modal/modal-config';
|
||||
import { DynamicFormControlModel } from '@ng-dynamic-forms/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
BehaviorSubject,
|
||||
Observable,
|
||||
@@ -20,26 +28,23 @@ import { filter } from 'rxjs/operators';
|
||||
import { SubmissionFormsModel } from '../../../../core/config/models/config-submission-forms.model';
|
||||
import { JsonPatchOperationPathCombiner } from '../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||
import { JsonPatchOperationsBuilder } from '../../../../core/json-patch/builder/json-patch-operations-builder';
|
||||
import { Bitstream } from '../../../../core/shared/bitstream.model';
|
||||
import {
|
||||
Bitstream,
|
||||
Bitstream,
|
||||
} from '../../../../core/shared/bitstream.model';
|
||||
import { WorkspaceitemSectionUploadFileObject } from '../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
||||
import { SubmissionJsonPatchOperationsService } from '../../../../core/submission/submission-json-patch-operations.service';
|
||||
import {
|
||||
hasValue,
|
||||
isNotUndefined,
|
||||
} from '../../../../shared/empty.util';
|
||||
import { ThemedFileDownloadLinkComponent } from '../../../../shared/file-download-link/themed-file-download-link.component';
|
||||
import { FormService } from '../../../../shared/form/form.service';
|
||||
import { FileSizePipe } from '../../../../shared/utils/file-size-pipe';
|
||||
import { SubmissionService } from '../../../submission.service';
|
||||
import { SectionUploadService } from '../section-upload.service';
|
||||
import { SubmissionSectionUploadFileEditComponent } from './edit/section-upload-file-edit.component';
|
||||
import { Bitstream } from '../../../../core/shared/bitstream.model';
|
||||
import { NgbModalOptions } from '@ng-bootstrap/ng-bootstrap/modal/modal-config';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { SubmissionSectionUploadFileViewComponent } from './view/section-upload-file-view.component';
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import {
|
||||
ThemedFileDownloadLinkComponent
|
||||
} from '../../../../shared/file-download-link/themed-file-download-link.component';
|
||||
import { FileSizePipe } from '../../../../shared/utils/file-size-pipe';
|
||||
|
||||
/**
|
||||
* This component represents a single bitstream contained in the submission
|
||||
@@ -54,9 +59,9 @@ import { FileSizePipe } from '../../../../shared/utils/file-size-pipe';
|
||||
NgIf,
|
||||
AsyncPipe,
|
||||
ThemedFileDownloadLinkComponent,
|
||||
FileSizePipe
|
||||
FileSizePipe,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionUploadFileComponent implements OnChanges, OnInit, OnDestroy {
|
||||
/**
|
||||
|
@@ -10,8 +10,8 @@ import { SubmissionSectionUploadFileComponent } from './section-upload-file.comp
|
||||
@Component({
|
||||
selector: 'ds-themed-submission-upload-section-file',
|
||||
styleUrls: [],
|
||||
templateUrl: '../../../../shared/theme-support/themed.component.html',
|
||||
standalone: true
|
||||
templateUrl: '../../../../shared/theme-support/themed.component.html',
|
||||
standalone: true,
|
||||
})
|
||||
export class ThemedSubmissionSectionUploadFileComponent
|
||||
extends ThemedComponent<SubmissionSectionUploadFileComponent> {
|
||||
|
@@ -1,5 +1,14 @@
|
||||
import { ChangeDetectionStrategy, Component, NO_ERRORS_SCHEMA, } from '@angular/core';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/testing';
|
||||
import {
|
||||
ChangeDetectionStrategy,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { Metadata } from '../../../../../core/shared/metadata.utils';
|
||||
@@ -7,10 +16,8 @@ import { FormComponent } from '../../../../../shared/form/form.component';
|
||||
import { mockUploadFiles } from '../../../../../shared/mocks/submission.mock';
|
||||
import { createTestComponent } from '../../../../../shared/testing/utils.test';
|
||||
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
|
||||
import { SubmissionSectionUploadAccessConditionsComponent } from '../../accessConditions/submission-section-upload-access-conditions.component';
|
||||
import { SubmissionSectionUploadFileViewComponent } from './section-upload-file-view.component';
|
||||
import {
|
||||
SubmissionSectionUploadAccessConditionsComponent
|
||||
} from '../../accessConditions/submission-section-upload-access-conditions.component';
|
||||
|
||||
describe('SubmissionSectionUploadFileViewComponent test suite', () => {
|
||||
|
||||
@@ -36,11 +43,11 @@ describe('SubmissionSectionUploadFileViewComponent test suite', () => {
|
||||
})
|
||||
.overrideComponent(SubmissionSectionUploadFileViewComponent, {
|
||||
remove: {
|
||||
imports: [SubmissionSectionUploadAccessConditionsComponent]
|
||||
imports: [SubmissionSectionUploadAccessConditionsComponent],
|
||||
},
|
||||
add: {
|
||||
changeDetection: ChangeDetectionStrategy.Default
|
||||
}
|
||||
changeDetection: ChangeDetectionStrategy.Default,
|
||||
},
|
||||
})
|
||||
.compileComponents().then();
|
||||
}));
|
||||
@@ -102,7 +109,7 @@ describe('SubmissionSectionUploadFileViewComponent test suite', () => {
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,17 +1,23 @@
|
||||
import { Component, Input, OnInit, } from '@angular/core';
|
||||
|
||||
import { MetadataMap, MetadataValue, } from '../../../../../core/shared/metadata.models';
|
||||
import { Metadata } from '../../../../../core/shared/metadata.utils';
|
||||
import {
|
||||
WorkspaceitemSectionUploadFileObject
|
||||
} from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
||||
import { isNotEmpty } from '../../../../../shared/empty.util';
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
SubmissionSectionUploadAccessConditionsComponent
|
||||
} from '../../accessConditions/submission-section-upload-access-conditions.component';
|
||||
Component,
|
||||
Input,
|
||||
OnInit,
|
||||
} from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import {
|
||||
MetadataMap,
|
||||
MetadataValue,
|
||||
} from '../../../../../core/shared/metadata.models';
|
||||
import { Metadata } from '../../../../../core/shared/metadata.utils';
|
||||
import { WorkspaceitemSectionUploadFileObject } from '../../../../../core/submission/models/workspaceitem-section-upload-file.model';
|
||||
import { isNotEmpty } from '../../../../../shared/empty.util';
|
||||
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { SubmissionSectionUploadAccessConditionsComponent } from '../../accessConditions/submission-section-upload-access-conditions.component';
|
||||
|
||||
/**
|
||||
* This component allow to show bitstream's metadata
|
||||
@@ -24,9 +30,9 @@ import { NgForOf, NgIf } from '@angular/common';
|
||||
TranslateModule,
|
||||
TruncatePipe,
|
||||
NgIf,
|
||||
NgForOf
|
||||
NgForOf,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionUploadFileViewComponent implements OnInit {
|
||||
|
||||
|
@@ -1,10 +1,20 @@
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
NO_ERRORS_SCHEMA,
|
||||
} from '@angular/core';
|
||||
import {
|
||||
ComponentFixture,
|
||||
inject,
|
||||
TestBed,
|
||||
waitForAsync,
|
||||
} from '@angular/core/testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { cold } from 'jasmine-marbles';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
import { SubmissionUploadsModel } from '../../../core/config/models/config-submission-uploads.model';
|
||||
import { SubmissionFormsConfigDataService } from '../../../core/config/submission-forms-config-data.service';
|
||||
import { SubmissionUploadsConfigDataService } from '../../../core/config/submission-uploads-config-data.service';
|
||||
@@ -16,6 +26,7 @@ import { ResourcePolicy } from '../../../core/resource-policy/models/resource-po
|
||||
import { ResourcePolicyDataService } from '../../../core/resource-policy/resource-policy-data.service';
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import { PageInfo } from '../../../core/shared/page-info.model';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { getMockSectionUploadService } from '../../../shared/mocks/section-upload.service.mock';
|
||||
import {
|
||||
mockGroup,
|
||||
@@ -27,10 +38,12 @@ import {
|
||||
mockUploadFiles,
|
||||
mockUploadFilesData,
|
||||
} from '../../../shared/mocks/submission.mock';
|
||||
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
|
||||
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
|
||||
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
||||
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
||||
import { createTestComponent } from '../../../shared/testing/utils.test';
|
||||
import { ThemeService } from '../../../shared/theme-support/theme.service';
|
||||
import { SubmissionObjectState } from '../../objects/submission-objects.reducer';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
@@ -38,10 +51,6 @@ import { SectionsService } from '../sections.service';
|
||||
import { SectionsType } from '../sections-type';
|
||||
import { SubmissionSectionUploadComponent } from './section-upload.component';
|
||||
import { SectionUploadService } from './section-upload.service';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { ThemeService } from '../../../shared/theme-support/theme.service';
|
||||
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
|
||||
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
||||
|
||||
function getMockSubmissionUploadsConfigService(): SubmissionFormsConfigDataService {
|
||||
return jasmine.createSpyObj('SubmissionUploadsConfigService', {
|
||||
@@ -167,13 +176,13 @@ describe('SubmissionSectionUploadComponent test suite', () => {
|
||||
};
|
||||
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
imports: [
|
||||
CommonModule,
|
||||
TranslateModule.forRoot(),
|
||||
SubmissionSectionUploadComponent,
|
||||
TestComponent,
|
||||
],
|
||||
providers: [
|
||||
],
|
||||
providers: [
|
||||
{ provide: CollectionDataService, useValue: collectionDataService },
|
||||
{ provide: GroupDataService, useValue: groupService },
|
||||
{ provide: ResourcePolicyDataService, useValue: resourcePolicyService },
|
||||
@@ -183,19 +192,19 @@ describe('SubmissionSectionUploadComponent test suite', () => {
|
||||
{ provide: SectionUploadService, useValue: bitstreamService },
|
||||
{ provide: 'sectionDataProvider', useValue: sectionObject },
|
||||
{ provide: 'submissionIdProvider', useValue: submissionId },
|
||||
{ provide: ThemeService, useValue: getMockThemeService()},
|
||||
{ provide: ThemeService, useValue: getMockThemeService() },
|
||||
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
|
||||
ChangeDetectorRef,
|
||||
SubmissionSectionUploadComponent,
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
})
|
||||
.overrideComponent(SubmissionSectionUploadComponent, {
|
||||
remove: {
|
||||
imports: [AlertComponent]
|
||||
}
|
||||
})
|
||||
.compileComponents().then();
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA],
|
||||
})
|
||||
.overrideComponent(SubmissionSectionUploadComponent, {
|
||||
remove: {
|
||||
imports: [AlertComponent],
|
||||
},
|
||||
})
|
||||
.compileComponents().then();
|
||||
}));
|
||||
|
||||
describe('', () => {
|
||||
@@ -370,11 +379,11 @@ describe('SubmissionSectionUploadComponent test suite', () => {
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule]
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``,
|
||||
standalone: true,
|
||||
imports: [
|
||||
CommonModule],
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
|
@@ -1,4 +1,14 @@
|
||||
import { ChangeDetectorRef, Component, Inject, } from '@angular/core';
|
||||
import {
|
||||
AsyncPipe,
|
||||
NgForOf,
|
||||
NgIf,
|
||||
} from '@angular/common';
|
||||
import {
|
||||
ChangeDetectorRef,
|
||||
Component,
|
||||
Inject,
|
||||
} from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import {
|
||||
BehaviorSubject,
|
||||
combineLatest,
|
||||
@@ -6,7 +16,14 @@ import {
|
||||
Observable,
|
||||
Subscription,
|
||||
} from 'rxjs';
|
||||
import { distinctUntilChanged, filter, map, mergeMap, switchMap, tap, } from 'rxjs/operators';
|
||||
import {
|
||||
distinctUntilChanged,
|
||||
filter,
|
||||
map,
|
||||
mergeMap,
|
||||
switchMap,
|
||||
tap,
|
||||
} from 'rxjs/operators';
|
||||
import { WorkspaceitemSectionUploadObject } from 'src/app/core/submission/models/workspaceitem-section-upload.model';
|
||||
|
||||
import { DSONameService } from '../../../core/breadcrumbs/dso-name.service';
|
||||
@@ -21,21 +38,22 @@ import { Group } from '../../../core/eperson/models/group.model';
|
||||
import { ResourcePolicyDataService } from '../../../core/resource-policy/resource-policy-data.service';
|
||||
import { Collection } from '../../../core/shared/collection.model';
|
||||
import { getFirstSucceededRemoteData } from '../../../core/shared/operators';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { AlertType } from '../../../shared/alert/alert-type';
|
||||
import { hasValue, isNotEmpty, isNotUndefined, isUndefined, } from '../../../shared/empty.util';
|
||||
import {
|
||||
hasValue,
|
||||
isNotEmpty,
|
||||
isNotUndefined,
|
||||
isUndefined,
|
||||
} from '../../../shared/empty.util';
|
||||
import { followLink } from '../../../shared/utils/follow-link-config.model';
|
||||
import { SubmissionObjectEntry } from '../../objects/submission-objects.reducer';
|
||||
import { SubmissionService } from '../../submission.service';
|
||||
import { SectionModelComponent } from '../models/section.model';
|
||||
import { SectionDataObject } from '../models/section-data.model';
|
||||
import { SectionsService } from '../sections.service';
|
||||
import { SubmissionSectionUploadAccessConditionsComponent } from './accessConditions/submission-section-upload-access-conditions.component';
|
||||
import { ThemedSubmissionSectionUploadFileComponent } from './file/themed-section-upload-file.component';
|
||||
import {
|
||||
SubmissionSectionUploadAccessConditionsComponent
|
||||
} from './accessConditions/submission-section-upload-access-conditions.component';
|
||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||
import { AlertComponent } from '../../../shared/alert/alert.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { SectionUploadService } from './section-upload.service';
|
||||
|
||||
export const POLICY_DEFAULT_NO_LIST = 1; // Banner1
|
||||
@@ -60,9 +78,9 @@ export interface AccessConditionGroupsMapEntry {
|
||||
AlertComponent,
|
||||
TranslateModule,
|
||||
NgForOf,
|
||||
AsyncPipe
|
||||
AsyncPipe,
|
||||
],
|
||||
standalone: true
|
||||
standalone: true,
|
||||
})
|
||||
export class SubmissionSectionUploadComponent extends SectionModelComponent {
|
||||
|
||||
|
@@ -28,7 +28,7 @@ import { SubmissionState } from '../../submission.reducers';
|
||||
/**
|
||||
* A service that provides methods to handle submission's bitstream state.
|
||||
*/
|
||||
@Injectable({providedIn: 'root'})
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class SectionUploadService {
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user