PG: Add shortcuts for dashboard and watched changes

The original change applied to stable-2.16 [1] wasn't merged properly to
stable-3.0 [2].

[1]: https://gerrit-review.googlesource.com/c/gerrit/+/231393
[2]: https://gerrit-review.googlesource.com/c/gerrit/+/233333/2/polygerrit-ui/app/elements/gr-app.js

Bug: Issue 10166
Change-Id: Iebe7929696f16d30de9309f589521a7c27ca3a69
(cherry picked from commit f43acb58378cd7ac1364f38b2773f73c03cedca3)
diff --git a/polygerrit-ui/app/elements/gr-app.js b/polygerrit-ui/app/elements/gr-app.js
index ebf2020..837d2d1 100644
--- a/polygerrit-ui/app/elements/gr-app.js
+++ b/polygerrit-ui/app/elements/gr-app.js
@@ -115,9 +115,11 @@
     keyboardShortcuts() {
       return {
         [this.Shortcut.OPEN_SHORTCUT_HELP_DIALOG]: '_showKeyboardShortcuts',
+        [this.Shortcut.GO_TO_USER_DASHBOARD]: '_goToUserDashboard',
         [this.Shortcut.GO_TO_OPENED_CHANGES]: '_goToOpenedChanges',
         [this.Shortcut.GO_TO_MERGED_CHANGES]: '_goToMergedChanges',
         [this.Shortcut.GO_TO_ABANDONED_CHANGES]: '_goToAbandonedChanges',
+        [this.Shortcut.GO_TO_WATCHED_CHANGES]: '_goToWatchedChanges',
       };
     },
 
@@ -184,11 +186,15 @@
       this.bindShortcut(
           this.Shortcut.OPEN_SHORTCUT_HELP_DIALOG, '?');
       this.bindShortcut(
+          this.Shortcut.GO_TO_USER_DASHBOARD, this.GO_KEY, 'i');
+      this.bindShortcut(
           this.Shortcut.GO_TO_OPENED_CHANGES, this.GO_KEY, 'o');
       this.bindShortcut(
           this.Shortcut.GO_TO_MERGED_CHANGES, this.GO_KEY, 'm');
       this.bindShortcut(
           this.Shortcut.GO_TO_ABANDONED_CHANGES, this.GO_KEY, 'a');
+      this.bindShortcut(
+          this.Shortcut.GO_TO_WATCHED_CHANGES, this.GO_KEY, 'w');
 
       this.bindShortcut(
           this.Shortcut.CURSOR_NEXT_CHANGE, 'j');
@@ -412,6 +418,10 @@
       return isShadowDom ? 'shadow' : '';
     },
 
+    _goToUserDashboard() {
+      Gerrit.Nav.navigateToUserDashboard();
+    },
+
     _goToOpenedChanges() {
       Gerrit.Nav.navigateToStatusSearch('open');
     },
@@ -424,6 +434,11 @@
       Gerrit.Nav.navigateToStatusSearch('abandoned');
     },
 
+    _goToWatchedChanges() {
+      // The query is hardcoded, and doesn't respect custom menu entries
+      Gerrit.Nav.navigateToSearchQuery('is:watched is:open');
+    },
+
     _computePluginScreenName({plugin, screen}) {
       return Gerrit._getPluginScreenName(plugin, screen);
     },