[DURACOM-191] run optimize imports and lint fix

This commit is contained in:
Andrea Barbasso
2024-03-12 20:10:23 +01:00
parent fe23ac6a82
commit ee265f855b
1481 changed files with 23238 additions and 16561 deletions

View File

@@ -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 {

View File

@@ -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 {
/**

View File

@@ -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();
}));

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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 {
/**

View File

@@ -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 {}

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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);
}
})
}),
);
}

View File

@@ -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>;

View File

@@ -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;

View File

@@ -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],
})

View File

@@ -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();

View File

@@ -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 {

View File

@@ -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 {
/**

View File

@@ -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();
});

View File

@@ -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 {
/**

View File

@@ -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();
});

View File

@@ -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 {
/**

View File

@@ -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();
});

View File

@@ -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 {
/**

View File

@@ -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();
});

View File

@@ -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 {

View File

@@ -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();
});

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {
}

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {
/**

View File

@@ -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> {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {
/**