From 5b237adfb145dfa4ec0991bab83ddca01977d22e Mon Sep 17 00:00:00 2001 From: jyhein <124268211+jyhein@users.noreply.github.com> Date: Mon, 7 Jul 2025 19:49:55 +0300 Subject: [PATCH] pkp/pkp-lib#857 Credit Roles --- src/components/Form/FormGroup.vue | 2 + .../Form/fields/FieldCreditRoles.mdx | 19 +++ .../Form/fields/FieldCreditRoles.stories.js | 29 ++++ .../Form/fields/FieldCreditRoles.vue | 139 ++++++++++++++++++ .../Form/mocks/field-credit-roles.js | 36 +++++ 5 files changed, 225 insertions(+) create mode 100644 src/components/Form/fields/FieldCreditRoles.mdx create mode 100644 src/components/Form/fields/FieldCreditRoles.stories.js create mode 100644 src/components/Form/fields/FieldCreditRoles.vue create mode 100644 src/components/Form/mocks/field-credit-roles.js diff --git a/src/components/Form/FormGroup.vue b/src/components/Form/FormGroup.vue index f142f4064..862eeae99 100644 --- a/src/components/Form/FormGroup.vue +++ b/src/components/Form/FormGroup.vue @@ -62,6 +62,7 @@ import FieldBaseAutosuggest from './fields/FieldBaseAutosuggest.vue'; import FieldAuthors from './fields/FieldAuthors.vue'; import FieldColor from './fields/FieldColor.vue'; import FieldControlledVocab from './fields/FieldControlledVocab.vue'; +import FieldCreditRoles from './fields/FieldCreditRoles.vue'; import FieldPubId from './fields/FieldPubId.vue'; import FieldHtml from './fields/FieldHtml.vue'; import FieldMetadataSetting from './fields/FieldMetadataSetting.vue'; @@ -95,6 +96,7 @@ export default { FieldAuthors, FieldColor, FieldControlledVocab, + FieldCreditRoles, FieldPubId, FieldHtml, FieldMetadataSetting, diff --git a/src/components/Form/fields/FieldCreditRoles.mdx b/src/components/Form/fields/FieldCreditRoles.mdx new file mode 100644 index 000000000..7f1fcfc85 --- /dev/null +++ b/src/components/Form/fields/FieldCreditRoles.mdx @@ -0,0 +1,19 @@ +import {Primary, Controls, Stories, Meta, ArgTypes} from '@storybook/blocks'; + +import * as FieldCreditRolesStories from './FieldCreditRoles.stories.js'; + + + +# FieldCreditRole + +## Usage + +A special component to maintain Credit roles and degrees of authors (contributors). + +The CreditRoles currently saved are shown in a tabular way as roles and degrees. + +The `value` is an array of objects `{ role, degree }`. + + + + diff --git a/src/components/Form/fields/FieldCreditRoles.stories.js b/src/components/Form/fields/FieldCreditRoles.stories.js new file mode 100644 index 000000000..dc618d99d --- /dev/null +++ b/src/components/Form/fields/FieldCreditRoles.stories.js @@ -0,0 +1,29 @@ +import FieldCreditRoles from './FieldCreditRoles.vue'; +import FieldCreditRolesMock from '@/components/Form/mocks/field-credit-roles'; + +export default { + title: 'Forms/FieldCreditRoles', + component: FieldCreditRoles, + render: (args) => ({ + components: {FieldCreditRoles}, + setup() { + function change(name, prop, newValue, localeKey) { + args[prop] = newValue; + } + + return {args, change}; + }, + template: '', + }), + parameters: { + docs: { + story: { + height: '500px', + }, + }, + }, +}; + +export const Base = { + args: {...FieldCreditRolesMock}, +}; diff --git a/src/components/Form/fields/FieldCreditRoles.vue b/src/components/Form/fields/FieldCreditRoles.vue new file mode 100644 index 000000000..548060c1a --- /dev/null +++ b/src/components/Form/fields/FieldCreditRoles.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/components/Form/mocks/field-credit-roles.js b/src/components/Form/mocks/field-credit-roles.js new file mode 100644 index 000000000..5ff1d18c9 --- /dev/null +++ b/src/components/Form/mocks/field-credit-roles.js @@ -0,0 +1,36 @@ +export default { + name: 'contributor-credit-roles', + component: 'contributor-credit-roles', + value: [ + { + role: 'https://credit.niso.org/contributor-roles/data-curation/', + degree: null, + }, + ], + options: { + roles: [ + { + label: 'Conceptualization', + value: 'https://credit.niso.org/contributor-roles/conceptualization/', + }, + { + label: 'Data Curation', + value: 'https://credit.niso.org/contributor-roles/data-curation/', + }, + { + label: 'Formal Analysis', + value: 'https://credit.niso.org/contributor-roles/formal-analysis/', + }, + ], + degrees: [ + { + label: '', + value: null, + }, + { + label: 'LEAD', + value: 'LEAD', + }, + ], + }, +};