Commit 56ebcbb9 authored by Winnie Hellmann's avatar Winnie Hellmann

Resolve conflict in app/assets/javascripts/pages/groups/issues/index.js

parent 1191b0f2
import FilteredSearchTokenKeys from './filtered_search_token_keys';
const tokenKeys = [{
export const tokenKeys = [{
key: 'author',
type: 'string',
param: 'username',
......@@ -42,14 +42,14 @@ if (gon.current_user_id) {
});
}
const alternativeTokenKeys = [{
export const alternativeTokenKeys = [{
key: 'label',
type: 'string',
param: 'name',
symbol: '~',
}];
const conditions = [{
export const conditions = [{
url: 'assignee_id=0',
tokenKey: 'assignee',
value: 'none',
......
import projectSelect from '~/project_select';
import initFilteredSearch from '~/pages/search/init_filtered_search';
import { FILTERED_SEARCH } from '~/pages/constants';
<<<<<<< HEAD
import FilteredSearchTokenKeysIssues from 'ee/filtered_search/filtered_search_token_keys_issues';
=======
import IssuesFilteredSearchTokenKeys from '~/filtered_search/issues_filtered_search_token_keys';
>>>>>>> d4387d88767... make FilteredSearchTokenKeys generic
import IssuesFilteredSearchTokenKeysEE from 'ee/filtered_search/issues_filtered_search_token_keys';
document.addEventListener('DOMContentLoaded', () => {
initFilteredSearch({
page: FILTERED_SEARCH.ISSUES,
filteredSearchTokenKeys: FilteredSearchTokenKeysIssues,
isGroupDecendent: true,
filteredSearchTokenKeys: IssuesFilteredSearchTokenKeys,
filteredSearchTokenKeys: IssuesFilteredSearchTokenKeysEE,
});
projectSelect();
});
import FilteredSearchTokenKeys from '~/filtered_search/filtered_search_token_keys';
const weightTokenKey = {
key: 'weight',
type: 'string',
param: '',
symbol: '',
icon: 'balance-scale',
tag: 'number',
};
const weightConditions = [{
url: 'weight=None',
tokenKey: 'weight',
value: 'None',
}, {
url: 'weight=Any',
tokenKey: 'weight',
value: 'Any',
}];
const alternativeTokenKeys = [{
key: 'assignee',
type: 'string',
param: 'username',
symbol: '@',
}];
export default class FilteredSearchTokenKeysIssues extends FilteredSearchTokenKeys {
static init(availableFeatures) {
this.availableFeatures = availableFeatures;
}
static get() {
const tokenKeys = Array.from(super.get());
// Enable multiple assignees when available
if (this.availableFeatures && this.availableFeatures.multipleAssignees) {
const assigneeTokenKey = tokenKeys.find(tk => tk.key === 'assignee');
assigneeTokenKey.type = 'array';
assigneeTokenKey.param = 'username[]';
}
tokenKeys.push(weightTokenKey);
return tokenKeys;
}
static getKeys() {
const tokenKeys = FilteredSearchTokenKeysIssues.get();
return tokenKeys.map(i => i.key);
}
static getAlternatives() {
return alternativeTokenKeys.concat(super.getAlternatives());
}
static getConditions() {
const conditions = super.getConditions();
return conditions.concat(weightConditions);
}
static searchByKey(key) {
const tokenKeys = FilteredSearchTokenKeysIssues.get();
return tokenKeys.find(tokenKey => tokenKey.key === key) || null;
}
static searchBySymbol(symbol) {
const tokenKeys = FilteredSearchTokenKeysIssues.get();
return tokenKeys.find(tokenKey => tokenKey.symbol === symbol) || null;
}
static searchByKeyParam(keyParam) {
const tokenKeys = FilteredSearchTokenKeysIssues.get();
const alternatives = FilteredSearchTokenKeysIssues.getAlternatives();
const tokenKeysWithAlternative = tokenKeys.concat(alternatives);
return tokenKeysWithAlternative.find((tokenKey) => {
let tokenKeyParam = tokenKey.key;
// Replace hyphen with underscore to compare keyParam with tokenKeyParam
// e.g. 'my-reaction' => 'my_reaction'
tokenKeyParam = tokenKeyParam.replace('-', '_');
if (tokenKey.param) {
tokenKeyParam += `_${tokenKey.param}`;
}
return keyParam === tokenKeyParam;
}) || null;
}
static searchByConditionUrl(url) {
const conditions = FilteredSearchTokenKeysIssues.getConditions();
return conditions.find(condition => condition.url === url) || null;
}
static searchByConditionKeyValue(key, value) {
const conditions = FilteredSearchTokenKeysIssues.getConditions();
return conditions
.find(condition => condition.tokenKey === key && condition.value === value) || null;
}
}
import FilteredSearchTokenKeys from '~/filtered_search/filtered_search_token_keys';
import {
tokenKeys,
alternativeTokenKeys,
conditions,
} from '~/filtered_search/issues_filtered_search_token_keys';
const weightTokenKey = {
key: 'weight',
type: 'string',
param: '',
symbol: '',
icon: 'balance-scale',
tag: 'number',
};
const weightConditions = [
{
url: 'weight=None',
tokenKey: 'weight',
value: 'None',
},
{
url: 'weight=Any',
tokenKey: 'weight',
value: 'Any',
},
];
const IssuesFilteredSearchTokenKeysEE = new FilteredSearchTokenKeys(
[...tokenKeys, weightTokenKey],
alternativeTokenKeys,
[...conditions, ...weightConditions],
);
IssuesFilteredSearchTokenKeysEE.init = function init(availableFeatures) {
// Enable multiple assignees when available
if (availableFeatures && availableFeatures.multipleAssignees) {
const assigneeTokenKey = this.tokenKeys.find(tk => tk.key === 'assignee');
assigneeTokenKey.type = 'array';
assigneeTokenKey.param = 'username[]';
}
};
export default IssuesFilteredSearchTokenKeysEE;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment