Add group related config and endpoint methods to be consistent with EE
This commit is contained in:
parent
ec2e54b363
commit
5764f85cd1
|
@ -10,13 +10,22 @@ import DropdownUser from './dropdown_user';
|
|||
import FilteredSearchVisualTokens from './filtered_search_visual_tokens';
|
||||
|
||||
export default class FilteredSearchDropdownManager {
|
||||
constructor(baseEndpoint = '', tokenizer, page, isGroup, filteredSearchTokenKeys) {
|
||||
constructor({
|
||||
baseEndpoint = '',
|
||||
tokenizer,
|
||||
page,
|
||||
isGroup,
|
||||
isGroupAncestor,
|
||||
filteredSearchTokenKeys,
|
||||
}) {
|
||||
this.container = FilteredSearchContainer.container;
|
||||
this.baseEndpoint = baseEndpoint.replace(/\/$/, '');
|
||||
this.tokenizer = tokenizer;
|
||||
this.filteredSearchTokenKeys = filteredSearchTokenKeys || FilteredSearchTokenKeys;
|
||||
this.filteredSearchInput = this.container.querySelector('.filtered-search');
|
||||
this.page = page;
|
||||
this.groupsOnly = isGroup;
|
||||
this.groupAncestor = isGroupAncestor;
|
||||
|
||||
this.setupMapping();
|
||||
|
||||
|
@ -59,7 +68,7 @@ export default class FilteredSearchDropdownManager {
|
|||
reference: null,
|
||||
gl: DropdownNonUser,
|
||||
extraArguments: {
|
||||
endpoint: `${this.baseEndpoint}/milestones.json`,
|
||||
endpoint: this.getMilestoneEndpoint(),
|
||||
symbol: '%',
|
||||
},
|
||||
element: this.container.querySelector('#js-dropdown-milestone'),
|
||||
|
@ -68,7 +77,7 @@ export default class FilteredSearchDropdownManager {
|
|||
reference: null,
|
||||
gl: DropdownNonUser,
|
||||
extraArguments: {
|
||||
endpoint: `${this.baseEndpoint}/labels.json`,
|
||||
endpoint: this.getLabelsEndpoint(),
|
||||
symbol: '~',
|
||||
preprocessing: DropdownUtils.duplicateLabelPreprocessing,
|
||||
},
|
||||
|
@ -90,6 +99,18 @@ export default class FilteredSearchDropdownManager {
|
|||
this.mapping = allowedMappings;
|
||||
}
|
||||
|
||||
getMilestoneEndpoint() {
|
||||
const endpoint = `${this.baseEndpoint}/milestones.json`;
|
||||
|
||||
return endpoint;
|
||||
}
|
||||
|
||||
getLabelsEndpoint() {
|
||||
const endpoint = `${this.baseEndpoint}/labels.json`;
|
||||
|
||||
return endpoint;
|
||||
}
|
||||
|
||||
static addWordToInput(tokenName, tokenValue = '', clicked = false) {
|
||||
const input = FilteredSearchContainer.container.querySelector('.filtered-search');
|
||||
|
||||
|
|
|
@ -20,10 +20,13 @@ import DropdownUtils from './dropdown_utils';
|
|||
export default class FilteredSearchManager {
|
||||
constructor({
|
||||
page,
|
||||
isGroup = false,
|
||||
isGroupAncestor = false,
|
||||
filteredSearchTokenKeys = FilteredSearchTokenKeys,
|
||||
stateFiltersSelector = '.issues-state-filters',
|
||||
}) {
|
||||
this.isGroup = false;
|
||||
this.isGroup = isGroup;
|
||||
this.isGroupAncestor = isGroupAncestor;
|
||||
this.states = ['opened', 'closed', 'merged', 'all'];
|
||||
|
||||
this.page = page;
|
||||
|
@ -75,13 +78,14 @@ export default class FilteredSearchManager {
|
|||
|
||||
if (this.filteredSearchInput) {
|
||||
this.tokenizer = FilteredSearchTokenizer;
|
||||
this.dropdownManager = new FilteredSearchDropdownManager(
|
||||
this.filteredSearchInput.getAttribute('data-base-endpoint') || '',
|
||||
this.tokenizer,
|
||||
this.page,
|
||||
this.isGroup,
|
||||
this.filteredSearchTokenKeys,
|
||||
);
|
||||
this.dropdownManager = new FilteredSearchDropdownManager({
|
||||
baseEndpoint: this.filteredSearchInput.getAttribute('data-base-endpoint') || '',
|
||||
tokenizer: this.tokenizer,
|
||||
page: this.page,
|
||||
isGroup: this.isGroup,
|
||||
isGroupAncestor: this.isGroupAncestor,
|
||||
filteredSearchTokenKeys: this.filteredSearchTokenKeys,
|
||||
});
|
||||
|
||||
this.recentSearchesRoot = new RecentSearchesRoot(
|
||||
this.recentSearchesStore,
|
||||
|
|
Loading…
Reference in New Issue