This commit is contained in:
Nybkox
2025-01-23 15:46:15 +01:00
parent 645a1d35e8
commit bcf89b1f09
33 changed files with 832 additions and 87 deletions

View File

@@ -21,11 +21,15 @@
import { renameDatabaseObjectDialog, alterDatabaseDialog } from '../utility/alterDatabaseTools';
import AppObjectCore from './AppObjectCore.svelte';
import { DEFAULT_OBJECT_SEARCH_SETTINGS } from '../stores';
import { filterName } from 'dbgate-tools';
import { DEFAULT_OBJECT_SEARCH_SETTINGS, extensions } from '../stores';
import { filterName, findEngineDriver } from 'dbgate-tools';
import { useConnectionInfo } from '../utility/metadataLoaders';
export let data;
$: connection = useConnectionInfo({ conid: data.conid });
$: driver = findEngineDriver($connection, $extensions);
function handleRenameColumn() {
renameDatabaseObjectDialog(data.conid, data.database, data.columnName, (db, newName) => {
const tbl = db.tables.find(x => x.schemaName == data.schemaName && x.pureName == data.pureName);
@@ -42,11 +46,20 @@
}
function createMenu() {
return [
{ text: 'Rename column', onClick: handleRenameColumn },
const isPrimaryKey = !!data.primaryKey?.columns?.some(i => i.columnName == data.columnName);
const menu = [];
if (!driver.dialect.disableNonPrimaryKeyRename || isPrimaryKey) {
menu.push({ text: 'Rename column', onClick: handleRenameColumn });
}
menu.push(
{ text: 'Drop column', onClick: handleDropColumn },
{ text: 'Copy name', onClick: () => navigator.clipboard.writeText(data.columnName) },
];
{ text: 'Copy name', onClick: () => navigator.clipboard.writeText(data.columnName) }
);
return menu;
}
function getExtInfo(data) {