You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2018/11/01 18:39:28 UTC

[GitHub] mistercrunch closed pull request #6235: Make VizTypeControl use metadata from plugin

mistercrunch closed pull request #6235: Make VizTypeControl use metadata from plugin
URL: https://github.com/apache/incubator-superset/pull/6235
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/superset/assets/images/viz_thumbnails_large/area.png b/superset/assets/images/viz_thumbnails_large/area.png
deleted file mode 100644
index 86f1080cda..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/area.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/bar.png b/superset/assets/images/viz_thumbnails_large/bar.png
deleted file mode 100644
index ab0e8d9915..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/bar.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/big_number.png b/superset/assets/images/viz_thumbnails_large/big_number.png
deleted file mode 100644
index 2420f25e9f..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/big_number.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/big_number_total.png b/superset/assets/images/viz_thumbnails_large/big_number_total.png
deleted file mode 100644
index eb4b345731..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/big_number_total.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/box_plot.png b/superset/assets/images/viz_thumbnails_large/box_plot.png
deleted file mode 100644
index de8f061a68..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/box_plot.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/bubble.png b/superset/assets/images/viz_thumbnails_large/bubble.png
deleted file mode 100644
index 08de51f4ff..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/bubble.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/bullet.png b/superset/assets/images/viz_thumbnails_large/bullet.png
deleted file mode 100644
index 7a66a41c7a..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/bullet.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/cal_heatmap.png b/superset/assets/images/viz_thumbnails_large/cal_heatmap.png
deleted file mode 100644
index bf79a9e237..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/cal_heatmap.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/chord.png b/superset/assets/images/viz_thumbnails_large/chord.png
deleted file mode 100644
index a4a30b6aeb..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/chord.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/compare.png b/superset/assets/images/viz_thumbnails_large/compare.png
deleted file mode 100644
index 00b0a7c515..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/compare.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/country_map.png b/superset/assets/images/viz_thumbnails_large/country_map.png
deleted file mode 100644
index 896fd6b09a..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/country_map.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_arc.png b/superset/assets/images/viz_thumbnails_large/deck_arc.png
deleted file mode 100644
index f79f283491..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_arc.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_geojson.png b/superset/assets/images/viz_thumbnails_large/deck_geojson.png
deleted file mode 100644
index acc452cf03..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_geojson.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_grid.png b/superset/assets/images/viz_thumbnails_large/deck_grid.png
deleted file mode 100644
index cd93965106..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_grid.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_hex.png b/superset/assets/images/viz_thumbnails_large/deck_hex.png
deleted file mode 100644
index 31feff5c8f..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_hex.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_multi.png b/superset/assets/images/viz_thumbnails_large/deck_multi.png
deleted file mode 100644
index 21c27c0489..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_multi.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_path.png b/superset/assets/images/viz_thumbnails_large/deck_path.png
deleted file mode 100644
index eede9da44c..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_path.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_polygon.png b/superset/assets/images/viz_thumbnails_large/deck_polygon.png
deleted file mode 100644
index dfae8616ff..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_polygon.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_scatter.png b/superset/assets/images/viz_thumbnails_large/deck_scatter.png
deleted file mode 100644
index 11f38ccc8d..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_scatter.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/deck_screengrid.png b/superset/assets/images/viz_thumbnails_large/deck_screengrid.png
deleted file mode 100644
index d5da29c99b..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/deck_screengrid.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/directed_force.png b/superset/assets/images/viz_thumbnails_large/directed_force.png
deleted file mode 100644
index 1cc7ce9579..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/directed_force.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/dist_bar.png b/superset/assets/images/viz_thumbnails_large/dist_bar.png
deleted file mode 100644
index b41014788a..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/dist_bar.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/dual_line.png b/superset/assets/images/viz_thumbnails_large/dual_line.png
deleted file mode 100755
index 23a77500b7..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/dual_line.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/event_flow.png b/superset/assets/images/viz_thumbnails_large/event_flow.png
deleted file mode 100644
index 45765295be..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/event_flow.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/filter_box.png b/superset/assets/images/viz_thumbnails_large/filter_box.png
deleted file mode 100644
index 209259c699..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/filter_box.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/heatmap.png b/superset/assets/images/viz_thumbnails_large/heatmap.png
deleted file mode 100644
index ac81a45881..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/heatmap.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/histogram.png b/superset/assets/images/viz_thumbnails_large/histogram.png
deleted file mode 100644
index f7bbe62407..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/histogram.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/horizon.png b/superset/assets/images/viz_thumbnails_large/horizon.png
deleted file mode 100644
index a5d4bf3ec4..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/horizon.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/iframe.png b/superset/assets/images/viz_thumbnails_large/iframe.png
deleted file mode 100644
index d5f0f564ad..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/iframe.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/line.png b/superset/assets/images/viz_thumbnails_large/line.png
deleted file mode 100644
index 67f8fe887f..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/line.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/line_multi.png b/superset/assets/images/viz_thumbnails_large/line_multi.png
deleted file mode 100644
index 473be99b21..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/line_multi.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/mapbox.png b/superset/assets/images/viz_thumbnails_large/mapbox.png
deleted file mode 100644
index 662c163d63..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/mapbox.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/markup.png b/superset/assets/images/viz_thumbnails_large/markup.png
deleted file mode 100644
index 675e42a89f..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/markup.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/multi.png b/superset/assets/images/viz_thumbnails_large/multi.png
deleted file mode 100644
index be62cd40e9..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/multi.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/paired_ttest.png b/superset/assets/images/viz_thumbnails_large/paired_ttest.png
deleted file mode 100644
index 4f8ad71b12..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/paired_ttest.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/para.png b/superset/assets/images/viz_thumbnails_large/para.png
deleted file mode 100644
index fc1a157345..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/para.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/partition.png b/superset/assets/images/viz_thumbnails_large/partition.png
deleted file mode 100644
index 7cf6e1358a..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/partition.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/pie.png b/superset/assets/images/viz_thumbnails_large/pie.png
deleted file mode 100644
index ab76749f74..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/pie.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/pivot_table.png b/superset/assets/images/viz_thumbnails_large/pivot_table.png
deleted file mode 100644
index 37f86af079..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/pivot_table.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/rose.png b/superset/assets/images/viz_thumbnails_large/rose.png
deleted file mode 100644
index 763fa2b120..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/rose.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/sankey.png b/superset/assets/images/viz_thumbnails_large/sankey.png
deleted file mode 100644
index 981cdba870..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/sankey.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/separator.png b/superset/assets/images/viz_thumbnails_large/separator.png
deleted file mode 100644
index eddb59d590..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/separator.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/sunburst.png b/superset/assets/images/viz_thumbnails_large/sunburst.png
deleted file mode 100644
index f155363aad..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/sunburst.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/table.png b/superset/assets/images/viz_thumbnails_large/table.png
deleted file mode 100644
index a3dd1bee98..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/table.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/time_pivot.png b/superset/assets/images/viz_thumbnails_large/time_pivot.png
deleted file mode 100644
index 149f3dae5d..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/time_pivot.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/time_table.png b/superset/assets/images/viz_thumbnails_large/time_table.png
deleted file mode 100644
index 5eba0c2f0b..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/time_table.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/treemap.png b/superset/assets/images/viz_thumbnails_large/treemap.png
deleted file mode 100644
index 0aec60c819..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/treemap.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/word_cloud.png b/superset/assets/images/viz_thumbnails_large/word_cloud.png
deleted file mode 100644
index 03936e1253..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/word_cloud.png and /dev/null differ
diff --git a/superset/assets/images/viz_thumbnails_large/world_map.png b/superset/assets/images/viz_thumbnails_large/world_map.png
deleted file mode 100644
index 82e8ad2d10..0000000000
Binary files a/superset/assets/images/viz_thumbnails_large/world_map.png and /dev/null differ
diff --git a/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx b/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx
index d3f6fd42fd..a6db627552 100644
--- a/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx
+++ b/superset/assets/spec/javascripts/explore/components/VizTypeControl_spec.jsx
@@ -3,17 +3,30 @@ import sinon from 'sinon';
 import { shallow } from 'enzyme';
 import { Modal } from 'react-bootstrap';
 import VizTypeControl from '../../../../src/explore/components/controls/VizTypeControl';
+import getChartMetadataRegistry from '../../../../src/visualizations/core/registries/ChartMetadataRegistrySingleton';
+import ChartMetadata from '../../../../src/visualizations/core/models/ChartMetadata';
 
 const defaultProps = {
   name: 'viz_type',
   label: 'Visualization Type',
-  value: 'table',
+  value: 'vis1',
   onChange: sinon.spy(),
 };
 
 describe('VizTypeControl', () => {
   let wrapper;
 
+  const registry = getChartMetadataRegistry();
+  registry
+    .registerValue('vis1', new ChartMetadata({
+      name: 'vis1',
+      thumbnail: '',
+    }))
+    .registerValue('vis2', new ChartMetadata({
+      name: 'vis2',
+      thumbnail: '',
+    }));
+
   beforeEach(() => {
     wrapper = shallow(<VizTypeControl {...defaultProps} />);
   });
@@ -28,8 +41,8 @@ describe('VizTypeControl', () => {
     expect(defaultProps.onChange.called).toBe(true);
   });
   it('filters images based on text input', () => {
-    expect(wrapper.find('img').length).toBeGreaterThan(20);
-    wrapper.setState({ filter: 'time' });
-    expect(wrapper.find('img').length).toBeLessThan(10);
+    expect(wrapper.find('img')).toHaveLength(2);
+    wrapper.setState({ filter: 'vis2' });
+    expect(wrapper.find('img')).toHaveLength(1);
   });
 });
diff --git a/superset/assets/src/addSlice/AddSliceContainer.jsx b/superset/assets/src/addSlice/AddSliceContainer.jsx
index f46dbadfee..968856e751 100644
--- a/superset/assets/src/addSlice/AddSliceContainer.jsx
+++ b/superset/assets/src/addSlice/AddSliceContainer.jsx
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
 import { Button, Panel } from 'react-bootstrap';
 import Select from 'react-virtualized-select';
 import { t } from '@superset-ui/translation';
-import visTypes from '../explore/visTypes';
+import getChartMetadataRegistry from '../visualizations/core/registries/ChartMetadataRegistrySingleton';
 
 const propTypes = {
   datasources: PropTypes.arrayOf(PropTypes.shape({
@@ -17,11 +17,13 @@ const styleSelectWidth = { width: 300 };
 export default class AddSliceContainer extends React.PureComponent {
   constructor(props) {
     super(props);
-    const visTypeKeys = Object.keys(visTypes);
-    this.vizTypeOptions = visTypeKeys.map(vt => ({ label: visTypes[vt].label, value: vt }));
     this.state = {
       visType: 'table',
     };
+
+    this.changeDatasource = this.changeDatasource.bind(this);
+    this.changeVisType = this.changeVisType.bind(this);
+    this.gotoSlice = this.gotoSlice.bind(this);
   }
 
   exploreUrl() {
@@ -54,6 +56,12 @@ export default class AddSliceContainer extends React.PureComponent {
   }
 
   render() {
+    const types = getChartMetadataRegistry().entries()
+      .map(({ key, value }) => ({
+        value: key,
+        label: value.name,
+      }));
+
     return (
       <div className="container">
         <Panel header={<h3>{t('Create a new chart')}</h3>}>
@@ -64,7 +72,7 @@ export default class AddSliceContainer extends React.PureComponent {
                 clearable={false}
                 style={styleSelectWidth}
                 name="select-datasource"
-                onChange={this.changeDatasource.bind(this)}
+                onChange={this.changeDatasource}
                 options={this.props.datasources}
                 placeholder={t('Choose a datasource')}
                 value={this.state.datasourceValue}
@@ -86,8 +94,8 @@ export default class AddSliceContainer extends React.PureComponent {
               clearable={false}
               name="select-vis-type"
               style={styleSelectWidth}
-              onChange={this.changeVisType.bind(this)}
-              options={this.vizTypeOptions}
+              onChange={this.changeVisType}
+              options={types}
               placeholder={t('Choose a visualization type')}
               value={this.state.visType}
             />
@@ -96,7 +104,7 @@ export default class AddSliceContainer extends React.PureComponent {
           <Button
             bsStyle="primary"
             disabled={this.isBtnDisabled()}
-            onClick={this.gotoSlice.bind(this)}
+            onClick={this.gotoSlice}
           >
             {t('Create new chart')}
           </Button>
diff --git a/superset/assets/src/addSlice/App.jsx b/superset/assets/src/addSlice/App.jsx
index 34154a9b21..96122ec43c 100644
--- a/superset/assets/src/addSlice/App.jsx
+++ b/superset/assets/src/addSlice/App.jsx
@@ -1,9 +1,11 @@
 import React from 'react';
 import { hot } from 'react-hot-loader';
 import setupApp from '../setup/setupApp';
+import setupPlugins from '../setup/setupPlugins';
 import AddSliceContainer from './AddSliceContainer';
 
 setupApp();
+setupPlugins();
 
 const addSliceContainer = document.getElementById('js-add-slice-container');
 const bootstrapData = JSON.parse(addSliceContainer.getAttribute('data-bootstrap'));
diff --git a/superset/assets/src/explore/components/controls/VizTypeControl.css b/superset/assets/src/explore/components/controls/VizTypeControl.css
new file mode 100644
index 0000000000..d2ebbccdf4
--- /dev/null
+++ b/superset/assets/src/explore/components/controls/VizTypeControl.css
@@ -0,0 +1,34 @@
+.viztype-label {
+  margin-top: 10px;
+  text-align: center;
+  font-size: 14px;
+}
+
+.viztype-selector-container {
+  cursor: pointer;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+.viztype-selector-container:hover img {
+  border: 1px solid #aaa;
+}
+
+.viztype-selector-container.selected {
+  cursor: not-allowed;
+  opacity: 1;
+}
+
+.viztype-selector-container.selected img {
+  border: 1px solid #333;
+}
+
+.viztype-selector-container img {
+  border: 1px solid #ddd;
+  border-radius: 4px;
+  transition: border-color .2s;
+}
+
+.viztype-control-search-box {
+  margin-bottom: 10px;
+}
diff --git a/superset/assets/src/explore/components/controls/VizTypeControl.jsx b/superset/assets/src/explore/components/controls/VizTypeControl.jsx
index 113d3c55c5..2f92242eac 100644
--- a/superset/assets/src/explore/components/controls/VizTypeControl.jsx
+++ b/superset/assets/src/explore/components/controls/VizTypeControl.jsx
@@ -5,8 +5,9 @@ import {
   Tooltip } from 'react-bootstrap';
 import { t } from '@superset-ui/translation';
 
-import visTypes from '../../visTypes';
+import getChartMetadataRegistry from '../../../visualizations/core/registries/ChartMetadataRegistrySingleton';
 import ControlHeader from '../ControlHeader';
+import './VizTypeControl.css';
 
 const propTypes = {
   description: PropTypes.string,
@@ -50,37 +51,47 @@ export default class VizTypeControl extends React.PureComponent {
       this.searchRef.focus();
     }
   }
-  renderVizType(vizType) {
-    const vt = vizType;
+  renderItem(entry) {
+    const { value } = this.props;
+    const { key, value: type } = entry;
+    const isSelected = key === value;
     return (
       <div
-        className={`viztype-selector-container ${vt === this.props.value ? 'selected' : ''}`}
-        onClick={this.onChange.bind(this, vt)}
+        className={`viztype-selector-container ${isSelected ? 'selected' : ''}`}
+        onClick={this.onChange.bind(this, key)}
       >
         <img
-          alt={`viz-type-${vt}`}
+          alt={type.name}
           width="100%"
-          className={`viztype-selector ${this.props.value === vt ? 'selected' : ''}`}
-          src={`/static/assets/images/viz_thumbnails/${vt}.png`}
+          className={`viztype-selector ${isSelected ? 'selected' : ''}`}
+          src={type.thumbnail}
         />
         <div className="viztype-label">
-          {visTypes[vt].label}
+          {type.name}
         </div>
       </div>);
   }
   render() {
-    const filter = this.state.filter;
-    const filteredVizTypes = Object.keys(visTypes)
-      .filter(vt => filter.length === 0 || visTypes[vt].label.toLowerCase().includes(filter));
+    const { filter, showModal } = this.state;
+    const { value } = this.props;
+
+    const registry = getChartMetadataRegistry();
+
+    const types = registry.entries();
+    const filteredTypes = filter.length > 0
+      ? types.filter(type => type.value.name.toLowerCase().includes(filter))
+      : types;
+
+    const selectedType = registry.get(value);
 
     const imgPerRow = 6;
     const rows = [];
-    for (let i = 0; i <= filteredVizTypes.length; i += imgPerRow) {
+    for (let i = 0; i <= filteredTypes.length; i += imgPerRow) {
       rows.push(
         <Row key={`row-${i}`}>
-          {filteredVizTypes.slice(i, i + imgPerRow).map(vt => (
-            <Col md={12 / imgPerRow} key={`grid-col-${vt}`}>
-              {this.renderVizType(vt)}
+          {filteredTypes.slice(i, i + imgPerRow).map(entry => (
+            <Col md={12 / imgPerRow} key={`grid-col-${entry.key}`}>
+              {this.renderItem(entry)}
             </Col>
           ))}
         </Row>);
@@ -97,11 +108,11 @@ export default class VizTypeControl extends React.PureComponent {
           }
         >
           <Label onClick={this.toggleModal} style={{ cursor: 'pointer' }}>
-            {visTypes[this.props.value].label}
+            {selectedType.name}
           </Label>
         </OverlayTrigger>
         <Modal
-          show={this.state.showModal}
+          show={showModal}
           onHide={this.toggleModal}
           onEnter={this.focusSearch}
           onExit={this.setSearchRef}
@@ -111,21 +122,21 @@ export default class VizTypeControl extends React.PureComponent {
             <Modal.Title>{t('Select a visualization type')}</Modal.Title>
           </Modal.Header>
           <Modal.Body>
-            <div>
+            <div className="viztype-control-search-box">
               <FormControl
-                id="formControlsText"
-                inputRef={(ref) => { this.setSearchRef(ref); }}
+                inputRef={this.setSearchRef}
                 type="text"
-                bsSize="sm"
-                value={this.state.filter}
-                placeholder={t('Search / Filter')}
+                bsSize="md"
+                value={filter}
+                placeholder={t('Search')}
                 onChange={this.changeSearch}
               />
             </div>
             {rows}
           </Modal.Body>
         </Modal>
-      </div>);
+      </div>
+    );
   }
 }
 
diff --git a/superset/assets/src/explore/main.css b/superset/assets/src/explore/main.css
index c228ad13dd..be3a5144c6 100644
--- a/superset/assets/src/explore/main.css
+++ b/superset/assets/src/explore/main.css
@@ -47,32 +47,6 @@
   background-color: transparent !important;
 }
 
-.viztype-label {
-  text-align: center;
-  font-size: 12px;
-}
-
-.viztype-selector-container {
-  cursor: pointer;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  padding: 5px;
-  border: 1px solid #aaa;
-}
-
-.viztype-selector-container:hover {
-  border: 1px solid #000;
-}
-
-.viztype-selector-container.selected {
-  cursor: not-allowed;
-  opacity: 0.5;
-}
-.viztype-selector-container.selected {
-  cursor: not-allowed;
-  border: 1px solid #aaa;
-}
-
 .color-scheme-container {
   list-style: none;
   margin: 0;


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org