Skip to content
Snippets Groups Projects

Display Contributor and Author badges on notes

Merged Mycroft Kang requested to merge TaehyeokKang/gitlab:mycroft-note-badge into master
4 unresolved threads
Compare and Show latest version
9 files
+ 69
12
Compare changes
  • Side-by-side
  • Inline
Files
9
<script>
import { mapGetters } from 'vuex';
import { GlLoadingIcon, GlTooltipDirective, GlIcon } from '@gitlab/ui';
import { __ } from '~/locale';
import { __, sprintf } from '~/locale';
import resolvedStatusMixin from '~/batch_comments/mixins/resolved_status';
import ReplyButton from './note_actions/reply_button.vue';
import eventHub from '~/sidebar/event_hub';
@@ -57,6 +57,10 @@ export default {
required: false,
default: false,
},
noteableType: {
type: String,
required: true,
},
showReply: {
type: Boolean,
required: true,
@@ -131,6 +135,9 @@ export default {
targetType() {
return this.getNoteableData.targetType;
},
noteableDisplayName() {
return splitCamelCase(this.noteableType).toLowerCase();
},
assignees() {
return this.getNoteableData.assignees || [];
},
@@ -140,6 +147,24 @@ export default {
canAssign() {
return this.getNoteableData.current_user?.can_update && this.isIssue;
},
projectName() {
return this.getNoteableData.project_name;
},
displayAuthorBadgeText() {
return sprintf(__('This user is the author of this %{noteable}.'), {
noteable: this.noteableDisplayName,
});
},
displayMemberBadgeText() {
return sprintf(__('This user is a member of the %{name} project.'), {
name: this.projectName,
});
},
displayContributorBadgeText() {
return sprintf(__('This user has previously committed to the %{name} project.'), {
name: this.projectName,
});
},
},
methods: {
onEdit() {
@@ -185,11 +210,24 @@ export default {
<template>
<div class="note-actions">
<span v-if="isAuthor" class="note-role user-access-role">{{ __('Author') }}</span>
<span v-if="accessLevel" class="note-role user-access-role">{{ accessLevel }}</span>
<span v-else-if="isContributor" class="note-role user-access-role">{{
__('Contributor')
}}</span>
<span
v-if="isAuthor"
class="note-role user-access-role has-tooltip"
title="displayAuthorBadgeText"
>{{ __('Author') }}</span
>
<span
v-if="accessLevel"
class="note-role user-access-role has-tooltip"
title="displayMemberBadgeText"
>{{ accessLevel }}</span
>
<span
v-else-if="isContributor"
class="note-role user-access-role has-tooltip"
title="displayContributorBadgeText"
>{{ __('Contributor') }}</span
>
<div v-if="canResolve" class="note-actions-item">
<button
ref="resolveButton"
Loading