summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-04-21 14:19:08 +0100
committerPhil Hughes <me@iamphill.com>2017-04-21 14:19:08 +0100
commitb8a96fda9c2a36aab6af603bf376fc97c19c2bca (patch)
treed505e87b0b3928e6533ca9d77ace51d16f56a97f
parentf09f753908a001e791a254d277032734f6fe57b6 (diff)
downloadgitlab-ce-b8a96fda9c2a36aab6af603bf376fc97c19c2bca.tar.gz
Fixed the preview keyboard shortcut focusing wrong tab
Closes #31101
-rw-r--r--app/assets/javascripts/shortcuts.js7
-rw-r--r--changelogs/unreleased/form-focus-previous-incorrect-form.yml4
-rw-r--r--spec/javascripts/shortcuts_spec.js29
3 files changed, 38 insertions, 2 deletions
diff --git a/app/assets/javascripts/shortcuts.js b/app/assets/javascripts/shortcuts.js
index 5b6bb2bf3f5..85659d7fa39 100644
--- a/app/assets/javascripts/shortcuts.js
+++ b/app/assets/javascripts/shortcuts.js
@@ -57,8 +57,11 @@ import findAndFollowLink from './shortcuts_dashboard_navigation';
Shortcuts.prototype.toggleMarkdownPreview = function(e) {
// Check if short-cut was triggered while in Write Mode
- if ($(e.target).hasClass('js-note-text')) {
- $('.js-md-preview-button').focus();
+ const $target = $(e.target);
+ const $form = $target.closest('form');
+
+ if ($target.hasClass('js-note-text')) {
+ $('.js-md-preview-button', $form).focus();
}
return $(document).triggerHandler('markdown-preview:toggle', [e]);
};
diff --git a/changelogs/unreleased/form-focus-previous-incorrect-form.yml b/changelogs/unreleased/form-focus-previous-incorrect-form.yml
new file mode 100644
index 00000000000..efabb78de6b
--- /dev/null
+++ b/changelogs/unreleased/form-focus-previous-incorrect-form.yml
@@ -0,0 +1,4 @@
+---
+title: Fixued preview shortcut focusing wrong preview tab
+merge_request:
+author:
diff --git a/spec/javascripts/shortcuts_spec.js b/spec/javascripts/shortcuts_spec.js
new file mode 100644
index 00000000000..9dd7bc5b42c
--- /dev/null
+++ b/spec/javascripts/shortcuts_spec.js
@@ -0,0 +1,29 @@
+/* global Shortcuts */
+describe('Shortcuts', () => {
+ const fixtureName = 'issues/open-issue.html.raw';
+
+ preloadFixtures(fixtureName);
+
+ describe('toggleMarkdownPreview', () => {
+ let sc;
+ let event;
+
+ beforeEach(() => {
+ loadFixtures(fixtureName);
+
+ spyOnEvent('.js-md-preview-button', 'focus');
+
+ event = $.Event('', {
+ target: document.querySelector('.js-note-text'),
+ });
+
+ sc = new Shortcuts();
+ });
+
+ it('focuses preview button in form', () => {
+ sc.toggleMarkdownPreview(event);
+
+ expect('focus').toHaveBeenTriggeredOn('.js-md-preview-button');
+ });
+ });
+});