2022-08-08 15:10:32 +00:00
|
|
|
import { __, s__ } from '~/locale';
|
2019-05-01 14:58:58 +00:00
|
|
|
|
2020-10-12 15:08:32 +00:00
|
|
|
export default (IssuableTokenKeys, disableTargetBranchFilter = false) => {
|
2020-12-14 15:09:40 +00:00
|
|
|
const reviewerToken = {
|
2022-08-08 15:10:32 +00:00
|
|
|
formattedKey: s__('SearchToken|Reviewer'),
|
2020-12-14 15:09:40 +00:00
|
|
|
key: 'reviewer',
|
|
|
|
type: 'string',
|
|
|
|
param: 'username',
|
|
|
|
symbol: '@',
|
|
|
|
icon: 'user',
|
|
|
|
tag: '@reviewer',
|
|
|
|
};
|
|
|
|
IssuableTokenKeys.tokenKeys.splice(2, 0, reviewerToken);
|
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.splice(2, 0, reviewerToken);
|
|
|
|
|
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,
|
2020-10-21 15:10:28 +00:00
|
|
|
hideNotEqual: true,
|
2020-08-05 06:09:36 +00:00
|
|
|
},
|
|
|
|
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: '=',
|
|
|
|
},
|
|
|
|
],
|
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
|
|
|
|
2020-10-12 15:08:32 +00:00
|
|
|
if (!disableTargetBranchFilter) {
|
|
|
|
const targetBranchToken = {
|
|
|
|
formattedKey: __('Target-Branch'),
|
|
|
|
key: 'target-branch',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'arrow-right',
|
|
|
|
tag: 'branch',
|
|
|
|
};
|
2019-03-09 12:22:58 +00:00
|
|
|
|
2020-10-12 15:08:32 +00:00
|
|
|
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',
|
|
|
|
},
|
2021-07-01 09:07:33 +00:00
|
|
|
tokenAlternative: {
|
|
|
|
formattedKey: __('Approved-By'),
|
|
|
|
key: 'approved-by',
|
|
|
|
type: 'string',
|
|
|
|
param: 'usernames',
|
|
|
|
symbol: '@',
|
|
|
|
},
|
2020-09-29 15:10:08 +00:00
|
|
|
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: '!=',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
|
2020-12-04 18:09:55 +00:00
|
|
|
const tokenPosition = 3;
|
2020-09-29 15:10:08 +00:00
|
|
|
IssuableTokenKeys.tokenKeys.splice(tokenPosition, 0, ...[approvedBy.token]);
|
2021-07-01 09:07:33 +00:00
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.splice(
|
|
|
|
tokenPosition,
|
|
|
|
0,
|
|
|
|
...[approvedBy.token, approvedBy.tokenAlternative],
|
|
|
|
);
|
2020-09-29 15:10:08 +00:00
|
|
|
IssuableTokenKeys.conditions.push(...approvedBy.condition);
|
2020-10-19 06:09:08 +00:00
|
|
|
|
2020-11-03 09:09:07 +00:00
|
|
|
const environmentToken = {
|
|
|
|
formattedKey: __('Environment'),
|
|
|
|
key: 'environment',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'cloud-gear',
|
|
|
|
tag: 'environment',
|
|
|
|
};
|
2020-10-19 06:09:08 +00:00
|
|
|
|
2020-11-03 09:09:07 +00:00
|
|
|
const deployedBeforeToken = {
|
|
|
|
formattedKey: __('Deployed-before'),
|
|
|
|
key: 'deployed-before',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'clock',
|
|
|
|
tag: 'deployed_before',
|
|
|
|
};
|
2020-10-19 06:09:08 +00:00
|
|
|
|
2020-11-03 09:09:07 +00:00
|
|
|
const deployedAfterToken = {
|
|
|
|
formattedKey: __('Deployed-after'),
|
|
|
|
key: 'deployed-after',
|
|
|
|
type: 'string',
|
|
|
|
param: '',
|
|
|
|
symbol: '',
|
|
|
|
icon: 'clock',
|
|
|
|
tag: 'deployed_after',
|
|
|
|
};
|
2020-10-19 06:09:08 +00:00
|
|
|
|
2020-11-03 09:09:07 +00:00
|
|
|
IssuableTokenKeys.tokenKeys.push(environmentToken, deployedBeforeToken, deployedAfterToken);
|
2020-10-19 06:09:08 +00:00
|
|
|
|
2020-11-03 09:09:07 +00:00
|
|
|
IssuableTokenKeys.tokenKeysWithAlternative.push(
|
|
|
|
environmentToken,
|
|
|
|
deployedBeforeToken,
|
|
|
|
deployedAfterToken,
|
|
|
|
);
|
2019-03-07 23:55:45 +00:00
|
|
|
};
|