mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 23:35:59 +00:00
rename column, drop column ctx menu works
This commit is contained in:
@@ -3,36 +3,29 @@
|
||||
</script>
|
||||
|
||||
<script lang="ts">
|
||||
import _ from 'lodash';
|
||||
|
||||
import { getColumnIcon } from '../elements/ColumnLabel.svelte';
|
||||
import { renameDatabaseObjectDialog } from '../utility/alterDatabaseTools';
|
||||
import { renameDatabaseObjectDialog, alterDatabaseDialog } 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
|
||||
),
|
||||
}));
|
||||
renameDatabaseObjectDialog(data.conid, data.database, data.columnName, (db, newName) => {
|
||||
const tbl = db.tables.find(x => x.schemaName == data.schemaName && x.pureName == data.pureName);
|
||||
const col = tbl.columns.find(x => x.columnName == data.columnName);
|
||||
col.columnName = newName;
|
||||
});
|
||||
}
|
||||
|
||||
function handleDropColumn() {}
|
||||
function handleDropColumn() {
|
||||
alterDatabaseDialog(data.conid, data.database, db => {
|
||||
const tbl = db.tables.find(x => x.schemaName == data.schemaName && x.pureName == data.pureName);
|
||||
_.remove(tbl.columns as any[], x => x.columnName == data.columnName);
|
||||
});
|
||||
}
|
||||
|
||||
function createMenu() {
|
||||
return [
|
||||
|
||||
@@ -513,20 +513,20 @@
|
||||
});
|
||||
} else if (menu.isDrop) {
|
||||
const { conid, database } = data;
|
||||
alterDatabaseDialog(conid, database, db => ({
|
||||
...db,
|
||||
[data.objectTypeField]: (db[data.objectTypeField] || []).filter(
|
||||
x => x.schemaName != data.schemaName || x.pureName != data.pureName
|
||||
),
|
||||
}));
|
||||
alterDatabaseDialog(conid, database, db => {
|
||||
_.remove(
|
||||
db[data.objectTypeField] as any[],
|
||||
x => x.schemaName == data.schemaName && x.pureName == data.pureName
|
||||
);
|
||||
});
|
||||
} else if (menu.isRename) {
|
||||
const { conid, database } = data;
|
||||
renameDatabaseObjectDialog(conid, database, data.pureName, (db, newName) => ({
|
||||
...db,
|
||||
[data.objectTypeField]: (db[data.objectTypeField] || []).map(x =>
|
||||
x.schemaName == data.schemaName && x.pureName == data.pureName ? { ...x, pureName: newName } : x
|
||||
),
|
||||
}));
|
||||
renameDatabaseObjectDialog(conid, database, data.pureName, (db, newName) => {
|
||||
const obj = db[data.objectTypeField].find(
|
||||
x => x.schemaName == data.schemaName && x.pureName == data.pureName
|
||||
);
|
||||
obj.pureName = newName;
|
||||
});
|
||||
} else {
|
||||
openDatabaseObjectDetail(menu.tab, menu.scriptTemplate, data, menu.forceNewTab, menu.initialData);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user