Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 24x 9x 9x 2x 2x 1x 1x 1x 9x 17x 9x 1x | <script>
import Api from '~/api';
import { getUsers } from '~/rest_api';
import { parseUsername, displayUsername, isValidUsername } from '../../token_utils';
import AuditFilterToken from './shared/audit_filter_token.vue';
export default {
components: {
AuditFilterToken,
},
inheritAttrs: false,
tokenMethods: {
fetchItem(term) {
const username = parseUsername(term);
return getUsers('', { username, per_page: 1 }).then((res) => res.data[0]);
},
fetchSuggestions(term) {
const { groupId, projectPath } = this.config;
if (groupId) {
return Api.groupMembers(groupId, { query: parseUsername(term) }).then((res) => res.data);
}
if (projectPath) {
return Api.projectUsers(projectPath, parseUsername(term));
}
return {};
},
getItemName({ name }) {
return name;
},
getSuggestionValue({ username }) {
return displayUsername(username);
},
isValidIdentifier(username) {
return isValidUsername(username);
},
findActiveItem(suggestions, username) {
return suggestions.find((u) => u.username === parseUsername(username));
},
},
};
</script>
<template>
<audit-filter-token v-bind="{ ...$attrs, ...$options.tokenMethods }" v-on="$listeners">
<template #suggestion="{ item: user }">
<p class="m-0">{{ user.name }}</p>
<p class="m-0">@{{ user.username }}</p>
</template>
</audit-filter-token>
</template>
|