summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js')
-rw-r--r--polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js114
1 files changed, 98 insertions, 16 deletions
diff --git a/polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js b/polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js
index b7900c081d..5b29972e40 100644
--- a/polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js
+++ b/polygerrit-ui/app/elements/core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.js
@@ -1,19 +1,24 @@
-// Copyright (C) 2016 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+/**
+ * @license
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
(function() {
'use strict';
+ const {ShortcutSection} = window.Gerrit.KeyboardShortcutBinder;
+
Polymer({
is: 'gr-keyboard-shortcuts-dialog',
@@ -24,20 +29,97 @@
*/
properties: {
- view: String,
+ _left: Array,
+ _right: Array,
+
+ _propertyBySection: {
+ type: Object,
+ value() {
+ return {
+ [ShortcutSection.EVERYWHERE]: '_everywhere',
+ [ShortcutSection.NAVIGATION]: '_navigation',
+ [ShortcutSection.DASHBOARD]: '_dashboard',
+ [ShortcutSection.CHANGE_LIST]: '_changeList',
+ [ShortcutSection.ACTIONS]: '_actions',
+ [ShortcutSection.REPLY_DIALOG]: '_replyDialog',
+ [ShortcutSection.FILE_LIST]: '_fileList',
+ [ShortcutSection.DIFFS]: '_diffs',
+ };
+ },
+ },
},
+ behaviors: [
+ Gerrit.KeyboardShortcutBehavior,
+ ],
+
hostAttributes: {
role: 'dialog',
},
- _computeInView(currentView, view) {
- return view === currentView;
+ attached() {
+ this.addKeyboardShortcutDirectoryListener(
+ this._onDirectoryUpdated.bind(this));
+ },
+
+ detached() {
+ this.removeKeyboardShortcutDirectoryListener(
+ this._onDirectoryUpdated.bind(this));
},
_handleCloseTap(e) {
e.preventDefault();
this.fire('close', null, {bubbles: false});
},
+
+ _onDirectoryUpdated(directory) {
+ const left = [];
+ const right = [];
+
+ if (directory.has(ShortcutSection.EVERYWHERE)) {
+ left.push({
+ section: ShortcutSection.EVERYWHERE,
+ shortcuts: directory.get(ShortcutSection.EVERYWHERE),
+ });
+ }
+
+ if (directory.has(ShortcutSection.NAVIGATION)) {
+ left.push({
+ section: ShortcutSection.NAVIGATION,
+ shortcuts: directory.get(ShortcutSection.NAVIGATION),
+ });
+ }
+
+ if (directory.has(ShortcutSection.ACTIONS)) {
+ right.push({
+ section: ShortcutSection.ACTIONS,
+ shortcuts: directory.get(ShortcutSection.ACTIONS),
+ });
+ }
+
+ if (directory.has(ShortcutSection.REPLY_DIALOG)) {
+ right.push({
+ section: ShortcutSection.REPLY_DIALOG,
+ shortcuts: directory.get(ShortcutSection.REPLY_DIALOG),
+ });
+ }
+
+ if (directory.has(ShortcutSection.FILE_LIST)) {
+ right.push({
+ section: ShortcutSection.FILE_LIST,
+ shortcuts: directory.get(ShortcutSection.FILE_LIST),
+ });
+ }
+
+ if (directory.has(ShortcutSection.DIFFS)) {
+ right.push({
+ section: ShortcutSection.DIFFS,
+ shortcuts: directory.get(ShortcutSection.DIFFS),
+ });
+ }
+
+ this.set('_left', left);
+ this.set('_right', right);
+ },
});
})();