diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 18:40:28 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 18:40:28 +0300 |
commit | b595cb0c1dec83de5bdee18284abe86614bed33b (patch) | |
tree | 8c3d4540f193c5ff98019352f554e921b3a41a72 /app/assets/javascripts/sidebar | |
parent | 2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff) |
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'app/assets/javascripts/sidebar')
9 files changed, 41 insertions, 7 deletions
diff --git a/app/assets/javascripts/sidebar/components/assignees/assignee_avatar_link.vue b/app/assets/javascripts/sidebar/components/assignees/assignee_avatar_link.vue index c20dd3b677d..d17c8a123d5 100644 --- a/app/assets/javascripts/sidebar/components/assignees/assignee_avatar_link.vue +++ b/app/assets/javascripts/sidebar/components/assignees/assignee_avatar_link.vue @@ -72,9 +72,12 @@ export default { }, }, computed: { + isMergeRequest() { + return this.issuableType === IssuableType.MergeRequest; + }, cannotMerge() { const canMerge = this.user.mergeRequestInteraction?.canMerge || this.user.can_merge; - return this.issuableType === IssuableType.MergeRequest && !canMerge; + return this.isMergeRequest && !canMerge; }, tooltipTitle() { const { name = '', availability = '' } = this.user; @@ -86,6 +89,10 @@ export default { }); }, tooltipOption() { + if (this.isMergeRequest) { + return null; + } + return { container: 'body', placement: this.tooltipPlacement, @@ -96,6 +103,10 @@ export default { return this.user.web_url || this.user.webUrl; }, assigneeId() { + if (this.isMergeRequest) { + return null; + } + return isGid(this.user.id) ? getIdFromGraphQLId(this.user.id) : this.user.id; }, }, @@ -105,6 +116,7 @@ export default { <template> <!-- must be `d-inline-block` or parent flex-basis causes width issues --> <gl-link + v-gl-tooltip="tooltipOption" :href="assigneeUrl" :title="tooltipTitle" :data-user-id="assigneeId" diff --git a/app/assets/javascripts/sidebar/components/lock/issuable_lock_form.vue b/app/assets/javascripts/sidebar/components/lock/issuable_lock_form.vue index 699d1bebea1..5f1808ff4da 100644 --- a/app/assets/javascripts/sidebar/components/lock/issuable_lock_form.vue +++ b/app/assets/javascripts/sidebar/components/lock/issuable_lock_form.vue @@ -1,10 +1,11 @@ <script> -import { GlIcon, GlTooltipDirective } from '@gitlab/ui'; +import { GlIcon, GlTooltipDirective, GlOutsideDirective as Outside } from '@gitlab/ui'; import { mapGetters, mapActions } from 'vuex'; import { __, sprintf } from '~/locale'; import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import createFlash from '~/flash'; import eventHub from '~/sidebar/event_hub'; +import toast from '~/vue_shared/plugins/global_toast'; import editForm from './edit_form.vue'; export default { @@ -27,6 +28,7 @@ export default { }, directives: { GlTooltip: GlTooltipDirective, + Outside, }, mixins: [glFeatureFlagMixin()], inject: ['fullPath'], @@ -84,6 +86,11 @@ export default { locked: !this.isLocked, fullPath: this.fullPath, }) + .then(() => { + if (this.isMergeRequest) { + toast(this.isLocked ? __('Merge request locked.') : __('Merge request unlocked.')); + } + }) .catch(() => { const flashMessage = __( 'Something went wrong trying to change the locked state of this %{issuableDisplayName}', @@ -96,6 +103,9 @@ export default { this.isLoading = false; }); }, + closeForm() { + this.isLockDialogOpen = false; + }, }, }; </script> @@ -142,6 +152,7 @@ export default { <div class="value sidebar-item-value hide-collapsed"> <edit-form v-if="isLockDialogOpen" + v-outside="closeForm" data-testid="edit-form" :is-locked="isLocked" :issuable-display-name="issuableDisplayName" diff --git a/app/assets/javascripts/sidebar/components/reviewers/reviewer_avatar_link.vue b/app/assets/javascripts/sidebar/components/reviewers/reviewer_avatar_link.vue index 36a08482e69..c9b0a4ae2b3 100644 --- a/app/assets/javascripts/sidebar/components/reviewers/reviewer_avatar_link.vue +++ b/app/assets/javascripts/sidebar/components/reviewers/reviewer_avatar_link.vue @@ -68,10 +68,9 @@ export default { <template> <!-- must be `d-inline-block` or parent flex-basis causes width issues --> <gl-link + v-gl-tooltip="tooltipOption" :href="reviewerUrl" :title="tooltipTitle" - :data-user-id="user.id" - data-placement="left" class="gl-display-inline-block js-user-link" > <!-- use d-flex so that slot can be appropriately styled --> diff --git a/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue b/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue index 1bafa845665..7662d645dd9 100644 --- a/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue +++ b/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue @@ -6,6 +6,7 @@ import { isLoggedIn } from '~/lib/utils/common_utils'; import { __, sprintf } from '~/locale'; import SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue'; import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; +import toast from '~/vue_shared/plugins/global_toast'; import { subscribedQueries, Tracking } from '~/sidebar/constants'; const ICON_ON = 'notifications'; @@ -140,6 +141,10 @@ export default { message: errors[0], }); } + + if (this.isMergeRequest) { + toast(subscribed ? __('Notifications turned on.') : __('Notifications turned off.')); + } }, ) .catch(() => { diff --git a/app/assets/javascripts/sidebar/graphql.js b/app/assets/javascripts/sidebar/graphql.js index ff3fb4aae6b..127e3a3c610 100644 --- a/app/assets/javascripts/sidebar/graphql.js +++ b/app/assets/javascripts/sidebar/graphql.js @@ -2,7 +2,7 @@ import produce from 'immer'; import VueApollo from 'vue-apollo'; import getIssueStateQuery from '~/issues/show/queries/get_issue_state.query.graphql'; import createDefaultClient from '~/lib/graphql'; -import { temporaryConfig } from '~/work_items/graphql/provider'; +import { temporaryConfig, resolvers as workItemResolvers } from '~/work_items/graphql/provider'; const resolvers = { Mutation: { @@ -13,6 +13,7 @@ const resolvers = { }); cache.writeQuery({ query: getIssueStateQuery, data }); }, + ...workItemResolvers.Mutation, }, }; diff --git a/app/assets/javascripts/sidebar/mount_sidebar.js b/app/assets/javascripts/sidebar/mount_sidebar.js index bb40ac14438..3f82fe5ce87 100644 --- a/app/assets/javascripts/sidebar/mount_sidebar.js +++ b/app/assets/javascripts/sidebar/mount_sidebar.js @@ -73,12 +73,14 @@ function mountSidebarToDoWidget() { props: { fullPath: projectPath, issuableId: - isInIssuePage() || isInDesignPage() + isInIssuePage() || isInIncidentPage() || isInDesignPage() ? convertToGraphQLId(TYPE_ISSUE, id) : convertToGraphQLId(TYPE_MERGE_REQUEST, id), issuableIid: iid, issuableType: - isInIssuePage() || isInDesignPage() ? IssuableType.Issue : IssuableType.MergeRequest, + isInIssuePage() || isInIncidentPage() || isInDesignPage() + ? IssuableType.Issue + : IssuableType.MergeRequest, }, }), }); diff --git a/app/assets/javascripts/sidebar/services/sidebar_service.js b/app/assets/javascripts/sidebar/services/sidebar_service.js index ea170203576..05268a5c89c 100644 --- a/app/assets/javascripts/sidebar/services/sidebar_service.js +++ b/app/assets/javascripts/sidebar/services/sidebar_service.js @@ -33,6 +33,7 @@ export default class SidebarService { SidebarService.singleton = this; } + // eslint-disable-next-line no-constructor-return return SidebarService.singleton; } diff --git a/app/assets/javascripts/sidebar/sidebar_mediator.js b/app/assets/javascripts/sidebar/sidebar_mediator.js index 7df901577b8..4df00903ab6 100644 --- a/app/assets/javascripts/sidebar/sidebar_mediator.js +++ b/app/assets/javascripts/sidebar/sidebar_mediator.js @@ -11,6 +11,8 @@ export default class SidebarMediator { if (!SidebarMediator.singleton) { this.initSingleton(options); } + + // eslint-disable-next-line no-constructor-return return SidebarMediator.singleton; } diff --git a/app/assets/javascripts/sidebar/stores/sidebar_store.js b/app/assets/javascripts/sidebar/stores/sidebar_store.js index ca85ee7fd94..971e2a15c68 100644 --- a/app/assets/javascripts/sidebar/stores/sidebar_store.js +++ b/app/assets/javascripts/sidebar/stores/sidebar_store.js @@ -4,6 +4,7 @@ export default class SidebarStore { this.initSingleton(options); } + // eslint-disable-next-line no-constructor-return return SidebarStore.singleton; } |