load views, procedures, functions

This commit is contained in:
Jan Prochazka
2020-04-12 12:24:40 +02:00
parent 241d8ea647
commit ea6c31187b
11 changed files with 217 additions and 35 deletions

View File

@@ -0,0 +1,16 @@
import tableAppObject from './tableAppObject';
import viewAppObject from './viewAppObject';
const databaseObjectAppObject = () => ({ objectTypeField, ...other }, props) => {
switch (objectTypeField) {
case 'tables':
// @ts-ignore
return tableAppObject()(other, props);
case 'views':
// @ts-ignore
return viewAppObject()(other, props);
}
return null;
};
export default databaseObjectAppObject;

View File

@@ -58,9 +58,10 @@ const tableAppObject = () => ({ conid, database, pureName, schemaName }, { setOp
database,
});
};
const matcher = filter => filterName(filter, pureName);
const matcher = (filter) => filterName(filter, pureName);
const groupTitle = 'Tables';
return { title, key, Icon, Menu, onClick, matcher };
return { title, key, Icon, Menu, onClick, matcher, groupTitle };
};
export default tableAppObject;

View File

@@ -0,0 +1,74 @@
import React from 'react';
import { ViewIcon } from '../icons';
import { DropDownMenuItem } from '../modals/DropDownMenu';
import { openNewTab } from '../utility/common';
import getConnectionInfo from '../utility/getConnectionInfo';
import fullDisplayName from '../utility/fullDisplayName';
import { filterName } from '@dbgate/datalib';
// async function openTableDetail(setOpenedTabs, tabComponent, { schemaName, pureName, conid, database }) {
// const connection = await getConnectionInfo(conid);
// const tooltip = `${connection.displayName || connection.server}\n${database}\n${fullDisplayName({
// schemaName,
// pureName,
// })}`;
// openNewTab(setOpenedTabs, {
// title: pureName,
// tooltip,
// icon: 'table2.svg',
// tabComponent,
// props: {
// schemaName,
// pureName,
// conid,
// database,
// },
// });
// }
// function Menu({ data, makeAppObj, setOpenedTabs }) {
// const handleOpenData = () => {
// openTableDetail(setOpenedTabs, 'TableDataTab', data);
// };
// const handleOpenStructure = () => {
// openTableDetail(setOpenedTabs, 'TableStructureTab', data);
// };
// const handleOpenCreateScript = () => {
// openTableDetail(setOpenedTabs, 'TableCreateScriptTab', data);
// };
// return (
// <>
// <DropDownMenuItem onClick={handleOpenData}>Open data</DropDownMenuItem>
// <DropDownMenuItem onClick={handleOpenStructure}>Open structure</DropDownMenuItem>
// <DropDownMenuItem onClick={handleOpenCreateScript}>Create SQL</DropDownMenuItem>
// </>
// );
// }
const viewAppObject = () => ({ conid, database, pureName, schemaName }, { setOpenedTabs }) => {
const title = schemaName ? `${schemaName}.${pureName}` : pureName;
const key = title;
const Icon = ViewIcon;
// const onClick = ({ schemaName, pureName }) => {
// openTableDetail(setOpenedTabs, 'TableDataTab', {
// schemaName,
// pureName,
// conid,
// database,
// });
// };
const matcher = (filter) => filterName(filter, pureName);
const groupTitle = 'Views';
return {
title,
key,
Icon,
// Menu, onClick,
matcher,
groupTitle,
};
};
export default viewAppObject;