From 200061e281c91073209c71b7642d803f488f29b5 Mon Sep 17 00:00:00 2001 From: Becky Siegel Date: Fri, 6 Jan 2017 10:15:10 -0800 Subject: [PATCH] Add keyboard shortcut for star toggle This change adds a keyboard shortcut to star a CL from the change view, to match GWT UI features. The 's' key toggles the the CL star. Bug: Issue 5192 Change-Id: I6f471ac2638815b78cb374326b0e37eaad0fa30d --- .../elements/change/gr-change-view/gr-change-view.html | 3 ++- .../app/elements/change/gr-change-view/gr-change-view.js | 9 +++++++++ .../change/gr-change-view/gr-change-view_test.html | 6 ++++++ .../elements/shared/gr-change-star/gr-change-star.html | 2 +- .../app/elements/shared/gr-change-star/gr-change-star.js | 2 +- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html index 7bd8f1bf9d..26e226e86b 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html @@ -241,7 +241,8 @@ limitations under the License.
- + [[_change._number]][[_computeChangeStatus(_change, _patchRange.patchNum)]]: diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js index eb23c616b2..12b3a169c6 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js @@ -127,6 +127,7 @@ 'shift+r': '_handleCapitalRKey', 'a': '_handleAKey', 'd': '_handleDKey', + 's': '_handleSKey', 'u': '_handleUKey', }, @@ -636,6 +637,14 @@ this._switchToMostRecentPatchNum(); }, + _handleSKey: function(e) { + if (this.shouldSuppressKeyboardShortcut(e) || + this.modifierPressed(e)) { return; } + + e.preventDefault(); + this.$.changeStar.toggleStar(); + }, + _handleUKey: function(e) { if (this.shouldSuppressKeyboardShortcut(e)) { return; } diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html index c92d97a332..62598e61ed 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html @@ -51,6 +51,12 @@ limitations under the License. }); suite('keyboard shortcuts', function() { + test('S should toggle the CL star', function() { + var starStub = sandbox.stub(element.$.changeStar, 'toggleStar'); + MockInteractions.pressAndReleaseKeyOn(element, 83, null, 's'); + assert(starStub.called); + }); + test('U should navigate to / if no backPage set', function() { var showStub = sandbox.stub(page, 'show'); MockInteractions.pressAndReleaseKeyOn(element, 85, null, 'u'); diff --git a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.html b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.html index 05fe10bb9b..93bf5ee796 100644 --- a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.html +++ b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.html @@ -42,7 +42,7 @@ limitations under the License. fill: #ffac33; } - diff --git a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js index 23c56b4329..beb0ff1c9b 100644 --- a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js +++ b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js @@ -34,7 +34,7 @@ return classes.join(' '); }, - _handleStarTap: function() { + toggleStar: function() { var newVal = !this.change.starred; this.set('change.starred', newVal); this._xhrPromise = this.$.restAPI.saveChangeStarred(this.change._number,