mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Allow multiple in v-upload
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<v-button
|
||||
v-if="collection.system === null && collection.collection.startsWith('directus_') === false"
|
||||
v-if="collection.meta === null && collection.collection.startsWith('directus_') === false"
|
||||
x-small
|
||||
outlined
|
||||
class="manage"
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
<div>
|
||||
<h2 class="type-title">{{ $t('display_setup_title') }}</h2>
|
||||
|
||||
<v-fancy-select class="select" :items="selectItems" v-model="fieldData.system.display" />
|
||||
<v-fancy-select class="select" :items="selectItems" v-model="fieldData.meta.display" />
|
||||
|
||||
<v-notice class="not-found" type="danger" v-if="fieldData.system.display && !selectedDisplay">
|
||||
{{ $t('display_not_found', { display: fieldData.system.display }) }}
|
||||
<v-notice class="not-found" type="danger" v-if="fieldData.meta.display && !selectedDisplay">
|
||||
{{ $t('display_not_found', { display: fieldData.meta.display }) }}
|
||||
<div class="spacer" />
|
||||
<button @click="fieldData.system.display = null">{{ $t('reset_display') }}</button>
|
||||
<button @click="fieldData.meta.display = null">{{ $t('reset_display') }}</button>
|
||||
</v-notice>
|
||||
|
||||
<template v-if="fieldData.system.display && !selectedDisplay">
|
||||
<template v-if="fieldData.meta.display && !selectedDisplay">
|
||||
<v-form
|
||||
v-if="
|
||||
selectedDisplay.options &&
|
||||
@@ -19,7 +19,7 @@
|
||||
"
|
||||
:fields="selectedDisplay.options"
|
||||
primary-key="+"
|
||||
v-model="fieldData.system.options"
|
||||
v-model="fieldData.meta.options"
|
||||
/>
|
||||
|
||||
<v-notice v-else>
|
||||
@@ -71,7 +71,7 @@ export default defineComponent({
|
||||
);
|
||||
|
||||
const selectedDisplay = computed(() => {
|
||||
return displays.find((display) => display.id === state.fieldData.system.display);
|
||||
return displays.find((display) => display.id === state.fieldData.meta.display);
|
||||
});
|
||||
|
||||
return { fieldData: state.fieldData, selectItems, selectedDisplay };
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
<div>
|
||||
<h2 class="type-title">{{ $t('interface_setup_title') }}</h2>
|
||||
|
||||
<v-fancy-select class="select" :items="selectItems" v-model="fieldData.system.interface" />
|
||||
<v-fancy-select class="select" :items="selectItems" v-model="fieldData.meta.interface" />
|
||||
|
||||
<v-notice class="not-found" type="danger" v-if="fieldData.system.interface && !selectedInterface">
|
||||
{{ $t('interface_not_found', { interface: fieldData.system.interface }) }}
|
||||
<v-notice class="not-found" type="danger" v-if="fieldData.meta.interface && !selectedInterface">
|
||||
{{ $t('interface_not_found', { interface: fieldData.meta.interface }) }}
|
||||
<div class="spacer" />
|
||||
<button @click="fieldData.system.interface = null">{{ $t('reset_interface') }}</button>
|
||||
<button @click="fieldData.meta.interface = null">{{ $t('reset_interface') }}</button>
|
||||
</v-notice>
|
||||
|
||||
<template v-if="fieldData.system.interface && selectedInterface">
|
||||
<template v-if="fieldData.meta.interface && selectedInterface">
|
||||
<v-form
|
||||
v-if="
|
||||
selectedInterface.options &&
|
||||
@@ -19,7 +19,7 @@
|
||||
"
|
||||
:fields="selectedInterface.options"
|
||||
primary-key="+"
|
||||
v-model="fieldData.system.options"
|
||||
v-model="fieldData.meta.options"
|
||||
/>
|
||||
|
||||
<v-notice v-else>
|
||||
@@ -71,7 +71,7 @@ export default defineComponent({
|
||||
);
|
||||
|
||||
const selectedInterface = computed(() => {
|
||||
return interfaces.find((inter) => inter.id === state.fieldData.system.interface);
|
||||
return interfaces.find((inter) => inter.id === state.fieldData.meta.interface);
|
||||
});
|
||||
|
||||
return { fieldData: state.fieldData, selectItems, selectedInterface };
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<div class="field">
|
||||
<div class="label type-label">{{ $t('type') }}</div>
|
||||
<v-input v-if="!fieldData.database" :value="$t('alias')" disabled />
|
||||
<v-input v-if="!fieldData.schema" :value="$t('alias')" disabled />
|
||||
<v-select
|
||||
v-else
|
||||
:disabled="typeDisabled || isExisting"
|
||||
@@ -23,32 +23,32 @@
|
||||
|
||||
<div class="field full">
|
||||
<div class="label type-label">{{ $t('note') }}</div>
|
||||
<v-input v-model="fieldData.system.comment" :placeholder="$t('add_note')" />
|
||||
<v-input v-model="fieldData.meta.comment" :placeholder="$t('add_note')" />
|
||||
</div>
|
||||
|
||||
<!-- @todo base default value field type on selected type -->
|
||||
<div class="field" v-if="fieldData.database">
|
||||
<div class="field" v-if="fieldData.schema">
|
||||
<div class="label type-label">{{ $t('default_value') }}</div>
|
||||
<v-input
|
||||
class="monospace"
|
||||
v-model="fieldData.database.default_value"
|
||||
v-model="fieldData.schema.default_value"
|
||||
:placeholder="$t('add_a_default_value')"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="field" v-if="fieldData.database">
|
||||
<div class="field" v-if="fieldData.schema">
|
||||
<div class="label type-label">{{ $t('length') }}</div>
|
||||
<v-input
|
||||
type="number"
|
||||
:placeholder="fieldData.type !== 'string' ? $t('not_available_for_type') : '255'"
|
||||
:disabled="isExisting || fieldData.type !== 'string'"
|
||||
v-model="fieldData.database.max_length"
|
||||
v-model="fieldData.schema.max_length"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="field" v-if="fieldData.database">
|
||||
<div class="field" v-if="fieldData.schema">
|
||||
<div class="label type-label">{{ $t('allow_null') }}</div>
|
||||
<v-checkbox v-model="fieldData.database.is_nullable" :label="$t('allow_null_label')" block />
|
||||
<v-checkbox v-model="fieldData.schema.is_nullable" :label="$t('allow_null_label')" block />
|
||||
</div>
|
||||
|
||||
<!--
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
<div class="field">
|
||||
<div class="label type-label">{{ $t('unique') }}</div>
|
||||
<v-input v-model="fieldData.database.unique" />
|
||||
<v-input v-model="fieldData.schema.unique" />
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
@@ -116,17 +116,17 @@ export default defineComponent({
|
||||
|
||||
function setType(value: typeof types[number]) {
|
||||
if (value === 'uuid') {
|
||||
state.fieldData.system.special = 'uuid';
|
||||
state.fieldData.meta.special = 'uuid';
|
||||
} else {
|
||||
state.fieldData.system.special = null;
|
||||
state.fieldData.meta.special = null;
|
||||
}
|
||||
|
||||
// We'll reset the interface/display as they most likely won't work for the newly selected
|
||||
// type
|
||||
state.fieldData.system.interface = null;
|
||||
state.fieldData.system.options = null;
|
||||
state.fieldData.system.display = null;
|
||||
state.fieldData.system.display_options = null;
|
||||
state.fieldData.meta.interface = null;
|
||||
state.fieldData.meta.options = null;
|
||||
state.fieldData.meta.display = null;
|
||||
state.fieldData.meta.display_options = null;
|
||||
state.fieldData.type = value;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -25,12 +25,12 @@ function initLocalStore(
|
||||
fieldData: {
|
||||
field: '',
|
||||
type: '',
|
||||
database: {
|
||||
schema: {
|
||||
default_value: undefined,
|
||||
max_length: undefined,
|
||||
is_nullable: true,
|
||||
},
|
||||
system: {
|
||||
meta: {
|
||||
hidden: false,
|
||||
interface: undefined,
|
||||
options: undefined,
|
||||
@@ -52,8 +52,8 @@ function initLocalStore(
|
||||
|
||||
state.fieldData.field = existingField.field;
|
||||
state.fieldData.type = existingField.type;
|
||||
state.fieldData.database = existingField.schema;
|
||||
state.fieldData.system = existingField.meta;
|
||||
state.fieldData.schema = existingField.schema;
|
||||
state.fieldData.meta = existingField.meta;
|
||||
|
||||
state.relations = relationsStore.getRelationsForField(collection, field);
|
||||
}
|
||||
@@ -122,11 +122,11 @@ function initLocalStore(
|
||||
}
|
||||
|
||||
if (type === 'o2m') {
|
||||
delete state.fieldData.database;
|
||||
delete state.fieldData.schema;
|
||||
delete state.fieldData.type;
|
||||
|
||||
if (!isExisting) {
|
||||
state.fieldData.system.special = 'o2m';
|
||||
state.fieldData.meta.special = 'o2m';
|
||||
|
||||
state.relations = [
|
||||
{
|
||||
@@ -159,11 +159,11 @@ function initLocalStore(
|
||||
}
|
||||
|
||||
if (type === 'm2m' || type === 'files') {
|
||||
delete state.fieldData.database;
|
||||
delete state.fieldData.schema;
|
||||
delete state.fieldData.type;
|
||||
|
||||
if (!isExisting) {
|
||||
state.fieldData.system.special = 'm2m';
|
||||
state.fieldData.meta.special = 'm2m';
|
||||
|
||||
state.relations = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user