From fed24f191d340a232069623c2ffe9a514a7034fd Mon Sep 17 00:00:00 2001 From: Alex P Date: Thu, 27 Apr 2017 14:14:45 -0700 Subject: [PATCH] Make database list into a dropdown Going to split these into 2 components --- .../data_explorer/components/DatabaseList.js | 34 +++++++++---------- ui/src/style/components/query-builder.scss | 6 ++++ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/ui/src/data_explorer/components/DatabaseList.js b/ui/src/data_explorer/components/DatabaseList.js index 493ea49ee..a2caa032b 100644 --- a/ui/src/data_explorer/components/DatabaseList.js +++ b/ui/src/data_explorer/components/DatabaseList.js @@ -1,21 +1,22 @@ import React, {PropTypes} from 'react' -import _ from 'lodash' -import classNames from 'classnames' import {showDatabases, showRetentionPolicies} from 'shared/apis/metaQuery' import showDatabasesParser from 'shared/parsing/showDatabases' import showRetentionPoliciesParser from 'shared/parsing/showRetentionPolicies' +import Dropdown from 'shared/components/Dropdown' + +const {func, shape, string} = PropTypes const DatabaseList = React.createClass({ propTypes: { - query: PropTypes.shape({}).isRequired, - onChooseNamespace: PropTypes.func.isRequired, + query: shape({}).isRequired, + onChooseNamespace: func.isRequired, }, contextTypes: { - source: PropTypes.shape({ - links: PropTypes.shape({ - proxy: PropTypes.string.isRequired, + source: shape({ + links: shape({ + proxy: string.isRequired, }).isRequired, }).isRequired, }, @@ -57,22 +58,19 @@ const DatabaseList = React.createClass({ }, render() { - const {onChooseNamespace, query} = this.props + const {query, onChooseNamespace} = this.props + const {namespaces} = this.state return (
Databases
- {this.state.namespaces.map((namespace) => { - const {database, retentionPolicy} = namespace - const isActive = database === query.database && retentionPolicy === query.retentionPolicy - - return ( -
- {database}.{retentionPolicy} -
- ) - })} + ({...n, text: `${n.database}.${n.retentionPolicy}`}))} + onChoose={onChooseNamespace} + selected={(query.database && query.retentionPolicy) ? `${query.database}.${query.retentionPolicy}` : 'Choose a DB & RP'} + />
) diff --git a/ui/src/style/components/query-builder.scss b/ui/src/style/components/query-builder.scss index 46e60bd71..3469d9937 100644 --- a/ui/src/style/components/query-builder.scss +++ b/ui/src/style/components/query-builder.scss @@ -200,4 +200,10 @@ .query-builder--list-item:hover .group-by-tag, .query-builder--list-item.active .group-by-tag { visibility: visible; +} + + + +.query-builder--db-dropdown { + display: inline-block; } \ No newline at end of file