diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-10-24 21:11:45 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-10-24 21:11:45 +0300 |
commit | 4bb797f25563205cf495f4dd5366e037e88831ab (patch) | |
tree | a345ddbd0e2464067323d3c6fd34960607ef4f44 /app/assets/javascripts/vue_merge_request_widget | |
parent | 40a4f37126bb1a1dd6b6f4b3c0ebb414a3e3908a (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/vue_merge_request_widget')
4 files changed, 52 insertions, 9 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/components/checks/constants.js b/app/assets/javascripts/vue_merge_request_widget/components/checks/constants.js new file mode 100644 index 00000000000..e15987d7280 --- /dev/null +++ b/app/assets/javascripts/vue_merge_request_widget/components/checks/constants.js @@ -0,0 +1,6 @@ +export const COMPONENTS = { + conflicts: () => import('./conflicts.vue'), + unresolved_discussions: () => import('./unresolved_discussions.vue'), + rebase: () => import('./rebase.vue'), + default: () => import('./message.vue'), +}; diff --git a/app/assets/javascripts/vue_merge_request_widget/components/checks/unresolved_discussions.vue b/app/assets/javascripts/vue_merge_request_widget/components/checks/unresolved_discussions.vue new file mode 100644 index 00000000000..c8dba36700c --- /dev/null +++ b/app/assets/javascripts/vue_merge_request_widget/components/checks/unresolved_discussions.vue @@ -0,0 +1,37 @@ +<script> +import { s__ } from '~/locale'; +import notesEventHub from '~/notes/event_hub'; +import ActionButtons from '../action_buttons.vue'; +import MergeChecksMessage from './message.vue'; + +export default { + name: 'MergeChecksUnresolvedDiscussions', + components: { + MergeChecksMessage, + ActionButtons, + }, + props: { + check: { + type: Object, + required: true, + }, + }, + computed: { + tertiaryActionsButtons() { + return [ + { + text: s__('mrWidget|Go to first unresolved thread'), + category: 'default', + onClick: () => notesEventHub.$emit('jumpToFirstUnresolvedDiscussion'), + }, + ]; + }, + }, +}; +</script> + +<template> + <merge-checks-message :check="check"> + <action-buttons v-if="check.result === 'failed'" :tertiary-buttons="tertiaryActionsButtons" /> + </merge-checks-message> +</template> diff --git a/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue index 5652b81386f..ecf2987307c 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/merge_checks.vue @@ -1,17 +1,12 @@ <script> import { GlSkeletonLoader } from '@gitlab/ui'; -import { n__, __, sprintf } from '~/locale'; +import { __, n__, sprintf } from '~/locale'; +import { COMPONENTS } from '~/vue_merge_request_widget/components/checks/constants'; import mergeRequestQueryVariablesMixin from '../mixins/merge_request_query_variables'; import mergeChecksQuery from '../queries/merge_checks.query.graphql'; import StateContainer from './state_container.vue'; import BoldText from './bold_text.vue'; -const COMPONENTS = { - conflicts: () => import('./checks/conflicts.vue'), - rebase: () => import('./checks/rebase.vue'), - default: () => import('./checks/message.vue'), -}; - export default { apollo: { state: { diff --git a/app/assets/javascripts/vue_merge_request_widget/components/widget/dynamic_content.vue b/app/assets/javascripts/vue_merge_request_widget/components/widget/dynamic_content.vue index 72c041759d9..d4375690ad1 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/widget/dynamic_content.vue +++ b/app/assets/javascripts/vue_merge_request_widget/components/widget/dynamic_content.vue @@ -1,5 +1,5 @@ <script> -import { GlBadge, GlLink } from '@gitlab/ui'; +import { GlBadge, GlLink, GlTooltipDirective } from '@gitlab/ui'; import SafeHtml from '~/vue_shared/directives/safe_html'; import { generateText } from '../extensions/utils'; import ContentRow from './widget_content_row.vue'; @@ -15,6 +15,7 @@ export default { }, directives: { SafeHtml, + GlTooltip: GlTooltipDirective, }, props: { data: { @@ -78,7 +79,11 @@ export default { <div class="gl-display-flex gl-flex-grow-1"> <div class="gl-display-flex gl-flex-grow-1 gl-align-items-baseline"> <div> - <p v-safe-html="generatedText" class="gl-mb-0 gl-mr-1"></p> + <p + v-gl-tooltip="{ title: data.tooltipText, boundary: 'viewport' }" + v-safe-html="generatedText" + class="gl-mb-0 gl-mr-1" + ></p> <gl-link v-if="data.link" :href="data.link.href">{{ data.link.text }}</gl-link> <p v-if="data.supportingText" |