fixed infinite scroll with advenced search
This commit is contained in:
parent
8777adbe2e
commit
9d45086951
@ -4,7 +4,8 @@ stringTypes.push($this.val());types[$this.val()]=$this.attr('checked');});if(!_i
|
||||
$.event.trigger({type:'new-history-page',path:Drupal.settings.basePath+Drupal.settings.pathPrefix+json.path,title:json.title,content:json.returned});for(language in Drupal.settings.materio_search_api_ajax.languages){var l=Drupal.settings.materio_search_api_ajax.languages[language];$('#block-locale-language li.'+language+' a').attr('href',Drupal.settings.basePath+l.prefix+'/'+json.search_path+'/'+json.keys)};};function triggerContentChanged(){$.event.trigger({type:'resultschanged',container:'#content .search-results, #content .actuality-items'});};function onInitScrollerPager(event){if(isActuality()||isExplore())
|
||||
event.pager.hide();};function onLoadScrollerPager(event){if(!_isloadingresults){if(isExplore())
|
||||
loadNextResultsPage(event.href);if(isActuality())
|
||||
loadNextActualityPage(event.href);}};function loadNextResultsPage(href){trace('loadNextResultsPage');var keys=href.match(/explore\/([^\/|\?]+)/);var page=href.match(/\?page=([0-9]+)/);var url=Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_search_api_ajax/search/'+page[1];loadNextPage(url,keys[1],$('.materiobase-results',_$content),'.search-results');};function loadNextActualityPage(href){var page=href.match(/\?page=([0-9]+)/);var url=Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_search_api_ajax/actuality/'+page[1];loadNextPage(url,'',$('.materiobase-actuality',_$content),'.actuality-items');};function loadNextPage(url,keys,$container,target){_isloadingresults=true;$container.addClass('loading');$.getJSON(url,{'keys':keys},function(json){$container.removeClass('loading');addNextpage(json,target);});};function addNextpage(json,container_class){if(json){var $newcontent=$(json.returned),$newitems=$(container_class,$newcontent).children('article'),$newpager=$('ul.pager',$newcontent);$(container_class,_$content).append($newitems);$('ul.pager',_$content).replaceWith($newpager.hide());$(container_class,_$content).children('.just-added').each(function(i){var $this=$(this);setTimeout(function(){$this.removeClass('just-added');},150*i);});$.event.trigger({type:'resultscompleted',container:$(container_class,_$content)});}
|
||||
loadNextActualityPage(event.href);}};function loadNextResultsPage(href){trace('loadNextResultsPage',href);var searchmode=href.match(/explore\/filters\//)?'advanced':'fulltext';trace("searchmode",searchmode);if(searchmode=='advanced'){var keys=href.match(/explore\/filters\/([^\/|\?]+)/);}else{var keys=href.match(/explore\/([^\/|\?]+)/);}
|
||||
var page=href.match(/\?page=([0-9]+)/);var url=Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_search_api_ajax/search/'+page[1];loadNextPage(url,keys[1],$('.materiobase-results',_$content),'.search-results',searchmode);};function loadNextActualityPage(href){var page=href.match(/\?page=([0-9]+)/);var url=Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_search_api_ajax/actuality/'+page[1];loadNextPage(url,'',$('.materiobase-actuality',_$content),'.actuality-items');};function loadNextPage(url,keys,$container,target,searchmode){searchmode=searchmode||"fulltext";_isloadingresults=true;$container.addClass('loading');$.getJSON(url,{'keys':keys,'searchmode':searchmode},function(json){$container.removeClass('loading');addNextpage(json,target);});};function addNextpage(json,container_class){if(json){var $newcontent=$(json.returned),$newitems=$(container_class,$newcontent).children('article'),$newpager=$('ul.pager',$newcontent);$(container_class,_$content).append($newitems);$('ul.pager',_$content).replaceWith($newpager.hide());$(container_class,_$content).children('.just-added').each(function(i){var $this=$(this);setTimeout(function(){$this.removeClass('just-added');},150*i);});$.event.trigger({type:'resultscompleted',container:$(container_class,_$content)});}
|
||||
_isloadingresults=false;};function addNextpageItemByItem($newcontent,container_class){$('ul.pager',_$content).remove();$(container_class,_$content).append($(container_class,$newcontent).children('article').eq(0));if($(container_class,$newcontent).children('article').length){setTimeout(function(){addNextpageItemByItem($newcontent,container_class);},200);}else{_isloadingresults=false;$('ul.pager',_$content).replaceWith($('ul.pager',$newcontent).hide());$.event.trigger({type:'resultscompleted',container:$(container_class,_$content)});}};function initViewMode(){$('.viewmode-link').click(function(event){event.preventDefault();if(!$(this).is('.active')){$(this).trigger({type:'vm-clicked'});changeViewMode($(this).attr('rel'),$(this));}else{$(this).trigger({type:'vm-clicked-active'});}
|
||||
return false;});};function changeViewMode(vm,$btn){if(!_isloadingresults){_isloadingresults=true;$.getJSON(Drupal.settings.basePath+'materio_search_api_ajax/viewmode/change/'+vm,function(json){_isloadingresults=false;if(json.statut=="saved"){$.event.trigger({type:"record-stat",categorie:'Viewmode',action:vm,label:isActuality()?'Actualities':'Search results'});$.event.trigger('view-mode-changed');$('.viewmode-link, .viewmode-link i').removeClass('active');$btn.addClass('active').find('i').addClass('active');}});}};function onViewModeChanged(event){if(isExplore())
|
||||
loadResults(getSearchKeys());if(isActuality())
|
||||
|
@ -220,12 +220,18 @@ MaterioSearchApiAjax = function(){
|
||||
};
|
||||
|
||||
function loadNextResultsPage(href){
|
||||
trace('loadNextResultsPage');
|
||||
var keys = href.match(/explore\/([^\/|\?]+)/);
|
||||
trace('loadNextResultsPage', href);
|
||||
var searchmode = href.match(/explore\/filters\//) ? 'advanced' : 'fulltext';
|
||||
trace("searchmode", searchmode);
|
||||
if(searchmode == 'advanced'){
|
||||
var keys = href.match(/explore\/filters\/([^\/|\?]+)/);
|
||||
}else{
|
||||
var keys = href.match(/explore\/([^\/|\?]+)/);
|
||||
}
|
||||
var page = href.match(/\?page=([0-9]+)/);
|
||||
var url = Drupal.settings.basePath+Drupal.settings.pathPrefix+'materio_search_api_ajax/search/'+page[1];
|
||||
|
||||
loadNextPage(url, keys[1], $('.materiobase-results', _$content), '.search-results');
|
||||
loadNextPage(url, keys[1], $('.materiobase-results', _$content), '.search-results', searchmode);
|
||||
};
|
||||
|
||||
function loadNextActualityPage(href){
|
||||
@ -236,11 +242,15 @@ MaterioSearchApiAjax = function(){
|
||||
loadNextPage(url, '', $('.materiobase-actuality', _$content), '.actuality-items');
|
||||
};
|
||||
|
||||
function loadNextPage(url, keys, $container, target){
|
||||
function loadNextPage(url, keys, $container, target, searchmode){
|
||||
// trace('MaterioSearchApiAjax :: loadNextPage()');
|
||||
|
||||
// define mode (between full text or only term selected on autocompletion)
|
||||
searchmode = searchmode || "fulltext";
|
||||
|
||||
_isloadingresults = true;
|
||||
$container.addClass('loading');
|
||||
$.getJSON(url, {'keys':keys}, function(json){
|
||||
$.getJSON(url, {'keys':keys,'searchmode':searchmode}, function(json){
|
||||
//trace('json', json);
|
||||
$container.removeClass('loading');
|
||||
addNextpage(json, target);
|
||||
|
Loading…
x
Reference in New Issue
Block a user