Commit 195b20e1 authored by Jacob Schatz's avatar Jacob Schatz

Merge branch 'discussion-reply-button-performance' into 'master'

Remove delay when hitting Reply... button on page with a lot of comments

Every time the "Reply..." button was hit, a new `GLForm` was instantiated (which is fine), which would then call `GitLab.GfmAutoComplete.setup()` without specifying which textarea we needed autocompletion on, which resulted in `GitLab.GfmAutoComplete.setup` iterating through every single textarea on the page. On a page with a lot of comments, where each comment would have its own textarea that will be used to edit the comment, this would take a long time and cause the whole page to hang for 2 seconds when a  "Reply..." button was clicked.

See merge request !5602
parents 35529007 6e87ce28
...@@ -19,6 +19,7 @@ v 8.11.0 (unreleased) ...@@ -19,6 +19,7 @@ v 8.11.0 (unreleased)
- Clean up unused routes (Josef Strzibny) - Clean up unused routes (Josef Strzibny)
- Add green outline to New Branch button. !5447 (winniehell) - Add green outline to New Branch button. !5447 (winniehell)
- Update to gitlab_git 10.4.1 and take advantage of preserved Ref objects - Update to gitlab_git 10.4.1 and take advantage of preserved Ref objects
- Remove delay when hitting "Reply..." button on page with a lot of discussions
- Retrieve rendered HTML from cache in one request - Retrieve rendered HTML from cache in one request
- Fix renaming repository when name contains invalid chararacters under project settings - Fix renaming repository when name contains invalid chararacters under project settings
- Optimize checking if a user has read access to a list of issues !5370 - Optimize checking if a user has read access to a list of issues !5370
......
...@@ -47,8 +47,8 @@ ...@@ -47,8 +47,8 @@
} }
} }
}, },
setup: function(wrap) { setup: function(input) {
this.input = $('.js-gfm-input'); this.input = input || $('.js-gfm-input');
this.destroyAtWho(); this.destroyAtWho();
this.setupAtWho(); this.setupAtWho();
if (this.dataSource) { if (this.dataSource) {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
this.form.find('.div-dropzone').remove(); this.form.find('.div-dropzone').remove();
this.form.addClass('gfm-form'); this.form.addClass('gfm-form');
disableButtonIfEmptyField(this.form.find('.js-note-text'), this.form.find('.js-comment-button')); disableButtonIfEmptyField(this.form.find('.js-note-text'), this.form.find('.js-comment-button'));
GitLab.GfmAutoComplete.setup(); GitLab.GfmAutoComplete.setup(this.form.find('.js-gfm-input'));
new DropzoneInput(this.form); new DropzoneInput(this.form);
autosize(this.textarea); autosize(this.textarea);
this.addEventListeners(); this.addEventListeners();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment