This is an automated email from the ASF dual-hosted git repository. tai pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push: new 09dfbab fix: allow creating table option and remove schema requirement in dataset add modal (#10369) 09dfbab is described below commit 09dfbab7ed7cdb518109fa3fb093ce20d52fa8af Author: ʈᵃᵢ <tdupree...@gmail.com> AuthorDate: Fri Jul 24 13:17:44 2020 -0700 fix: allow creating table option and remove schema requirement in dataset add modal (#10369) --- superset-frontend/src/components/TableSelector.jsx | 70 ++++++++++++++-------- .../src/views/datasetList/AddDatasetModal.tsx | 4 +- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/superset-frontend/src/components/TableSelector.jsx b/superset-frontend/src/components/TableSelector.jsx index 33d43d8..634ac38 100644 --- a/superset-frontend/src/components/TableSelector.jsx +++ b/superset-frontend/src/components/TableSelector.jsx @@ -20,7 +20,7 @@ import React from 'react'; import styled from '@superset-ui/style'; import PropTypes from 'prop-types'; import rison from 'rison'; -import { Select, AsyncSelect } from 'src/components/Select'; +import { AsyncSelect, CreatableSelect, Select } from 'src/components/Select'; import { Label } from 'react-bootstrap'; import { t } from '@superset-ui/translation'; import { SupersetClient } from '@superset-ui/connection'; @@ -358,31 +358,49 @@ export default class TableSelector extends React.PureComponent { tableSelectDisabled = true; } const options = this.state.tableOptions; - const select = this.props.schema ? ( - <Select - name="select-table" - isLoading={this.state.tableLoading} - ignoreAccents={false} - placeholder={t('Select table or type table name')} - autosize={false} - onChange={this.changeTable} - options={options} - value={this.state.tableName} - optionRenderer={this.renderTableOption} - /> - ) : ( - <AsyncSelect - name="async-select-table" - placeholder={tableSelectPlaceholder} - disabled={tableSelectDisabled} - autosize={false} - onChange={this.changeTable} - value={this.state.tableName} - loadOptions={this.getTableNamesBySubStr} - optionRenderer={this.renderTableOption} - isDisabled={this.props.formMode} - /> - ); + let select = null; + if (this.props.schema && !this.props.formMode) { + select = ( + <Select + name="select-table" + isLoading={this.state.tableLoading} + ignoreAccents={false} + placeholder={t('Select table or type table name')} + autosize={false} + onChange={this.changeTable} + options={options} + value={this.state.tableName} + optionRenderer={this.renderTableOption} + /> + ); + } else if (this.props.formMode) { + select = ( + <CreatableSelect + name="select-table" + isLoading={this.state.tableLoading} + ignoreAccents={false} + placeholder={t('Select table or type table name')} + autosize={false} + onChange={this.changeTable} + options={options} + value={this.state.tableName} + optionRenderer={this.renderTableOption} + /> + ); + } else { + select = ( + <AsyncSelect + name="async-select-table" + placeholder={tableSelectPlaceholder} + isDisabled={tableSelectDisabled} + autosize={false} + onChange={this.changeTable} + value={this.state.tableName} + loadOptions={this.getTableNamesBySubStr} + optionRenderer={this.renderTableOption} + /> + ); + } const refresh = !this.props.formMode && ( <RefreshLabel onClick={() => this.changeSchema({ value: this.props.schema }, true)} diff --git a/superset-frontend/src/views/datasetList/AddDatasetModal.tsx b/superset-frontend/src/views/datasetList/AddDatasetModal.tsx index c13969c..c699520 100644 --- a/superset-frontend/src/views/datasetList/AddDatasetModal.tsx +++ b/superset-frontend/src/views/datasetList/AddDatasetModal.tsx @@ -73,7 +73,7 @@ const DatasetModal: FunctionComponent<DatasetModalProps> = ({ tableName: string; }) => { setDatasourceId(dbId); - setDisableSave(isNil(dbId) || isEmpty(schema) || isEmpty(tableName)); + setDisableSave(isNil(dbId) || isEmpty(tableName)); setSchema(schema); setTableName(tableName); }; @@ -83,7 +83,7 @@ const DatasetModal: FunctionComponent<DatasetModalProps> = ({ endpoint: '/api/v1/dataset/', body: JSON.stringify({ database: datasourceId, - schema: currentSchema, + ...(currentSchema ? { schema: currentSchema } : {}), table_name: currentTableName, }), headers: { 'Content-Type': 'application/json' },