rename column, drop column ctx menu works

This commit is contained in:
Jan Prochazka
2021-09-11 08:47:22 +02:00
parent 82601dea24
commit f47c83fece
3 changed files with 29 additions and 34 deletions

View File

@@ -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 [

View File

@@ -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);
}