summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/sidebar/components/reference
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 18:18:33 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 18:18:33 +0000
commitf64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch)
treea2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /app/assets/javascripts/sidebar/components/reference
parentbfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff)
downloadgitlab-ce-f64a639bcfa1fc2bc89ca7db268f594306edfd7c.tar.gz
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'app/assets/javascripts/sidebar/components/reference')
-rw-r--r--app/assets/javascripts/sidebar/components/reference/sidebar_reference_widget.vue84
1 files changed, 84 insertions, 0 deletions
diff --git a/app/assets/javascripts/sidebar/components/reference/sidebar_reference_widget.vue b/app/assets/javascripts/sidebar/components/reference/sidebar_reference_widget.vue
new file mode 100644
index 00000000000..567c921b74e
--- /dev/null
+++ b/app/assets/javascripts/sidebar/components/reference/sidebar_reference_widget.vue
@@ -0,0 +1,84 @@
+<script>
+import { GlLoadingIcon } from '@gitlab/ui';
+import { __ } from '~/locale';
+import { referenceQueries } from '~/sidebar/constants';
+import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
+
+export default {
+ i18n: {
+ copyReference: __('Copy reference'),
+ text: __('Reference'),
+ },
+ components: {
+ ClipboardButton,
+ GlLoadingIcon,
+ },
+ inject: ['fullPath', 'iid'],
+ props: {
+ issuableType: {
+ required: true,
+ type: String,
+ },
+ },
+ data() {
+ return {
+ reference: '',
+ };
+ },
+ apollo: {
+ reference: {
+ query() {
+ return referenceQueries[this.issuableType].query;
+ },
+ variables() {
+ return {
+ fullPath: this.fullPath,
+ iid: this.iid,
+ };
+ },
+ update(data) {
+ return data.workspace?.issuable?.reference || '';
+ },
+ error(error) {
+ this.$emit('fetch-error', {
+ message: __('An error occurred while fetching reference'),
+ error,
+ });
+ },
+ },
+ },
+ computed: {
+ isLoading() {
+ return this.$apollo.queries.reference.loading;
+ },
+ },
+};
+</script>
+
+<template>
+ <div class="sub-block">
+ <clipboard-button
+ v-if="!isLoading"
+ :title="$options.i18n.copyReference"
+ :text="reference"
+ category="tertiary"
+ css-class="sidebar-collapsed-icon dont-change-state"
+ tooltip-placement="left"
+ />
+ <div class="gl-display-flex gl-align-items-center gl-justify-between gl-mb-2 hide-collapsed">
+ <span class="gl-overflow-hidden gl-text-overflow-ellipsis gl-white-space-nowrap">
+ {{ $options.i18n.text }}: {{ reference }}
+ <gl-loading-icon v-if="isLoading" inline :label="$options.i18n.text" />
+ </span>
+ <clipboard-button
+ v-if="!isLoading"
+ :title="$options.i18n.copyReference"
+ :text="reference"
+ size="small"
+ category="tertiary"
+ css-class="gl-mr-1"
+ tooltip-placement="left"
+ />
+ </div>
+ </div>
+</template>