diff options
Diffstat (limited to 'app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue')
-rw-r--r-- | app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue b/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue deleted file mode 100644 index a89354c671a..00000000000 --- a/app/assets/javascripts/pipelines/components/pipelines_list/tokens/pipeline_trigger_author_token.vue +++ /dev/null @@ -1,113 +0,0 @@ -<script> -import { - GlFilteredSearchToken, - GlAvatar, - GlFilteredSearchSuggestion, - GlDropdownDivider, - GlLoadingIcon, -} from '@gitlab/ui'; -import { debounce } from 'lodash'; -import Api from '~/api'; -import { createAlert } from '~/alert'; -import { - ANY_TRIGGER_AUTHOR, - FETCH_AUTHOR_ERROR_MESSAGE, - FILTER_PIPELINES_SEARCH_DELAY, -} from '../../../constants'; - -export default { - anyTriggerAuthor: ANY_TRIGGER_AUTHOR, - components: { - GlFilteredSearchToken, - GlAvatar, - GlFilteredSearchSuggestion, - GlDropdownDivider, - GlLoadingIcon, - }, - props: { - config: { - type: Object, - required: true, - }, - value: { - type: Object, - required: true, - }, - }, - data() { - return { - users: [], - loading: true, - }; - }, - computed: { - currentValue() { - return this.value.data.toLowerCase(); - }, - activeUser() { - return this.users.find((user) => { - return user.username.toLowerCase() === this.currentValue; - }); - }, - }, - created() { - this.fetchProjectUsers(); - }, - methods: { - fetchProjectUsers(searchTerm) { - Api.projectUsers(this.config.projectId, searchTerm) - .then((users) => { - this.users = users; - this.loading = false; - }) - .catch((err) => { - createAlert({ - message: FETCH_AUTHOR_ERROR_MESSAGE, - }); - this.loading = false; - throw err; - }); - }, - searchAuthors: debounce(function debounceSearch({ data }) { - this.fetchProjectUsers(data); - }, FILTER_PIPELINES_SEARCH_DELAY), - }, -}; -</script> - -<template> - <gl-filtered-search-token - :config="config" - v-bind="{ ...$props, ...$attrs }" - v-on="$listeners" - @input="searchAuthors" - > - <template #view="{ inputValue }"> - <gl-avatar v-if="activeUser" :size="16" :src="activeUser.avatar_url" class="gl-mr-2" /> - <span>{{ activeUser ? activeUser.name : inputValue }}</span> - </template> - <template #suggestions> - <gl-filtered-search-suggestion :value="$options.anyTriggerAuthor">{{ - $options.anyTriggerAuthor - }}</gl-filtered-search-suggestion> - <gl-dropdown-divider /> - - <gl-loading-icon v-if="loading" size="sm" /> - <template v-else> - <gl-filtered-search-suggestion - v-for="user in users" - :key="user.username" - :value="user.username" - > - <div class="d-flex"> - <gl-avatar :size="32" :src="user.avatar_url" /> - <div> - <div>{{ user.name }}</div> - <div>@{{ user.username }}</div> - </div> - </div> - </gl-filtered-search-suggestion> - </template> - </template> - </gl-filtered-search-token> -</template> |