summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/shortcuts_blob.js.es6
diff options
context:
space:
mode:
authorEric Eastwood <contact@ericeastwood.com>2017-01-25 21:13:01 -0600
committerEric Eastwood <contact@ericeastwood.com>2017-02-06 16:57:52 -0600
commit584b86da3408826f776ee5e179af91ab61459a46 (patch)
tree33059ba30ec961c2b5dde50d80d932b8bd747185 /app/assets/javascripts/shortcuts_blob.js.es6
parent572fb0be9b1d45437b7c0ed1000399657f471ec7 (diff)
downloadgitlab-ce-584b86da3408826f776ee5e179af91ab61459a46.tar.gz
Add keyboard shortcut to move to file permalink8082-permalink-to-file
Fix https://gitlab.com/gitlab-org/gitlab-ce/issues/8082
Diffstat (limited to 'app/assets/javascripts/shortcuts_blob.js.es6')
-rw-r--r--app/assets/javascripts/shortcuts_blob.js.es629
1 files changed, 29 insertions, 0 deletions
diff --git a/app/assets/javascripts/shortcuts_blob.js.es6 b/app/assets/javascripts/shortcuts_blob.js.es6
new file mode 100644
index 00000000000..bfe90aef71e
--- /dev/null
+++ b/app/assets/javascripts/shortcuts_blob.js.es6
@@ -0,0 +1,29 @@
+/* global Mousetrap */
+/* global Shortcuts */
+
+require('./shortcuts');
+
+const defaults = {
+ skipResetBindings: false,
+ fileBlobPermalinkUrl: null,
+};
+
+class ShortcutsBlob extends Shortcuts {
+ constructor(opts) {
+ const options = Object.assign({}, defaults, opts);
+ super(options.skipResetBindings);
+ this.options = options;
+
+ Mousetrap.bind('y', this.moveToFilePermalink.bind(this));
+ }
+
+ moveToFilePermalink() {
+ if (this.options.fileBlobPermalinkUrl) {
+ const hash = gl.utils.getLocationHash();
+ const hashUrlString = hash ? `#${hash}` : '';
+ gl.utils.visitUrl(`${this.options.fileBlobPermalinkUrl}${hashUrlString}`);
+ }
+ }
+}
+
+module.exports = ShortcutsBlob;