- small adaption for OpenAire inside OaiController.ts
Some checks failed
CI Pipeline / japa-tests (push) Failing after 59s

- validate abstratct for max 2500 characters
- small changes inside page for releasing a dataset
- npm updates
- adapted validating messages
This commit is contained in:
Kaimbacher 2024-07-26 14:51:57 +02:00
parent 005df2e454
commit 49ea0fc967
12 changed files with 533 additions and 485 deletions

View file

@ -43,6 +43,14 @@ const props = defineProps({
type: [String, Number, Boolean, Array, Object],
default: '',
},
showCharCount: {
type: Boolean,
default: false,
},
maxInputLength: {
type: Number,
default: null,
},
required: Boolean,
borderless: Boolean,
transparent: Boolean,
@ -110,36 +118,25 @@ if (props.ctrlKFocus) {
<template>
<div class="relative">
<select v-if="computedType === 'select'" :id="id" v-model="computedValue" :name="name" :class="inputElClass" :disabled="isReadOnly">
<select v-if="computedType === 'select'" :id="id" v-model="computedValue" :name="name" :class="inputElClass"
:disabled="isReadOnly">
<option v-if="placeholder" class="text-opacity-25" value="" disabled selected>{{ placeholder }}</option>
<option v-for="(option, index) in options" :key="index" :value="option.value ?? index">
{{ option.label ?? option }}
</option>
</select>
<textarea
v-else-if="computedType === 'textarea'"
:id="id"
v-model="computedValue"
:class="inputElClass"
:name="name"
:placeholder="placeholder"
:required="required"
/>
<input
v-else
:id="id"
ref="inputEl"
v-model="computedValue"
:name="name"
:inputmode="inputmode"
:autocomplete="autocomplete"
:required="required"
:placeholder="placeholder"
:type="computedType"
:class="inputElClass"
:readonly="isReadOnly"
/>
<textarea v-else-if="computedType === 'textarea'" :id="id" v-model="computedValue" :class="inputElClass"
:name="name" :placeholder="placeholder" :required="required" />
<input v-else :id="id" ref="inputEl" v-model="computedValue" :name="name" :inputmode="inputmode"
:autocomplete="autocomplete" :required="required" :placeholder="placeholder" :type="computedType"
:class="inputElClass" :readonly="isReadOnly" />
<FormControlIcon v-if="icon" :icon="icon" :h="controlIconH" />
<slot />
<span v-if="showCharCount" class="message-counter" :class="{ 'text-red-500': maxInputLength && maxInputLength < computedValue.length }">
{{ computedValue.length }}
<template v-if="maxInputLength">
/ {{ maxInputLength }}
</template>
</span>
</div>
</template>

View file

@ -669,7 +669,7 @@ Removes a selected keyword
:class="{ 'text-red-400': form.errors['descriptions.0.value'] }"
class="w-full mx-2 flex-1">
<FormControl required v-model="form.descriptions[0].value" type="textarea"
placeholder="[enter main abstract]">
placeholder="[enter main abstract]" :show-char-count="true" :max-input-length="2500">
<div class="text-red-400 text-sm"
v-if="form.errors['descriptions.0.value'] && Array.isArray(form.errors['descriptions.0.value'])">
{{ form.errors['descriptions.0.value'].join(', ') }}
@ -701,7 +701,7 @@ Removes a selected keyword
:class="{ 'text-red-400': form.errors[`descriptions.${index}.value`] }"
class="w-full mx-2 flex-1">
<FormControl required v-model="form.descriptions[index].value" type="text"
placeholder="[enter additional description]">
placeholder="[enter additional description]" :show-char-count="true" :max-input-length="2500">
<div class="text-red-400 text-sm" v-if="form.errors[`descriptions.${index}.value`] &&
Array.isArray(form.errors[`descriptions.${index}.value`])
">

View file

@ -65,15 +65,15 @@ const handleSubmit = async (e: Event) => {
</SectionTitleLineWithButton>
<CardBox form @submit.prevent="handleSubmit">
<FormValidationErrors v-bind:errors="errors" />
<div class="lex flex-col md:flex-row mb-3">
<label for="elevation-option-one" class="pure-radio">
<input id="elevation-option-one" type="radio" v-model="form.preferation" value="yes_preferation" />
preferred reviewer
</label>
<div class="lex flex-col md:flex-row mb-3">
<label for="elevation-option-two" class="pure-radio">
<input id="elevation-option-two" type="radio" v-model="form.preferation" value="no_preferation" />
no preferred reviewer
</label>
<label for="elevation-option-one" class="pure-radio">
<input id="elevation-option-one" type="radio" v-model="form.preferation" value="yes_preferation" />
preferred reviewer
</label>
</div>
<div v-if="isPreferationRequired == true">
<FormField label="preferred reviewer" :class="{ 'text-red-400': form.errors.preferred_reviewer }">

View file

@ -11,7 +11,7 @@ import { darkModeKey, styleKey } from '@/config';
// import type { DefineComponent } from 'vue';
// import { resolvePageComponent } from '@adonisjs/inertia/helpers';
const pinia = createPinia();
import i18n from './i18n';
// import i18n from './i18n';
import { EmitterPlugin } from '@/EmitterDirective';
import { initRoutes } from '@eidellev/adonis-stardust/client/index.js';
@ -63,7 +63,7 @@ createInertiaApp({
createApp({ render: () => h(App, props) })
.use(plugin)
.use(pinia)
.use(i18n)
// .use(i18n)
.use(EmitterPlugin)
// .component('inertia-link', Link)
.mount(el);