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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
import { __, sprintf } from '~/locale';
export const issuableTypesMap = {
ISSUE: 'issue',
INCIDENT: 'incident',
EPIC: 'epic',
MERGE_REQUEST: 'merge_request',
};
export const linkedIssueTypesMap = {
BLOCKS: 'blocks',
IS_BLOCKED_BY: 'is_blocked_by',
RELATES_TO: 'relates_to',
};
export const linkedIssueTypesTextMap = {
[linkedIssueTypesMap.RELATES_TO]: __('Relates to'),
[linkedIssueTypesMap.BLOCKS]: __('Blocks'),
[linkedIssueTypesMap.IS_BLOCKED_BY]: __('Is blocked by'),
};
export const autoCompleteTextMap = {
true: {
[issuableTypesMap.ISSUE]: sprintf(
__(' or %{emphasisStart}#issue id%{emphasisEnd}'),
{ emphasisStart: '<', emphasisEnd: '>' },
false,
),
[issuableTypesMap.INCIDENT]: sprintf(
__(' or %{emphasisStart}#id%{emphasisEnd}'),
{ emphasisStart: '<', emphasisEnd: '>' },
false,
),
[issuableTypesMap.EPIC]: sprintf(
__(' or %{emphasisStart}&epic id%{emphasisEnd}'),
{ emphasisStart: '<', emphasisEnd: '>' },
false,
),
[issuableTypesMap.MERGE_REQUEST]: sprintf(
__(' or %{emphasisStart}!merge request id%{emphasisEnd}'),
{ emphasisStart: '<', emphasisEnd: '>' },
false,
),
},
false: {
[issuableTypesMap.ISSUE]: '',
[issuableTypesMap.EPIC]: '',
[issuableTypesMap.MERGE_REQUEST]: __(' or references (e.g. path/to/project!merge_request_id)'),
},
};
export const inputPlaceholderTextMap = {
[issuableTypesMap.ISSUE]: __('Paste issue link'),
[issuableTypesMap.INCIDENT]: __('Paste link'),
[issuableTypesMap.EPIC]: __('Paste epic link'),
[issuableTypesMap.MERGE_REQUEST]: __('Enter merge request URLs'),
};
export const inputPlaceholderConfidentialTextMap = {
[issuableTypesMap.ISSUE]: __('Paste confidential issue link'),
[issuableTypesMap.EPIC]: __('Paste confidential epic link'),
[issuableTypesMap.MERGE_REQUEST]: __('Enter merge request URLs'),
};
export const relatedIssuesRemoveErrorMap = {
[issuableTypesMap.ISSUE]: __('An error occurred while removing issues.'),
[issuableTypesMap.EPIC]: __('An error occurred while removing epics.'),
};
export const pathIndeterminateErrorMap = {
[issuableTypesMap.ISSUE]: __('We could not determine the path to remove the issue'),
[issuableTypesMap.EPIC]: __('We could not determine the path to remove the epic'),
};
export const itemAddFailureTypesMap = {
NOT_FOUND: 'not_found',
MAX_NUMBER_OF_CHILD_EPICS: 'conflict',
};
export const addRelatedIssueErrorMap = {
[issuableTypesMap.ISSUE]: __('Issue cannot be found.'),
[issuableTypesMap.EPIC]: __('Epic cannot be found.'),
};
export const addRelatedItemErrorMap = {
[itemAddFailureTypesMap.MAX_NUMBER_OF_CHILD_EPICS]: __(
'This epic already has the maximum number of child epics.',
),
};
/**
* These are used to map issuableType to the correct icon.
* Since these are never used for any display purposes, don't wrap
* them inside i18n functions.
*/
export const issuableIconMap = {
[issuableTypesMap.ISSUE]: 'issues',
[issuableTypesMap.INCIDENT]: 'issues',
[issuableTypesMap.EPIC]: 'epic',
};
export const PathIdSeparator = {
Epic: '&',
Issue: '#',
};
export const issuablesBlockHeaderTextMap = {
[issuableTypesMap.ISSUE]: __('Linked items'),
[issuableTypesMap.INCIDENT]: __('Linked incidents or issues'),
[issuableTypesMap.EPIC]: __('Linked epics'),
};
export const issuablesBlockHelpTextMap = {
[issuableTypesMap.ISSUE]: __('Learn more about linking issues'),
[issuableTypesMap.INCIDENT]: __('Learn more about linking issues and incidents'),
[issuableTypesMap.EPIC]: __('Learn more about linking epics'),
};
export const issuablesBlockAddButtonTextMap = {
[issuableTypesMap.ISSUE]: __('Add a related issue'),
[issuableTypesMap.EPIC]: __('Add a related epic'),
};
export const issuablesFormCategoryHeaderTextMap = {
[issuableTypesMap.ISSUE]: __('The current issue'),
[issuableTypesMap.INCIDENT]: __('The current incident'),
[issuableTypesMap.EPIC]: __('The current epic'),
};
export const issuablesFormInputTextMap = {
[issuableTypesMap.ISSUE]: __('the following issues'),
[issuableTypesMap.INCIDENT]: __('the following incidents or issues'),
[issuableTypesMap.EPIC]: __('the following epics'),
};
|