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/notes/components/sidebar_subscription.vue | |
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/notes/components/sidebar_subscription.vue')
-rw-r--r-- | app/assets/javascripts/notes/components/sidebar_subscription.vue | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/app/assets/javascripts/notes/components/sidebar_subscription.vue b/app/assets/javascripts/notes/components/sidebar_subscription.vue new file mode 100644 index 00000000000..047c04c8482 --- /dev/null +++ b/app/assets/javascripts/notes/components/sidebar_subscription.vue @@ -0,0 +1,58 @@ +<script> +import { mapActions } from 'vuex'; +import { IssuableType } from '~/issue_show/constants'; +import { fetchPolicies } from '~/lib/graphql'; +import { confidentialityQueries } from '~/sidebar/constants'; +import { defaultClient as gqlClient } from '~/sidebar/graphql'; + +export default { + props: { + noteableData: { + type: Object, + required: true, + }, + iid: { + type: Number, + required: true, + }, + }, + computed: { + fullPath() { + if (this.noteableData.web_url) { + return this.noteableData.web_url.split('/-/')[0].substring(1).replace('groups/', ''); + } + return null; + }, + issuableType() { + return this.noteableData.noteableType.toLowerCase(); + }, + }, + created() { + if (this.issuableType !== IssuableType.Issue && this.issuableType !== IssuableType.Epic) { + return; + } + + gqlClient + .watchQuery({ + query: confidentialityQueries[this.issuableType].query, + variables: { + iid: String(this.iid), + fullPath: this.fullPath, + }, + fetchPolicy: fetchPolicies.CACHE_ONLY, + }) + .subscribe((res) => { + const issuable = res.data?.workspace?.issuable; + if (issuable) { + this.setConfidentiality(issuable.confidential); + } + }); + }, + methods: { + ...mapActions(['setConfidentiality']), + }, + render() { + return null; + }, +}; +</script> |