diff --git a/resources/report/html/loot-search.html b/resources/report/html/loot-search.html index a750767a..4621b1ce 100644 --- a/resources/report/html/loot-search.html +++ b/resources/report/html/loot-search.html @@ -81,6 +81,7 @@ searchTarget is the ID of the core-list element to search the elements of. attached: function() { this.shadowRoot.getElementById('search').addEventListener('input', this.onSearch, false); + this.shadowRoot.getElementById('search').addEventListener('keyup', this.onEnter, false); this.shadowRoot.getElementById('prev').addEventListener('click', this.onPrev, false); this.shadowRoot.getElementById('next').addEventListener('click', this.onNext, false); this.shadowRoot.getElementById('close').addEventListener('click', this.onClose, false); @@ -88,6 +89,7 @@ searchTarget is the ID of the core-list element to search the elements of. detached: function() { this.shadowRoot.getElementById('search').removeEventListener('input', this.onSearch, false); + this.shadowRoot.getElementById('search').removeEventListener('keyup', this.onEnter, false); this.shadowRoot.getElementById('prev').removeEventListener('click', this.onPrev, false); this.shadowRoot.getElementById('next').removeEventListener('click', this.onNext, false); this.shadowRoot.getElementById('close').removeEventListener('change', this.onClose, false); @@ -98,6 +100,20 @@ searchTarget is the ID of the core-list element to search the elements of. this.results = []; }, + onEnter: function(evt) { + var host = evt.target.parentElement.parentNode.host; + if (evt.keyCode != 13 || host.results.length == 0) { + return; + } + + if (host.currentResult == host.results.length) { + host.currentResult = 1; + } else { + ++host.currentResult; + } + document.getElementById(host.searchTarget).scrollToItem(host.results[host.currentResult - 1]); + }, + onSearch: function(evt) { var needle = evt.target.value.toLowerCase(); var host = evt.target.parentElement.parentNode.host;