forked from geolba/tethys.backend
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
|
@ -444,6 +444,12 @@ const onAddAuthor = (person: Person) => {
|
|||
notify({ type: 'info', text: 'person has been successfully added as author' });
|
||||
}
|
||||
};
|
||||
|
||||
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);
|
||||
|
@ -588,8 +594,10 @@ Removes a selected keyword
|
|||
<input class="form-checkbox" name="rights" id="rights" type="checkbox" v-model="dataset.rights" />
|
||||
terms and conditions
|
||||
</label> -->
|
||||
<FormField label="Rights" help="You must agree that you have read the Terms and Conditions. Please click on the 'i' icon to find a read the policy" wrap-body
|
||||
:class="{ 'text-red-400': form.errors.rights }" class="mt-8 w-full mx-2 flex-1 flex-col">
|
||||
<FormField label="Rights"
|
||||
help="You must agree that you have read the Terms and Conditions. Please click on the 'i' icon to find a read the policy"
|
||||
wrap-body :class="{ 'text-red-400': form.errors.rights }"
|
||||
class="mt-8 w-full mx-2 flex-1 flex-col">
|
||||
<label for="rights" class="checkbox mr-6 mb-3 last:mr-0">
|
||||
<input type="checkbox" id="rights" required v-model="form.rights" />
|
||||
<span class="check" />
|
||||
|
@ -797,8 +805,8 @@ Removes a selected keyword
|
|||
|
||||
<TablePersons :errors="form.errors" :persons="form.authors" :relation="'authors'"
|
||||
v-if="form.authors.length > 0" />
|
||||
<div class="text-red-400 text-sm" v-if="errors.authors && Array.isArray(errors.authors)">
|
||||
{{ errors.authors.join(', ') }}
|
||||
<div class="text-red-400 text-sm" v-if="form.errors.authors && Array.isArray(form.errors.authors)">
|
||||
{{ form.errors.authors.join(', ') }}
|
||||
</div>
|
||||
<div class="w-full md:w-1/2">
|
||||
<label class="block" for="additionalCreators">Add additional creator(s) if creator is
|
||||
|
@ -821,6 +829,12 @@ Removes a selected keyword
|
|||
v-if="form.errors.contributors && Array.isArray(form.errors.contributors)">
|
||||
{{ form.errors.contributors.join(', ') }}
|
||||
</div>
|
||||
<div class="w-full md:w-1/2">
|
||||
<label class="block" for="additionalCreators">Add additional contributor(s) if
|
||||
contributor is not in database</label>
|
||||
<button class="bg-blue-500 text-white py-2 px-4 rounded-sm"
|
||||
@click.prevent="addNewContributor()">+</button>
|
||||
</div>
|
||||
</CardBox>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue