summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/notes
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-01-23 12:08:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-23 12:08:48 +0000
commit8137303e47baaff97a36396cfb05efc0d99879a2 (patch)
tree89dc777fd2d63e259e4b8b2d781baf472d3429a0 /app/assets/javascripts/notes
parent5b1258ee90fb29779d6c9da3f488ebff61e243a3 (diff)
downloadgitlab-ce-8137303e47baaff97a36396cfb05efc0d99879a2.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/notes')
-rw-r--r--app/assets/javascripts/notes/components/note_actions.vue28
-rw-r--r--app/assets/javascripts/notes/components/noteable_note.vue8
-rw-r--r--app/assets/javascripts/notes/index.js1
3 files changed, 29 insertions, 8 deletions
diff --git a/app/assets/javascripts/notes/components/note_actions.vue b/app/assets/javascripts/notes/components/note_actions.vue
index c15c11ed9db..b9d5fe5c900 100644
--- a/app/assets/javascripts/notes/components/note_actions.vue
+++ b/app/assets/javascripts/notes/components/note_actions.vue
@@ -10,6 +10,7 @@ import eventHub from '~/sidebar/event_hub';
import UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { splitCamelCase } from '~/lib/utils/text_utility';
+import AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';
import ReplyButton from './note_actions/reply_button.vue';
import TimelineEventButton from './note_actions/timeline_event_button.vue';
@@ -30,6 +31,7 @@ export default {
GlDropdownItem,
UserAccessRoleBadge,
EmojiPicker: () => import('~/emoji/components/picker.vue'),
+ AbuseCategorySelector,
},
directives: {
GlTooltip: GlTooltipDirective,
@@ -58,11 +60,6 @@ export default {
required: false,
default: '',
},
- reportAbusePath: {
- type: String,
- required: false,
- default: null,
- },
isAuthor: {
type: Boolean,
required: false,
@@ -135,6 +132,11 @@ export default {
default: '',
},
},
+ data() {
+ return {
+ isReportAbuseDrawerOpen: false,
+ };
+ },
computed: {
...mapState(['isPromoteCommentToTimelineEventInProgress']),
...mapGetters(['getUserDataByProp', 'getNoteableData', 'canUserAddIncidentTimelineEvents']),
@@ -252,6 +254,9 @@ export default {
awardName,
});
},
+ toggleReportAbuseDrawer(isOpen) {
+ this.isReportAbuseDrawerOpen = isOpen;
+ },
},
};
</script>
@@ -362,7 +367,11 @@ export default {
/>
<!-- eslint-enable @gitlab/vue-no-data-toggle -->
<ul class="dropdown-menu more-actions-dropdown dropdown-open-left">
- <gl-dropdown-item v-if="canReportAsAbuse" :href="reportAbusePath">
+ <gl-dropdown-item
+ v-if="canReportAsAbuse"
+ data-testid="report-abuse-button"
+ @click="toggleReportAbuseDrawer(true)"
+ >
{{ $options.i18n.reportAbuse }}
</gl-dropdown-item>
<gl-dropdown-item
@@ -380,5 +389,12 @@ export default {
</gl-dropdown-item>
</ul>
</div>
+ <abuse-category-selector
+ v-if="canReportAsAbuse"
+ :reported-user-id="authorId"
+ :reported-from-url="noteUrl"
+ :show-drawer="isReportAbuseDrawerOpen"
+ @close-drawer="toggleReportAbuseDrawer(false)"
+ />
</div>
</template>
diff --git a/app/assets/javascripts/notes/components/noteable_note.vue b/app/assets/javascripts/notes/components/noteable_note.vue
index 826e7e5a3d0..93575ad57ff 100644
--- a/app/assets/javascripts/notes/components/noteable_note.vue
+++ b/app/assets/javascripts/notes/components/noteable_note.vue
@@ -43,6 +43,11 @@ export default {
SafeHtml,
},
mixins: [noteable, resolvable],
+ inject: {
+ reportAbusePath: {
+ default: '',
+ },
+ },
props: {
note: {
type: Object,
@@ -129,7 +134,7 @@ export default {
};
},
canReportAsAbuse() {
- return Boolean(this.note.report_abuse_path) && this.author.id !== this.getUserData.id;
+ return Boolean(this.reportAbusePath) && this.author.id !== this.getUserData.id;
},
noteAnchorId() {
return `note_${this.note.id}`;
@@ -488,7 +493,6 @@ export default {
:can-delete="note.current_user.can_edit"
:can-report-as-abuse="canReportAsAbuse"
:can-resolve="canResolve"
- :report-abuse-path="note.report_abuse_path"
:resolvable="note.resolvable || note.isDraft"
:is-resolved="note.resolved || note.resolve_discussion"
:is-resolving="isResolving"
diff --git a/app/assets/javascripts/notes/index.js b/app/assets/javascripts/notes/index.js
index 95263e666b2..2e09c9f2288 100644
--- a/app/assets/javascripts/notes/index.js
+++ b/app/assets/javascripts/notes/index.js
@@ -52,6 +52,7 @@ export default () => {
store,
provide: {
showTimelineViewToggle,
+ reportAbusePath: notesDataset.reportAbusePath,
},
data() {
return {