You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by vi...@apache.org on 2020/08/05 06:23:48 UTC

[incubator-superset] branch master updated: fix: show label for filters in filter box in explore (#10412)

This is an automated email from the ASF dual-hosted git repository.

villebro 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 57dc762  fix: show label for filters in filter box in explore (#10412)
57dc762 is described below

commit 57dc7622b4e246d7b900efaebf06f5cbd1b59c6a
Author: simchaNielsen <56...@users.noreply.github.com>
AuthorDate: Wed Aug 5 09:23:11 2020 +0300

    fix: show label for filters in filter box in explore (#10412)
    
    * fix: show label for filters in filter box in explore
    
    * test: add test for label in filter box
    
    * test: add test / fix lint
    
    * fix: fix CR notes
    
    * refactor: add label propType to FilterBoxItemControl.jsx
---
 .../components/FilterBoxItemControl_spec.jsx       |  4 ++
 .../components/controls/CollectionControl.jsx      | 58 ++++++++++++----------
 .../components/controls/FilterBoxItemControl.jsx   |  3 ++
 3 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx b/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
index fb94245..d530025 100644
--- a/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
+++ b/superset-frontend/spec/javascripts/explore/components/FilterBoxItemControl_spec.jsx
@@ -27,6 +27,7 @@ import FormRow from 'src/components/FormRow';
 import datasources from '../../../fixtures/mockDatasource';
 
 const defaultProps = {
+  label: 'some label',
   datasource: datasources['7__table'],
   onChange: sinon.spy(),
 };
@@ -51,6 +52,9 @@ describe('FilterBoxItemControl', () => {
   it('renderForms does the job', () => {
     const popover = shallow(inst.renderForm());
     expect(popover.find(FormRow)).toHaveLength(8);
+    expect(popover.find(FormRow).get(1).props.control.props.value).toEqual(
+      'some label',
+    );
   });
 
   it('convert type for single value filter_box', () => {
diff --git a/superset-frontend/src/explore/components/controls/CollectionControl.jsx b/superset-frontend/src/explore/components/controls/CollectionControl.jsx
index cdc6303..0a19864 100644
--- a/superset-frontend/src/explore/components/controls/CollectionControl.jsx
+++ b/superset-frontend/src/explore/components/controls/CollectionControl.jsx
@@ -92,33 +92,37 @@ export default class CollectionControl extends React.Component {
         lockAxis="y"
         onSortEnd={this.onSortEnd.bind(this)}
       >
-        {this.props.value.map((o, i) => (
-          <SortableListGroupItem
-            className="clearfix"
-            key={this.props.keyAccessor(o)}
-            index={i}
-          >
-            <div className="pull-left m-r-5">
-              <SortableDragger />
-            </div>
-            <div className="pull-left">
-              <Control
-                {...this.props}
-                {...o}
-                onChange={this.onChange.bind(this, i)}
-              />
-            </div>
-            <div className="pull-right">
-              <InfoTooltipWithTrigger
-                icon="times"
-                label="remove-item"
-                tooltip="remove item"
-                bsStyle="primary"
-                onClick={this.removeItem.bind(this, i)}
-              />
-            </div>
-          </SortableListGroupItem>
-        ))}
+        {this.props.value.map((o, i) => {
+          // label relevant only for header, not here
+          const { label, ...commonProps } = this.props;
+          return (
+            <SortableListGroupItem
+              className="clearfix"
+              key={this.props.keyAccessor(o)}
+              index={i}
+            >
+              <div className="pull-left m-r-5">
+                <SortableDragger />
+              </div>
+              <div className="pull-left">
+                <Control
+                  {...commonProps}
+                  {...o}
+                  onChange={this.onChange.bind(this, i)}
+                />
+              </div>
+              <div className="pull-right">
+                <InfoTooltipWithTrigger
+                  icon="times"
+                  label="remove-item"
+                  tooltip="remove item"
+                  bsStyle="primary"
+                  onClick={this.removeItem.bind(this, i)}
+                />
+              </div>
+            </SortableListGroupItem>
+          );
+        })}
       </SortableListGroup>
     );
   }
diff --git a/superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx b/superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx
index 3df9ae8..8e4b21e 100644
--- a/superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx
+++ b/superset-frontend/src/explore/components/controls/FilterBoxItemControl.jsx
@@ -52,6 +52,7 @@ const propTypes = {
   clearable: PropTypes.bool,
   multiple: PropTypes.bool,
   column: PropTypes.string,
+  label: PropTypes.string,
   metric: PropTypes.string,
   searchAllOptions: PropTypes.bool,
   defaultValue: PropTypes.string,
@@ -77,11 +78,13 @@ export default class FilterBoxItemControl extends React.Component {
       clearable,
       multiple,
       searchAllOptions,
+      label,
       defaultValue,
     } = props;
     const state = {
       column,
       metric,
+      label,
       asc,
       clearable,
       multiple,