mirror of
https://github.com/directus/directus.git
synced 2026-02-16 08:25:10 -05:00
Fix generated columns being required. (#9200)
* Fix generated columns being required. Also prevent schema changes on generated columns. * Fix type errors * Disable `unique` and `nullable` instead of not showing them. * Fix other type error * Nullable check small refactor * Fixed MSSQL query * Fixed oracle query
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
<template>
|
||||
<div class="form">
|
||||
<div class="field half-left">
|
||||
<div v-if="!isGenerated" class="field half-left">
|
||||
<div class="label type-label">{{ t('readonly') }}</div>
|
||||
<v-checkbox v-model="readonly" :label="t('disabled_editing_value')" block />
|
||||
</div>
|
||||
|
||||
<div class="field half-right">
|
||||
<div class="label type-label">{{ t('hidden') }}</div>
|
||||
<v-checkbox v-model="hidden" :label="t('hidden_on_detail')" block />
|
||||
<div v-if="!isGenerated" class="field half-right">
|
||||
<div class="label type-label">{{ t('required') }}</div>
|
||||
<v-checkbox v-model="required" :label="t('require_value_to_be_set')" block />
|
||||
</div>
|
||||
|
||||
<div class="field half-left">
|
||||
<div class="label type-label">{{ t('required') }}</div>
|
||||
<v-checkbox v-model="required" :label="t('require_value_to_be_set')" block />
|
||||
<div class="label type-label">{{ t('hidden') }}</div>
|
||||
<v-checkbox v-model="hidden" :label="t('hidden_on_detail')" block />
|
||||
</div>
|
||||
|
||||
<div v-if="type !== 'group'" class="field full">
|
||||
@@ -84,8 +84,9 @@ export default defineComponent({
|
||||
const { field } = storeToRefs(fieldDetailStore);
|
||||
|
||||
const type = computed(() => field.value.type);
|
||||
const isGenerated = computed(() => field.value.schema?.is_generated);
|
||||
|
||||
return { t, readonly, hidden, required, note, translations, type };
|
||||
return { t, readonly, hidden, required, note, translations, type, isGenerated };
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div v-if="!isAlias && !isPrimaryKey" class="field full">
|
||||
<div v-if="!isAlias && !isPrimaryKey && !isGenerated" class="field full">
|
||||
<div class="label type-label">{{ t('default_value') }}</div>
|
||||
|
||||
<v-input v-if="['string', 'uuid'].includes(type)" v-model="defaultValue" class="monospace" placeholder="NULL" />
|
||||
@@ -136,12 +136,12 @@
|
||||
|
||||
<div v-if="!isAlias" class="field half-left">
|
||||
<div class="label type-label">{{ t('nullable') }}</div>
|
||||
<v-checkbox v-model="nullable" :label="t('allow_null_value')" block />
|
||||
<v-checkbox v-model="nullable" :disabled="!isGenerated" :label="t('allow_null_value')" block />
|
||||
</div>
|
||||
|
||||
<div v-if="!isAlias" class="field half-right">
|
||||
<div class="label type-label">{{ t('unique') }}</div>
|
||||
<v-checkbox v-model="unique" :label="t('value_unique')" block />
|
||||
<v-checkbox v-model="unique" :disabled="!isGenerated" :label="t('value_unique')" block />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -279,6 +279,10 @@ export default defineComponent({
|
||||
return fieldDetailStore.field.schema?.is_primary_key === true;
|
||||
});
|
||||
|
||||
const isGenerated = computed(() => {
|
||||
return fieldDetailStore.field.schema?.is_generated;
|
||||
});
|
||||
|
||||
return {
|
||||
t,
|
||||
typesWithLabels,
|
||||
@@ -303,6 +307,7 @@ export default defineComponent({
|
||||
unique,
|
||||
isPrimaryKey,
|
||||
isExisting,
|
||||
isGenerated,
|
||||
};
|
||||
|
||||
function useOnCreate() {
|
||||
|
||||
Reference in New Issue
Block a user