mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 07:16:01 +00:00
column ctx menu
This commit is contained in:
@@ -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
|
||||
/>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
<AppObjectList
|
||||
list={(data.columns || []).map(col => ({
|
||||
...data,
|
||||
...col,
|
||||
foreignKey: findForeignKeyForColumn(data, col),
|
||||
}))}
|
||||
|
||||
Reference in New Issue
Block a user