Changeset 1846657
- Timestamp:
- 03/26/2018 12:29:27 AM (8 years ago)
- Location:
- daves-wordpress-live-search/trunk/js
- Files:
-
- 2 edited
-
daves-wordpress-live-search.js (modified) (1 diff)
-
daves-wordpress-live-search.min.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
daves-wordpress-live-search/trunk/js/daves-wordpress-live-search.js
r1486084 r1846657 179 179 // same as clicking the title link 180 180 jQuery('#dwls_search_results').bind('click.dwls', function(e) { 181 window.location.href = jQuery(e.target). parent('li').find('a.daves-wordpress-live-search_title').attr('href');181 window.location.href = jQuery(e.target).find('a.daves-wordpress-live-search_title').attr('href'); 182 182 }); 183 183 -
daves-wordpress-live-search/trunk/js/daves-wordpress-live-search.min.js
r1486084 r1846657 1 var LiveSearch={searchBoxes:"",activeRequests:[],callbacks:[],addCallback:function(e,r){return void 0===this.callbacks[e]&&(this.callbacks[e]=[]),this.callbacks[e].push(r)},invokeCallbacks:function(e,r){var s;if(void 0!==this.callbacks[e])for(s in this.callbacks[e])r=this.callbacks[e][s](r)} };LiveSearch.init=function(){LiveSearch.searchBoxes=jQuery("input").filter("[name='s']").not(".no-livesearch"),LiveSearch.searchBoxes.keyup(LiveSearch.handleKeypress),LiveSearch.searchBoxes.focus(LiveSearch.hideResults),LiveSearch.searchBoxes.outerHeight||alert(DavesWordPressLiveSearchConfig.outdatedJQuery),LiveSearch.searchBoxes.parents("form").attr("autocomplete","off"),LiveSearch.searchBoxes.each(function(){this.autocomplete="off"}),jQuery("html").click(LiveSearch.hideResults),LiveSearch.searchBoxes.click(function(e){e.stopPropagation()}),LiveSearch.compiledResultTemplate=_.template(DavesWordPressLiveSearchConfig.resultTemplate),jQuery(window).resize(function(){LiveSearch.positionResults(this)})},LiveSearch.positionResults=function(){var e,r=jQuery("input:focus").first(),s=jQuery("#dwls_search_results");if(s&&r.size()>0){var a=r.offset();switch(a.left+=parseInt(DavesWordPressLiveSearchConfig.xOffset,10),a.top+=parseInt(DavesWordPressLiveSearchConfig.yOffset,10),s.css("left",a.left),s.css("top",a.top),s.css("display","block"),DavesWordPressLiveSearchConfig.resultsDirection){case"up":e=a.top-s.height();break;case"down":e=a.top+LiveSearch.searchBoxes.outerHeight();break;default:e=a.top+LiveSearch.searchBoxes.outerHeight()}s.css("top",e+"px")}},LiveSearch.handleAJAXResults=function(e){var r="";if(LiveSearch.activeRequests.pop(),e){if(resultsSearchTerm=e.searchTerms,resultsSearchTerm!=jQuery("input:focus").first().val())return void(0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator());var s=jQuery("#dwls_search_results").children("input[name=query]").val();if(""!==s&&resultsSearchTerm==s)return void(0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator());if(0===e.results.length)LiveSearch.hideResults(),LiveSearch.invokeCallbacks("ZeroResults");else{LiveSearch.invokeCallbacks("BeforeDisplayResults"),r=LiveSearch.compiledResultTemplate({searchResults:e.results,e:e,resultsSearchTerm:resultsSearchTerm});var a=jQuery("#dwls_search_results");a.size()>0?jQuery("#dwls_search_results").replaceWith(r):jQuery("body").append(r),LiveSearch.positionResults(),jQuery("#dwls_search_results").bind("click.dwls",function(e){window.location.href=jQuery(e.target).parent("li").find("a.daves-wordpress-live-search_title").attr("href")}),LiveSearch.invokeCallbacks("AfterDisplayResults")}0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator()}},LiveSearch.handleKeypress=function(){var e=0,r=LiveSearch.searchBoxes.val();setTimeout(function(){LiveSearch.runQuery(r)},e)},LiveSearch.runQuery=function(){var e,r,s=jQuery("input:focus"),a=s.val();if(""===a||a.length<DavesWordPressLiveSearchConfig.minCharsToSearch)LiveSearch.hideResults(),LiveSearch.removeIndicator();else{for(LiveSearch.displayIndicator();LiveSearch.activeRequests.length>0;)r=LiveSearch.activeRequests.pop(),r.abort();var i={},t=s.parents("form").find("input:not(:submit),select,textarea");for(e in t)if(t.hasOwnProperty(e)&&e%1===0){var c=jQuery(t[e]);i[c.attr("name")]=c.val()}i.action="dwls_search",r=jQuery.get(DavesWordPressLiveSearchConfig.ajaxURL,i,LiveSearch.handleAJAXResults,"json"),r.fail=LiveSearch.ajaxFailHandler,LiveSearch.activeRequests.push(r)}},LiveSearch.ajaxFailHandler=function(e){console.log("Dave's WordPress Live Search: There was an error retrieving or parsing search results"),console.log("The data returned was:"),console.log(e)},LiveSearch.hideResults=function(){var e=jQuery("#dwls_search_results");if(e.size()>0)switch(LiveSearch.invokeCallbacks("BeforeHideResults"),DavesWordPressLiveSearchConfig.resultsDirection){case"up":e.fadeOut("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")});break;case"down":e.slideUp("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")});break;default:e.slideUp("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")})}},LiveSearch.displayIndicator=function(){if(0===jQuery(".search_results_activity_indicator").size()){var e=jQuery("input:focus").first(),r=e.offset();jQuery("body").append('<span id="search_results_activity_indicator" class="search_results_activity_indicator" />');var s={outer:Math.ceil(.9*e.height()/2)};s.inner=Math.floor(.29*s.outer),jQuery(".search_results_activity_indicator").css("position","absolute").css("z-index",9999);var a=r.top+(e.outerHeight()-e.innerHeight())/2+"px";jQuery(".search_results_activity_indicator").css("top",a);var i=r.left+e.outerWidth()-2*(s.outer+s.inner)-2+"px";jQuery(".search_results_activity_indicator").css("left",i),LiveSearch.invokeCallbacks("BeforeDisplaySpinner"),Spinners.create(".search_results_activity_indicator",{radii:[s.inner,s.outer],color:"#888888",dashWidth:4,dashes:8,opacity:.8,speed:.7}).play(),LiveSearch.invokeCallbacks("AfterDisplaySpinner")}},LiveSearch.removeIndicator=function(){LiveSearch.invokeCallbacks("BeforeHideSpinner"),jQuery(".search_results_activity_indicator").remove(),LiveSearch.invokeCallbacks("AfterHideSpinner")},jQuery(function(){LiveSearch.init()});1 var LiveSearch={searchBoxes:"",activeRequests:[],callbacks:[],addCallback:function(e,r){return void 0===this.callbacks[e]&&(this.callbacks[e]=[]),this.callbacks[e].push(r)},invokeCallbacks:function(e,r){var s;if(void 0!==this.callbacks[e])for(s in this.callbacks[e])r=this.callbacks[e][s](r)},init:function(){LiveSearch.searchBoxes=jQuery("input").filter("[name='s']").not(".no-livesearch"),LiveSearch.searchBoxes.keyup(LiveSearch.handleKeypress),LiveSearch.searchBoxes.focus(LiveSearch.hideResults),LiveSearch.searchBoxes.outerHeight||alert(DavesWordPressLiveSearchConfig.outdatedJQuery),LiveSearch.searchBoxes.parents("form").attr("autocomplete","off"),LiveSearch.searchBoxes.each(function(){this.autocomplete="off"}),jQuery("html").click(LiveSearch.hideResults),LiveSearch.searchBoxes.click(function(e){e.stopPropagation()}),LiveSearch.compiledResultTemplate=_.template(DavesWordPressLiveSearchConfig.resultTemplate),jQuery(window).resize(function(){LiveSearch.positionResults(this)})},positionResults:function(){var e,r=jQuery("input:focus").first(),s=jQuery("#dwls_search_results");if(s&&r.size()>0){var a=r.offset();switch(a.left+=parseInt(DavesWordPressLiveSearchConfig.xOffset,10),a.top+=parseInt(DavesWordPressLiveSearchConfig.yOffset,10),s.css("left",a.left),s.css("top",a.top),s.css("display","block"),DavesWordPressLiveSearchConfig.resultsDirection){case"up":e=a.top-s.height();break;case"down":e=a.top+LiveSearch.searchBoxes.outerHeight();break;default:e=a.top+LiveSearch.searchBoxes.outerHeight()}s.css("top",e+"px")}},handleAJAXResults:function(e){var r="";if(LiveSearch.activeRequests.pop(),e){if(resultsSearchTerm=e.searchTerms,resultsSearchTerm!=jQuery("input:focus").first().val())return void(0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator());var s=jQuery("#dwls_search_results").children("input[name=query]").val();if(""!==s&&resultsSearchTerm==s)return void(0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator());if(0===e.results.length)LiveSearch.hideResults(),LiveSearch.invokeCallbacks("ZeroResults");else LiveSearch.invokeCallbacks("BeforeDisplayResults"),r=LiveSearch.compiledResultTemplate({searchResults:e.results,e:e,resultsSearchTerm:resultsSearchTerm}),jQuery("#dwls_search_results").size()>0?jQuery("#dwls_search_results").replaceWith(r):jQuery("body").append(r),LiveSearch.positionResults(),jQuery("#dwls_search_results").bind("click.dwls",function(e){window.location.href=jQuery(e.target).find("a.daves-wordpress-live-search_title").attr("href")}),LiveSearch.invokeCallbacks("AfterDisplayResults");0===LiveSearch.activeRequests.length&&LiveSearch.removeIndicator()}},handleKeypress:function(e){var r=LiveSearch.searchBoxes.val();setTimeout(function(){LiveSearch.runQuery(r)},0)},runQuery:function(e){var r,s,a=jQuery("input:focus"),i=a.val();if(""===i||i.length<DavesWordPressLiveSearchConfig.minCharsToSearch)LiveSearch.hideResults(),LiveSearch.removeIndicator();else{for(LiveSearch.displayIndicator();LiveSearch.activeRequests.length>0;)(s=LiveSearch.activeRequests.pop()).abort();var t={},c=a.parents("form").find("input:not(:submit),select,textarea");for(r in c)if(c.hasOwnProperty(r)&&r%1==0){var o=jQuery(c[r]);t[o.attr("name")]=o.val()}t.action="dwls_search",(s=jQuery.get(DavesWordPressLiveSearchConfig.ajaxURL,t,LiveSearch.handleAJAXResults,"json")).fail=LiveSearch.ajaxFailHandler,LiveSearch.activeRequests.push(s)}},ajaxFailHandler:function(e){console.log("Dave's WordPress Live Search: There was an error retrieving or parsing search results"),console.log("The data returned was:"),console.log(e)},hideResults:function(){var e=jQuery("#dwls_search_results");if(e.size()>0)switch(LiveSearch.invokeCallbacks("BeforeHideResults"),DavesWordPressLiveSearchConfig.resultsDirection){case"up":e.fadeOut("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")});break;case"down":e.slideUp("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")});break;default:e.slideUp("normal",function(){e.remove(),LiveSearch.invokeCallbacks("AfterHideResults")})}},displayIndicator:function(){if(0===jQuery(".search_results_activity_indicator").size()){var e=jQuery("input:focus").first(),r=e.offset();jQuery("body").append('<span id="search_results_activity_indicator" class="search_results_activity_indicator" />');var s={outer:Math.ceil(.9*e.height()/2)};s.inner=Math.floor(.29*s.outer),jQuery(".search_results_activity_indicator").css("position","absolute").css("z-index",9999);var a=r.top+(e.outerHeight()-e.innerHeight())/2+"px";jQuery(".search_results_activity_indicator").css("top",a);var i=r.left+e.outerWidth()-2*(s.outer+s.inner)-2+"px";jQuery(".search_results_activity_indicator").css("left",i),LiveSearch.invokeCallbacks("BeforeDisplaySpinner"),Spinners.create(".search_results_activity_indicator",{radii:[s.inner,s.outer],color:"#888888",dashWidth:4,dashes:8,opacity:.8,speed:.7}).play(),LiveSearch.invokeCallbacks("AfterDisplaySpinner")}},removeIndicator:function(){LiveSearch.invokeCallbacks("BeforeHideSpinner"),jQuery(".search_results_activity_indicator").remove(),LiveSearch.invokeCallbacks("AfterHideSpinner")}};jQuery(function(){LiveSearch.init()});
Note: See TracChangeset
for help on using the changeset viewer.