summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2017-10-09 15:09:11 +0200
committerChristoph Wurst <christoph@winzerhof-wurst.at>2017-10-09 15:09:11 +0200
commitf0d96ed7e1929fdf776b9d3ea55c5aa9434c948d (patch)
treebb87badcf897d3824738c88b8bc7ba4223461605 /core
parent5304598296f060ba6f1012b1ddeaa92248e10923 (diff)
downloadnextcloud-server-f0d96ed7e1929fdf776b9d3ea55c5aa9434c948d.tar.gz
nextcloud-server-f0d96ed7e1929fdf776b9d3ea55c5aa9434c948d.zip
Fix contacts menu for IE11
IE11 triggers an 'input' event whenever an input is focussed or loses focus. Thus this causes an endless loading loop as soon as the view is re-rendered. To prevent this, this remembers the previous search term and ignores events where the term has not changed. Fixes https://github.com/nextcloud/server/issues/5281 Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'core')
-rw-r--r--core/js/contactsmenu.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/core/js/contactsmenu.js b/core/js/contactsmenu.js
index 41de10abb47..8d08ea74f4c 100644
--- a/core/js/contactsmenu.js
+++ b/core/js/contactsmenu.js
@@ -287,6 +287,9 @@
/** @type {undefined|ContactCollection} */
_contacts: undefined,
+ /** @type {string} */
+ _searchTerm: '',
+
events: {
'input #contactsmenu-search': '_onSearch'
},
@@ -294,8 +297,16 @@
/**
* @returns {undefined}
*/
- _onSearch: _.debounce(function() {
- this.trigger('search', this.$('#contactsmenu-search').val());
+ _onSearch: _.debounce(function(e) {
+ var searchTerm = this.$('#contactsmenu-search').val();
+ // IE11 triggers an 'input' event after the view has been rendered
+ // resulting in an endless loading loop. To prevent this, we remember
+ // the last search term to savely ignore some events
+ // See https://github.com/nextcloud/server/issues/5281
+ if (searchTerm !== this._searchTerm) {
+ this.trigger('search', this.$('#contactsmenu-search').val());
+ this._searchTerm = searchTerm;
+ }
}, 700),
/**