Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
07c9af46
Commit
07c9af46
authored
Dec 03, 2021
by
orozot
Committed by
Bob Van Landuyt
Dec 03, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: refactor some non-i18n components in issue page
parent
689edd97
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
115 additions
and
57 deletions
+115
-57
app/assets/javascripts/issuable/components/issuable_by_email.vue
...ets/javascripts/issuable/components/issuable_by_email.vue
+1
-2
app/assets/javascripts/issue_show/components/header_actions.vue
...sets/javascripts/issue_show/components/header_actions.vue
+11
-3
app/assets/javascripts/notes/components/comment_form.vue
app/assets/javascripts/notes/components/comment_form.vue
+13
-13
app/assets/javascripts/notes/i18n.js
app/assets/javascripts/notes/i18n.js
+11
-1
app/helpers/form_helper.rb
app/helpers/form_helper.rb
+4
-4
app/helpers/issuables_description_templates_helper.rb
app/helpers/issuables_description_templates_helper.rb
+1
-1
app/helpers/issuables_helper.rb
app/helpers/issuables_helper.rb
+8
-3
app/views/projects/issues/_issue.html.haml
app/views/projects/issues/_issue.html.haml
+3
-3
app/views/projects/issues/_new_branch.html.haml
app/views/projects/issues/_new_branch.html.haml
+1
-1
app/views/projects/merge_requests/_merge_request.html.haml
app/views/projects/merge_requests/_merge_request.html.haml
+1
-2
app/views/shared/form_elements/_description.html.haml
app/views/shared/form_elements/_description.html.haml
+1
-1
app/views/shared/issuable/_form.html.haml
app/views/shared/issuable/_form.html.haml
+1
-1
app/views/shared/issuable/_milestone_dropdown.html.haml
app/views/shared/issuable/_milestone_dropdown.html.haml
+6
-6
app/views/shared/issuable/form/_default_templates.html.haml
app/views/shared/issuable/form/_default_templates.html.haml
+4
-3
app/views/shared/issuable/form/_metadata.html.haml
app/views/shared/issuable/form/_metadata.html.haml
+6
-6
app/views/shared/issuable/form/_metadata_issuable_assignee.html.haml
...hared/issuable/form/_metadata_issuable_assignee.html.haml
+1
-1
app/views/shared/issuable/form/_type_selector.html.haml
app/views/shared/issuable/form/_type_selector.html.haml
+1
-1
ee/app/views/shared/issuable/form/_weight.html.haml
ee/app/views/shared/issuable/form/_weight.html.haml
+2
-2
locale/gitlab.pot
locale/gitlab.pot
+39
-3
No files found.
app/assets/javascripts/issuable/components/issuable_by_email.vue
View file @
07c9af46
...
@@ -54,8 +54,7 @@ export default {
...
@@ -54,8 +54,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
email
:
this
.
initialEmail
,
email
:
this
.
initialEmail
,
// eslint-disable-next-line @gitlab/require-i18n-strings
issuableName
:
this
.
issuableType
===
'
issue
'
?
__
(
'
issue
'
)
:
__
(
'
merge request
'
),
issuableName
:
this
.
issuableType
===
'
issue
'
?
'
issue
'
:
'
merge request
'
,
};
};
},
},
computed
:
{
computed
:
{
...
...
app/assets/javascripts/issue_show/components/header_actions.vue
View file @
07c9af46
...
@@ -7,7 +7,7 @@ import { IssuableType } from '~/issuable_show/constants';
...
@@ -7,7 +7,7 @@ import { IssuableType } from '~/issuable_show/constants';
import
{
IssuableStatus
,
IssueStateEvent
}
from
'
~/issue_show/constants
'
;
import
{
IssuableStatus
,
IssueStateEvent
}
from
'
~/issue_show/constants
'
;
import
{
capitalizeFirstCharacter
}
from
'
~/lib/utils/text_utility
'
;
import
{
capitalizeFirstCharacter
}
from
'
~/lib/utils/text_utility
'
;
import
{
visitUrl
}
from
'
~/lib/utils/url_utility
'
;
import
{
visitUrl
}
from
'
~/lib/utils/url_utility
'
;
import
{
__
,
sprintf
}
from
'
~/locale
'
;
import
{
s__
,
__
,
sprintf
}
from
'
~/locale
'
;
import
eventHub
from
'
~/notes/event_hub
'
;
import
eventHub
from
'
~/notes/event_hub
'
;
import
promoteToEpicMutation
from
'
../queries/promote_to_epic.mutation.graphql
'
;
import
promoteToEpicMutation
from
'
../queries/promote_to_epic.mutation.graphql
'
;
import
updateIssueMutation
from
'
../queries/update_issue.mutation.graphql
'
;
import
updateIssueMutation
from
'
../queries/update_issue.mutation.graphql
'
;
...
@@ -78,10 +78,18 @@ export default {
...
@@ -78,10 +78,18 @@ export default {
isClosed
()
{
isClosed
()
{
return
this
.
openState
===
IssuableStatus
.
Closed
;
return
this
.
openState
===
IssuableStatus
.
Closed
;
},
},
issueTypeText
()
{
const
issueTypeTexts
=
{
[
IssuableType
.
Issue
]:
s__
(
'
HeaderAction|issue
'
),
[
IssuableType
.
Incident
]:
s__
(
'
HeaderAction|incident
'
),
};
return
issueTypeTexts
[
this
.
issueType
]
??
this
.
issueType
;
},
buttonText
()
{
buttonText
()
{
return
this
.
isClosed
return
this
.
isClosed
?
sprintf
(
__
(
'
Reopen %{issueType}
'
),
{
issueType
:
this
.
issueType
})
?
sprintf
(
__
(
'
Reopen %{issueType}
'
),
{
issueType
:
this
.
issueType
Text
})
:
sprintf
(
__
(
'
Close %{issueType}
'
),
{
issueType
:
this
.
issueType
});
:
sprintf
(
__
(
'
Close %{issueType}
'
),
{
issueType
:
this
.
issueType
Text
});
},
},
qaSelector
()
{
qaSelector
()
{
return
this
.
isClosed
?
'
reopen_issue_button
'
:
'
close_issue_button
'
;
return
this
.
isClosed
?
'
reopen_issue_button
'
:
'
close_issue_button
'
;
...
...
app/assets/javascripts/notes/components/comment_form.vue
View file @
07c9af46
...
@@ -11,7 +11,6 @@ import httpStatusCodes from '~/lib/utils/http_status';
...
@@ -11,7 +11,6 @@ import httpStatusCodes from '~/lib/utils/http_status';
import
{
import
{
capitalizeFirstCharacter
,
capitalizeFirstCharacter
,
convertToCamelCase
,
convertToCamelCase
,
splitCamelCase
,
slugifyWithUnderscore
,
slugifyWithUnderscore
,
}
from
'
~/lib/utils/text_utility
'
;
}
from
'
~/lib/utils/text_utility
'
;
import
{
sprintf
}
from
'
~/locale
'
;
import
{
sprintf
}
from
'
~/locale
'
;
...
@@ -77,7 +76,15 @@ export default {
...
@@ -77,7 +76,15 @@ export default {
]),
]),
...
mapState
([
'
isToggleStateButtonLoading
'
]),
...
mapState
([
'
isToggleStateButtonLoading
'
]),
noteableDisplayName
()
{
noteableDisplayName
()
{
return
splitCamelCase
(
this
.
noteableType
).
toLowerCase
();
const
displayNameMap
=
{
[
constants
.
ISSUE_NOTEABLE_TYPE
]:
this
.
$options
.
i18n
.
issue
,
[
constants
.
EPIC_NOTEABLE_TYPE
]:
this
.
$options
.
i18n
.
epic
,
[
constants
.
MERGE_REQUEST_NOTEABLE_TYPE
]:
this
.
$options
.
i18n
.
mergeRequest
,
};
const
noteableTypeKey
=
constants
.
NOTEABLE_TYPE_MAPPING
[
this
.
noteableType
]
||
constants
.
ISSUE_NOTEABLE_TYPE
;
return
displayNameMap
[
noteableTypeKey
];
},
},
isLoggedIn
()
{
isLoggedIn
()
{
return
this
.
getUserData
.
id
;
return
this
.
getUserData
.
id
;
...
@@ -103,15 +110,13 @@ export default {
...
@@ -103,15 +110,13 @@ export default {
const
openOrClose
=
this
.
isOpen
?
'
close
'
:
'
reopen
'
;
const
openOrClose
=
this
.
isOpen
?
'
close
'
:
'
reopen
'
;
if
(
this
.
note
.
length
)
{
if
(
this
.
note
.
length
)
{
return
sprintf
(
this
.
$options
.
i18n
.
actionButton
WithNote
,
{
return
sprintf
(
this
.
$options
.
i18n
.
actionButton
.
withNote
[
openOrClose
]
,
{
actionText
:
this
.
commentButtonTitle
,
actionText
:
this
.
commentButtonTitle
,
openOrClose
,
noteable
:
this
.
noteableDisplayName
,
noteable
:
this
.
noteableDisplayName
,
});
});
}
}
return
sprintf
(
this
.
$options
.
i18n
.
actionButton
,
{
return
sprintf
(
this
.
$options
.
i18n
.
actionButton
.
withoutNote
[
openOrClose
],
{
openOrClose
:
capitalizeFirstCharacter
(
openOrClose
),
noteable
:
this
.
noteableDisplayName
,
noteable
:
this
.
noteableDisplayName
,
});
});
},
},
...
@@ -151,13 +156,8 @@ export default {
...
@@ -151,13 +156,8 @@ export default {
draftEndpoint
()
{
draftEndpoint
()
{
return
this
.
getNotesData
.
draftsPath
;
return
this
.
getNotesData
.
draftsPath
;
},
},
issuableTypeTitle
()
{
return
this
.
noteableType
===
constants
.
MERGE_REQUEST_NOTEABLE_TYPE
?
this
.
$options
.
i18n
.
mergeRequest
:
this
.
$options
.
i18n
.
issue
;
},
isIssue
()
{
isIssue
()
{
return
this
.
noteableDisplayName
===
constants
.
ISSUE_NOTEABLE_TYPE
;
return
constants
.
NOTEABLE_TYPE_MAPPING
[
this
.
noteableType
]
===
constants
.
ISSUE_NOTEABLE_TYPE
;
},
},
trackingLabel
()
{
trackingLabel
()
{
return
slugifyWithUnderscore
(
`
${
this
.
commentButtonTitle
}
button`
);
return
slugifyWithUnderscore
(
`
${
this
.
commentButtonTitle
}
button`
);
...
@@ -329,7 +329,7 @@ export default {
...
@@ -329,7 +329,7 @@ export default {
<
template
>
<
template
>
<div>
<div>
<note-signed-out-widget
v-if=
"!isLoggedIn"
/>
<note-signed-out-widget
v-if=
"!isLoggedIn"
/>
<discussion-locked-widget
v-else-if=
"!canCreateNote"
:issuable-type=
"
issuableTypeTitl
e"
/>
<discussion-locked-widget
v-else-if=
"!canCreateNote"
:issuable-type=
"
noteableDisplayNam
e"
/>
<ul
v-else-if=
"canCreateNote"
class=
"notes notes-form timeline"
>
<ul
v-else-if=
"canCreateNote"
class=
"notes notes-form timeline"
>
<timeline-entry-item
class=
"note-form"
>
<timeline-entry-item
class=
"note-form"
>
<gl-alert
<gl-alert
...
...
app/assets/javascripts/notes/i18n.js
View file @
07c9af46
...
@@ -9,6 +9,7 @@ export const COMMENT_FORM = {
...
@@ -9,6 +9,7 @@ export const COMMENT_FORM = {
issue
:
__
(
'
issue
'
),
issue
:
__
(
'
issue
'
),
startThread
:
__
(
'
Start thread
'
),
startThread
:
__
(
'
Start thread
'
),
mergeRequest
:
__
(
'
merge request
'
),
mergeRequest
:
__
(
'
merge request
'
),
epic
:
__
(
'
epic
'
),
bodyPlaceholder
:
__
(
'
Write a comment or drag your files here…
'
),
bodyPlaceholder
:
__
(
'
Write a comment or drag your files here…
'
),
confidential
:
s__
(
'
Notes|Make this comment confidential
'
),
confidential
:
s__
(
'
Notes|Make this comment confidential
'
),
confidentialVisibility
:
s__
(
'
Notes|Confidential comments are only visible to project members
'
),
confidentialVisibility
:
s__
(
'
Notes|Confidential comments are only visible to project members
'
),
...
@@ -17,7 +18,16 @@ export const COMMENT_FORM = {
...
@@ -17,7 +18,16 @@ export const COMMENT_FORM = {
),
),
discussion
:
__
(
'
Discuss a specific suggestion or question.
'
),
discussion
:
__
(
'
Discuss a specific suggestion or question.
'
),
actionButtonWithNote
:
__
(
'
%{actionText} & %{openOrClose} %{noteable}
'
),
actionButtonWithNote
:
__
(
'
%{actionText} & %{openOrClose} %{noteable}
'
),
actionButton
:
__
(
'
%{openOrClose} %{noteable}
'
),
actionButton
:
{
withNote
:
{
reopen
:
__
(
'
%{actionText} & reopen %{noteable}
'
),
close
:
__
(
'
%{actionText} & close %{noteable}
'
),
},
withoutNote
:
{
reopen
:
__
(
'
Reopen %{noteable}
'
),
close
:
__
(
'
Close %{noteable}
'
),
},
},
submitButton
:
{
submitButton
:
{
startThread
:
__
(
'
Start thread
'
),
startThread
:
__
(
'
Start thread
'
),
comment
:
__
(
'
Comment
'
),
comment
:
__
(
'
Comment
'
),
...
...
app/helpers/form_helper.rb
View file @
07c9af46
...
@@ -35,7 +35,7 @@ module FormHelper
...
@@ -35,7 +35,7 @@ module FormHelper
def
assignees_dropdown_options
(
issuable_type
)
def
assignees_dropdown_options
(
issuable_type
)
dropdown_data
=
{
dropdown_data
=
{
toggle_class:
'js-user-search js-assignee-search js-multiselect js-save-user-data'
,
toggle_class:
'js-user-search js-assignee-search js-multiselect js-save-user-data'
,
title:
'Select assignee'
,
title:
_
(
'Select assignee'
)
,
filter:
true
,
filter:
true
,
dropdown_class:
'dropdown-menu-user dropdown-menu-selectable dropdown-menu-assignee'
,
dropdown_class:
'dropdown-menu-user dropdown-menu-selectable dropdown-menu-assignee'
,
placeholder:
_
(
'Search users'
),
placeholder:
_
(
'Search users'
),
...
@@ -45,9 +45,9 @@ module FormHelper
...
@@ -45,9 +45,9 @@ module FormHelper
current_user:
true
,
current_user:
true
,
project_id:
(
@target_project
||
@project
)
&
.
id
,
project_id:
(
@target_project
||
@project
)
&
.
id
,
field_name:
"
#{
issuable_type
}
[assignee_ids][]"
,
field_name:
"
#{
issuable_type
}
[assignee_ids][]"
,
default_label:
'Unassigned'
,
default_label:
_
(
'Unassigned'
)
,
'max-select'
:
1
,
'max-select'
:
1
,
'dropdown-header'
:
'Assignee'
,
'dropdown-header'
:
_
(
'Assignee'
)
,
multi_select:
true
,
multi_select:
true
,
'input-meta'
:
'name'
,
'input-meta'
:
'name'
,
'always-show-selectbox'
:
true
,
'always-show-selectbox'
:
true
,
...
@@ -123,7 +123,7 @@ module FormHelper
...
@@ -123,7 +123,7 @@ module FormHelper
def
multiple_assignees_dropdown_options
(
options
)
def
multiple_assignees_dropdown_options
(
options
)
new_options
=
options
.
dup
new_options
=
options
.
dup
new_options
[
:title
]
=
'Select assignee(s)'
new_options
[
:title
]
=
_
(
'Select assignee(s)'
)
new_options
[
:data
][
:'dropdown-header'
]
=
'Assignee(s)'
new_options
[
:data
][
:'dropdown-header'
]
=
'Assignee(s)'
new_options
[
:data
].
delete
(
:'max-select'
)
new_options
[
:data
].
delete
(
:'max-select'
)
...
...
app/helpers/issuables_description_templates_helper.rb
View file @
07c9af46
...
@@ -6,7 +6,7 @@ module IssuablesDescriptionTemplatesHelper
...
@@ -6,7 +6,7 @@ module IssuablesDescriptionTemplatesHelper
def
template_dropdown_tag
(
issuable
,
&
block
)
def
template_dropdown_tag
(
issuable
,
&
block
)
selected_template
=
selected_template
(
issuable
)
selected_template
=
selected_template
(
issuable
)
title
=
selected_template
||
"Choose a template"
title
=
selected_template
||
_
(
'Choose a template'
)
options
=
{
options
=
{
toggle_class:
'js-issuable-selector'
,
toggle_class:
'js-issuable-selector'
,
title:
title
,
title:
title
,
...
...
app/helpers/issuables_helper.rb
View file @
07c9af46
...
@@ -80,7 +80,7 @@ module IssuablesHelper
...
@@ -80,7 +80,7 @@ module IssuablesHelper
def
users_dropdown_label
(
selected_users
)
def
users_dropdown_label
(
selected_users
)
case
selected_users
.
length
case
selected_users
.
length
when
0
when
0
"Unassigned"
_
(
'Unassigned'
)
when
1
when
1
selected_users
[
0
].
name
selected_users
[
0
].
name
else
else
...
@@ -133,7 +133,7 @@ module IssuablesHelper
...
@@ -133,7 +133,7 @@ module IssuablesHelper
end
end
# rubocop: enable CodeReuse/ActiveRecord
# rubocop: enable CodeReuse/ActiveRecord
def
milestone_dropdown_label
(
milestone_title
,
default_label
=
"Milestone"
)
def
milestone_dropdown_label
(
milestone_title
,
default_label
=
_
(
'Milestone'
)
)
title
=
title
=
case
milestone_title
case
milestone_title
when
Milestone
::
Upcoming
.
name
then
Milestone
::
Upcoming
.
title
when
Milestone
::
Upcoming
.
name
then
Milestone
::
Upcoming
.
title
...
@@ -188,7 +188,12 @@ module IssuablesHelper
...
@@ -188,7 +188,12 @@ module IssuablesHelper
end
end
def
issuables_state_counter_text
(
issuable_type
,
state
,
display_count
)
def
issuables_state_counter_text
(
issuable_type
,
state
,
display_count
)
titles
=
{
opened:
"Open"
}
titles
=
{
opened:
_
(
"Open"
),
closed:
_
(
"Closed"
),
merged:
_
(
"Merged"
),
all:
_
(
"All"
)
}
state_title
=
titles
[
state
]
||
state
.
to_s
.
humanize
state_title
=
titles
[
state
]
||
state
.
to_s
.
humanize
html
=
content_tag
(
:span
,
state_title
)
html
=
content_tag
(
:span
,
state_title
)
...
...
app/views/projects/issues/_issue.html.haml
View file @
07c9af46
...
@@ -25,10 +25,10 @@
...
@@ -25,10 +25,10 @@
#{
issuable_reference
(
issue
)
}
#{
issuable_reference
(
issue
)
}
%span
.issuable-authored.d-none.d-sm-inline-block
%span
.issuable-authored.d-none.d-sm-inline-block
·
·
created
#{
time_ago_with_tooltip
(
issue
.
created_at
,
placement:
'bottom'
)
}
by
-
if
issue
.
service_desk_reply_to
-
if
issue
.
service_desk_reply_to
#{
issue
.
service_desk_reply_to
}
via
#{
_
(
'
created
%
{
timeAgoString
}
by
%
{
email
}
via
%
{
user
}
'
).
html_safe
%
{
timeAgoString:
time_ago_with_tooltip
(
issue
.
created_at
,
placement:
'bottom'
),
email:
issue
.
service_desk_reply_to
,
user:
link_to_member
(
@project
,
issue
.
author
,
avatar:
false
)
}
}
#{
link_to_member
(
@project
,
issue
.
author
,
avatar:
false
)
}
-
else
#{
s_
(
'
IssueList
|
created
%
{
timeAgoString
}
by
%
{
user
}
'
).
html_safe
%
{
timeAgoString:
time_ago_with_tooltip
(
issue
.
created_at
,
placement:
'bottom'
),
user:
link_to_member
(
@project
,
issue
.
author
,
avatar:
false
)
}
}
=
render_if_exists
'shared/issuable/gitlab_team_member_badge'
,
author:
issue
.
author
=
render_if_exists
'shared/issuable/gitlab_team_member_badge'
,
author:
issue
.
author
-
if
issue
.
milestone
-
if
issue
.
milestone
%span
.issuable-milestone.d-none.d-sm-inline-block
%span
.issuable-milestone.d-none.d-sm-inline-block
...
...
app/views/projects/issues/_new_branch.html.haml
View file @
07c9af46
-
if
can?
(
current_user
,
:push_code
,
@project
)
-
if
can?
(
current_user
,
:push_code
,
@project
)
-
can_create_merge_request
=
can?
(
current_user
,
:create_merge_request_in
,
@project
)
-
can_create_merge_request
=
can?
(
current_user
,
:create_merge_request_in
,
@project
)
-
data_action
=
can_create_merge_request
?
'create-mr'
:
'create-branch'
-
data_action
=
can_create_merge_request
?
'create-mr'
:
'create-branch'
-
value
=
can_create_merge_request
?
'Create merge request'
:
'Create branch'
-
value
=
can_create_merge_request
?
_
(
'Create merge request'
)
:
_
(
'Create branch'
)
-
value
=
can_create_confidential_merge_request?
?
_
(
'Create confidential merge request'
)
:
value
-
value
=
can_create_confidential_merge_request?
?
_
(
'Create confidential merge request'
)
:
value
-
create_mr_text
=
can_create_confidential_merge_request?
?
_
(
'Create confidential merge request'
)
:
_
(
'Create merge request'
)
-
create_mr_text
=
can_create_confidential_merge_request?
?
_
(
'Create confidential merge request'
)
:
_
(
'Create merge request'
)
...
...
app/views/projects/merge_requests/_merge_request.html.haml
View file @
07c9af46
...
@@ -20,8 +20,7 @@
...
@@ -20,8 +20,7 @@
#{
issuable_reference
(
merge_request
)
}
#{
issuable_reference
(
merge_request
)
}
%span
.issuable-authored.d-none.d-sm-inline-block
%span
.issuable-authored.d-none.d-sm-inline-block
·
·
created
#{
time_ago_with_tooltip
(
merge_request
.
created_at
,
placement:
'bottom'
)
}
#{
s_
(
'
IssueList
|
created
%
{
timeAgoString
}
by
%
{
user
}
'
).
html_safe
%
{
timeAgoString:
time_ago_with_tooltip
(
merge_request
.
created_at
,
placement:
'bottom'
),
user:
link_to_member
(
@project
,
merge_request
.
author
,
avatar:
false
)
}
}
by
#{
link_to_member
(
@project
,
merge_request
.
author
,
avatar:
false
)
}
=
render_if_exists
'shared/issuable/gitlab_team_member_badge'
,
author:
merge_request
.
author
=
render_if_exists
'shared/issuable/gitlab_team_member_badge'
,
author:
merge_request
.
author
-
if
merge_request
.
milestone
-
if
merge_request
.
milestone
%span
.issuable-milestone.d-none.d-sm-inline-block
%span
.issuable-milestone.d-none.d-sm-inline-block
...
...
app/views/shared/form_elements/_description.html.haml
View file @
07c9af46
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
-
preview_url
=
preview_markdown_path
(
project
,
target_type:
model
.
class
.
name
)
-
preview_url
=
preview_markdown_path
(
project
,
target_type:
model
.
class
.
name
)
.form-group.row.detail-page-description
.form-group.row.detail-page-description
=
form
.
label
:description
,
'Description'
,
class:
'col-form-label col-sm-2'
=
form
.
label
:description
,
_
(
'Description'
)
,
class:
'col-form-label col-sm-2'
.col-sm-10
.col-sm-10
-
if
model
.
is_a?
(
MergeRequest
)
-
if
model
.
is_a?
(
MergeRequest
)
=
hidden_field_tag
:merge_request_diff_head_sha
,
model
.
diff_head_sha
=
hidden_field_tag
:merge_request_diff_head_sha
,
model
.
diff_head_sha
...
...
app/views/shared/issuable/_form.html.haml
View file @
07c9af46
...
@@ -64,7 +64,7 @@
...
@@ -64,7 +64,7 @@
for this project.
for this project.
-
if
issuable
.
new_record?
-
if
issuable
.
new_record?
=
form
.
submit
"
Create
#{
issuable
.
class
.
model_name
.
human
.
downcase
}
"
,
class:
'gl-button btn btn-confirm gl-mr-2'
,
data:
{
qa_selector:
'issuable_create_button'
}
=
form
.
submit
"
#{
_
(
'Create'
)
}
#{
issuable
.
class
.
model_name
.
human
.
downcase
}
"
,
class:
'gl-button btn btn-confirm gl-mr-2'
,
data:
{
qa_selector:
'issuable_create_button'
}
-
else
-
else
=
form
.
submit
_
(
'Save changes'
),
class:
'gl-button btn btn-confirm gl-mr-2'
=
form
.
submit
_
(
'Save changes'
),
class:
'gl-button btn btn-confirm gl-mr-2'
...
...
app/views/shared/issuable/_milestone_dropdown.html.haml
View file @
07c9af46
...
@@ -4,20 +4,20 @@
...
@@ -4,20 +4,20 @@
-
selected
=
local_assigns
.
fetch
(
:selected
,
nil
)
-
selected
=
local_assigns
.
fetch
(
:selected
,
nil
)
-
selected_text
=
selected
.
try
(
:title
)
||
params
[
:milestone_title
]
-
selected_text
=
selected
.
try
(
:title
)
||
params
[
:milestone_title
]
-
dropdown_title
=
local_assigns
.
fetch
(
:dropdown_title
,
"Filter by milestone"
)
-
dropdown_title
=
local_assigns
.
fetch
(
:dropdown_title
,
_
(
'Filter by milestone'
)
)
-
if
selected
.
present?
||
params
[
:milestone_title
].
present?
-
if
selected
.
present?
||
params
[
:milestone_title
].
present?
=
hidden_field_tag
(
name
,
name
==
:milestone_title
?
selected_text
:
selected
.
id
)
=
hidden_field_tag
(
name
,
name
==
:milestone_title
?
selected_text
:
selected
.
id
)
=
dropdown_tag
(
milestone_dropdown_label
(
selected_text
),
options:
{
title:
dropdown_title
,
toggle_class:
"qa-issuable-milestone-dropdown js-milestone-select js-filter-submit
#{
extra_class
}
"
,
filter:
true
,
dropdown_class:
"qa-issuable-dropdown-menu-milestone dropdown-menu-selectable dropdown-menu-milestone"
,
=
dropdown_tag
(
milestone_dropdown_label
(
selected_text
),
options:
{
title:
dropdown_title
,
toggle_class:
"qa-issuable-milestone-dropdown js-milestone-select js-filter-submit
#{
extra_class
}
"
,
filter:
true
,
dropdown_class:
"qa-issuable-dropdown-menu-milestone dropdown-menu-selectable dropdown-menu-milestone"
,
placeholder:
"Search milestones"
,
footer_content:
project
.
present?
,
data:
{
show_no:
true
,
show_menu_above:
show_menu_above
,
show_any:
show_any
,
show_upcoming:
show_upcoming
,
show_started:
show_started
,
field_name:
name
,
selected:
selected_text
,
project_id:
project
.
try
(
:id
),
default_label:
"Milestone"
}
})
do
placeholder:
_
(
'Search milestones'
),
footer_content:
project
.
present?
,
data:
{
show_no:
true
,
show_menu_above:
show_menu_above
,
show_any:
show_any
,
show_upcoming:
show_upcoming
,
show_started:
show_started
,
field_name:
name
,
selected:
selected_text
,
project_id:
project
.
try
(
:id
),
default_label:
_
(
'Milestone'
)
}
})
do
-
if
project
-
if
project
%ul
.dropdown-footer-list
%ul
.dropdown-footer-list
-
if
can?
current_user
,
:admin_milestone
,
project
-
if
can?
current_user
,
:admin_milestone
,
project
%li
%li
=
link_to
new_project_milestone_path
(
project
),
title:
"New Milestone"
do
=
link_to
new_project_milestone_path
(
project
),
title:
_
(
'New Milestone'
)
do
Create new
=
_
(
'Create new'
)
%li
%li
=
link_to
project_milestones_path
(
project
)
do
=
link_to
project_milestones_path
(
project
)
do
-
if
can?
current_user
,
:admin_milestone
,
project
-
if
can?
current_user
,
:admin_milestone
,
project
Manage milestones
=
_
(
'Manage milestones'
)
-
else
-
else
View milestones
=
_
(
'View milestones'
)
app/views/shared/issuable/form/_default_templates.html.haml
View file @
07c9af46
%p
.form-text.text-muted
%p
.form-text.text-muted
Add
-
template_link_url
=
help_page_path
(
'user/project/description_templates'
)
=
link_to
'description templates'
,
help_page_path
(
'user/project/description_templates'
)
-
template_link_start
=
'<a href="%{url}" target="_blank" rel="noopener noreferrer">'
.
html_safe
%
{
url:
template_link_url
}
to help your contributors communicate effectively!
=
s_
(
'Promotions|Add %{link_start} description templates %{link_end} to help your contributors to communicate effectively!'
).
html_safe
%
{
link_start:
template_link_start
,
link_end:
'</a>'
.
html_safe
}
app/views/shared/issuable/form/_metadata.html.haml
View file @
07c9af46
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
.form-check
.form-check
=
form
.
check_box
:confidential
,
class:
'form-check-input'
=
form
.
check_box
:confidential
,
class:
'form-check-input'
=
form
.
label
:confidential
,
class:
'form-check-label'
do
=
form
.
label
:confidential
,
class:
'form-check-label'
do
This issue is confidential and should only be visible to team members with at least Reporter access.
#{
_
(
'This issue is confidential and should only be visible to team members with at least Reporter access.'
)
}
-
if
can?
(
current_user
,
:"set_
#{
issuable
.
to_ability_name
}
_metadata"
,
issuable
)
-
if
can?
(
current_user
,
:"set_
#{
issuable
.
to_ability_name
}
_metadata"
,
issuable
)
%hr
%hr
...
@@ -27,13 +27,13 @@
...
@@ -27,13 +27,13 @@
-
if
issuable
.
supports_milestone?
-
if
issuable
.
supports_milestone?
.form-group.row.issue-milestone
.form-group.row.issue-milestone
=
form
.
label
:milestone_id
,
"Milestone"
,
class:
"col-form-label
#{
has_due_date
?
"col-md-2 col-lg-4"
:
"col-sm-2"
}
"
=
form
.
label
:milestone_id
,
_
(
'Milestone'
)
,
class:
"col-form-label
#{
has_due_date
?
"col-md-2 col-lg-4"
:
"col-sm-2"
}
"
.col-sm-10
{
class:
(
"col-md-8"
if
has_due_date
)
}
.col-sm-10
{
class:
(
"col-md-8"
if
has_due_date
)
}
.issuable-form-select-holder
.issuable-form-select-holder
=
render
"shared/issuable/milestone_dropdown"
,
selected:
issuable
.
milestone
,
name:
"
#{
issuable
.
class
.
model_name
.
param_key
}
[milestone_id]"
,
show_any:
false
,
show_upcoming:
false
,
show_started:
false
,
extra_class:
"qa-issuable-milestone-dropdown js-issuable-form-dropdown js-dropdown-keep-input"
,
dropdown_title:
"Select milestone"
=
render
"shared/issuable/milestone_dropdown"
,
selected:
issuable
.
milestone
,
name:
"
#{
issuable
.
class
.
model_name
.
param_key
}
[milestone_id]"
,
show_any:
false
,
show_upcoming:
false
,
show_started:
false
,
extra_class:
"qa-issuable-milestone-dropdown js-issuable-form-dropdown js-dropdown-keep-input"
,
dropdown_title:
_
(
'Select milestone'
)
.form-group.row
.form-group.row
=
form
.
label
:label_ids
,
"Labels"
,
class:
"col-form-label
#{
has_due_date
?
"col-md-2 col-lg-4"
:
"col-sm-2"
}
"
=
form
.
label
:label_ids
,
_
(
'Labels'
)
,
class:
"col-form-label
#{
has_due_date
?
"col-md-2 col-lg-4"
:
"col-sm-2"
}
"
=
form
.
hidden_field
:label_ids
,
multiple:
true
,
value:
''
=
form
.
hidden_field
:label_ids
,
multiple:
true
,
value:
''
.col-sm-10
{
class:
"#{"
col
-
md
-
8
" if has_due_date}"
}
.col-sm-10
{
class:
"#{"
col
-
md
-
8
" if has_due_date}"
}
.issuable-form-select-holder
.issuable-form-select-holder
...
@@ -45,7 +45,7 @@
...
@@ -45,7 +45,7 @@
.col-lg-6
.col-lg-6
=
render_if_exists
"shared/issuable/form/weight"
,
issuable:
issuable
,
form:
form
=
render_if_exists
"shared/issuable/form/weight"
,
issuable:
issuable
,
form:
form
.form-group.row
.form-group.row
=
form
.
label
:due_date
,
"Due date"
,
class:
"col-form-label col-md-2 col-lg-4"
=
form
.
label
:due_date
,
_
(
'Due date'
)
,
class:
"col-form-label col-md-2 col-lg-4"
.col-8
.col-8
.issuable-form-select-holder
.issuable-form-select-holder
=
form
.
text_field
:due_date
,
id:
"issuable-due-date"
,
class:
"datepicker form-control"
,
placeholder:
"Select due date"
,
autocomplete:
'off'
=
form
.
text_field
:due_date
,
id:
"issuable-due-date"
,
class:
"datepicker form-control"
,
placeholder:
_
(
'Select due date'
)
,
autocomplete:
'off'
app/views/shared/issuable/form/_metadata_issuable_assignee.html.haml
View file @
07c9af46
...
@@ -8,4 +8,4 @@
...
@@ -8,4 +8,4 @@
=
hidden_field_tag
"
#{
issuable
.
to_ability_name
}
[assignee_ids][]"
,
0
,
id:
nil
,
data:
{
meta:
''
}
=
hidden_field_tag
"
#{
issuable
.
to_ability_name
}
[assignee_ids][]"
,
0
,
id:
nil
,
data:
{
meta:
''
}
=
dropdown_tag
(
users_dropdown_label
(
issuable
.
assignees
),
options:
assignees_dropdown_options
(
issuable
.
to_ability_name
))
=
dropdown_tag
(
users_dropdown_label
(
issuable
.
assignees
),
options:
assignees_dropdown_options
(
issuable
.
to_ability_name
))
=
link_to
'Assign to me'
,
'#'
,
class:
"assign-to-me-link qa-assign-to-me-link
#{
'hide'
if
issuable
.
assignees
.
include?
(
current_user
)
}
"
=
link_to
_
(
'Assign to me'
)
,
'#'
,
class:
"assign-to-me-link qa-assign-to-me-link
#{
'hide'
if
issuable
.
assignees
.
include?
(
current_user
)
}
"
app/views/shared/issuable/form/_type_selector.html.haml
View file @
07c9af46
-
return
unless
issuable
.
supports_issue_type?
&&
can?
(
current_user
,
:create_issue
,
@project
)
-
return
unless
issuable
.
supports_issue_type?
&&
can?
(
current_user
,
:create_issue
,
@project
)
.form-group.row.gl-mb-0
.form-group.row.gl-mb-0
=
form
.
label
:type
,
'Type'
,
class:
'col-form-label col-sm-2'
=
form
.
label
:type
,
_
(
'Type'
)
,
class:
'col-form-label col-sm-2'
.col-sm-10
.col-sm-10
.gl-display-flex.gl-align-items-center
.gl-display-flex.gl-align-items-center
.issuable-form-select-holder.selectbox.form-group.gl-mb-0
.issuable-form-select-holder.selectbox.form-group.gl-mb-0
...
...
ee/app/views/shared/issuable/form/_weight.html.haml
View file @
07c9af46
...
@@ -7,10 +7,10 @@
...
@@ -7,10 +7,10 @@
.form-group.row
.form-group.row
=
form
.
label
:label_ids
,
class:
"col-form-label col-md-2
#{
"col-lg-4"
if
has_due_date
}
"
do
=
form
.
label
:label_ids
,
class:
"col-form-label col-md-2
#{
"col-lg-4"
if
has_due_date
}
"
do
Weight
#{
_
(
'Weight'
)
}
.col-md-10
{
class:
(
"col-lg-8"
if
has_due_date
)
}
.col-md-10
{
class:
(
"col-lg-8"
if
has_due_date
)
}
.issuable-form-select-holder
.issuable-form-select-holder
-
if
issuable
.
weight
-
if
issuable
.
weight
=
form
.
hidden_field
:weight
=
form
.
hidden_field
:weight
=
form
.
text_field
:weight
,
class:
"datepicker form-control qa-issuable-weight-input"
,
placeholder:
"Enter a number"
,
autocomplete:
"off"
,
type:
"text"
=
form
.
text_field
:weight
,
class:
"datepicker form-control qa-issuable-weight-input"
,
placeholder:
_
(
'Enter a number'
)
,
autocomplete:
"off"
,
type:
"text"
locale/gitlab.pot
View file @
07c9af46
...
@@ -419,6 +419,12 @@ msgstr[1] ""
...
@@ -419,6 +419,12 @@ msgstr[1] ""
msgid "%{actionText} & %{openOrClose} %{noteable}"
msgid "%{actionText} & %{openOrClose} %{noteable}"
msgstr ""
msgstr ""
msgid "%{actionText} & close %{noteable}"
msgstr ""
msgid "%{actionText} & reopen %{noteable}"
msgstr ""
msgid "%{address} is an invalid IP address range"
msgid "%{address} is an invalid IP address range"
msgstr ""
msgstr ""
...
@@ -811,9 +817,6 @@ msgstr ""
...
@@ -811,9 +817,6 @@ msgstr ""
msgid "%{oneYearAgo} - %{today}"
msgid "%{oneYearAgo} - %{today}"
msgstr ""
msgstr ""
msgid "%{openOrClose} %{noteable}"
msgstr ""
msgid "%{openedEpics} open, %{closedEpics} closed"
msgid "%{openedEpics} open, %{closedEpics} closed"
msgstr ""
msgstr ""
...
@@ -4721,6 +4724,9 @@ msgstr ""
...
@@ -4721,6 +4724,9 @@ msgstr ""
msgid "Assign to commenting user"
msgid "Assign to commenting user"
msgstr ""
msgstr ""
msgid "Assign to me"
msgstr ""
msgid "Assign yourself to these issues"
msgid "Assign yourself to these issues"
msgstr ""
msgstr ""
...
@@ -7302,6 +7308,9 @@ msgstr ""
...
@@ -7302,6 +7308,9 @@ msgstr ""
msgid "Close %{issueType}"
msgid "Close %{issueType}"
msgstr ""
msgstr ""
msgid "Close %{noteable}"
msgstr ""
msgid "Close %{tabname}"
msgid "Close %{tabname}"
msgstr ""
msgstr ""
...
@@ -14901,6 +14910,9 @@ msgstr ""
...
@@ -14901,6 +14910,9 @@ msgstr ""
msgid "Filter by merge requests that are currently merged."
msgid "Filter by merge requests that are currently merged."
msgstr ""
msgstr ""
msgid "Filter by milestone"
msgstr ""
msgid "Filter by milestone name"
msgid "Filter by milestone name"
msgstr ""
msgstr ""
...
@@ -17076,6 +17088,12 @@ msgstr ""
...
@@ -17076,6 +17088,12 @@ msgstr ""
msgid "Header message"
msgid "Header message"
msgstr ""
msgstr ""
msgid "HeaderAction|incident"
msgstr ""
msgid "HeaderAction|issue"
msgstr ""
msgid "Headers"
msgid "Headers"
msgstr ""
msgstr ""
...
@@ -19413,6 +19431,9 @@ msgstr ""
...
@@ -19413,6 +19431,9 @@ msgstr ""
msgid "IssueBoards|Switch board"
msgid "IssueBoards|Switch board"
msgstr ""
msgstr ""
msgid "IssueList|created %{timeAgoString} by %{user}"
msgstr ""
msgid "IssueTracker|Custom issue tracker"
msgid "IssueTracker|Custom issue tracker"
msgstr ""
msgstr ""
...
@@ -27947,6 +27968,9 @@ msgstr ""
...
@@ -27947,6 +27968,9 @@ msgstr ""
msgid "Promotion is not supported."
msgid "Promotion is not supported."
msgstr ""
msgstr ""
msgid "Promotions|Add %{link_start} description templates %{link_end} to help your contributors to communicate effectively!"
msgstr ""
msgid "Promotions|Add Group Webhooks and GitLab Enterprise Edition."
msgid "Promotions|Add Group Webhooks and GitLab Enterprise Edition."
msgstr ""
msgstr ""
...
@@ -29124,6 +29148,9 @@ msgstr ""
...
@@ -29124,6 +29148,9 @@ msgstr ""
msgid "Reopen %{issueType}"
msgid "Reopen %{issueType}"
msgstr ""
msgstr ""
msgid "Reopen %{noteable}"
msgstr ""
msgid "Reopen epic"
msgid "Reopen epic"
msgstr ""
msgstr ""
...
@@ -31385,6 +31412,9 @@ msgstr ""
...
@@ -31385,6 +31412,9 @@ msgstr ""
msgid "Select assignee"
msgid "Select assignee"
msgstr ""
msgstr ""
msgid "Select assignee(s)"
msgstr ""
msgid "Select branch"
msgid "Select branch"
msgstr ""
msgstr ""
...
@@ -35585,6 +35615,9 @@ msgstr ""
...
@@ -35585,6 +35615,9 @@ msgstr ""
msgid "This is your current session"
msgid "This is your current session"
msgstr ""
msgstr ""
msgid "This issue is confidential and should only be visible to team members with at least Reporter access."
msgstr ""
msgid "This issue is currently blocked by the following issues:"
msgid "This issue is currently blocked by the following issues:"
msgstr ""
msgstr ""
...
@@ -38451,6 +38484,9 @@ msgstr ""
...
@@ -38451,6 +38484,9 @@ msgstr ""
msgid "View merge request"
msgid "View merge request"
msgstr ""
msgstr ""
msgid "View milestones"
msgstr ""
msgid "View on %{url}"
msgid "View on %{url}"
msgstr ""
msgstr ""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment