Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-11-10 12:08:45 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-11-10 12:08:45 +0300
commit01c201bc6a9b99e1f3095f4139110c6fd0cf7aa9 (patch)
tree7445a1fc4797d9f093c3b1352cf3889fadc6d967 /app/assets/javascripts/issue_show
parent552db97a0dfa486b751a808eb4e9fadc8b875e9c (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.vue77
-rw-r--r--app/assets/javascripts/issue_show/issue.js1
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,