diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts index 2c66a3e8bc..e77a5e8317 100644 --- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts +++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.ts @@ -178,7 +178,9 @@ export class GrAdminGroupList extends ListViewMixin( } _handleCreateClicked() { - this.$.createOverlay.open(); + this.$.createOverlay.open().then(() => { + this.$.createNewModal.focus(); + }); } _visibleToAll(item: GroupInfo) { diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.js b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.js index ed196e431a..2df1ac621e 100644 --- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.js +++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list_test.js @@ -155,7 +155,8 @@ suite('gr-admin-group-list tests', () => { }); test('_handleCreateClicked opens modal', () => { - const openStub = sinon.stub(element.$.createOverlay, 'open'); + const openStub = sinon.stub(element.$.createOverlay, 'open').returns( + Promise.resolve()); element._handleCreateClicked(); assert.isTrue(openStub.called); }); diff --git a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts index 59027170a8..b68f72040b 100644 --- a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts +++ b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.ts @@ -55,6 +55,10 @@ export class GrCreateGroupDialog extends GestureEventListeners( this.hasNewGroupName = !!name; } + focus() { + this.shadowRoot?.querySelector('input')?.focus(); + } + handleCreateGroup() { const name = this._name as GroupName; return this.restApiService.createGroup({name}).then(groupRegistered => { diff --git a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts index d3ce98a7b2..1b16052a7c 100644 --- a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts +++ b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.ts @@ -83,6 +83,10 @@ export class GrCreateRepoDialog extends GestureEventListeners( return getBaseUrl() + '/admin/repos/' + encodeURL(repoName, true); } + focus() { + this.shadowRoot?.querySelector('input')?.focus(); + } + @observe('_repoConfig.name') _updateRepoName(name: string) { this.hasNewRepoName = !!name; diff --git a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.ts b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.ts index 6f6f926214..c1c847573f 100644 --- a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.ts +++ b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.ts @@ -169,7 +169,9 @@ export class GrRepoList extends ListViewMixin( } _handleCreateClicked() { - this.$.createOverlay.open(); + this.$.createOverlay.open().then(() => { + this.$.createNewModal.focus(); + }); } _readOnly(repo: ProjectInfoWithName) { diff --git a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list_test.js b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list_test.js index 6bf73d12c3..4904bf4f82 100644 --- a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list_test.js +++ b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list_test.js @@ -151,7 +151,8 @@ suite('gr-repo-list tests', () => { }); test('_handleCreateClicked opens modal', () => { - const openStub = sinon.stub(element.$.createOverlay, 'open'); + const openStub = sinon.stub(element.$.createOverlay, 'open').returns( + Promise.resolve()); element._handleCreateClicked(); assert.isTrue(openStub.called); });