diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 18:18:33 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-16 18:18:33 +0000 |
commit | f64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch) | |
tree | a2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /app/assets/javascripts/sidebar/components/reference | |
parent | bfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff) | |
download | gitlab-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.vue | 84 |
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> |