Skip to content

Commit dd4b7bd

Browse files
authored
Allow the update row service form to write to data synced tables with writable fields. (baserow#4300)
* Allow the update row service form to write to data synced tables, but only if they contain writable fields. * Moving some translation strings from builder to integrations. * Updating the changelog * Fixing rebase mistake
1 parent d01cd84 commit dd4b7bd

File tree

6 files changed

+40
-12
lines changed

6 files changed

+40
-12
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "feature",
3+
"message": "Allow the Local Baserow 'update row' service to update data synced tables with writable fields.",
4+
"issue_origin": "github",
5+
"issue_number": 3799,
6+
"domain": "integration",
7+
"bullet_points": [],
8+
"created_at": "2025-11-19"
9+
}

web-frontend/modules/builder/locales/en.json

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -908,15 +908,6 @@
908908
"dataSource": "Data source",
909909
"formulas": "Formulas"
910910
},
911-
"localBaserowServiceForm": {
912-
"integrationDropdownLabel": "Integration",
913-
"rowIdLabel": "Row ID",
914-
"rowIdPlaceholder": "Select a row ID"
915-
},
916-
"upsertRowWorkflowActionForm": {
917-
"fieldMappingPlaceholder": "Choose a field value",
918-
"noTableSelectedMessage": "Choose a table to begin configuring your fields."
919-
},
920911
"fieldMappingContext": {
921912
"enableField": "Enable field",
922913
"disableField": "Disable field"

web-frontend/modules/integrations/localBaserow/components/services/LocalBaserowServiceForm.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export default {
9191
},
9292
/**
9393
* Whether to disallow the selection of data synced tables. Data sources
94-
* can select them, but workflow actions cannot.
94+
* can select them, but a create-row workflow action cannot.
9595
*/
9696
disallowDataSyncedTables: {
9797
type: Boolean,

web-frontend/modules/integrations/localBaserow/components/services/LocalBaserowUpdateRowServiceForm.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<template>
22
<UpsertRowWorkflowActionForm
33
enable-row-id
4+
:disallow-data-synced-tables="false"
45
v-bind="$attrs"
56
v-on="$listeners"
67
/>

web-frontend/modules/integrations/localBaserow/components/services/LocalBaserowUpsertRowServiceForm.vue

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,25 @@
55
:application="application"
66
:enable-view-picker="false"
77
:default-values="defaultValues"
8-
disallow-data-synced-tables
8+
:disallow-data-synced-tables="disallowDataSyncedTables"
99
@table-changed="handleTableChange"
1010
@values-changed="emitServiceChange($event)"
1111
></LocalBaserowServiceForm>
1212
<div v-if="tableLoading" class="loading-spinner margin-bottom-1"></div>
1313
<p v-if="values.integration_id && !values.table_id">
14-
{{ $t('upsertRowWorkflowActionForm.noTableSelectedMessage') }}
14+
{{ $t('localBaserowUpsertRowServiceForm.noTableSelectedMessage') }}
1515
</p>
1616
<FieldMappingsForm
1717
v-if="!tableLoading"
1818
v-model="values.field_mappings"
1919
:fields="writableSchemaFields"
2020
></FieldMappingsForm>
21+
<Alert
22+
v-if="!tableLoading && service?.table_id && !writableSchemaFields.length"
23+
type="warning"
24+
>
25+
<p>{{ $t('localBaserowUpsertRowServiceForm.noWritableFields') }}</p>
26+
</Alert>
2127
</form>
2228
</template>
2329

@@ -58,6 +64,17 @@ export default {
5864
required: false,
5965
default: false,
6066
},
67+
/**
68+
* Whether to disallow selecting data synced tables. It defaults to
69+
* true as this is the default behaviour for the create row action
70+
* form. The update row action form allows data synced tables, assuming
71+
* they have writable fields.
72+
*/
73+
disallowDataSyncedTables: {
74+
type: Boolean,
75+
required: false,
76+
default: true,
77+
},
6178
},
6279
data() {
6380
return {

web-frontend/modules/integrations/locales/en.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,5 +309,15 @@
309309
"monthHelper": "This workflow will run every month on the specified day and time in your local timezone ({timezone})",
310310
"deactivatedTitle": "Periodic trigger deactivated",
311311
"deactivatedText": "This periodic trigger has been automatically deactivated due to consecutive failures."
312+
},
313+
"localBaserowServiceForm": {
314+
"integrationDropdownLabel": "Integration",
315+
"rowIdLabel": "Row ID",
316+
"rowIdPlaceholder": "Select a row ID"
317+
},
318+
"localBaserowUpsertRowServiceForm": {
319+
"fieldMappingPlaceholder": "Choose a field value",
320+
"noTableSelectedMessage": "Choose a table to begin configuring your fields.",
321+
"noWritableFields": "This table does not contain any writable fields."
312322
}
313323
}

0 commit comments

Comments
 (0)