Files
dspace-angular/src/app/shared/mocks/form-models.mock.ts
2020-08-12 14:01:29 +02:00

307 lines
8.3 KiB
TypeScript

import { DynamicSelectModel } from '@ng-dynamic-forms/core';
import { DsDynamicInputModel } from '../form/builder/ds-dynamic-form-ui/models/ds-dynamic-input.model';
import { DynamicQualdropModel } from '../form/builder/ds-dynamic-form-ui/models/ds-dynamic-qualdrop.model';
import {
DynamicRowArrayModel,
DynamicRowArrayModelConfig
} from '../form/builder/ds-dynamic-form-ui/models/ds-dynamic-row-array-model';
import { SubmissionScopeType } from '../../core/submission/submission-scope-type';
import { DynamicRelationGroupModel } from '../form/builder/ds-dynamic-form-ui/models/relation-group/dynamic-relation-group.model';
import { FormFieldModel } from '../form/builder/models/form-field.model';
import { VocabularyOptions } from '../../core/submission/vocabularies/models/vocabulary-options.model';
import { VocabularyEntry } from '../../core/submission/vocabularies/models/vocabulary-entry.model';
import { FormFieldMetadataValueObject } from '../form/builder/models/form-field-metadata-value.model';
import { DynamicRowGroupModel } from '../form/builder/ds-dynamic-form-ui/models/ds-dynamic-row-group-model';
import { FormRowModel } from '../../core/config/models/config-submission-form.model';
export const qualdropSelectConfig = {
name: 'dc.identifier_QUALDROP_METADATA',
id: 'dc_identifier_QUALDROP_METADATA',
readOnly: false,
disabled: false,
label: 'Identifiers',
placeholder: 'Identifiers',
options: [
{
label: 'ISSN',
value: 'dc.identifier.issn'
},
{
label: 'Other',
value: 'dc.identifier.other'
},
{
label: 'ISMN',
value: 'dc.identifier.ismn'
},
{
label: 'Gov\'t Doc #',
value: 'dc.identifier.govdoc'
},
{
label: 'URI',
value: 'dc.identifier.uri'
},
{
label: 'ISBN',
value: 'dc.identifier.isbn'
}
],
value: 'dc.identifier.issn'
};
export const qualdropInputConfig = {
name: 'dc.identifier_QUALDROP_VALUE',
id: 'dc_identifier_QUALDROP_VALUE',
readOnly: false,
disabled: false,
repeatable: false,
value: 'test',
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockQualdropSelectModel = new DynamicSelectModel(qualdropSelectConfig);
export const mockQualdropInputModel = new DsDynamicInputModel(qualdropInputConfig);
export const qualdropConfig = {
id: 'dc_identifier_QUALDROP_GROUP',
legend: 'Identifiers',
readOnly: false,
group: [mockQualdropSelectModel, mockQualdropInputModel],
required: false
};
export const MockQualdropModel = new DynamicQualdropModel(qualdropConfig);
const rowArrayQualdropConfig = {
id: 'row_QUALDROP_GROUP',
initialCount: 1,
notRepeatable: true,
relationshipConfig: undefined,
groupFactory: () => {
return [MockQualdropModel];
},
required: false,
submissionId: '1234',
metadataKey: 'dc.some.key',
metadataFields: ['dc.some.key'],
hasSelectableMetadata: false
} as DynamicRowArrayModelConfig;
export const MockRowArrayQualdropModel: DynamicRowArrayModel = new DynamicRowArrayModel(rowArrayQualdropConfig);
const mockFormRowModel = {
fields: [
{
input: { type: 'lookup' },
label: 'Journal',
mandatory: 'false',
repeatable: false,
hints: 'Enter the name of the journal where the item has been\n\t\t\t\t\tpublished, if any.',
selectableMetadata: [
{
metadata: 'journal',
controlledVocabulary: 'JOURNALAuthority',
closed: false
}
],
languageCodes: []
} as FormFieldModel,
{
input: { type: 'onebox' },
label: 'Issue',
mandatory: 'false',
repeatable: false,
hints: ' Enter issue number.',
selectableMetadata: [
{
metadata: 'issue'
}
],
languageCodes: []
} as FormFieldModel
]
} as FormRowModel;
const relationGroupConfig = {
submissionId: '1234',
id: 'relationGroup',
formConfiguration: [mockFormRowModel],
mandatoryField: 'false',
relationFields: ['journal', 'issue'],
scopeUUID: 'scope',
repeatable: false,
submissionScope: SubmissionScopeType.WorkspaceItem,
value: {
journal: [
'journal test 1',
'journal test 2'
],
issue: [
'issue test 1',
'issue test 2'
],
},
metadataFields: [],
hasSelectableMetadata: false
};
export const MockRelationModel: DynamicRelationGroupModel = new DynamicRelationGroupModel(relationGroupConfig);
export const inputWithLanguageAndAuthorityConfig = {
vocabularyOptions: new VocabularyOptions('testAuthority', false),
languageCodes: [
{
display: 'English',
code: 'en_US'
},
{
display: 'Italian',
code: 'it_IT'
}
],
language: 'en_US',
name: 'testWithAuthority',
id: 'testWithAuthority',
readOnly: false,
disabled: false,
repeatable: false,
value: {
value: 'testWithLanguageAndAuthority',
display: 'testWithLanguageAndAuthority',
authority: 'testWithLanguageAndAuthority',
},
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithLanguageAndAuthorityModel = new DsDynamicInputModel(inputWithLanguageAndAuthorityConfig);
export const inputWithLanguageConfig = {
languageCodes: [
{
display: 'English',
code: 'en_US'
},
{
display: 'Italian',
code: 'it_IT'
}
],
language: 'en_US',
name: 'testWithLanguage',
id: 'testWithLanguage',
readOnly: false,
disabled: false,
repeatable: false,
value: 'testWithLanguage',
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithLanguageModel = new DsDynamicInputModel(inputWithLanguageConfig);
export const inputWithLanguageAndAuthorityArrayConfig = {
vocabularyOptions: new VocabularyOptions('testAuthority', false),
languageCodes: [
{
display: 'English',
code: 'en_US'
},
{
display: 'Italian',
code: 'it_IT'
}
],
language: 'en_US',
name: 'testWithLanguageAndAuthorityArray',
id: 'testWithLanguageAndAuthorityArray',
readOnly: false,
disabled: false,
repeatable: false,
value: [{
value: 'testLanguageAndAuthorityArray',
display: 'testLanguageAndAuthorityArray',
authority: 'testLanguageAndAuthorityArray',
}],
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithLanguageAndAuthorityArrayModel = new DsDynamicInputModel(inputWithLanguageAndAuthorityArrayConfig);
export const inputWithFormFieldValueConfig = {
name: 'testWithFormField',
id: 'testWithFormField',
readOnly: false,
disabled: false,
repeatable: false,
value: new FormFieldMetadataValueObject('testWithFormFieldValue'),
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithFormFieldValueModel = new DsDynamicInputModel(inputWithFormFieldValueConfig);
export const inputWithAuthorityValueConfig = {
name: 'testWithAuthorityField',
id: 'testWithAuthorityField',
readOnly: false,
disabled: false,
repeatable: false,
value: Object.assign({}, new VocabularyEntry(), {
value: 'testWithAuthorityValue',
authority: 'testWithAuthorityValue',
display: 'testWithAuthorityValue'
}),
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithAuthorityValueModel = new DsDynamicInputModel(inputWithAuthorityValueConfig);
export const inputWithObjectValueConfig = {
name: 'testWithObjectValue',
id: 'testWithObjectValue',
readOnly: false,
disabled: false,
repeatable: false,
value: { value: 'testWithObjectValue', authority: 'testWithObjectValue', display: 'testWithObjectValue' },
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockInputWithObjectValueModel = new DsDynamicInputModel(inputWithObjectValueConfig);
export const mockRowGroupModel = new DynamicRowGroupModel({
id: 'mockRowGroupModel',
group: [mockInputWithFormFieldValueModel],
});
export const fileFormEditInputConfig = {
name: 'dc.title',
id: 'dc_title',
readOnly: false,
disabled: false,
repeatable: false,
submissionId: '1234',
metadataFields: [],
hasSelectableMetadata: false
};
export const mockFileFormEditInputModel = new DsDynamicInputModel(fileFormEditInputConfig);
export const mockFileFormEditRowGroupModel = new DynamicRowGroupModel({
id: 'mockRowGroupModel',
group: [mockFileFormEditInputModel]
});