Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/merge_requests/components/header_metadata.vue')
-rw-r--r--app/assets/javascripts/merge_requests/components/header_metadata.vue69
1 files changed, 69 insertions, 0 deletions
diff --git a/app/assets/javascripts/merge_requests/components/header_metadata.vue b/app/assets/javascripts/merge_requests/components/header_metadata.vue
new file mode 100644
index 00000000000..fce7ba385b4
--- /dev/null
+++ b/app/assets/javascripts/merge_requests/components/header_metadata.vue
@@ -0,0 +1,69 @@
+<script>
+import { GlIcon, GlTooltipDirective } from '@gitlab/ui';
+// eslint-disable-next-line no-restricted-imports
+import { mapGetters } from 'vuex';
+import { __ } from '~/locale';
+import { TYPE_ISSUE, WORKSPACE_PROJECT } from '~/issues/constants';
+import ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';
+
+export default {
+ TYPE_ISSUE,
+ WORKSPACE_PROJECT,
+ components: {
+ GlIcon,
+ ConfidentialityBadge,
+ },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
+ inject: ['hidden'],
+ computed: {
+ ...mapGetters(['getNoteableData']),
+ isLocked() {
+ return this.getNoteableData.discussion_locked;
+ },
+ isConfidential() {
+ return this.getNoteableData.confidential;
+ },
+ warningIconsMeta() {
+ return [
+ {
+ iconName: 'lock',
+ visible: this.isLocked,
+ dataTestId: 'locked',
+ tooltip: __('This merge request is locked. Only project members can comment.'),
+ },
+ {
+ iconName: 'spam',
+ visible: this.hidden,
+ dataTestId: 'hidden',
+ tooltip: __('This merge request is hidden because its author has been banned'),
+ },
+ ];
+ },
+ },
+};
+</script>
+
+<template>
+ <div class="gl-display-inline-block">
+ <confidentiality-badge
+ v-if="isConfidential"
+ class="gl-mr-3"
+ :issuable-type="$options.TYPE_ISSUE"
+ :workspace-type="$options.WORKSPACE_PROJECT"
+ />
+ <template v-for="meta in warningIconsMeta">
+ <div
+ v-if="meta.visible"
+ :key="meta.iconName"
+ v-gl-tooltip.bottom
+ :data-testid="meta.dataTestId"
+ :title="meta.tooltip || null"
+ class="issuable-warning-icon gl-mr-3 gl-mt-2 gl-display-flex gl-justify-content-center gl-align-items-center"
+ >
+ <gl-icon :name="meta.iconName" class="icon" />
+ </div>
+ </template>
+ </div>
+</template>