diff --git a/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyFieldPicker.vue b/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyFieldPicker.vue
index 99a56cd86e..5fc2fbccc6 100644
--- a/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyFieldPicker.vue
+++ b/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyFieldPicker.vue
@@ -7,16 +7,15 @@
:error="hasError"
>
-
+
+
+
{{ errors[0].$message }}
@@ -83,6 +86,7 @@ export default {
},
disabled: { type: Boolean, required: false, default: false },
addNew: { type: Boolean, required: false, default: false },
+ loading: { type: Boolean, required: false, default: true },
},
computed: {
errorMessageStr() {
@@ -96,8 +100,9 @@ export default {
},
},
methods: {
- isAddNew(value) {
- return value === 'add-new'
+ async hideDropdown() {
+ await this.$nextTick()
+ this.$refs.dropdown.hide()
},
},
}
diff --git a/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyModal.vue b/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyModal.vue
index 5c7ed6dab2..22e5078584 100644
--- a/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyModal.vue
+++ b/enterprise/web-frontend/modules/baserow_enterprise/components/dateDependency/DateDependencyModal.vue
@@ -39,6 +39,8 @@
icon="iconoir-calendar"
:errors="v$.dependency.start_date_field_id.$errors"
:field-name="$t('dateDependencyModal.startDateFieldLabel')"
+ :disabled="creatingField"
+ :loading="creatingField"
add-new
@add-new="addNewField('start_date_field_id')"
/>
@@ -52,6 +54,8 @@
:errors="v$.dependency.end_date_field_id.$errors"
icon="iconoir-calendar"
:field-name="$t('dateDependencyModal.endDateFieldLabel')"
+ :disabled="creatingField"
+ :loading="creatingField"
add-new
@add-new="addNewField('end_date_field_id')"
/>
@@ -68,6 +72,8 @@
icon="iconoir-clock-rotate-right"
:field-name="$t('dateDependencyModal.durationFieldLabel')"
:helper-text="$t('dateDependencyModal.durationFieldHint')"
+ :disabled="creatingField"
+ :loading="creatingField"
add-new
@add-new="addNewField('duration_field_id')"
/>
@@ -87,6 +93,8 @@
:helper-text="
$t('dateDependencyModal.dependencyLinkrowFieldHint')
"
+ :disabled="creatingField"
+ :loading="creatingField"
add-new
@add-new="addNewField('dependency_linkrow_field_id')"
/>
@@ -154,6 +162,7 @@ export default {
dependency_linkrow_field_id: null,
},
loading: false,
+ creatingField: false,
fields: [],
ready: false,
}
@@ -298,10 +307,16 @@ export default {
)
fieldDef.values.name = fieldName
- const fieldCreated = await this.handleCreateField(fieldDef)
- // fields is not using fields store, so we need to update it manually
- this.fields.push(fieldCreated)
- this.dependency[dependencyFieldName] = fieldCreated.id
+ this.creatingField = true
+ try {
+ const fieldCreated = await this.handleCreateField(fieldDef)
+ // fields is not using fields store, so we need to update it manually
+ this.fields.push(fieldCreated)
+ this.dependency[dependencyFieldName] = fieldCreated.id
+ } finally {
+ this.creatingField = false
+ this.$refs[dependencyFieldName].hideDropdown()
+ }
},
async fetchFields() {
diff --git a/web-frontend/modules/automation/components/settings/AutomationSettingsModal.vue b/web-frontend/modules/automation/components/settings/AutomationSettingsModal.vue
index 99e995a312..f1f3b7cbcc 100644
--- a/web-frontend/modules/automation/components/settings/AutomationSettingsModal.vue
+++ b/web-frontend/modules/automation/components/settings/AutomationSettingsModal.vue
@@ -17,7 +17,11 @@