2019-05-01 14:58:58 +00:00
|
|
|
import { __ } from '~/locale';
|
|
|
|
|
2019-03-07 23:55:45 +00:00
|
|
|
export default IssuableTokenKeys => {
|
2020-08-05 06:09:36 +00:00
|
|
|
const draftToken = {
|
|
|
|
token: {
|
|
|
|
formattedKey: __('Draft'),
|
|
|
|
key: 'draft',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'admin',
|
|
|
|
tag: __('Yes or No'),
|
|
|
|
lowercaseValueOnSubmit: true,
|
|
|
|
capitalizeTokenValue: true,
|
|
|
|
},
|
|
|
|
conditions: [
|
|
|
|
{
|
|
|
|
url: 'wip=yes',
|
|
|
|
// eslint-disable-next-line @gitlab/require-i18n-strings
|
|
|
|
replacementUrl: 'draft=yes',
|
|
|
|
tokenKey: 'draft',
|
|
|
|
value: __('Yes'),
|
|
|
|
operator: '=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'wip=no',
|
|
|
|
// eslint-disable-next-line @gitlab/require-i18n-strings
|
|
|
|
replacementUrl: 'draft=no',
|
|
|
|
tokenKey: 'draft',
|
|
|
|
value: __('No'),
|
|
|
|
operator: '=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'not[wip]=yes',
|
|
|
|
replacementUrl: 'not[draft]=yes',
|
|
|
|
tokenKey: 'draft',
|
|
|
|
value: __('Yes'),
|
|
|
|
operator: '!=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'not[wip]=no',
|
|
|
|
replacementUrl: 'not[draft]=no',
|
|
|
|
tokenKey: 'draft',
|
|
|
|
value: __('No'),
|
|
|
|
operator: '!=',
|
|
|
|
},
|
|
|
|
],
|
2019-03-07 23:55:45 +00:00
|
|
|
};
|
|
|
|
|
2020-08-05 06:09:36 +00:00
|
|
|
IssuableTokenKeys.tokenKeys.push(draftToken.token);
|
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.push(draftToken.token);
|
|
|
|
IssuableTokenKeys.conditions.push(...draftToken.conditions);
|
2019-03-09 12:22:58 +00:00
|
|
|
|
|
|
|
const targetBranchToken = {
|
2020-01-02 13:03:23 +00:00
|
|
|
formattedKey: __('Target-Branch'),
|
2019-03-09 12:22:58 +00:00
|
|
|
key: 'target-branch',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'arrow-right',
|
|
|
|
tag: 'branch',
|
|
|
|
};
|
|
|
|
|
|
|
|
IssuableTokenKeys.tokenKeys.push(targetBranchToken);
|
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.push(targetBranchToken);
|
2020-09-29 15:10:08 +00:00
|
|
|
|
|
|
|
const approvedBy = {
|
|
|
|
token: {
|
|
|
|
formattedKey: __('Approved-By'),
|
|
|
|
key: 'approved-by',
|
|
|
|
type: 'array',
|
|
|
|
param: 'usernames[]',
|
|
|
|
symbol: '@',
|
|
|
|
icon: 'approval',
|
|
|
|
tag: '@approved-by',
|
|
|
|
},
|
|
|
|
condition: [
|
|
|
|
{
|
|
|
|
url: 'approved_by_usernames[]=None',
|
|
|
|
tokenKey: 'approved-by',
|
|
|
|
value: __('None'),
|
|
|
|
operator: '=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'not[approved_by_usernames][]=None',
|
|
|
|
tokenKey: 'approved-by',
|
|
|
|
value: __('None'),
|
|
|
|
operator: '!=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'approved_by_usernames[]=Any',
|
|
|
|
tokenKey: 'approved-by',
|
|
|
|
value: __('Any'),
|
|
|
|
operator: '=',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
url: 'not[approved_by_usernames][]=Any',
|
|
|
|
tokenKey: 'approved-by',
|
|
|
|
value: __('Any'),
|
|
|
|
operator: '!=',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
|
|
|
|
const tokenPosition = 2;
|
|
|
|
IssuableTokenKeys.tokenKeys.splice(tokenPosition, 0, ...[approvedBy.token]);
|
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.splice(tokenPosition, 0, ...[approvedBy.token]);
|
|
|
|
IssuableTokenKeys.conditions.push(...approvedBy.condition);
|
2019-03-07 23:55:45 +00:00
|
|
|
};
|