summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/issues/issues_filtered_search.js
blob: aca98f30c84440411c34a30c36eac5ee879f4a7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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);
  };
}