1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-05-21 16:06:56 +00:00

Resolve "Order fields in the row edit / create modal"

This commit is contained in:
Davide Silvestri 2022-05-24 09:19:07 +00:00
parent f9443931f0
commit 058f8aa96a
19 changed files with 592 additions and 155 deletions
web-frontend/modules/database/components/row

View file

@ -5,18 +5,42 @@
{{ heading }}
</h2>
<Error :error="error"></Error>
<RowEditModalField
v-for="field in allFields"
:key="'row-create-field-' + field.id"
:ref="'field-' + field.id"
:field="field"
<RowEditModalFieldsList
:primary-is-sortable="primaryIsSortable"
:fields="visibleFields"
:sortable="true"
:hidden="false"
:read-only="false"
:row="row"
:table="table"
:read-only="false"
@update="update"
@field-updated="$emit('field-updated', $event)"
@field-deleted="$emit('field-deleted')"
></RowEditModalField>
@order-fields="$emit('order-fields', $event)"
@toggle-field-visibility="$emit('toggle-field-visibility', $event)"
@update="update"
></RowEditModalFieldsList>
<RowEditModalHiddenFieldsSection
v-if="hiddenFields.length"
:show-hidden-fields="showHiddenFields"
@toggle-hidden-fields-visibility="
$emit('toggle-hidden-fields-visibility')
"
>
<RowEditModalFieldsList
:primary-is-sortable="primaryIsSortable"
:fields="hiddenFields"
:sortable="false"
:hidden="true"
:read-only="false"
:row="row"
:table="table"
@field-updated="$emit('field-updated', $event)"
@field-deleted="$emit('field-deleted')"
@toggle-field-visibility="$emit('toggle-field-visibility', $event)"
@update="update"
>
</RowEditModalFieldsList>
</RowEditModalHiddenFieldsSection>
<div class="actions">
<div class="align-right">
<button
@ -36,12 +60,14 @@
import Vue from 'vue'
import modal from '@baserow/modules/core/mixins/modal'
import error from '@baserow/modules/core/mixins/error'
import RowEditModalField from '@baserow/modules/database/components/row/RowEditModalField'
import RowEditModalFieldsList from './RowEditModalFieldsList.vue'
import RowEditModalHiddenFieldsSection from './RowEditModalHiddenFieldsSection.vue'
export default {
name: 'RowCreateModal',
components: {
RowEditModalField,
RowEditModalFieldsList,
RowEditModalHiddenFieldsSection,
},
mixins: [modal, error],
props: {
@ -54,10 +80,25 @@ export default {
required: false,
default: undefined,
},
fields: {
primaryIsSortable: {
type: Boolean,
required: false,
default: false,
},
visibleFields: {
type: Array,
required: true,
},
hiddenFields: {
type: Array,
required: false,
default: () => [],
},
showHiddenFields: {
type: Boolean,
required: false,
default: false,
},
},
data() {
return {
@ -67,10 +108,7 @@ export default {
},
computed: {
allFields() {
return [this.primary]
.concat(this.fields)
.slice()
.sort((a, b) => a.order - b.order)
return this.visibleFields.concat(this.hiddenFields)
},
heading() {
const name = `field_${this.primary.id}`