Skip to content
代码片段 群组 项目
提交 111ba4ae 编辑于 作者: Roy Liu's avatar Roy Liu 提交者: Justin Ho Tuan Duong
浏览文件

Update field title and allow tab to function as enter

Changelog: changed
上级 71e4e9a6
No related branches found
No related tags found
无相关合并请求
...@@ -160,7 +160,7 @@ export default { ...@@ -160,7 +160,7 @@ export default {
labelSearchField() { labelSearchField() {
return this.isEmailSignupEnabled return this.isEmailSignupEnabled
? this.$options.labels.searchField ? this.$options.labels.searchField
: s__('InviteMembersModal|Username'); : s__('InviteMembersModal|Username or name');
}, },
isEmptyInvites() { isEmptyInvites() {
return Boolean(this.newUsersToInvite.length); return Boolean(this.newUsersToInvite.length);
......
...@@ -183,6 +183,12 @@ export default { ...@@ -183,6 +183,12 @@ export default {
this.$emit('clear'); this.$emit('clear');
}, },
handleTab(event) {
if (this.originalInput.length > 0) {
event.preventDefault();
this.$refs.tokenSelector.handleEnter();
}
},
hasError(token) { hasError(token) {
return Object.keys(this.invalidMembers).includes(memberName(token)); return Object.keys(this.invalidMembers).includes(memberName(token));
}, },
...@@ -196,6 +202,7 @@ export default { ...@@ -196,6 +202,7 @@ export default {
<template> <template>
<gl-token-selector <gl-token-selector
ref="tokenSelector"
v-model="selectedTokens" v-model="selectedTokens"
:state="exceptionState" :state="exceptionState"
:dropdown-items="users" :dropdown-items="users"
...@@ -210,6 +217,7 @@ export default { ...@@ -210,6 +217,7 @@ export default {
@input="handleInput" @input="handleInput"
@focus="handleFocus" @focus="handleFocus"
@token-remove="handleTokenRemove" @token-remove="handleTokenRemove"
@keydown.tab="handleTab"
> >
<template #token-content="{ token }"> <template #token-content="{ token }">
<gl-icon <gl-icon
......
...@@ -39,7 +39,7 @@ export const MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT = s__( ...@@ -39,7 +39,7 @@ export const MEMBERS_TO_PROJECT_DEFAULT_INTRO_TEXT = s__(
export const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__( export const MEMBERS_TO_PROJECT_CELEBRATE_INTRO_TEXT = s__(
"InviteMembersModal|Congratulations on creating your project, you're almost there!", "InviteMembersModal|Congratulations on creating your project, you're almost there!",
); );
export const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username or email address'); export const MEMBERS_SEARCH_FIELD = s__('InviteMembersModal|Username, name or email address');
export const MEMBERS_PLACEHOLDER = s__('InviteMembersModal|Select members or type email addresses'); export const MEMBERS_PLACEHOLDER = s__('InviteMembersModal|Select members or type email addresses');
export const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group'); export const GROUP_MODAL_DEFAULT_TITLE = s__('InviteMembersModal|Invite a group');
......
...@@ -26142,10 +26142,10 @@ msgstr "" ...@@ -26142,10 +26142,10 @@ msgstr ""
msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects." msgid "InviteMembersModal|To invite new users to this top-level group, you must remove existing users. You can still add existing users from the top-level group, including any subgroups and projects."
msgstr "" msgstr ""
   
msgid "InviteMembersModal|Username" msgid "InviteMembersModal|Username or name"
msgstr "" msgstr ""
   
msgid "InviteMembersModal|Username or email address" msgid "InviteMembersModal|Username, name or email address"
msgstr "" msgstr ""
   
msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}" msgid "InviteMembersModal|You only have space for %{count} more %{members} in %{name}"
...@@ -12,6 +12,7 @@ const placeholder = 'Search for a member'; ...@@ -12,6 +12,7 @@ const placeholder = 'Search for a member';
const user1 = { id: 1, name: 'John Smith', username: 'one_1', avatar_url: '' }; const user1 = { id: 1, name: 'John Smith', username: 'one_1', avatar_url: '' };
const user2 = { id: 2, name: 'Jane Doe', username: 'two_2', avatar_url: '' }; const user2 = { id: 2, name: 'Jane Doe', username: 'two_2', avatar_url: '' };
const allUsers = [user1, user2]; const allUsers = [user1, user2];
const handleEnterSpy = jest.fn();
const createComponent = (props) => { const createComponent = (props) => {
return shallowMount(MembersTokenSelect, { return shallowMount(MembersTokenSelect, {
...@@ -22,7 +23,11 @@ const createComponent = (props) => { ...@@ -22,7 +23,11 @@ const createComponent = (props) => {
...props, ...props,
}, },
stubs: { stubs: {
GlTokenSelector: stubComponent(GlTokenSelector), GlTokenSelector: stubComponent(GlTokenSelector, {
methods: {
handleEnter: handleEnterSpy,
},
}),
}, },
}); });
}; };
...@@ -173,6 +178,14 @@ describe('MembersTokenSelect', () => { ...@@ -173,6 +178,14 @@ describe('MembersTokenSelect', () => {
}); });
}); });
}); });
it('allows tab to function as enter', () => {
tokenSelector.vm.$emit('text-input', 'username');
tokenSelector.vm.$emit('keydown', new KeyboardEvent('keydown', { key: 'Tab' }));
expect(handleEnterSpy).toHaveBeenCalled();
});
}); });
describe('when user is selected', () => { describe('when user is selected', () => {
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册