diff --git a/packages/web/src/TabsPanel.js b/packages/web/src/TabsPanel.js
index 844a3eee2..c9ef6589b 100644
--- a/packages/web/src/TabsPanel.js
+++ b/packages/web/src/TabsPanel.js
@@ -265,7 +265,7 @@ export default function TabsPanel() {
onMouseUp={(e) => handleMouseUp(e, tab.tabid)}
onContextMenu={(e) => handleContextMenu(e, tab.tabid, tab.props)}
>
- {tab.busy ? : getIconImage(tab.icon)}
+ {}
{tab.title}
- {appobj.isExpandable ? (
-
- ) : (
-
- )}
+ {appobj.isExpandable ? : }
) : null
}
@@ -105,7 +101,7 @@ function AppObjectGroup({ group, items }) {
onClick={() => setIsExpanded(!isExpanded)}
>
-
+
{group} {items && `(${items.filter((x) => x.component).length})`}
diff --git a/packages/web/src/appobj/AppObjects.js b/packages/web/src/appobj/AppObjects.js
index 0554bcfdc..0029d97e0 100644
--- a/packages/web/src/appobj/AppObjects.js
+++ b/packages/web/src/appobj/AppObjects.js
@@ -5,7 +5,6 @@ import React from 'react';
import styled from 'styled-components';
import { showMenu } from '../modals/DropDownMenu';
import { useSetOpenedTabs, useAppObjectParams } from '../utility/globalState';
-import { FontIcon } from '../icons';
const AppObjectDiv = styled.div`
padding: 5px;
@@ -23,7 +22,7 @@ const AppObjectSpan = styled.span`
`;
const IconWrap = styled.span`
- margin-right: 10px;
+ margin-right: 5px;
`;
const StatusIconWrap = styled.span`
@@ -32,7 +31,7 @@ const StatusIconWrap = styled.span`
export function AppObjectCore({
title,
- Icon,
+ icon,
Menu,
data,
makeAppObj,
@@ -68,7 +67,7 @@ export function AppObjectCore({
{...other}
>
{prefix}
- {isBusy ? : }
+ {isBusy ? : }
{title}
{statusIcon && (
diff --git a/packages/web/src/appobj/connectionAppObject.js b/packages/web/src/appobj/connectionAppObject.js
index 52cc2dc44..979467c8e 100644
--- a/packages/web/src/appobj/connectionAppObject.js
+++ b/packages/web/src/appobj/connectionAppObject.js
@@ -1,13 +1,10 @@
import _ from 'lodash';
import React from 'react';
-import { getEngineIcon } from '../icons';
import { DropDownMenuItem } from '../modals/DropDownMenu';
-import useShowModal from '../modals/showModal';
import ConnectionModal from '../modals/ConnectionModal';
import axios from '../utility/axios';
import { filterName } from '@dbgate/datalib';
import ConfirmModal from '../modals/ConfirmModal';
-import { useConfig } from '../utility/metadataLoaders';
import CreateDatabaseModal from '../modals/CreateDatabaseModal';
function Menu({ data, setOpenedConnections, openedConnections, config, showModal }) {
@@ -64,7 +61,7 @@ const connectionAppObject = (flags) => (
const title = displayName || server;
const key = _id;
const isExpandable = openedConnections.includes(_id);
- const Icon = getEngineIcon(engine);
+ const icon = 'mdi mdi-server color-blue-icon';
const matcher = (filter) => filterName(filter, displayName, server);
const { boldCurrentDatabase } = flags || {};
const isBold = boldCurrentDatabase
@@ -89,7 +86,7 @@ const connectionAppObject = (flags) => (
return {
title,
key,
- Icon,
+ icon,
Menu,
matcher,
isBold,
diff --git a/packages/web/src/appobj/databaseAppObject.js b/packages/web/src/appobj/databaseAppObject.js
index 7694df3c0..547eb90ad 100644
--- a/packages/web/src/appobj/databaseAppObject.js
+++ b/packages/web/src/appobj/databaseAppObject.js
@@ -12,7 +12,7 @@ function Menu({ data, setOpenedTabs, showModal }) {
const handleNewQuery = () => {
openNewTab(setOpenedTabs, {
title: 'Query',
- icon: 'sql.svg',
+ icon: 'mdi mdi-file',
tooltip,
tabComponent: 'QueryTab',
props: {
@@ -63,7 +63,7 @@ const databaseAppObject = (flags) => ({ name, connection }) => {
const { boldCurrentDatabase } = flags || {};
const title = name;
const key = name;
- const Icon = DatabaseIcon;
+ const icon = 'mdi mdi-database color-yellow-icon';
const isBold = boldCurrentDatabase
? ({ currentDatabase }) => {
return (
@@ -72,7 +72,7 @@ const databaseAppObject = (flags) => ({ name, connection }) => {
}
: null;
- return { title, key, Icon, Menu, isBold };
+ return { title, key, icon, Menu, isBold };
};
export default databaseAppObject;
diff --git a/packages/web/src/appobj/databaseObjectAppObject.js b/packages/web/src/appobj/databaseObjectAppObject.js
index a010956c5..f42497d68 100644
--- a/packages/web/src/appobj/databaseObjectAppObject.js
+++ b/packages/web/src/appobj/databaseObjectAppObject.js
@@ -9,10 +9,10 @@ import { filterName } from '@dbgate/datalib';
import ImportExportModal from '../modals/ImportExportModal';
const icons = {
- tables: 'table2.svg',
- views: 'view2.svg',
- procedures: 'procedure2.svg',
- functions: 'function.svg',
+ tables: 'mdi mdi-table color-blue-icon',
+ views: 'mdi mdi-table color-magenta-icon',
+ procedures: 'mdi mdi-cog color-blue-icon',
+ functions: 'mdi mdi-function-variant',
};
const menus = {
@@ -173,7 +173,8 @@ const databaseObjectAppObject = () => (
) => {
const title = schemaName ? `${schemaName}.${pureName}` : pureName;
const key = title;
- const Icon = (props) => getIconImage(icons[objectTypeField], props);
+ const icon = icons[objectTypeField];
+ // const Icon = (props) => getIconImage(icons[objectTypeField], props);
const onClick = ({ schemaName, pureName }) => {
openDatabaseObjectDetail(
setOpenedTabs,
@@ -191,7 +192,7 @@ const databaseObjectAppObject = () => (
const matcher = (filter) => filterName(filter, pureName);
const groupTitle = _.startCase(objectTypeField);
- return { title, key, Icon, Menu, onClick, matcher, groupTitle };
+ return { title, key, icon, Menu, onClick, matcher, groupTitle };
};
export default databaseObjectAppObject;
diff --git a/packages/web/src/datagrid/ColumnHeaderControl.js b/packages/web/src/datagrid/ColumnHeaderControl.js
index 885b6e7dc..0f2688dac 100644
--- a/packages/web/src/datagrid/ColumnHeaderControl.js
+++ b/packages/web/src/datagrid/ColumnHeaderControl.js
@@ -4,9 +4,7 @@ import ColumnLabel from './ColumnLabel';
import DropDownButton from '../widgets/DropDownButton';
import { DropDownMenuItem, DropDownMenuDivider } from '../modals/DropDownMenu';
import { useSplitterDrag } from '../widgets/Splitter';
-import { FontIcon, TableIcon } from '../icons';
import { isTypeDateTime } from '@dbgate/tools';
-import { openNewTab } from '../utility/common';
import { openDatabaseObjectDetail } from '../appobj/databaseObjectAppObject';
import { useSetOpenedTabs } from '../utility/globalState';
diff --git a/packages/web/src/datagrid/ColumnLabel.js b/packages/web/src/datagrid/ColumnLabel.js
index 9e7891a94..b0b8801da 100644
--- a/packages/web/src/datagrid/ColumnLabel.js
+++ b/packages/web/src/datagrid/ColumnLabel.js
@@ -2,7 +2,6 @@
import React from 'react';
import styled from 'styled-components';
-import { SequenceIcon, ForeignKeyIcon } from '../icons';
const Label = styled.span`
font-weight: ${props => (props.notNull ? 'bold' : 'normal')};
@@ -11,12 +10,12 @@ const Label = styled.span`
/** @param column {import('@dbgate/datalib').DisplayColumn|import('@dbgate/types').ColumnInfo} */
export default function ColumnLabel(column) {
- let Icon = null;
- if (column.autoIncrement) Icon = SequenceIcon;
- if (column.foreignKey) Icon = ForeignKeyIcon;
+ let icon = null;
+ if (column.autoIncrement) icon = 'mdi mdi-numeric-1-box-multiple-outline';
+ if (column.foreignKey) icon = 'mdi mdi-key-link';
return (
);
}
diff --git a/packages/web/src/datagrid/ColumnManager.js b/packages/web/src/datagrid/ColumnManager.js
index 557b73128..0c4740134 100644
--- a/packages/web/src/datagrid/ColumnManager.js
+++ b/packages/web/src/datagrid/ColumnManager.js
@@ -70,7 +70,6 @@ function ColumnManagerRow(props) {
className="expandColumnIcon"
isBlank={!column.foreignKey}
isExpanded={column.foreignKey && display.isExpandedColumn(column.uniqueName)}
- isSelected={isHover}
onClick={() => display.toggleExpandedColumn(column.uniqueName)}
/>
-
+
{props.showReferences && props.display.hasReferences && (
diff --git a/packages/web/src/datagrid/ReferenceHeader.js b/packages/web/src/datagrid/ReferenceHeader.js
index ca1a24046..c68d89a4d 100644
--- a/packages/web/src/datagrid/ReferenceHeader.js
+++ b/packages/web/src/datagrid/ReferenceHeader.js
@@ -30,7 +30,7 @@ export default function ReferenceHeader({ reference, onClose }) {
return (
-
+
{reference.pureName} [{reference.columns.map((x) => x.refName).join(', ')}] = master [
{reference.columns.map((x) => x.baseName).join(', ')}]
diff --git a/packages/web/src/datagrid/ReferenceManager.js b/packages/web/src/datagrid/ReferenceManager.js
index 5608ac2fa..b259b04db 100644
--- a/packages/web/src/datagrid/ReferenceManager.js
+++ b/packages/web/src/datagrid/ReferenceManager.js
@@ -1,7 +1,6 @@
import React from 'react';
import styled from 'styled-components';
import { ManagerInnerContainer } from './ManagerStyles';
-import { LinkIcon, ReferenceIcon } from '../icons';
import SearchInput from '../widgets/SearchInput';
import { filterName } from '@dbgate/datalib';
@@ -31,10 +30,10 @@ const NameContainer = styled.div`
white-space: nowrap;
`;
-function ManagerRow({ tableName, columns, Icon, onClick }) {
+function ManagerRow({ tableName, columns, icon, onClick }) {
return (
-
+
{tableName} ({columns.map((x) => x.columnName).join(', ')})
@@ -64,7 +63,7 @@ export default function ReferenceManager(props) {
.map((fk) => (
@@ -89,7 +88,7 @@ export default function ReferenceManager(props) {
.map((fk) => (
diff --git a/packages/web/src/icons.js b/packages/web/src/icons.js
index a8bb5605d..d3deb85ac 100644
--- a/packages/web/src/icons.js
+++ b/packages/web/src/icons.js
@@ -43,17 +43,16 @@ export function FontIcon({ icon, ...props }) {
return ;
}
-export function ExpandIcon({
- isBlank = false,
- isExpanded = false,
- isSelected = false,
- blankColor = 'white',
- ...other
-}) {
+export function ExpandIcon({ isBlank = false, isExpanded = false, className = '', ...other }) {
if (isBlank) {
- return ;
+ return ;
}
- return ;
+ return (
+
+ );
}
export const TableIcon = (props) => getIconImage('table2.svg', props);
diff --git a/packages/web/src/index.css b/packages/web/src/index.css
index 76a498a89..6f6c81061 100644
--- a/packages/web/src/index.css
+++ b/packages/web/src/index.css
@@ -22,3 +22,7 @@ code {
bottom: 0;
background-color: #00000080;
}
+
+.icon-invisible {
+ visibility: hidden;
+}
\ No newline at end of file
diff --git a/packages/web/src/themes/ThemeHelmet.js b/packages/web/src/themes/ThemeHelmet.js
index 59dfd9d13..be705d5a1 100644
--- a/packages/web/src/themes/ThemeHelmet.js
+++ b/packages/web/src/themes/ThemeHelmet.js
@@ -9,6 +9,9 @@ export default function ThemeHelmet() {
.color-green { color: green; }
.color-on-statusbar-green { color: lime; }
.color-blue { color: blue; }
+ .color-blue-icon { color: #05A; }
+ .color-magenta-icon { color: #808 }
+ .color-yellow-icon { color: #880 }
`}
);
diff --git a/packages/web/src/widgets/WidgetStyles.js b/packages/web/src/widgets/WidgetStyles.js
index 5d2a39de7..0ee6213ac 100644
--- a/packages/web/src/widgets/WidgetStyles.js
+++ b/packages/web/src/widgets/WidgetStyles.js
@@ -12,7 +12,7 @@ export const SearchBoxWrapper = styled.div`
export const WidgetsMainContainer = styled.div`
position: relative;
display: flex;
- flex-flow: column wrap;
+ // flex-flow: column wrap;
flex: 1;
flex-direction: column;
user-select: none;