search in databases

This commit is contained in:
Jan Prochazka
2021-09-28 10:04:29 +02:00
parent e2ce2f7057
commit 1f8021833b

View File

@@ -24,7 +24,7 @@
testEnabled: () => getVisibleCommandPalette() != 'database', testEnabled: () => getVisibleCommandPalette() != 'database',
}); });
function extractDbItems(db, dbConnectionInfo) { function extractDbItems(db, dbConnectionInfo, connectionList) {
const objectList = _.flatten( const objectList = _.flatten(
['tables', 'collections', 'views', 'matviews', 'procedures', 'functions'].map(objectTypeField => ['tables', 'collections', 'views', 'matviews', 'procedures', 'functions'].map(objectTypeField =>
_.sortBy( _.sortBy(
@@ -33,11 +33,23 @@
onClick: () => handleDatabaseObjectClick({ objectTypeField, ...dbConnectionInfo, ...obj }), onClick: () => handleDatabaseObjectClick({ objectTypeField, ...dbConnectionInfo, ...obj }),
icon: databaseObjectIcons[objectTypeField], icon: databaseObjectIcons[objectTypeField],
})), })),
['schemaName', 'pureName'] ['text']
) )
) )
); );
return objectList; const databaseList = [];
for (const connection of connectionList || []) {
const conid = connection._id;
const databases = getLocalStorage(`database_list_${conid}`) || [];
for (const db of databases) {
databaseList.push({
text: `${db.name} on ${getConnectionLabel(connection)}`,
icon: 'img database',
onClick: () => currentDatabase.set({ connection, name: db.name }),
});
}
}
return [..._.sortBy(databaseList, 'text'), ...objectList];
// return db?.tables?.map(table => ({ // return db?.tables?.map(table => ({
// text: table.pureName, // text: table.pureName,
@@ -61,9 +73,11 @@
visibleCommandPalette, visibleCommandPalette,
} from '../stores'; } from '../stores';
import clickOutside from '../utility/clickOutside'; import clickOutside from '../utility/clickOutside';
import getConnectionLabel from '../utility/getConnectionLabel';
import getElectron from '../utility/getElectron'; import getElectron from '../utility/getElectron';
import keycodes from '../utility/keycodes'; import keycodes from '../utility/keycodes';
import { useDatabaseInfo } from '../utility/metadataLoaders'; import { useConnectionList, useDatabaseInfo } from '../utility/metadataLoaders';
import { getLocalStorage } from '../utility/storageCache';
import registerCommand from './registerCommand'; import registerCommand from './registerCommand';
let domInput; let domInput;
@@ -89,9 +103,10 @@
$: conid = _.get($currentDatabase, 'connection._id'); $: conid = _.get($currentDatabase, 'connection._id');
$: database = _.get($currentDatabase, 'name'); $: database = _.get($currentDatabase, 'name');
$: databaseInfo = useDatabaseInfo({ conid, database }); $: databaseInfo = useDatabaseInfo({ conid, database });
$: connectionList = useConnectionList();
$: filteredItems = ($visibleCommandPalette == 'database' $: filteredItems = ($visibleCommandPalette == 'database'
? extractDbItems($databaseInfo, { conid, database }) ? extractDbItems($databaseInfo, { conid, database }, $connectionList)
: parentCommand : parentCommand
? parentCommand.getSubCommands() ? parentCommand.getSubCommands()
: sortedComands : sortedComands