You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2020/11/06 22:24:08 UTC
[incubator-superset] branch master updated: fix: Filter and Metric
popovers not closing after clicking Save (#11607)
This is an automated email from the ASF dual-hosted git repository.
rusackas 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 a6bf95e fix: Filter and Metric popovers not closing after clicking Save (#11607)
a6bf95e is described below
commit a6bf95e30bb50b5ba6a76be6f324e9a204c96cfd
Author: Kamil Gabryjelski <ka...@gmail.com>
AuthorDate: Fri Nov 6 23:23:12 2020 +0100
fix: Filter and Metric popovers not closing after clicking Save (#11607)
* Fix filter popover not closing
* Fix metric popover not closing
* Add e2e tests
---
.../cypress/integration/explore/AdhocFilters.test.ts | 14 ++++++++++++++
.../cypress/integration/explore/AdhocMetrics.test.ts | 18 ++++++++++++++++++
.../src/explore/components/AdhocFilterEditPopover.jsx | 5 +++--
.../AdhocFilterEditPopoverSimpleTabContent.jsx | 2 +-
.../src/explore/components/AdhocMetricEditPopover.jsx | 2 ++
5 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/superset-frontend/cypress-base/cypress/integration/explore/AdhocFilters.test.ts b/superset-frontend/cypress-base/cypress/integration/explore/AdhocFilters.test.ts
index d9057d3..b3d2379 100644
--- a/superset-frontend/cypress-base/cypress/integration/explore/AdhocFilters.test.ts
+++ b/superset-frontend/cypress-base/cypress/integration/explore/AdhocFilters.test.ts
@@ -111,4 +111,18 @@ describe('AdhocFilters', () => {
chartSelector: 'svg',
});
});
+
+ it('Click save without making any changes', () => {
+ cy.get('[data-test=adhoc_filters]').within(() => {
+ cy.get('.Select__control').scrollIntoView().click();
+ cy.get('input[type=text]').focus().type('name{enter}');
+ });
+
+ cy.get('[data-test=filter-edit-popover]').should('be.visible');
+ cy.get('[data-test="adhoc-filter-edit-popover-save-button"]').click();
+
+ cy.wait(1000);
+
+ cy.get('[data-test=filter-edit-popover]').should('not.be.visible');
+ });
});
diff --git a/superset-frontend/cypress-base/cypress/integration/explore/AdhocMetrics.test.ts b/superset-frontend/cypress-base/cypress/integration/explore/AdhocMetrics.test.ts
index 7c085c3..96a2567 100644
--- a/superset-frontend/cypress-base/cypress/integration/explore/AdhocMetrics.test.ts
+++ b/superset-frontend/cypress-base/cypress/integration/explore/AdhocMetrics.test.ts
@@ -137,4 +137,22 @@ describe('AdhocMetrics', () => {
chartSelector: 'svg',
});
});
+
+ it('Click save without making any changes', () => {
+ cy.get('[data-test=metrics]')
+ .find('.Select__control input')
+ .type('sum_girls', { force: true });
+
+ cy.get('[data-test=metrics]')
+ .find('.Select__option--is-focused')
+ .trigger('mousedown')
+ .click();
+
+ cy.get('[data-test=metrics-edit-popover]').should('be.visible');
+ cy.get('[data-test="AdhocMetricEdit#save"]').click();
+
+ cy.wait(1000);
+
+ cy.get('[data-test=metrics-edit-popover]').should('not.be.visible');
+ });
});
diff --git a/superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx b/superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx
index e12adb9..be55fa0 100644
--- a/superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx
+++ b/superset-frontend/src/explore/components/AdhocFilterEditPopover.jsx
@@ -85,7 +85,8 @@ export default class AdhocFilterEditPopover extends React.Component {
}
onSave() {
- this.props.onChange(this.state.adhocFilter);
+ // unset isNew here in case save button was clicked when no changes were made
+ this.props.onChange({ ...this.state.adhocFilter, isNew: false });
this.props.onClose();
}
@@ -163,7 +164,7 @@ export default class AdhocFilterEditPopover extends React.Component {
datasource={datasource}
onHeightChange={this.adjustHeight}
partitionColumn={partitionColumn}
- popoverRef={this.popoverContentRef}
+ popoverRef={this.popoverContentRef.current}
/>
</Tabs.TabPane>
<Tabs.TabPane
diff --git a/superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx b/superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
index 07d2933..a040219 100644
--- a/superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
+++ b/superset-frontend/src/explore/components/AdhocFilterEditPopoverSimpleTabContent.jsx
@@ -100,7 +100,7 @@ export default class AdhocFilterEditPopoverSimpleTabContent extends React.Compon
};
this.menuPortalProps = {
- menuPortalTarget: props.popoverRef?.current || document.body,
+ menuPortalTarget: props.popoverRef,
menuPosition: 'fixed',
menuPlacement: 'bottom',
};
diff --git a/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx b/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
index 2bc1f1e..3204948 100644
--- a/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
+++ b/superset-frontend/src/explore/components/AdhocMetricEditPopover.jsx
@@ -100,9 +100,11 @@ export default class AdhocMetricEditPopover extends React.Component {
}
onSave() {
+ // unset isNew here in case save button was clicked when no changes were made
this.props.onChange({
...this.state.adhocMetric,
...this.props.title,
+ isNew: false,
});
this.props.onClose();
}