diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 17:22:11 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 17:22:11 +0300 |
commit | 0c872e02b2c822e3397515ec324051ff540f0cd5 (patch) | |
tree | ce2fb6ce7030e4dad0f4118d21ab6453e5938cdd /app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue | |
parent | f7e05a6853b12f02911494c4b3fe53d9540d74fc (diff) |
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue')
-rw-r--r-- | app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue deleted file mode 100644 index 7c184a3c391..00000000000 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/author_token.vue +++ /dev/null @@ -1,119 +0,0 @@ -<script> -import { GlAvatar, GlFilteredSearchSuggestion } from '@gitlab/ui'; -import { compact } from 'lodash'; -import { createAlert } from '~/flash'; -import { __ } from '~/locale'; - -import { DEFAULT_NONE_ANY } from '../constants'; - -import BaseToken from './base_token.vue'; - -export default { - components: { - BaseToken, - GlAvatar, - GlFilteredSearchSuggestion, - }, - props: { - config: { - type: Object, - required: true, - }, - value: { - type: Object, - required: true, - }, - active: { - type: Boolean, - required: true, - }, - }, - data() { - return { - authors: this.config.initialAuthors || [], - loading: false, - }; - }, - computed: { - defaultAuthors() { - return this.config.defaultAuthors || DEFAULT_NONE_ANY; - }, - preloadedAuthors() { - return this.config.preloadedAuthors || []; - }, - }, - methods: { - getActiveAuthor(authors, data) { - return authors.find((author) => author.username.toLowerCase() === data.toLowerCase()); - }, - getAvatarUrl(author) { - return author.avatarUrl || author.avatar_url; - }, - fetchAuthors(searchTerm) { - this.loading = true; - const fetchPromise = this.config.fetchPath - ? this.config.fetchAuthors(this.config.fetchPath, searchTerm) - : this.config.fetchAuthors(searchTerm); - - fetchPromise - .then((res) => { - // We'd want to avoid doing this check but - // users.json and /groups/:id/members & /projects/:id/users - // return response differently - - // TODO: rm when completed https://gitlab.com/gitlab-org/gitlab/-/issues/345756 - this.authors = Array.isArray(res) ? compact(res) : compact(res.data); - }) - .catch(() => - createAlert({ - message: __('There was a problem fetching users.'), - }), - ) - .finally(() => { - this.loading = false; - }); - }, - }, -}; -</script> - -<template> - <base-token - :config="config" - :value="value" - :active="active" - :suggestions-loading="loading" - :suggestions="authors" - :get-active-token-value="getActiveAuthor" - :default-suggestions="defaultAuthors" - :preloaded-suggestions="preloadedAuthors" - v-bind="$attrs" - @fetch-suggestions="fetchAuthors" - v-on="$listeners" - > - <template #view="{ viewTokenProps: { inputValue, activeTokenValue } }"> - <gl-avatar - v-if="activeTokenValue" - :size="16" - :src="getAvatarUrl(activeTokenValue)" - class="gl-mr-2" - /> - {{ activeTokenValue ? activeTokenValue.name : inputValue }} - </template> - <template #suggestions-list="{ suggestions }"> - <gl-filtered-search-suggestion - v-for="author in suggestions" - :key="author.username" - :value="author.username" - > - <div class="gl-display-flex"> - <gl-avatar :size="32" :src="getAvatarUrl(author)" /> - <div> - <div>{{ author.name }}</div> - <div>@{{ author.username }}</div> - </div> - </div> - </gl-filtered-search-suggestion> - </template> - </base-token> -</template> |