column ctx menu

This commit is contained in:
Jan Prochazka
2021-09-11 08:33:35 +02:00
parent da4f465ed3
commit 82601dea24
2 changed files with 34 additions and 0 deletions

View File

@@ -4,11 +4,43 @@
<script lang="ts">
import { getColumnIcon } from '../elements/ColumnLabel.svelte';
import { renameDatabaseObjectDialog } from '../utility/alterDatabaseTools';
import AppObjectCore from './AppObjectCore.svelte';
export let data;
function handleRenameColumn() {
renameDatabaseObjectDialog(data.conid, data.database, data.columnName, (db, newName) => ({
...db,
tables: db.tables.map(tbl =>
tbl.schemaName == data.schemaName && tbl.pureName == data.pureName
? {
...tbl,
columns: tbl.columns.map(
col =>
(col.columnName = data.columnName
? {
...col,
columnName: newName,
}
: col)
),
}
: tbl
),
}));
}
function handleDropColumn() {}
function createMenu() {
return [
{ text: 'Rename column', onClick: handleRenameColumn },
{ text: 'Drop column', onClick: handleDropColumn },
];
}
$: extInfo = data.foreignKey ? `${data.dataType} -> ${data.foreignKey.refTableName}` : data.dataType;
</script>
@@ -18,5 +50,6 @@
title={data.columnName}
{extInfo}
icon={getColumnIcon(data, true)}
menu={createMenu}
disableHover
/>

View File

@@ -9,6 +9,7 @@
<AppObjectList
list={(data.columns || []).map(col => ({
...data,
...col,
foreignKey: findForeignKeyForColumn(data, col),
}))}