materio_search_api_ajax.js 4.3 KB

1
  1. !function(e){MaterioSearchApiAjax=function(){function t(){a(),f()}function a(){e("#materio-search-api-search-form").bind("submit",function(){return setTimeout(function(){r(n())},10),!1}),e("#edit-searchfield").bind("autocompleteSelect",function(){e(this).parents(".form").trigger("submit")}).bind("focus",function(){e(this).select()}),e(document).bind("theme-ready",i).bind("init-scroller-pager",l).bind("load-scroller-pager",u).bind("view-mode-changed",v).bind("history-state-change",y)}function i(){(_()||b())&&e.event.trigger({type:"resultschanged",container:_()?"#content .actuality-items":"#content .search-results"})}function n(){return e("#materio-search-api-search-form").find('input[name*="searchfield"]').val()}function r(t){if(trace("keys",t),void 0!==t&&""!==t&&t.length>=2){t=t.replace("/"," ");var a={},i=[];e("#edit-bundles-filter","#materio-search-api-search-form").find('input[type*="checkbox"]').each(function(){$this=e(this),$this.attr("checked")&&i.push($this.val()),a[$this.val()]=$this.attr("checked")}),x||(e.event.trigger("loading-content"),x=!0,e("#materio-search-api-search-form").addClass("loading"),e.getJSON(Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_search_api_ajax/search/",{types:a,current_path:document.location.href,keys:t},function(a){e.event.trigger({type:"record-stat",categorie:"Search",action:t,label:"filters : "+i.join(" ,"),value:a.count}),a.redirect?window.location=a.redirect:(e.event.trigger("loaded-content"),x=!1,e("#materio-search-api-search-form").removeClass("loading"),s(a))}))}}function c(){if(!x){e.event.trigger("loading-content"),x=!0,e("#materio-search-api-search-form").addClass("loading");var t=Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_search_api_ajax/actuality";e.getJSON(t,function(t){e.event.trigger("loaded-content"),x=!1,e("#materio-search-api-search-form").removeClass("loading"),s(t)})}}function s(t){trace("MaterioSearchApiAjax changeContent | json",t),t.return&&(e.event.trigger("loaded-content"),e(".inner-content",j).html(t.return).find("ul.pager").hide(),o()),e.event.trigger({type:"new-history-page",path:Drupal.settings.basePath+Drupal.settings.pathPrefix+t.path,title:t.title,content:t.return});for(language in Drupal.settings.materio_search_api_ajax.languages){var a=Drupal.settings.materio_search_api_ajax.languages[language];e("#block-locale-language li."+language+" a").attr("href",Drupal.settings.basePath+a.prefix+"/"+t.search_path+"/"+t.keys)}}function o(){e.event.trigger({type:"resultschanged",container:"#content .search-results, #content .actuality-items"})}function l(e){(_()||b())&&e.pager.hide()}function u(e){x||(b()&&h(e.href),_()&&g(e.href))}function h(t){var a=t.match(/explore\/([^\/|\?]+)/),i=t.match(/\?page=([0-9]+)/),n=Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_search_api_ajax/search/"+i[1];d(n,a[1],e(".materiobase-results",j),".search-results")}function g(t){var a=t.match(/\?page=([0-9]+)/),i=Drupal.settings.basePath+Drupal.settings.pathPrefix+"materio_search_api_ajax/actuality/"+a[1];d(i,"",e(".materiobase-actuality",j),".actuality-items")}function d(t,a,i,n){x=!0,i.addClass("loading"),e.getJSON(t,{keys:a},function(e){i.removeClass("loading"),p(e,n)})}function p(t,a){if(t){var i=e(t.return),n=e(a,i).children("article"),r=e("ul.pager",i);e(a,j).append(n),e("ul.pager",j).replaceWith(r.hide()),e(a,j).children(".just-added").each(function(t){var a=e(this);setTimeout(function(){a.removeClass("just-added")},150*t)}),e.event.trigger({type:"resultscompleted",container:e(a,j)})}x=!1}function f(){e(".viewmode-link").click(function(t){return t.preventDefault(),e(this).is(".active")?e(this).trigger({type:"vm-clicked-active"}):(e(this).trigger({type:"vm-clicked"}),m(e(this).attr("rel"),e(this))),!1})}function m(t,a){x||(x=!0,e.getJSON(Drupal.settings.basePath+"materio_search_api_ajax/viewmode/change/"+t,function(i){x=!1,"saved"==i.statut&&(e.event.trigger({type:"record-stat",categorie:"Viewmode",action:t,label:_()?"Actualities":"Search results"}),e.event.trigger("view-mode-changed"),e(".viewmode-link, .viewmode-link i").removeClass("active"),a.addClass("active").find("i").addClass("active"))}))}function v(){b()&&r(n()),_()&&c()}function y(){(b()||_())&&o()}function b(){return e(".search-results","#content").length}function _(){return e(".actuality-items","#content").length}var x=!1,j=e("#content");t()},e(document).ready(function(){new MaterioSearchApiAjax})}(jQuery);