doc/js/search.js in ruby-prof-0.13.1 vs doc/js/search.js in ruby-prof-0.14.0

- old
+ new

@@ -12,11 +12,16 @@ Search.prototype = $.extend({}, Navigation, new function() { var suid = 1; this.init = function() { var _this = this; - var observer = function() { + var observer = function(e) { + switch(e.originalEvent.keyCode) { + case 38: // Event.KEY_UP + case 40: // Event.KEY_DOWN + return; + } _this.search(_this.$input[0].value); }; this.$input.keyup(observer); this.$input.click(observer); // mac's clear field @@ -37,13 +42,16 @@ } if (value == '') { this.lastQuery = value; this.$result.empty(); + this.$result.attr('aria-expanded', 'false'); this.setNavigationActive(false); } else if (value != this.lastQuery) { this.lastQuery = value; + this.$result.attr('aria-busy', 'true'); + this.$result.attr('aria-expanded', 'true'); this.firstRun = true; this.searcher.find(value); } } @@ -53,28 +61,35 @@ this.$current = null; this.$result.empty(); } for (var i=0, l = results.length; i < l; i++) { - target.appendChild(this.renderItem.call(this, results[i])); + var item = this.renderItem.call(this, results[i]); + item.setAttribute('id', 'search-result-' + target.childElementCount); + target.appendChild(item); }; if (this.firstRun && results.length > 0) { this.firstRun = false; this.$current = $(target.firstChild); - this.$current.addClass('current'); + this.$current.addClass('search-selected'); } if (jQuery.browser.msie) this.$element[0].className += ''; + + if (isLast) this.$result.attr('aria-busy', 'false'); } this.move = function(isDown) { if (!this.$current) return; var $next = this.$current[isDown ? 'next' : 'prev'](); if ($next.length) { - this.$current.removeClass('current'); - $next.addClass('current'); + this.$current.removeClass('search-selected'); + $next.addClass('search-selected'); + this.$input.attr('aria-activedescendant', $next.attr('id')); this.scrollIntoView($next[0], this.$view[0]); this.$current = $next; + this.$input.val($next[0].firstChild.firstChild.text); + this.$input.select(); } return true; } this.hlt = function(html) {