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 {