diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 10:34:06 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-02-18 10:34:06 +0000 |
commit | 859a6fb938bb9ee2a317c46dfa4fcc1af49608f0 (patch) | |
tree | d7f2700abe6b4ffcb2dcfc80631b2d87d0609239 /app/assets/javascripts/issue_show | |
parent | 446d496a6d000c73a304be52587cd9bbc7493136 (diff) | |
download | gitlab-ce-859a6fb938bb9ee2a317c46dfa4fcc1af49608f0.tar.gz |
Add latest changes from gitlab-org/gitlab@13-9-stable-eev13.9.0-rc42
Diffstat (limited to 'app/assets/javascripts/issue_show')
13 files changed, 50 insertions, 27 deletions
diff --git a/app/assets/javascripts/issue_show/components/app.vue b/app/assets/javascripts/issue_show/components/app.vue index d569ad573a2..e70c18040b3 100644 --- a/app/assets/javascripts/issue_show/components/app.vue +++ b/app/assets/javascripts/issue_show/components/app.vue @@ -1,20 +1,20 @@ <script> import { GlIcon, GlIntersectionObserver } from '@gitlab/ui'; import Visibility from 'visibilityjs'; -import { __, s__, sprintf } from '~/locale'; import { deprecatedCreateFlash as createFlash } from '~/flash'; -import { visitUrl } from '~/lib/utils/url_utility'; import Poll from '~/lib/utils/poll'; +import { visitUrl } from '~/lib/utils/url_utility'; +import { __, s__, sprintf } from '~/locale'; +import recaptchaModalImplementor from '~/vue_shared/mixins/recaptcha_modal_implementor'; +import { IssuableStatus, IssuableStatusText, IssuableType } from '../constants'; import eventHub from '../event_hub'; import Service from '../services/index'; import Store from '../stores'; -import titleComponent from './title.vue'; import descriptionComponent from './description.vue'; import editedComponent from './edited.vue'; import formComponent from './form.vue'; import PinnedLinks from './pinned_links.vue'; -import recaptchaModalImplementor from '~/vue_shared/mixins/recaptcha_modal_implementor'; -import { IssuableStatus, IssuableStatusText, IssuableType } from '../constants'; +import titleComponent from './title.vue'; export default { components: { @@ -132,6 +132,10 @@ export default { type: String, required: true, }, + projectId: { + type: Number, + required: true, + }, projectNamespace: { type: String, required: true, @@ -419,6 +423,7 @@ export default { :markdown-docs-path="markdownDocsPath" :markdown-preview-path="markdownPreviewPath" :project-path="projectPath" + :project-id="projectId" :project-namespace="projectNamespace" :show-delete-button="showDeleteButton" :can-attach-file="canAttachFile" diff --git a/app/assets/javascripts/issue_show/components/description.vue b/app/assets/javascripts/issue_show/components/description.vue index 2a6468c783b..5416d3bebd0 100644 --- a/app/assets/javascripts/issue_show/components/description.vue +++ b/app/assets/javascripts/issue_show/components/description.vue @@ -1,11 +1,11 @@ <script> -import $ from 'jquery'; import { GlSafeHtmlDirective as SafeHtml } from '@gitlab/ui'; -import { s__, sprintf } from '~/locale'; +import $ from 'jquery'; import { deprecatedCreateFlash as createFlash } from '~/flash'; -import animateMixin from '../mixins/animate'; +import { s__, sprintf } from '~/locale'; import TaskList from '../../task_list'; import recaptchaModalImplementor from '../../vue_shared/mixins/recaptcha_modal_implementor'; +import animateMixin from '../mixins/animate'; export default { directives: { @@ -154,6 +154,7 @@ export default { }" class="md" ></div> + <!-- eslint-disable vue/no-mutating-props --> <textarea v-if="descriptionText" ref="textarea" @@ -163,6 +164,7 @@ export default { dir="auto" > </textarea> + <!-- eslint-enable vue/no-mutating-props --> <recaptcha-modal v-show="showRecaptcha" :html="recaptchaHTML" @close="closeRecaptcha" /> </div> diff --git a/app/assets/javascripts/issue_show/components/edit_actions.vue b/app/assets/javascripts/issue_show/components/edit_actions.vue index 14ada5adcf6..dd378c40b46 100644 --- a/app/assets/javascripts/issue_show/components/edit_actions.vue +++ b/app/assets/javascripts/issue_show/components/edit_actions.vue @@ -1,8 +1,8 @@ <script> import { GlButton } from '@gitlab/ui'; import { __, sprintf } from '~/locale'; -import updateMixin from '../mixins/update'; import eventHub from '../event_hub'; +import updateMixin from '../mixins/update'; const issuableTypes = { issue: __('Issue'), diff --git a/app/assets/javascripts/issue_show/components/fields/description.vue b/app/assets/javascripts/issue_show/components/fields/description.vue index 8d417e32d62..5476a1ef897 100644 --- a/app/assets/javascripts/issue_show/components/fields/description.vue +++ b/app/assets/javascripts/issue_show/components/fields/description.vue @@ -1,7 +1,7 @@ <script> -import updateMixin from '../../mixins/update'; import markdownField from '~/vue_shared/components/markdown/field.vue'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; +import updateMixin from '../../mixins/update'; export default { components: { @@ -49,6 +49,7 @@ export default { :textarea-value="formState.description" > <template #textarea> + <!-- eslint-disable vue/no-mutating-props --> <textarea id="issue-description" ref="textarea" @@ -62,6 +63,7 @@ export default { @keydown.ctrl.enter="updateIssuable" > </textarea> + <!-- eslint-enable vue/no-mutating-props --> </template> </markdown-field> </div> diff --git a/app/assets/javascripts/issue_show/components/fields/description_template.vue b/app/assets/javascripts/issue_show/components/fields/description_template.vue index 71299381aae..dbec6f15cab 100644 --- a/app/assets/javascripts/issue_show/components/fields/description_template.vue +++ b/app/assets/javascripts/issue_show/components/fields/description_template.vue @@ -1,6 +1,6 @@ <script> -import $ from 'jquery'; import { GlIcon } from '@gitlab/ui'; +import $ from 'jquery'; import IssuableTemplateSelectors from '../../../templates/issuable_template_selectors'; export default { @@ -21,6 +21,10 @@ export default { type: String, required: true, }, + projectId: { + type: Number, + required: true, + }, projectNamespace: { type: String, required: true, @@ -35,6 +39,7 @@ export default { // Create the editor for the template const editor = document.querySelector('.detail-page-description .note-textarea') || {}; editor.setValue = (val) => { + // eslint-disable-next-line vue/no-mutating-props this.formState.description = val; }; editor.getValue = () => this.formState.description; @@ -48,11 +53,12 @@ export default { </script> <template> - <div class="dropdown js-issuable-selector-wrap" data-issuable-type="issue"> + <div class="dropdown js-issuable-selector-wrap" data-issuable-type="issues"> <button ref="toggle" :data-namespace-path="projectNamespace" :data-project-path="projectPath" + :data-project-id="projectId" :data-data="issuableTemplatesJson" class="dropdown-menu-toggle js-issuable-selector" type="button" diff --git a/app/assets/javascripts/issue_show/components/fields/title.vue b/app/assets/javascripts/issue_show/components/fields/title.vue index 34eb0451d53..d331fb47077 100644 --- a/app/assets/javascripts/issue_show/components/fields/title.vue +++ b/app/assets/javascripts/issue_show/components/fields/title.vue @@ -15,6 +15,7 @@ export default { <template> <fieldset> <label class="sr-only" for="issuable-title">{{ __('Title') }}</label> + <!-- eslint-disable vue/no-mutating-props --> <input id="issuable-title" ref="input" @@ -27,5 +28,6 @@ export default { @keydown.meta.enter="updateIssuable" @keydown.ctrl.enter="updateIssuable" /> + <!-- eslint-enable vue/no-mutating-props --> </fieldset> </template> diff --git a/app/assets/javascripts/issue_show/components/form.vue b/app/assets/javascripts/issue_show/components/form.vue index d48bf1fe7a9..b7425448052 100644 --- a/app/assets/javascripts/issue_show/components/form.vue +++ b/app/assets/javascripts/issue_show/components/form.vue @@ -1,12 +1,12 @@ <script> import $ from 'jquery'; -import lockedWarning from './locked_warning.vue'; -import titleField from './fields/title.vue'; -import descriptionField from './fields/description.vue'; -import editActions from './edit_actions.vue'; -import descriptionTemplate from './fields/description_template.vue'; import Autosave from '~/autosave'; import eventHub from '../event_hub'; +import editActions from './edit_actions.vue'; +import descriptionField from './fields/description.vue'; +import descriptionTemplate from './fields/description_template.vue'; +import titleField from './fields/title.vue'; +import lockedWarning from './locked_warning.vue'; export default { components: { @@ -46,6 +46,10 @@ export default { type: String, required: true, }, + projectId: { + type: Number, + required: true, + }, projectNamespace: { type: String, required: true, @@ -127,6 +131,7 @@ export default { :form-state="formState" :issuable-templates="issuableTemplates" :project-path="projectPath" + :project-id="projectId" :project-namespace="projectNamespace" /> </div> diff --git a/app/assets/javascripts/issue_show/components/header_actions.vue b/app/assets/javascripts/issue_show/components/header_actions.vue index 998f740be0e..9c3988d0469 100644 --- a/app/assets/javascripts/issue_show/components/header_actions.vue +++ b/app/assets/javascripts/issue_show/components/header_actions.vue @@ -193,7 +193,7 @@ export default { <template> <div class="detail-page-header-actions"> <gl-dropdown - class="gl-display-block gl-display-sm-none!" + class="gl-display-block gl-sm-display-none!" block :text="dropdownText" :loading="isToggleStateButtonLoading" @@ -222,7 +222,7 @@ export default { <gl-button v-if="showToggleIssueStateButton" - class="gl-display-none gl-display-sm-inline-flex!" + class="gl-display-none gl-sm-display-inline-flex!" category="secondary" :data-qa-selector="qaSelector" :loading="isToggleStateButtonLoading" @@ -233,7 +233,7 @@ export default { </gl-button> <gl-dropdown - class="gl-display-none gl-display-sm-inline-flex!" + class="gl-display-none gl-sm-display-inline-flex!" toggle-class="gl-border-0! gl-shadow-none!" no-caret right diff --git a/app/assets/javascripts/issue_show/components/incidents/incident_tabs.vue b/app/assets/javascripts/issue_show/components/incidents/incident_tabs.vue index f9f06c3ad5a..84107d3eaca 100644 --- a/app/assets/javascripts/issue_show/components/incidents/incident_tabs.vue +++ b/app/assets/javascripts/issue_show/components/incidents/incident_tabs.vue @@ -1,13 +1,13 @@ <script> import { GlTab, GlTabs } from '@gitlab/ui'; -import DescriptionComponent from '../description.vue'; -import HighlightBar from './highlight_bar.vue'; import createFlash from '~/flash'; +import { trackIncidentDetailsViewsOptions } from '~/incidents/constants'; import { s__ } from '~/locale'; -import AlertDetailsTable from '~/vue_shared/components/alert_details_table.vue'; import Tracking from '~/tracking'; +import AlertDetailsTable from '~/vue_shared/components/alert_details_table.vue'; +import DescriptionComponent from '../description.vue'; import getAlert from './graphql/queries/get_alert.graphql'; -import { trackIncidentDetailsViewsOptions } from '~/incidents/constants'; +import HighlightBar from './highlight_bar.vue'; export default { components: { diff --git a/app/assets/javascripts/issue_show/components/title.vue b/app/assets/javascripts/issue_show/components/title.vue index b03a91716fe..806d95ca748 100644 --- a/app/assets/javascripts/issue_show/components/title.vue +++ b/app/assets/javascripts/issue_show/components/title.vue @@ -1,7 +1,7 @@ <script> import { GlButton, GlTooltipDirective, GlSafeHtmlDirective as SafeHtml } from '@gitlab/ui'; -import animateMixin from '../mixins/animate'; import eventHub from '../event_hub'; +import animateMixin from '../mixins/animate'; export default { components: { diff --git a/app/assets/javascripts/issue_show/incident.js b/app/assets/javascripts/issue_show/incident.js index ccac38811b5..0c81ecdc843 100644 --- a/app/assets/javascripts/issue_show/incident.js +++ b/app/assets/javascripts/issue_show/incident.js @@ -1,9 +1,9 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; +import { parseBoolean } from '~/lib/utils/common_utils'; import issuableApp from './components/app.vue'; import incidentTabs from './components/incidents/incident_tabs.vue'; -import { parseBoolean } from '~/lib/utils/common_utils'; Vue.use(VueApollo); diff --git a/app/assets/javascripts/issue_show/issue.js b/app/assets/javascripts/issue_show/issue.js index 83fd1355f26..a93abbf64df 100644 --- a/app/assets/javascripts/issue_show/issue.js +++ b/app/assets/javascripts/issue_show/issue.js @@ -54,6 +54,7 @@ export function initIssueHeaderActions(store) { issueType: el.dataset.issueType, newIssuePath: el.dataset.newIssuePath, projectPath: el.dataset.projectPath, + projectId: el.dataset.projectId, reportAbusePath: el.dataset.reportAbusePath, submitAsSpamPath: el.dataset.submitAsSpamPath, }, diff --git a/app/assets/javascripts/issue_show/utils/parse_data.js b/app/assets/javascripts/issue_show/utils/parse_data.js index d5e7d2a8807..19d1e0eebcb 100644 --- a/app/assets/javascripts/issue_show/utils/parse_data.js +++ b/app/assets/javascripts/issue_show/utils/parse_data.js @@ -1,5 +1,5 @@ -import * as Sentry from '~/sentry/wrapper'; import { sanitize } from '~/lib/dompurify'; +import * as Sentry from '~/sentry/wrapper'; // We currently load + parse the data from the issue app and related merge request let cachedParsedData; |