hotfix(dataset): enhance dataset creation and editing forms
- Added functionality to add new authors and contributors directly within the dataset creation and editing forms. - Implemented `addNewAuthor` and `addNewContributor` methods to dynamically add new person objects to the authors and contributors arrays in the form data. - Added header icons with click events to the `CardBox` component for authors and contributors sections to trigger the addition of new entries. - Updated the dataset index views for reviewers and editors to improve the display of dataset titles, including adding a CSS class to truncate long titles. - Ensured authors and contributors are ordered by `pivot_sort_order` when preloading in the Dataset and Editor controllers. - Fixed an issue where pressing enter in the `SearchAutocomplete` component would submit the form. - Updated validation messages to be available in the `updateEditorDatasetValidator`.
This commit is contained in:
parent
f04c1f6327
commit
106f8d5f27
10 changed files with 379 additions and 382 deletions
|
@ -232,7 +232,8 @@
|
|||
</CardBox>
|
||||
|
||||
<!-- (7) authors -->
|
||||
<CardBox class="mb-6 shadow" has-table title="Creators" :icon="mdiBookOpenPageVariant">
|
||||
<CardBox class="mb-6 shadow" has-table title="Creators" :icon="mdiBookOpenPageVariant"
|
||||
:header-icon="mdiPlusCircle" v-on:header-icon-click="addNewAuthor()">
|
||||
<SearchAutocomplete source="/api/persons" :response-property="'first_name'"
|
||||
placeholder="search in person table...." v-on:person="onAddAuthor"></SearchAutocomplete>
|
||||
|
||||
|
@ -245,7 +246,8 @@
|
|||
|
||||
|
||||
<!-- (8) contributors -->
|
||||
<CardBox class="mb-6 shadow" has-table title="Contributors" :icon="mdiBookOpenPageVariant">
|
||||
<CardBox class="mb-6 shadow" has-table title="Contributors" :icon="mdiBookOpenPageVariant"
|
||||
:header-icon="mdiPlusCircle" v-on:header-icon-click="addNewContributor()">
|
||||
<SearchAutocomplete source="/api/persons" :response-property="'first_name'"
|
||||
placeholder="search in person table...." v-on:person="onAddContributor">
|
||||
</SearchAutocomplete>
|
||||
|
@ -734,6 +736,11 @@ const removeDescription = (key: any) => {
|
|||
form.descriptions.splice(key, 1);
|
||||
};
|
||||
|
||||
const addNewAuthor = () => {
|
||||
let newAuthor = { status: false, first_name: '', last_name: '', email: '', academic_title: '', identifier_orcid: '', name_type: 'Personal' };
|
||||
form.authors.push(newAuthor);
|
||||
};
|
||||
|
||||
const onAddAuthor = (person: Person) => {
|
||||
if (form.authors.filter((e) => e.id === person.id).length > 0) {
|
||||
notify({ type: 'warning', title: 'Warning', text: 'person is already defined as author' }, 4000);
|
||||
|
@ -745,6 +752,11 @@ const onAddAuthor = (person: Person) => {
|
|||
}
|
||||
};
|
||||
|
||||
const addNewContributor = () => {
|
||||
let newContributor = { status: false, first_name: '', last_name: '', email: '', academic_title: '', identifier_orcid: '', name_type: 'Personal', pivot: { contributor_type: '' } };
|
||||
form.contributors.push(newContributor);
|
||||
};
|
||||
|
||||
const onAddContributor = (person: Person) => {
|
||||
if (form.contributors.filter((e) => e.id === person.id).length > 0) {
|
||||
notify({ type: 'warning', title: 'Warning', text: 'person is already defined as contributor' }, 4000);
|
||||
|
|
|
@ -196,7 +196,7 @@ const formatServerState = (state: string) => {
|
|||
<BaseButton
|
||||
v-if="can.approve && (dataset.server_state == 'editor_accepted' || dataset.server_state == 'rejected_reviewer')"
|
||||
:route-name="stardust.route('editor.dataset.reject', [dataset.id])"
|
||||
color="info" :icon="mdiUndo" label="'Reject'" small class="col-span-1">
|
||||
color="info" :icon="mdiUndo" label="Reject" small class="col-span-1">
|
||||
</BaseButton>
|
||||
|
||||
<BaseButton
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue