diff options
Diffstat (limited to 'app/assets/javascripts/invite_members/components/group_select.vue')
-rw-r--r-- | app/assets/javascripts/invite_members/components/group_select.vue | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/assets/javascripts/invite_members/components/group_select.vue b/app/assets/javascripts/invite_members/components/group_select.vue index 0e9781d77fe..5bb3b6b98e6 100644 --- a/app/assets/javascripts/invite_members/components/group_select.vue +++ b/app/assets/javascripts/invite_members/components/group_select.vue @@ -8,7 +8,7 @@ import { } from '@gitlab/ui'; import { debounce } from 'lodash'; import { s__ } from '~/locale'; -import { getGroups, getDescendentGroups } from '~/rest_api'; +import { getGroups, getDescendentGroups, getProjectShareLocations } from '~/rest_api'; import { SEARCH_DELAY, GROUP_FILTERS } from '../constants'; export default { @@ -29,6 +29,10 @@ export default { required: false, default: GROUP_FILTERS.ALL, }, + sourceId: { + type: String, + required: true, + }, parentGroupId: { type: Number, required: false, @@ -38,6 +42,10 @@ export default { type: Array, required: true, }, + isProject: { + type: Boolean, + required: true, + }, }, data() { return { @@ -79,7 +87,7 @@ export default { const rawGroups = response.map((group) => ({ id: group.id, name: group.full_name, - path: group.path, + path: group.full_path, avatarUrl: group.avatar_url, })); @@ -94,6 +102,14 @@ export default { this.$emit('input', this.selectedGroup); }, fetchGroups() { + if (this.isProject) { + return new Promise((resolve, reject) => { + getProjectShareLocations(this.sourceId, { search: this.searchTerm }) + .then(({ data }) => resolve(data)) + .catch(reject); + }); + } + switch (this.groupsFilter) { case GROUP_FILTERS.DESCENDANT_GROUPS: return getDescendentGroups( |