forked from rspec/rspec.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfull_list.js
1 lines (1 loc) · 3.88 KB
/
full_list.js
1
function fullListSearch(){searchCache=[],$("#full_list li").each(function(){var e=$(this).find(".object_link a");if(0!==e.length){var s=e.attr("title").split(" ")[0];searchCache.push({name:e.text(),fullName:s,node:$(this),link:e})}}),$("#search input").keyup(function(e){e.keyCode>ignoreKeyCodeMin&&e.keyCode<ignoreKeyCodeMax||e.keyCode==commandKey||(searchString=this.value,caseSensitiveMatch=null!=searchString.match(/[A-Z]/),regexSearchString=RegExp.escape(searchString),caseSensitiveMatch&&(regexSearchString+="|"+$.map(searchString.split(""),function(e){return RegExp.escape(e)}).join(".+?")),""===searchString?(clearTimeout(inSearch),inSearch=null,$("ul .search_uncollapsed").removeClass("search_uncollapsed"),$("#full_list, #content").removeClass("insearch"),$("#full_list li").removeClass("found").each(function(){var e=$(this).find(".object_link a");e.length>0&&e.text(e.text())}),clicked&&clicked.parents("ul").each(function(){$(this).removeClass("collapsed").prev().removeClass("collapsed")}),highlight()):(inSearch&&clearTimeout(inSearch),searchIndex=0,lastRowClass="",$("#full_list, #content").addClass("insearch"),$("#noresults").text(""),searchItem()))}),$("#search input").focus(),$("#full_list").after("<div id='noresults'></div>")}function searchItem(){for(var e=0;e<searchCache.length/50;e++){var s=searchCache[searchIndex],a=-1!=searchString.indexOf("::")?s.fullName:s.name,l=regexSearchString,t=new RegExp(l,caseSensitiveMatch?"":"i");if(null==a.match(t)?s.node.removeClass("found"):(s.node.css("padding-left","10px").addClass("found"),s.node.parents().addClass("search_uncollapsed"),s.node.removeClass(lastRowClass).addClass("r1"==lastRowClass?"r2":"r1"),lastRowClass=s.node.hasClass("r1")?"r1":"r2",s.link.html(s.name.replace(t,"<strong>$&</strong>"))),searchCache.length===searchIndex+1)return void searchDone();searchIndex++}inSearch=setTimeout("searchItem()",0)}function searchDone(){highlight(!0),0===$("#full_list li:visible").size()?$("#noresults").text("No results were found.").hide().fadeIn():$("#noresults").text(""),$("#content").removeClass("insearch"),clearTimeout(inSearch),inSearch=null}function linkList(){$("#full_list li, #full_list li a:last").click(function(e){if($(this).hasClass("toggle"))return!0;if("li"==this.tagName.toLowerCase()){if(0===$(this).find(".object_link a").length)return $(this).children("a.toggle").click(),!1;var s=$(this).children("a.toggle");if(s.size()>0&&e.pageX<s.offset().left)return s.click(),!1}clicked&&clicked.removeClass("clicked");var a;try{a=window.top.frames.main?window.top.frames.main:window.parent}catch(e){a=window.parent}return"a"==this.tagName.toLowerCase()?(clicked=$(this).parents("li").addClass("clicked"),a.location=this.href):(clicked=$(this).addClass("clicked"),a.location=$(this).find("a:last").attr("href")),!1})}function collapse(){$("#full_list").hasClass("class")&&($("#full_list.class a.toggle").click(function(){return $(this).parent().toggleClass("collapsed").next().toggleClass("collapsed"),highlight(),!1}),$("#full_list.class ul").each(function(){$(this).addClass("collapsed").prev().addClass("collapsed")}),$("#full_list.class").children().removeClass("collapsed"),highlight())}function highlight(e){var s=1;$("#full_list li:visible").each(function(){var a=1==s?2:1;$(this).removeClass("r"+a).addClass("r"+s),!e&&$("#full_list").hasClass("class")&&$(this).css("padding-left",10+15*$(this).parents("ul").size()+"px"),s=a})}function escapeShortcut(){$(document).keydown(function(e){27==e.which&&($("#search_frame",window.top.document).slideUp(100),$("#search a",window.top.document).removeClass("active inactive"),$(window.top).focus())})}var inSearch=null,searchIndex=0,searchCache=[],searchString="",regexSearchString="",caseSensitiveMatch=!1,ignoreKeyCodeMin=8,ignoreKeyCodeMax=46,commandKey=91;RegExp.escape=function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};var lastRowClass="";clicked=null,$(escapeShortcut),$(fullListSearch),$(linkList),$(collapse);