diff options
Diffstat (limited to 'app/assets/javascripts/related_issues')
6 files changed, 41 insertions, 37 deletions
diff --git a/app/assets/javascripts/related_issues/components/add_issuable_form.vue b/app/assets/javascripts/related_issues/components/add_issuable_form.vue index 102f1228355..adae92a92e9 100644 --- a/app/assets/javascripts/related_issues/components/add_issuable_form.vue +++ b/app/assets/javascripts/related_issues/components/add_issuable_form.vue @@ -1,10 +1,10 @@ <script> import { GlFormGroup, GlFormRadioGroup, GlButton } from '@gitlab/ui'; +import { TYPE_ISSUE } from '~/issues/constants'; import { mergeUrlParams } from '~/lib/utils/url_utility'; import { __ } from '~/locale'; import { - issuableTypesMap, itemAddFailureTypesMap, linkedIssueTypesMap, addRelatedIssueErrorMap, @@ -54,7 +54,7 @@ export default { issuableType: { type: String, required: false, - default: issuableTypesMap.ISSUE, + default: TYPE_ISSUE, }, hasError: { type: Boolean, diff --git a/app/assets/javascripts/related_issues/components/related_issuable_input.vue b/app/assets/javascripts/related_issues/components/related_issuable_input.vue index 09ecad2d90e..8d6a3110f35 100644 --- a/app/assets/javascripts/related_issues/components/related_issuable_input.vue +++ b/app/assets/javascripts/related_issues/components/related_issuable_input.vue @@ -1,11 +1,11 @@ <script> import $ from 'jquery'; import GfmAutoComplete from 'ee_else_ce/gfm_auto_complete'; +import { TYPE_ISSUE } from '~/issues/constants'; import { autoCompleteTextMap, inputPlaceholderConfidentialTextMap, inputPlaceholderTextMap, - issuableTypesMap, } from '../constants'; import IssueToken from './issue_token.vue'; @@ -54,7 +54,7 @@ export default { issuableType: { type: String, required: false, - default: issuableTypesMap.ISSUE, + default: TYPE_ISSUE, }, confidential: { type: Boolean, diff --git a/app/assets/javascripts/related_issues/components/related_issues_list.vue b/app/assets/javascripts/related_issues/components/related_issues_list.vue index 11de734f5d4..7387b9ab87c 100644 --- a/app/assets/javascripts/related_issues/components/related_issues_list.vue +++ b/app/assets/javascripts/related_issues/components/related_issues_list.vue @@ -2,6 +2,7 @@ import { GlLoadingIcon } from '@gitlab/ui'; import Sortable from 'sortablejs'; import RelatedIssuableItem from '~/issuable/components/related_issuable_item.vue'; +import { TYPE_ISSUE } from '~/issues/constants'; import { defaultSortableOptions } from '~/sortable/constants'; export default { @@ -88,7 +89,7 @@ export default { document.body.classList.remove('is-dragging'); }, issuableOrderingId({ epicIssueId, id }) { - return this.issuableType === 'issue' ? epicIssueId : id; + return this.issuableType === TYPE_ISSUE ? epicIssueId : id; }, }, }; diff --git a/app/assets/javascripts/related_issues/components/related_issues_root.vue b/app/assets/javascripts/related_issues/components/related_issues_root.vue index 795eb3b0083..ed70e1ce8a8 100644 --- a/app/assets/javascripts/related_issues/components/related_issues_root.vue +++ b/app/assets/javascripts/related_issues/components/related_issues_root.vue @@ -25,12 +25,13 @@ Your caret can stop touching a `rawReference` can happen in a variety of ways: */ import { createAlert } from '~/flash'; import { getIdFromGraphQLId, isGid } from '~/graphql_shared/utils'; +import { TYPE_ISSUE } from '~/issues/constants'; +import { HTTP_STATUS_NOT_FOUND } from '~/lib/utils/http_status'; import { __ } from '~/locale'; import { relatedIssuesRemoveErrorMap, pathIndeterminateErrorMap, addRelatedIssueErrorMap, - issuableTypesMap, PathIdSeparator, } from '../constants'; import RelatedIssuesService from '../services/related_issues_service'; @@ -65,7 +66,7 @@ export default { issuableType: { type: String, required: false, - default: issuableTypesMap.ISSUE, + default: TYPE_ISSUE, }, allowAutoComplete: { type: Boolean, @@ -142,7 +143,7 @@ export default { this.store.setRelatedIssues(data.issuables); }) .catch((res) => { - if (res && res.status !== 404) { + if (res && res.status !== HTTP_STATUS_NOT_FOUND) { createAlert({ message: relatedIssuesRemoveErrorMap[this.issuableType] }); } }); diff --git a/app/assets/javascripts/related_issues/constants.js b/app/assets/javascripts/related_issues/constants.js index d1b2d41d7ae..2a4ce70511b 100644 --- a/app/assets/javascripts/related_issues/constants.js +++ b/app/assets/javascripts/related_issues/constants.js @@ -1,4 +1,5 @@ import { __, sprintf } from '~/locale'; +import { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants'; export const issuableTypesMap = { ISSUE: 'issue', @@ -21,7 +22,7 @@ export const linkedIssueTypesTextMap = { export const autoCompleteTextMap = { true: { - [issuableTypesMap.ISSUE]: sprintf( + [TYPE_ISSUE]: sprintf( __(' or %{emphasisStart}#issue id%{emphasisEnd}'), { emphasisStart: '<', emphasisEnd: '>' }, false, @@ -31,7 +32,7 @@ export const autoCompleteTextMap = { { emphasisStart: '<', emphasisEnd: '>' }, false, ), - [issuableTypesMap.EPIC]: sprintf( + [TYPE_EPIC]: sprintf( __(' or %{emphasisStart}&epic id%{emphasisEnd}'), { emphasisStart: '<', emphasisEnd: '>' }, false, @@ -43,33 +44,33 @@ export const autoCompleteTextMap = { ), }, false: { - [issuableTypesMap.ISSUE]: '', - [issuableTypesMap.EPIC]: '', - [issuableTypesMap.MERGE_REQUEST]: __(' or references (e.g. path/to/project!merge_request_id)'), + [TYPE_ISSUE]: '', + [TYPE_EPIC]: '', + [issuableTypesMap.MERGE_REQUEST]: __(' or references'), }, }; export const inputPlaceholderTextMap = { - [issuableTypesMap.ISSUE]: __('Paste issue link'), + [TYPE_ISSUE]: __('Paste issue link'), [issuableTypesMap.INCIDENT]: __('Paste link'), - [issuableTypesMap.EPIC]: __('Paste epic link'), + [TYPE_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'), + [TYPE_ISSUE]: __('Paste confidential issue link'), + [TYPE_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.'), + [TYPE_ISSUE]: __('An error occurred while removing issues.'), + [TYPE_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'), + [TYPE_ISSUE]: __('We could not determine the path to remove the issue'), + [TYPE_EPIC]: __('We could not determine the path to remove the epic'), }; export const itemAddFailureTypesMap = { @@ -78,8 +79,8 @@ export const itemAddFailureTypesMap = { }; export const addRelatedIssueErrorMap = { - [issuableTypesMap.ISSUE]: __('Issue cannot be found.'), - [issuableTypesMap.EPIC]: __('Epic cannot be found.'), + [TYPE_ISSUE]: __('Issue cannot be found.'), + [TYPE_EPIC]: __('Epic cannot be found.'), }; export const addRelatedItemErrorMap = { @@ -94,9 +95,9 @@ export const addRelatedItemErrorMap = { * them inside i18n functions. */ export const issuableIconMap = { - [issuableTypesMap.ISSUE]: 'issues', + [TYPE_ISSUE]: 'issues', [issuableTypesMap.INCIDENT]: 'issues', - [issuableTypesMap.EPIC]: 'epic', + [TYPE_EPIC]: 'epic', }; export const PathIdSeparator = { @@ -105,30 +106,30 @@ export const PathIdSeparator = { }; export const issuablesBlockHeaderTextMap = { - [issuableTypesMap.ISSUE]: __('Linked items'), + [TYPE_ISSUE]: __('Linked items'), [issuableTypesMap.INCIDENT]: __('Linked incidents or issues'), - [issuableTypesMap.EPIC]: __('Linked epics'), + [TYPE_EPIC]: __('Linked epics'), }; export const issuablesBlockHelpTextMap = { - [issuableTypesMap.ISSUE]: __('Learn more about linking issues'), + [TYPE_ISSUE]: __('Learn more about linking issues'), [issuableTypesMap.INCIDENT]: __('Learn more about linking issues and incidents'), - [issuableTypesMap.EPIC]: __('Learn more about linking epics'), + [TYPE_EPIC]: __('Learn more about linking epics'), }; export const issuablesBlockAddButtonTextMap = { - [issuableTypesMap.ISSUE]: __('Add a related issue'), - [issuableTypesMap.EPIC]: __('Add a related epic'), + [TYPE_ISSUE]: __('Add a related issue'), + [TYPE_EPIC]: __('Add a related epic'), }; export const issuablesFormCategoryHeaderTextMap = { - [issuableTypesMap.ISSUE]: __('The current issue'), + [TYPE_ISSUE]: __('The current issue'), [issuableTypesMap.INCIDENT]: __('The current incident'), - [issuableTypesMap.EPIC]: __('The current epic'), + [TYPE_EPIC]: __('The current epic'), }; export const issuablesFormInputTextMap = { - [issuableTypesMap.ISSUE]: __('the following issues'), + [TYPE_ISSUE]: __('the following issues'), [issuableTypesMap.INCIDENT]: __('the following incidents or issues'), - [issuableTypesMap.EPIC]: __('the following epics'), + [TYPE_EPIC]: __('the following epics'), }; diff --git a/app/assets/javascripts/related_issues/index.js b/app/assets/javascripts/related_issues/index.js index c77a67c4287..cc00ef10dda 100644 --- a/app/assets/javascripts/related_issues/index.js +++ b/app/assets/javascripts/related_issues/index.js @@ -1,9 +1,10 @@ import Vue from 'vue'; -import apolloProvider from '~/issues/show/graphql'; +import { TYPE_ISSUE } from '~/issues/constants'; +import { apolloProvider } from '~/graphql_shared/issuable_client'; import { parseBoolean } from '~/lib/utils/common_utils'; import RelatedIssuesRoot from './components/related_issues_root.vue'; -export function initRelatedIssues(issueType = 'issue') { +export function initRelatedIssues(issueType = TYPE_ISSUE) { const el = document.querySelector('.js-related-issues-root'); if (!el) { |