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;