diff --git a/src/components/invocable/InvocationEditor.jsx b/src/components/invocable/InvocationEditor.jsx index 5f0f4cd10..a132abe5d 100644 --- a/src/components/invocable/InvocationEditor.jsx +++ b/src/components/invocable/InvocationEditor.jsx @@ -9,6 +9,7 @@ import { getCommonFieldValue } from '../../helpers/recordDataHelpers'; import RecordFormContainer from '../../containers/record/RecordFormContainer'; import styles from '../../../styles/cspace-ui/InvocationEditor.css'; import messageStyles from '../../../styles/cspace-ui/FormStatusMessage.css'; +import '../../../styles/cspace-ui/Customizations.css'; const messages = defineMessages({ loading: { @@ -149,6 +150,10 @@ export default class InvocationEditor extends Component { const invocableNameGetter = get(config, ['recordTypes', recordType, 'invocableName']); const invocableName = invocableNameGetter && invocableNameGetter(metadata); + const invocableShortName = invocableName ? invocableName.slice( + invocableName.lastIndexOf('.') + 1, + invocableName.length, + ) : ''; const paramRecordTypeConfig = get(config, ['invocables', recordType, invocableName]); @@ -190,8 +195,10 @@ export default class InvocationEditor extends Component { ); } + const invocableClassName = `cspace-ui-${recordType}--${invocableShortName}`; + return ( -
+

{description}

{ + const { + CompoundInput, + AutocompleteInput, + TextInput, + OptionPickerInput, + TermPickerInput, + } = configContext.inputComponents; + + const { + configKey: config, + } = configContext.configHelpers; + + + return { + params: { + [config]: { + view: { + type: CompoundInput, + }, + }, + // core + numberOfObjects: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.numberOfObjects.name', + defaultMessage: 'Number of objects', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // core + numberValue: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.numberValue.name', + defaultMessage: 'Other number', + }, + }), + view: { + type: TextInput, + }, + }, + }, + numberType: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.numberType.name', + defaultMessage: 'Other number type', + }, + }), + view: { + type: OptionPickerInput, + props: { + source: 'numberTypes', + }, + }, + }, + }, + // core + objectStatus: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.objectStatus.name', + defaultMessage: 'Object status', + }, + }), + view: { + type: OptionPickerInput, + props: { + source: 'objectStatuses', + }, + }, + }, + }, + // core + material: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.material.name', + defaultMessage: 'Material', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // core + briefDescription: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.briefDescription.name', + defaultMessage: 'Brief description', + }, + }), + view: { + type: TextInput, + props: { + multiline: true, + }, + }, + }, + }, + // core + objectName: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.objectName.name', + defaultMessage: 'Object name', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // core + responsibleDepartment: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.responsibleDepartment.name', + defaultMessage: 'Responsible department', + }, + }), + view: { + type: OptionPickerInput, + props: { + source: 'departments', + }, + }, + }, + }, + // core + fieldCollectionPlace: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.fieldCollectionPlace.name', + defaultMessage: 'Field collection place', + }, + }), + view: { + type: AutocompleteInput, + props: { + source: 'place/local,place/shared,place/tgn', + }, + }, + }, + }, + // core + fieldCollector: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.fieldCollector.name', + defaultMessage: 'Field collector', + }, + }), + view: { + type: AutocompleteInput, + props: { + source: 'person/local,person/shared,organization/local,organization/shared', + }, + }, + }, + }, + // core + objectProductionPlace: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.objectProductionPlace.name', + defaultMessage: 'Production Place', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // core + objectProductionPerson: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.objectProductionPerson.name', + defaultMessage: 'Production Person', + }, + }), + view: { + type: AutocompleteInput, + props: { + source: 'person/local,person/shared', + }, + }, + }, + }, + contentPlace: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.contentPlace.name', + defaultMessage: 'Content place', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // core + assocPeople: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.assocPeople.name', + defaultMessage: 'Associated people', + }, + }), + view: { + type: TextInput, + }, + }, + }, + // naturalhistory + taxon: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.taxon.name', + defaultMessage: 'Taxon', + }, + }), + view: { + type: AutocompleteInput, + props: { + source: 'taxon/local', + }, + }, + }, + }, + publishTo: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.BulkObjectEditBatchJob.publishTo.name', + defaultMessage: 'Publish to', + }, + }), + view: { + type: TermPickerInput, + props: { + source: 'publishto', + }, + }, + }, + }, + }, + }; +}; diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/default.jsx b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/default.jsx new file mode 100644 index 000000000..fbb677fe5 --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/default.jsx @@ -0,0 +1,58 @@ +import { defineMessages } from 'react-intl'; + +const template = (configContext) => { + const { + React, + } = configContext.lib; + + const { + Field, + } = configContext.recordComponents; + + const { + Col, + Cols, + } = configContext.layoutComponents; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export default (configContext) => ({ + messages: defineMessages({ + name: { + id: 'form.report.Bulk Object Edit Batch Job.default.name', + defaultMessage: 'Standard Template', + }, + }), + sortOrder: 0, + template: template(configContext), +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/index.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/index.js new file mode 100644 index 000000000..b04a0c7df --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/forms/index.js @@ -0,0 +1,5 @@ +import defaultForm from './default'; + +export default (configContext) => ({ + default: defaultForm(configContext), +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/index.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/index.js new file mode 100644 index 000000000..d5b160af9 --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob/index.js @@ -0,0 +1,13 @@ +import fields from './fields'; +import forms from './forms'; + +export default () => (configContext) => ({ + invocables: { + batch: { + 'org.collectionspace.services.batch.nuxeo.BulkObjectEditBatchJob': { + fields: fields(configContext), + forms: forms(configContext), + }, + }, + }, +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/fields.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/fields.js new file mode 100644 index 000000000..d892c4945 --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/fields.js @@ -0,0 +1,39 @@ +import { defineMessages } from 'react-intl'; + +export default (configContext) => { + const { + CompoundInput, + TextInput, + } = configContext.inputComponents; + + const { + configKey: config, + } = configContext.configHelpers; + + return { + params: { + [config]: { + view: { + type: CompoundInput, + }, + }, + groupItems: { + [config]: { + messages: defineMessages({ + name: { + id: 'field.batch.Merge Authority Items.groupItems.name', + defaultMessage: 'Group items', + }, + }), + required: true, + view: { + type: TextInput, + props: { + multiline: true, + }, + }, + }, + }, + }, + }; +}; diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/default.jsx b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/default.jsx new file mode 100644 index 000000000..915e94b3c --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/default.jsx @@ -0,0 +1,28 @@ +import { defineMessages } from 'react-intl'; + +const template = (configContext) => { + const { + React, + } = configContext.lib; + + const { + Field, + } = configContext.recordComponents; + + return ( + + + + ); +}; + +export default (configContext) => ({ + messages: defineMessages({ + name: { + id: 'form.report.Merge Authority Items.default.name', + defaultMessage: 'Standard Template', + }, + }), + sortOrder: 0, + template: template(configContext), +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/index.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/index.js new file mode 100644 index 000000000..b04a0c7df --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/forms/index.js @@ -0,0 +1,5 @@ +import defaultForm from './default'; + +export default (configContext) => ({ + default: defaultForm(configContext), +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/index.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/index.js new file mode 100644 index 000000000..820b6048c --- /dev/null +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.GrouperBatchJob/index.js @@ -0,0 +1,13 @@ +import fields from './fields'; +import forms from './forms'; + +export default () => (configContext) => ({ + invocables: { + batch: { + 'org.collectionspace.services.batch.nuxeo.GrouperBatchJob': { + fields: fields(configContext), + forms: forms(configContext), + }, + }, + }, +}); diff --git a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.MergeAuthorityItemsBatchJob/fields.js b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.MergeAuthorityItemsBatchJob/fields.js index 858731ec7..e8967eb56 100644 --- a/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.MergeAuthorityItemsBatchJob/fields.js +++ b/src/plugins/invocables/batch/org.collectionspace.services.batch.nuxeo.MergeAuthorityItemsBatchJob/fields.js @@ -30,7 +30,7 @@ export default (configContext) => { type: AutocompleteInput, props: { disableAltTerms: true, - source: 'citation/local,citation/worldcat,concept/activity,concept/associated,concept/material,organization/local,organization/ulan,person/local,person/ulan,place/local,place/tgn,location/local,location/offsite,work/local', + source: 'citation/local,citation/worldcat,concept/activity,concept/associated,concept/material,concept/occasion,organization/local,organization/ulan,person/local,person/ulan,place/local,place/tgn,location/local,location/offsite,work/local', showQuickAdd: false, }, }, diff --git a/src/plugins/recordTypes/batch/invocableName.js b/src/plugins/recordTypes/batch/invocableName.js index 34346f116..a8702bedf 100644 --- a/src/plugins/recordTypes/batch/invocableName.js +++ b/src/plugins/recordTypes/batch/invocableName.js @@ -12,5 +12,5 @@ export default (configContext) => (data) => { const common = getPart(data, 'batch_common'); - return common && common.get('className'); + return common && common.get('className').trim(); }; diff --git a/src/plugins/recordTypes/concept/forms/student.jsx b/src/plugins/recordTypes/concept/forms/student.jsx new file mode 100644 index 000000000..ac2c521da --- /dev/null +++ b/src/plugins/recordTypes/concept/forms/student.jsx @@ -0,0 +1,59 @@ +import { defineMessages } from 'react-intl'; + +const template = (configContext) => { + const { + React, + } = configContext.lib; + + const { + Col, + Cols, + Panel, + Row, + } = configContext.layoutComponents; + + const { + Field, + } = configContext.recordComponents; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export default (configContext) => ({ + messages: defineMessages({ + name: { + id: 'form.concept.student.name', + defaultMessage: 'Student Template', + }, + }), + template: template(configContext), +}); diff --git a/src/plugins/recordTypes/report/optionLists.js b/src/plugins/recordTypes/report/optionLists.js index 78350ed6f..350c01b52 100644 --- a/src/plugins/recordTypes/report/optionLists.js +++ b/src/plugins/recordTypes/report/optionLists.js @@ -62,4 +62,25 @@ export default { }, }), }, + uocApprovalStatusMIMETypes: { + values: [ + 'application/pdf', + 'text/csv', + 'application/msword', + ], + messages: defineMessages({ + 'application/pdf': { + id: 'option.uocApprovalStatusMIMETypes.application/pdf.', + defaultMessage: 'PDF', + }, + 'text/csv': { + id: 'option.uocApprovalStatusMIMETypes.text/csv.', + defaultMessage: 'CSV', + }, + 'application/msword': { + id: 'option.uocApprovalStatusMIMETypes.application/msword.', + defaultMessage: 'MS word', + }, + }), + }, }; diff --git a/styles/cspace-ui/Customizations.css b/styles/cspace-ui/Customizations.css new file mode 100644 index 000000000..d058918fe --- /dev/null +++ b/styles/cspace-ui/Customizations.css @@ -0,0 +1,9 @@ +div[class*=cspace-ui-batch--MergeAuthorityItemsBatchJob], +div[class*=cspace-ui-batch--BulkObjectEditBatchJob] { + height: 500px; + width: 850px; +} + +div[class*=cspace-ui-batch--MergeAuthorityItemsBatchJob] > div > fieldset { + max-width: 50%; +} diff --git a/styles/cspace-ui/InvocationModal.css b/styles/cspace-ui/InvocationModal.css index dc17aa67b..5adbd3ba2 100644 --- a/styles/cspace-ui/InvocationModal.css +++ b/styles/cspace-ui/InvocationModal.css @@ -1,9 +1,9 @@ .common :global(.cspace-layout-Modal--common) { - overflow: visible; + overflow: auto; } .common :global(.cspace-layout-Modal--common > div > div) { - overflow: visible; + overflow: auto; } .running {