diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-10 12:08:45 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-10 12:08:45 +0300 |
commit | 01c201bc6a9b99e1f3095f4139110c6fd0cf7aa9 (patch) | |
tree | 7445a1fc4797d9f093c3b1352cf3889fadc6d967 /app/assets/javascripts/issue_show | |
parent | 552db97a0dfa486b751a808eb4e9fadc8b875e9c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/issue_show')
-rw-r--r-- | app/assets/javascripts/issue_show/components/header_actions.vue | 77 | ||||
-rw-r--r-- | app/assets/javascripts/issue_show/issue.js | 1 |
2 files changed, 57 insertions, 21 deletions
diff --git a/app/assets/javascripts/issue_show/components/header_actions.vue b/app/assets/javascripts/issue_show/components/header_actions.vue index e59c8fd837c..165fa745485 100644 --- a/app/assets/javascripts/issue_show/components/header_actions.vue +++ b/app/assets/javascripts/issue_show/components/header_actions.vue @@ -2,8 +2,10 @@ import { GlButton, GlDropdown, GlDropdownItem, GlIcon, GlLink, GlModal } from '@gitlab/ui'; import { mapGetters } from 'vuex'; import createFlash from '~/flash'; +import { IssuableType } from '~/issuable_show/constants'; import { IssuableStatus, IssueStateEvent } from '~/issue_show/constants'; -import { __ } from '~/locale'; +import { capitalizeFirstCharacter } from '~/lib/utils/text_utility'; +import { __, sprintf } from '~/locale'; import updateIssueMutation from '../queries/update_issue.mutation.graphql'; export default { @@ -22,18 +24,41 @@ export default { text: __('Yes, close issue'), attributes: [{ variant: 'warning' }], }, - inject: [ - 'canCreateIssue', - 'canReopenIssue', - 'canReportSpam', - 'canUpdateIssue', - 'iid', - 'isIssueAuthor', - 'newIssuePath', - 'projectPath', - 'reportAbusePath', - 'submitAsSpamPath', - ], + inject: { + canCreateIssue: { + default: false, + }, + canReopenIssue: { + default: false, + }, + canReportSpam: { + default: false, + }, + canUpdateIssue: { + default: false, + }, + iid: { + default: '', + }, + isIssueAuthor: { + default: false, + }, + issueType: { + default: IssuableType.Issue, + }, + newIssuePath: { + default: '', + }, + projectPath: { + default: '', + }, + reportAbusePath: { + default: '', + }, + submitAsSpamPath: { + default: '', + }, + }, data() { return { isUpdatingState: false, @@ -45,12 +70,22 @@ export default { return this.getNoteableData.state === IssuableStatus.Closed; }, buttonText() { - return this.isClosed ? __('Reopen issue') : __('Close issue'); + return this.isClosed + ? sprintf(__('Reopen %{issueType}'), { issueType: this.issueType }) + : sprintf(__('Close %{issueType}'), { issueType: this.issueType }); }, buttonVariant() { return this.isClosed ? 'default' : 'warning'; }, - showToggleIssueButton() { + dropdownText() { + return sprintf(__('%{issueType} actions'), { + issueType: capitalizeFirstCharacter(this.issueType), + }); + }, + newIssueTypeText() { + return sprintf(__('New %{issueType}'), { issueType: this.issueType }); + }, + showToggleIssueStateButton() { const canClose = !this.isClosed && this.canUpdateIssue; const canReopen = this.isClosed && this.canReopenIssue; return canClose || canReopen; @@ -106,16 +141,16 @@ export default { <template> <div class="detail-page-header-actions"> - <gl-dropdown class="gl-display-block gl-display-sm-none!" block :text="__('Issue actions')"> + <gl-dropdown class="gl-display-block gl-display-sm-none!" block :text="dropdownText"> <gl-dropdown-item - v-if="showToggleIssueButton" + v-if="showToggleIssueStateButton" :disabled="isUpdatingState" @click="toggleIssueState" > {{ buttonText }} </gl-dropdown-item> <gl-dropdown-item v-if="canCreateIssue" :href="newIssuePath"> - {{ __('New issue') }} + {{ newIssueTypeText }} </gl-dropdown-item> <gl-dropdown-item v-if="!isIssueAuthor" :href="reportAbusePath"> {{ __('Report abuse') }} @@ -131,7 +166,7 @@ export default { </gl-dropdown> <gl-button - v-if="showToggleIssueButton" + v-if="showToggleIssueStateButton" class="gl-display-none gl-display-sm-inline-flex!" category="secondary" :loading="isUpdatingState" @@ -149,11 +184,11 @@ export default { > <template #button-content> <gl-icon name="ellipsis_v" aria-hidden="true" /> - <span class="gl-sr-only">{{ __('Actions') }}</span> + <span class="gl-sr-only">{{ dropdownText }}</span> </template> <gl-dropdown-item v-if="canCreateIssue" :href="newIssuePath"> - {{ __('New issue') }} + {{ newIssueTypeText }} </gl-dropdown-item> <gl-dropdown-item v-if="!isIssueAuthor" :href="reportAbusePath"> {{ __('Report abuse') }} diff --git a/app/assets/javascripts/issue_show/issue.js b/app/assets/javascripts/issue_show/issue.js index b5cd466596e..3d0d8d882be 100644 --- a/app/assets/javascripts/issue_show/issue.js +++ b/app/assets/javascripts/issue_show/issue.js @@ -50,6 +50,7 @@ export function initIssueHeaderActions(store) { canUpdateIssue: parseBoolean(el.dataset.canUpdateIssue), iid: el.dataset.iid, isIssueAuthor: parseBoolean(el.dataset.isIssueAuthor), + issueType: el.dataset.issueType, newIssuePath: el.dataset.newIssuePath, projectPath: el.dataset.projectPath, reportAbusePath: el.dataset.reportAbusePath, |