Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/invite_members/components/members_token_select.vue')
-rw-r--r--app/assets/javascripts/invite_members/components/members_token_select.vue29
1 files changed, 20 insertions, 9 deletions
diff --git a/app/assets/javascripts/invite_members/components/members_token_select.vue b/app/assets/javascripts/invite_members/components/members_token_select.vue
index d839c089f2e..b54812dfd96 100644
--- a/app/assets/javascripts/invite_members/components/members_token_select.vue
+++ b/app/assets/javascripts/invite_members/components/members_token_select.vue
@@ -1,6 +1,7 @@
<script>
import { debounce } from 'lodash';
-import { GlTokenSelector, GlAvatar, GlAvatarLabeled } from '@gitlab/ui';
+import { GlTokenSelector, GlAvatar, GlAvatarLabeled, GlSprintf } from '@gitlab/ui';
+import { __ } from '~/locale';
import { USER_SEARCH_DELAY } from '../constants';
import Api from '~/api';
@@ -9,6 +10,7 @@ export default {
GlTokenSelector,
GlAvatar,
GlAvatarLabeled,
+ GlSprintf,
},
props: {
placeholder: {
@@ -32,12 +34,10 @@ export default {
};
},
computed: {
- newUsersToInvite() {
- return this.selectedTokens
- .map((obj) => {
- return obj.id;
- })
- .join(',');
+ emailIsValid() {
+ const regex = /.+@/;
+
+ return this.query.match(regex) !== null;
},
placeholderText() {
if (this.selectedTokens.length === 0) {
@@ -69,7 +69,7 @@ export default {
});
}, USER_SEARCH_DELAY),
handleInput() {
- this.$emit('input', this.newUsersToInvite);
+ this.$emit('input', this.selectedTokens);
},
handleBlur() {
this.hideDropdownWithNoItems = false;
@@ -86,6 +86,9 @@ export default {
},
},
queryOptions: { exclude_internal: true, active: true },
+ i18n: {
+ inviteTextMessage: __('Invite "%{email}" by email'),
+ },
};
</script>
@@ -94,7 +97,7 @@ export default {
v-model="selectedTokens"
:dropdown-items="users"
:loading="loading"
- :allow-user-defined-tokens="false"
+ :allow-user-defined-tokens="emailIsValid"
:hide-dropdown-with-no-items="hideDropdownWithNoItems"
:placeholder="placeholderText"
:aria-labelledby="ariaLabelledby"
@@ -116,5 +119,13 @@ export default {
:sub-label="dropdownItem.username"
/>
</template>
+
+ <template #user-defined-token-content="{ inputText: email }">
+ <gl-sprintf :message="$options.i18n.inviteTextMessage">
+ <template #email>
+ <span>{{ email }}</span>
+ </template>
+ </gl-sprintf>
+ </template>
</gl-token-selector>
</template>