1
0
Fork 0
mirror of synced 2024-09-10 14:35:47 +12:00

Merge pull request #11689 from Budibase/duplicate-column

Add option to duplicate columns
This commit is contained in:
Martin McKeaveney 2023-09-12 16:38:20 +01:00 committed by GitHub
commit 69a64464f0

View file

@ -20,6 +20,8 @@
config, config,
ui, ui,
columns, columns,
definition,
datasource,
} = getContext("grid") } = getContext("grid")
const bannedDisplayColumnTypes = [ const bannedDisplayColumnTypes = [
@ -118,6 +120,33 @@
open = false open = false
} }
const duplicateColumn = async () => {
open = false
// Generate new name
let newName = `${column.name} copy`
let attempts = 2
while ($definition.schema[newName]) {
newName = `${column.name} copy ${attempts++}`
}
// Save schema with new column
const existingColumnDefinition = $definition.schema[column.name]
await datasource.actions.saveDefinition({
...$definition,
schema: {
...$definition.schema,
[newName]: {
...existingColumnDefinition,
name: newName,
schema: {
...existingColumnDefinition.schema,
},
},
},
})
}
onMount(() => subscribe("close-edit-column", cancelEdit)) onMount(() => subscribe("close-edit-column", cancelEdit))
</script> </script>
@ -192,6 +221,13 @@
> >
Edit column Edit column
</MenuItem> </MenuItem>
<MenuItem
icon="Duplicate"
on:click={duplicateColumn}
disabled={!$config.canEditColumns}
>
Duplicate column
</MenuItem>
<MenuItem <MenuItem
icon="Label" icon="Label"
on:click={makeDisplayColumn} on:click={makeDisplayColumn}