summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/issues/issues_filtered_search.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/issues/issues_filtered_search.js')
-rw-r--r--app/assets/javascripts/issues/issues_filtered_search.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/assets/javascripts/issues/issues_filtered_search.js b/app/assets/javascripts/issues/issues_filtered_search.js
new file mode 100644
index 00000000000..aca98f30c84
--- /dev/null
+++ b/app/assets/javascripts/issues/issues_filtered_search.js
@@ -0,0 +1,32 @@
+import IssuableFilteredSearchTokenKeys from 'ee_else_ce/filtered_search/issuable_filtered_search_token_keys';
+import { FILTERED_SEARCH } from '~/pages/constants';
+import FilteredSearchManager from '~/filtered_search/filtered_search_manager';
+import { historyPushState, getPagePath } from '~/lib/utils/common_utils';
+import { DASHBOARD_PAGE_NAME } from './constants';
+import issuesListStore from './stores';
+
+const isInDashboardPage = getPagePath() === DASHBOARD_PAGE_NAME;
+
+if (!isInDashboardPage) {
+ IssuableFilteredSearchTokenKeys.addExtraTokensForIssues();
+}
+
+export default class FilteredSearchIssueAnalytics extends FilteredSearchManager {
+ constructor() {
+ super({
+ page: FILTERED_SEARCH.ISSUES,
+ isGroup: !isInDashboardPage,
+ isGroupDecendent: !isInDashboardPage,
+ IssuableFilteredSearchTokenKeys,
+ });
+
+ this.isHandledAsync = true;
+ }
+
+ updateObject = path => {
+ historyPushState(path);
+
+ issuesListStore.dispatch('issuesList/setFilters', path);
+ issuesListStore.dispatch('issuesList/setCurrentPage', 1);
+ };
+}