From 9bf4f26b1d040a6d2ec289224cdef0f3b33763f4 Mon Sep 17 00:00:00 2001 From: Stefan Probst <stefanprobst@posteo.de> Date: Mon, 23 Sep 2024 11:09:43 +0200 Subject: [PATCH 1/3] fix: remove accessible-at field from workflow edit form --- src/components/item-form/WorkflowForm.tsx | 6 ++-- .../item-form/WorkflowMainFormSection.tsx | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 src/components/item-form/WorkflowMainFormSection.tsx diff --git a/src/components/item-form/WorkflowForm.tsx b/src/components/item-form/WorkflowForm.tsx index d4b1d975..2affb217 100644 --- a/src/components/item-form/WorkflowForm.tsx +++ b/src/components/item-form/WorkflowForm.tsx @@ -11,11 +11,11 @@ import { FormSections } from '@/components/common/FormSections' import { ActorFormSection } from '@/components/item-form/ActorFormSection' import { DateFormSection } from '@/components/item-form/DateFormSection' import { ItemFormControls } from '@/components/item-form/ItemFormControls' -import { MainFormSection } from '@/components/item-form/MainFormSection' import { MediaFormSection } from '@/components/item-form/MediaFormSection' import { PropertyFormSection } from '@/components/item-form/PropertyFormSection' import { RelatedItemFormSection } from '@/components/item-form/RelatedItemFormSection' import { ThumbnailFormSection } from '@/components/item-form/ThumbnailFormSection' +import { WorkflowMainFormSection } from '@/components/item-form/WorkflowMainFormSection' import type { ItemFormFields } from '@/components/item-form/useItemFormFields' import { useWorkflowFormFields } from '@/components/item-form/useWorkflowFormFields' import type { WorkflowFormPage } from '@/components/item-form/useWorkflowFormPage' @@ -151,7 +151,7 @@ function WorkflowFormSections(props: WorkflowFormSectionsProps): JSX.Element { return ( <FormSections> - <MainFormSection formFields={formFields} /> + <WorkflowMainFormSection formFields={formFields} /> <DateFormSection formFields={formFields} /> <ActorFormSection formFields={formFields} /> <PropertyFormSection formFields={formFields} /> @@ -279,7 +279,7 @@ function WorkflowStepFormSections(props: WorkflowStepFormSectionsProps): JSX.Ele return ( <FormSections> - <MainFormSection formFields={formFields} /> + <WorkflowMainFormSection formFields={formFields} /> <PropertyFormSection formFields={formFields} /> <MediaFormSection formFields={formFields} /> <RelatedItemFormSection formFields={formFields} /> diff --git a/src/components/item-form/WorkflowMainFormSection.tsx b/src/components/item-form/WorkflowMainFormSection.tsx new file mode 100644 index 00000000..4a4a674e --- /dev/null +++ b/src/components/item-form/WorkflowMainFormSection.tsx @@ -0,0 +1,32 @@ +import { VisuallyHidden } from '@react-aria/visually-hidden' + +import { FormSection } from '@/components/common/FormSection' +import { FormSectionTitle } from '@/components/common/FormSectionTitle' +import { AccessibleAtFormFieldArray } from '@/components/item-form/AccessibleAtFormFieldArray' +import { ExternalIdsFormFieldArray } from '@/components/item-form/ExternalIdsFormFieldArray' +import type { ItemFormFields } from '@/components/item-form/useItemFormFields' +import { FormTextArea } from '@/lib/core/form/FormTextArea' +import { FormTextField } from '@/lib/core/form/FormTextField' +import { useI18n } from '@/lib/core/i18n/useI18n' + +export interface WorkflowMainFormSectionProps { + formFields: ItemFormFields +} + +export function WorkflowMainFormSection(props: WorkflowMainFormSectionProps): JSX.Element { + const { fields } = props.formFields + + const { t } = useI18n<'authenticated' | 'common'>() + + return ( + <FormSection> + <VisuallyHidden> + <FormSectionTitle>{t(['authenticated', 'forms', 'main-section'])}</FormSectionTitle> + </VisuallyHidden> + <FormTextField {...fields.label} /> + <FormTextField {...fields.version} /> + <FormTextArea {...fields.description} rows={6} /> + <ExternalIdsFormFieldArray field={fields.externalIds} /> + </FormSection> + ) +} From f7fa16610252e862643c037d7c5e85b980a200b4 Mon Sep 17 00:00:00 2001 From: Stefan Probst <stefanprobst@posteo.de> Date: Mon, 23 Sep 2024 11:17:39 +0200 Subject: [PATCH 2/3] fix: remove accessible-at, external-ids, version, and media fields from step form --- src/components/item-form/WorkflowForm.tsx | 6 ++-- .../item-form/WorkflowMainFormSection.tsx | 1 - .../item-form/WorkflowStepMainFormSection.tsx | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/components/item-form/WorkflowStepMainFormSection.tsx diff --git a/src/components/item-form/WorkflowForm.tsx b/src/components/item-form/WorkflowForm.tsx index 2affb217..18d5b20a 100644 --- a/src/components/item-form/WorkflowForm.tsx +++ b/src/components/item-form/WorkflowForm.tsx @@ -15,13 +15,14 @@ import { MediaFormSection } from '@/components/item-form/MediaFormSection' import { PropertyFormSection } from '@/components/item-form/PropertyFormSection' import { RelatedItemFormSection } from '@/components/item-form/RelatedItemFormSection' import { ThumbnailFormSection } from '@/components/item-form/ThumbnailFormSection' -import { WorkflowMainFormSection } from '@/components/item-form/WorkflowMainFormSection' import type { ItemFormFields } from '@/components/item-form/useItemFormFields' import { useWorkflowFormFields } from '@/components/item-form/useWorkflowFormFields' import type { WorkflowFormPage } from '@/components/item-form/useWorkflowFormPage' import { useWorkflowStepFormFields } from '@/components/item-form/useWorkflowStepFormFields' import { useWorkflowStepFormRecommendedFields } from '@/components/item-form/useWorkflowStepFormRecommendedFields' import { WorkflowFormNavigation } from '@/components/item-form/WorkflowFormNavigation' +import { WorkflowMainFormSection } from '@/components/item-form/WorkflowMainFormSection' +import { WorkflowStepMainFormSection } from '@/components/item-form/WorkflowStepMainFormSection' import { WorkflowStepPreview } from '@/components/item-form/WorkflowStepPreview' import { WorkflowTitle } from '@/components/item-form/WorkflowTitle' import type { Workflow, WorkflowInput } from '@/data/sshoc/api/workflow' @@ -279,9 +280,8 @@ function WorkflowStepFormSections(props: WorkflowStepFormSectionsProps): JSX.Ele return ( <FormSections> - <WorkflowMainFormSection formFields={formFields} /> + <WorkflowStepMainFormSection formFields={formFields} /> <PropertyFormSection formFields={formFields} /> - <MediaFormSection formFields={formFields} /> <RelatedItemFormSection formFields={formFields} /> <FormControls> diff --git a/src/components/item-form/WorkflowMainFormSection.tsx b/src/components/item-form/WorkflowMainFormSection.tsx index 4a4a674e..84d5cfb6 100644 --- a/src/components/item-form/WorkflowMainFormSection.tsx +++ b/src/components/item-form/WorkflowMainFormSection.tsx @@ -2,7 +2,6 @@ import { VisuallyHidden } from '@react-aria/visually-hidden' import { FormSection } from '@/components/common/FormSection' import { FormSectionTitle } from '@/components/common/FormSectionTitle' -import { AccessibleAtFormFieldArray } from '@/components/item-form/AccessibleAtFormFieldArray' import { ExternalIdsFormFieldArray } from '@/components/item-form/ExternalIdsFormFieldArray' import type { ItemFormFields } from '@/components/item-form/useItemFormFields' import { FormTextArea } from '@/lib/core/form/FormTextArea' diff --git a/src/components/item-form/WorkflowStepMainFormSection.tsx b/src/components/item-form/WorkflowStepMainFormSection.tsx new file mode 100644 index 00000000..8bbd581a --- /dev/null +++ b/src/components/item-form/WorkflowStepMainFormSection.tsx @@ -0,0 +1,28 @@ +import { VisuallyHidden } from '@react-aria/visually-hidden' + +import { FormSection } from '@/components/common/FormSection' +import { FormSectionTitle } from '@/components/common/FormSectionTitle' +import type { ItemFormFields } from '@/components/item-form/useItemFormFields' +import { FormTextArea } from '@/lib/core/form/FormTextArea' +import { FormTextField } from '@/lib/core/form/FormTextField' +import { useI18n } from '@/lib/core/i18n/useI18n' + +export interface WorkflowMainFormSectionProps { + formFields: ItemFormFields +} + +export function WorkflowMainFormSection(props: WorkflowMainFormSectionProps): JSX.Element { + const { fields } = props.formFields + + const { t } = useI18n<'authenticated' | 'common'>() + + return ( + <FormSection> + <VisuallyHidden> + <FormSectionTitle>{t(['authenticated', 'forms', 'main-section'])}</FormSectionTitle> + </VisuallyHidden> + <FormTextField {...fields.label} /> + <FormTextArea {...fields.description} rows={6} /> + </FormSection> + ) +} From 42b0bfc44c9a9459f21b54e03a38c0f1e48c2415 Mon Sep 17 00:00:00 2001 From: Stefan Probst <stefanprobst@posteo.de> Date: Mon, 23 Sep 2024 11:33:54 +0200 Subject: [PATCH 3/3] fix: update list of recommended properties for workflow and step forms --- .../useWorkflowFormRecommendedFields.ts | 8 +++--- .../useWorkflowStepFormRecommendedFields.ts | 25 ++++++++++++++++++- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/components/item-form/useWorkflowFormRecommendedFields.ts b/src/components/item-form/useWorkflowFormRecommendedFields.ts index 6fbdeead..033340f4 100644 --- a/src/components/item-form/useWorkflowFormRecommendedFields.ts +++ b/src/components/item-form/useWorkflowFormRecommendedFields.ts @@ -9,7 +9,7 @@ const recommendedFields = { // label: '', // description: '', contributors: [{ role: { code: undefined }, actor: { id: undefined } }], - accessibleAt: [undefined], + // accessibleAt: [undefined], externalIds: [{ identifier: undefined, identifierService: { code: undefined } }], relatedItems: [{ relation: { code: undefined }, persistentId: undefined }], } @@ -19,12 +19,10 @@ const recommendedProperties = [ 'keyword', 'discipline', 'language', - 'intended-audience', - 'see-also', - 'license', - 'terms-of-use-url', 'standard', 'resource-category', + 'see-also', + 'license', ] const properties: Array< diff --git a/src/components/item-form/useWorkflowStepFormRecommendedFields.ts b/src/components/item-form/useWorkflowStepFormRecommendedFields.ts index c6555cc2..ea2f5bf8 100644 --- a/src/components/item-form/useWorkflowStepFormRecommendedFields.ts +++ b/src/components/item-form/useWorkflowStepFormRecommendedFields.ts @@ -1,12 +1,35 @@ +import type { StaticResult as PropertyTypes } from '@/components/item-form/property-types.static' +import _propertyTypes from '@/components/item-form/property-types.static' +import type { PropertyTypeConcept, PropertyTypeScalar } from '@/data/sshoc/api/property' import type { WorkflowStepInput } from '@/data/sshoc/api/workflow-step' +const propertyTypes = _propertyTypes as unknown as PropertyTypes + const recommendedFields = { // label: '', // description: '', relatedItems: [{ relation: { code: undefined }, persistentId: undefined }], } -const fields = { ...recommendedFields } +const recommendedProperties = ['activity', 'keyword', 'inputformat', 'outputformat'] + +const properties: Array< + | { type: PropertyTypeConcept; concept: { uri: undefined } } + | { type: PropertyTypeScalar; value: undefined } +> = [] + +recommendedProperties.forEach((id) => { + const propertyType = propertyTypes[id] + if (propertyType != null) { + if (propertyType.type === 'concept') { + properties.push({ type: propertyType, concept: { uri: undefined } }) + } else { + properties.push({ type: propertyType, value: undefined }) + } + } +}) + +const fields = { ...recommendedFields, properties } export function useWorkflowStepFormRecommendedFields(): Partial<WorkflowStepInput> { return fields as unknown as Partial<WorkflowStepInput>