From 9d4508695148f81dc6c9571a9b53ef06b9e97f2d Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Mon, 6 Nov 2017 16:45:40 +0100 Subject: [PATCH] fixed infinite scroll with advenced search --- .../js/dist/materio_search_api_ajax.min.js | 3 ++- .../js/materio_search_api_ajax.js | 20 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sites/all/modules/gui/materiobasemod/js/dist/materio_search_api_ajax.min.js b/sites/all/modules/gui/materiobasemod/js/dist/materio_search_api_ajax.min.js index 34c71cf1..c4cbae6e 100644 --- a/sites/all/modules/gui/materiobasemod/js/dist/materio_search_api_ajax.min.js +++ b/sites/all/modules/gui/materiobasemod/js/dist/materio_search_api_ajax.min.js @@ -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()) diff --git a/sites/all/modules/gui/materiobasemod/js/materio_search_api_ajax.js b/sites/all/modules/gui/materiobasemod/js/materio_search_api_ajax.js index abccb1a4..3e4e982e 100755 --- a/sites/all/modules/gui/materiobasemod/js/materio_search_api_ajax.js +++ b/sites/all/modules/gui/materiobasemod/js/materio_search_api_ajax.js @@ -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);