diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/BotReports.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/BotReports.vue index 1f3b186e9..fe70e0886 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/reports/BotReports.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/reports/BotReports.vue @@ -37,11 +37,17 @@ export default { }; }, }, + mounted() { + this.fetchInboxes(); + }, methods: { fetchAllData() { this.fetchBotSummary(); this.fetchChartData(); }, + fetchInboxes() { + this.$store.dispatch('inboxes/get'); + }, fetchBotSummary() { try { this.$store.dispatch('fetchBotSummary', this.getRequestPayload()); @@ -105,6 +111,7 @@ export default { filter-type="inboxes" show-group-by :show-business-hours="false" + :navigate-on-entity-filter="false" @filter-change="onFilterChange" /> diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportFilters.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportFilters.vue index 4b86aefba..2967cb9f0 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportFilters.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportFilters.vue @@ -12,7 +12,9 @@ import ToggleSwitch from 'dashboard/components-next/switch/Switch.vue'; import { GROUP_BY_FILTER } from '../constants'; import { DATE_RANGE_TYPES } from 'dashboard/components/ui/DatePicker/helpers/DatePickerHelper'; import { + generateFilterURLParams, generateReportURLParams, + parseFilterURLParams, parseReportURLParams, } from '../helpers/reportFilterHelper'; @@ -40,6 +42,10 @@ const props = defineProps({ type: Boolean, default: true, }, + navigateOnEntityFilter: { + type: Boolean, + default: true, + }, }); const emit = defineEmits(['filterChange']); @@ -176,8 +182,11 @@ const updateURLParams = () => { groupBy: isGroupByPossible.value ? groupBy.value.id : null, range: selectedDateRange.value, }); + const filterParams = props.showEntityFilter + ? generateFilterURLParams(appliedFilters.value) + : {}; - router.replace({ query: { ...params } }); + router.replace({ query: { ...params, ...filterParams } }); }; const emitChange = () => { @@ -235,6 +244,10 @@ const addFilter = item => { agents: 'agent_reports_show', }; + if (!props.navigateOnEntityFilter) { + return; + } + const routeName = routeNameMap[props.filterType]; if (routeName) { router.push({ @@ -308,6 +321,12 @@ const initializeFromURL = () => { if (props.showEntityFilter && route.params.id) { const filterKey = getFilterKey(); appliedFilters.value[filterKey] = Number(route.params.id); + } else if (props.showEntityFilter) { + const filterKey = getFilterKey(); + const filterParams = parseFilterURLParams(route.query); + if (filterParams[filterKey]) { + appliedFilters.value[filterKey] = filterParams[filterKey]; + } } };