diff options
Diffstat (limited to 'app/assets/javascripts/pipelines/components/tokens/pipeline_trigger_author_token.vue')
-rw-r--r-- | app/assets/javascripts/pipelines/components/tokens/pipeline_trigger_author_token.vue | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/app/assets/javascripts/pipelines/components/tokens/pipeline_trigger_author_token.vue b/app/assets/javascripts/pipelines/components/tokens/pipeline_trigger_author_token.vue deleted file mode 100644 index 4062a3b11bb..00000000000 --- a/app/assets/javascripts/pipelines/components/tokens/pipeline_trigger_author_token.vue +++ /dev/null @@ -1,117 +0,0 @@ -<script> -import { - GlFilteredSearchToken, - GlAvatar, - GlFilteredSearchSuggestion, - GlDropdownDivider, - GlLoadingIcon, -} from '@gitlab/ui'; -import Api from '~/api'; -import createFlash from '~/flash'; -import { debounce } from 'lodash'; -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 => { - createFlash(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" - shape="circle" - 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" /> - <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> |