diff --git a/frontend/app/components/Dashboard/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.tsx b/frontend/app/components/Dashboard/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.tsx
index 25ef7a0a0..16bd8abd0 100644
--- a/frontend/app/components/Dashboard/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.tsx
+++ b/frontend/app/components/Dashboard/components/Funnels/FunnelIssueDetails/FunnelIssueDetails.tsx
@@ -27,7 +27,7 @@ function FunnelIssueDetails(props: Props) {
filters: item.filter.filters.filter((filter: any, index: any) => {
const stage = widget.data.funnel.stages[index];
return stage &&stage.isActive
- })
+ }).map((f: any) => f.toJson())
}
}
}) : [], };
diff --git a/frontend/app/components/Dashboard/components/Funnels/FunnelIssueModal/FunnelIssueModal.tsx b/frontend/app/components/Dashboard/components/Funnels/FunnelIssueModal/FunnelIssueModal.tsx
index f1fa3469d..d5b6de307 100644
--- a/frontend/app/components/Dashboard/components/Funnels/FunnelIssueModal/FunnelIssueModal.tsx
+++ b/frontend/app/components/Dashboard/components/Funnels/FunnelIssueModal/FunnelIssueModal.tsx
@@ -7,13 +7,11 @@ interface Props {
function FunnelIssueModal(props: Props) {
const { issueId } = props;
return (
-
-
-
-
+
+
);
}
diff --git a/frontend/app/components/Dashboard/components/Funnels/FunnelIssuesList/FunnelIssuesList.tsx b/frontend/app/components/Dashboard/components/Funnels/FunnelIssuesList/FunnelIssuesList.tsx
index 3894f4671..a59202043 100644
--- a/frontend/app/components/Dashboard/components/Funnels/FunnelIssuesList/FunnelIssuesList.tsx
+++ b/frontend/app/components/Dashboard/components/Funnels/FunnelIssuesList/FunnelIssuesList.tsx
@@ -29,7 +29,7 @@ function FunnelIssuesList(props: RouteComponentProps
) {
useEffect(() => {
if (!issueId) return;
- showModal(, { right: true, onClose: () => {
+ showModal(, { right: true, width: 1000, onClose: () => {
if (props.history.location.pathname.includes("/metric")) {
props.history.replace({search: ""});
}
diff --git a/frontend/app/components/shared/Filters/FilterList/FilterList.tsx b/frontend/app/components/shared/Filters/FilterList/FilterList.tsx
index 521a70eeb..6a115b502 100644
--- a/frontend/app/components/shared/Filters/FilterList/FilterList.tsx
+++ b/frontend/app/components/shared/Filters/FilterList/FilterList.tsx
@@ -18,6 +18,7 @@ interface Props {
function FilterList(props: Props) {
const { observeChanges = () => {}, filter, hideEventsOrder = false, saveRequestPayloads, supportsEmpty = true, excludeFilterKeys = [] } = props;
const filters = List(filter.filters);
+ const eventsOrderSupport = filter.eventsOrderSupport;
const hasEvents = filters.filter((i: any) => i.isEvent).size > 0;
const hasFilters = filters.filter((i: any) => !i.isEvent).size > 0;
let rowIndex = 0;
@@ -55,9 +56,9 @@ function FilterList(props: Props) {
onSelect={props.onChangeEventsOrder}
value={{ value: filter.eventsOrder }}
list={[
- { name: 'THEN', value: 'then' },
- { name: 'AND', value: 'and' },
- { name: 'OR', value: 'or' },
+ { name: 'THEN', value: 'then', disabled: !eventsOrderSupport.includes('then') },
+ { name: 'AND', value: 'and', disabled: !eventsOrderSupport.includes('and')},
+ { name: 'OR', value: 'or', disabled: !eventsOrderSupport.includes('or')},
]}
/>
diff --git a/frontend/app/mstore/metricStore.ts b/frontend/app/mstore/metricStore.ts
index 63e8500bf..3ff0dbe97 100644
--- a/frontend/app/mstore/metricStore.ts
+++ b/frontend/app/mstore/metricStore.ts
@@ -103,6 +103,9 @@ export default class MetricStore {
// handle metricType change
if (obj.hasOwnProperty('metricType') && type !== this.instance.metricType) {
+ this.instance.series.forEach((s: any, i: number) => {
+ this.instance.series[i].filter.eventsOrderSupport = ['then', 'or', 'and']
+ })
this.changeType(type);
}
@@ -141,6 +144,8 @@ export default class MetricStore {
if (value === FUNNEL) {
obj['metricOf'] = 'sessionCount';
+ obj.series[0].filter.eventsOrder = 'then'
+ obj.series[0].filter.eventsOrderSupport = ['then']
}
if (value === INSIGHTS) {
diff --git a/frontend/app/mstore/types/filter.ts b/frontend/app/mstore/types/filter.ts
index 549a0ad29..9b2874e9f 100644
--- a/frontend/app/mstore/types/filter.ts
+++ b/frontend/app/mstore/types/filter.ts
@@ -7,6 +7,7 @@ export default class Filter {
name: string = ''
filters: FilterItem[] = []
eventsOrder: string = 'then'
+ eventsOrderSupport: string[] = ['then', 'or', 'and']
startTimestamp: number = 0
endTimestamp: number = 0
diff --git a/frontend/app/mstore/types/widget.ts b/frontend/app/mstore/types/widget.ts
index a39ba4ce2..5dee5d19d 100644
--- a/frontend/app/mstore/types/widget.ts
+++ b/frontend/app/mstore/types/widget.ts
@@ -139,6 +139,11 @@ export default class Widget {
this.thumbnail = json.thumbnail;
this.isPublic = json.isPublic;
+ if (this.metricType === FUNNEL) {
+ this.series[0].filter.eventsOrder = 'then';
+ this.series[0].filter.eventsOrderSupport = ['then'];
+ }
+
if (period) {
this.period = period;
}