fixes + UX

This commit is contained in:
Jan Prochazka
2020-06-27 12:50:45 +02:00
parent f78b1adefa
commit dc4fbe21de
5 changed files with 15 additions and 8 deletions

View File

@@ -81,7 +81,7 @@ export class TableGridDisplay extends GridDisplay {
const childAlias = `${column.uniqueName}_ref`; const childAlias = `${column.uniqueName}_ref`;
if ((select.from.relations || []).find((x) => x.alias == childAlias)) return; if ((select.from.relations || []).find((x) => x.alias == childAlias)) return;
const table = this.getFkTarget(column); const table = this.getFkTarget(column);
if (table) { if (table && table.primaryKey) {
select.from.relations = [ select.from.relations = [
...(select.from.relations || []), ...(select.from.relations || []),
{ {
@@ -118,7 +118,7 @@ export class TableGridDisplay extends GridDisplay {
continue; continue;
} }
const table = this.getFkTarget(column); const table = this.getFkTarget(column);
if (table && table.columns && table.columns.length > 0) { if (table && table.columns && table.columns.length > 0 && table.primaryKey) {
const hintColumn = table.columns.find((x) => x?.dataType?.toLowerCase()?.includes('char')); const hintColumn = table.columns.find((x) => x?.dataType?.toLowerCase()?.includes('char'));
if (hintColumn) { if (hintColumn) {
const parentUniqueName = column.uniquePath.slice(0, -1).join('.'); const parentUniqueName = column.uniquePath.slice(0, -1).join('.');

View File

@@ -20,7 +20,7 @@ function getColumnInfo({
if (numericPrecision && numericScale && isTypeNumeric(dataType)) if (numericPrecision && numericScale && isTypeNumeric(dataType))
fullDataType = `${dataType}(${numericPrecision},${numericScale})`; fullDataType = `${dataType}(${numericPrecision},${numericScale})`;
return { return {
notNull: !isNullable, notNull: !isNullable || isNullable == 'NO' || isNullable == 'no',
autoIncrement: extra && extra.toLowerCase().includes('auto_increment'), autoIncrement: extra && extra.toLowerCase().includes('auto_increment'),
columnName, columnName,
dataType: fullDataType, dataType: fullDataType,

View File

@@ -131,7 +131,7 @@ function SqlObjectListWrapper() {
return ( return (
<> <>
<WidgetTitle>Tables, views, functions</WidgetTitle> <WidgetTitle>Tables, views, functions</WidgetTitle>
<ErrorInfo message="Database not selected" /> <ErrorInfo message="Database not selected" icon="fas fa-exclamation-circle blue" />
</> </>
); );
} }

View File

@@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
import styled from 'styled-components'; import styled from 'styled-components';
import { FontIcon } from '../icons';
const Container = styled.div` const Container = styled.div`
display: flex; display: flex;
@@ -11,14 +12,13 @@ const Container = styled.div`
const Icon = styled.div` const Icon = styled.div`
font-size: 20pt; font-size: 20pt;
margin: 10px; margin: 10px;
color: red;
`; `;
export default function ErrorInfo({ message }) { export default function ErrorInfo({ message, icon = 'fas fa-times-circle red' }) {
return ( return (
<Container> <Container>
<Icon> <Icon>
<i className="fas fa-times-circle" /> <FontIcon icon={icon} />
</Icon> </Icon>
{message} {message}
</Container> </Container>

View File

@@ -42,7 +42,7 @@ export default function StatusBar() {
</Item> </Item>
)} )}
{status && ( {connection && status && (
<Item> <Item>
{status.name == 'pending' && ( {status.name == 'pending' && (
<> <>
@@ -61,6 +61,13 @@ export default function StatusBar() {
)} )}
</Item> </Item>
)} )}
{!connection && (
<Item>
<>
<FontIcon icon="fas fa-plug gray" /> Not connected
</>
</Item>
)}
</Container> </Container>
); );
} }