search bug fix with language field
This commit is contained in:
+109
-3
@@ -1,4 +1,110 @@
|
|||||||
|
(function ($, Drupal, drupalSettings) {
|
||||||
|
|
||||||
(function($,Drupal,drupalSettings){var settings=drupalSettings.edlp_search;var _$body=$('body');var _$container;var _$form;function init(){initEvents();initAjax();};function initEvents(){$('body').on('new-content-ajax-loaded',initAjax).on('edlp_search_search_form-col-closed',onSearchClosed);};function initAjax(){_$form=$('#edlp-search-form:not(.ajax-enabled)');if(!_$form.length)return false;_$form=$('#edlp-search-form:not(.ajax-enabled)').on('submit',onSubmitForm).addClass('ajax-enabled');_$container=_$form.parents('.row');if(!_$container.length){_$container=_$form.parent();}};function onSubmitForm(e){e.preventDefault();var args={};args.keys=$('input[type="search"]',this).val();args.entries=[];$('input[type="checkbox"]:checked','#edit-entries').each(function(index,el){args.entries.push($(this).val());});args.langues=$('input[name="langues"]',this).val();args.genres=$('input[name="genres"]',this).val();loadResults(args);return false;};function loadResults(args){_$form.addClass('ajax-loading');_$body.addClass('ajax-loading');$('[theme="edlp_search_results"]',_$container).addClass('ajax-loading');var path=window.location.origin+drupalSettings.path.baseUrl+settings.results_ajax_url;$.getJSON(path,args).done(function(data){onResultsLoaded(data);}).fail(function(jqxhr,textStatus,error){onResultsLoadFail(jqxhr,textStatus,error);});};function onResultsLoaded(data){_$form.removeClass('ajax-loading');_$body.removeClass('ajax-loading');$prev_results=$('[theme="edlp_search_results"]',_$container);if($prev_results.length){$prev_results.replaceWith(data.rendered);}else{_$container.append(data.rendered);}
|
var settings = drupalSettings.edlp_search;
|
||||||
_$body.trigger({'type':'search-results-loaded','results':data.results_nids});};function onResultsLoadFail(jqxhr,textStatus,error){void 0;};function onSearchClosed(e){$('div[theme="edlp_search_results"]').remove();_$body.trigger({'type':'search-closed'});}
|
var _$body = $('body');
|
||||||
init();})(jQuery,Drupal,drupalSettings);
|
var _$container;
|
||||||
|
var _$form;
|
||||||
|
|
||||||
|
function init(){
|
||||||
|
// console.log('EdlpSearch Init', settings);
|
||||||
|
initEvents();
|
||||||
|
initAjax();
|
||||||
|
};
|
||||||
|
|
||||||
|
function initEvents(){
|
||||||
|
$('body')
|
||||||
|
.on('new-content-ajax-loaded', initAjax)
|
||||||
|
.on('edlp_search_search_form-col-closed', onSearchClosed);
|
||||||
|
};
|
||||||
|
|
||||||
|
function initAjax(){
|
||||||
|
_$form = $('#edlp-search-form:not(.ajax-enabled)');
|
||||||
|
if(!_$form.length) return false;
|
||||||
|
|
||||||
|
//console.log('EdlpSearch initAjaxForm()');
|
||||||
|
_$form = $('#edlp-search-form:not(.ajax-enabled)')
|
||||||
|
.on('submit', onSubmitForm)
|
||||||
|
.addClass('ajax-enabled');
|
||||||
|
_$container = _$form.parents('.row');
|
||||||
|
if(!_$container.length){
|
||||||
|
_$container = _$form.parent();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function onSubmitForm(e){
|
||||||
|
e.preventDefault();
|
||||||
|
// console.log('onSubmitForm',e);
|
||||||
|
var args = {};
|
||||||
|
|
||||||
|
// search for key words
|
||||||
|
args.keys = $('input[type="search"]', this).val();
|
||||||
|
|
||||||
|
// entries filter
|
||||||
|
args.entries = [];
|
||||||
|
$('input[type="checkbox"]:checked', '#edit-entries').each(function(index, el) {
|
||||||
|
args.entries.push($(this).val());
|
||||||
|
});
|
||||||
|
|
||||||
|
// langues
|
||||||
|
args.langues = $('input[name="language"]', this).val();
|
||||||
|
|
||||||
|
// genres
|
||||||
|
args.genres = $('input[name="genres"]', this).val();
|
||||||
|
|
||||||
|
//console.log('EdlpSearch onSubmitForm() : args',args);
|
||||||
|
|
||||||
|
loadResults(args);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadResults(args){
|
||||||
|
debugger;
|
||||||
|
//console.log('EdlpSearch loadResults() : args', args);
|
||||||
|
_$form.addClass('ajax-loading');
|
||||||
|
_$body.addClass('ajax-loading');
|
||||||
|
$('[theme="edlp_search_results"]', _$container).addClass('ajax-loading');
|
||||||
|
var path = window.location.origin + drupalSettings.path.baseUrl +settings.results_ajax_url;
|
||||||
|
$.getJSON(path, args)
|
||||||
|
.done(function(data){
|
||||||
|
onResultsLoaded(data);
|
||||||
|
})
|
||||||
|
.fail(function(jqxhr, textStatus, error){
|
||||||
|
onResultsLoadFail(jqxhr, textStatus, error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function onResultsLoaded(data){
|
||||||
|
// console.log('EdlpSearch onResultsLoaded()', data);
|
||||||
|
_$form.removeClass('ajax-loading');
|
||||||
|
_$body.removeClass('ajax-loading');
|
||||||
|
|
||||||
|
// insert results col
|
||||||
|
$prev_results = $('[theme="edlp_search_results"]', _$container);
|
||||||
|
if($prev_results.length){
|
||||||
|
$prev_results.replaceWith(data.rendered);
|
||||||
|
}else{
|
||||||
|
_$container.append(data.rendered);
|
||||||
|
}
|
||||||
|
|
||||||
|
// trigger event
|
||||||
|
_$body.trigger({
|
||||||
|
'type':'search-results-loaded',
|
||||||
|
'results':data.results_nids
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
function onResultsLoadFail(jqxhr, textStatus, error){
|
||||||
|
console.warn('EdlpSearch : search results ajax load failed : '+error, jqxhr.responseText);
|
||||||
|
};
|
||||||
|
|
||||||
|
function onSearchClosed(e){
|
||||||
|
// console.log('Edlp Search onSearchClosed()');
|
||||||
|
$('div[theme="edlp_search_results"]').remove();
|
||||||
|
// trigger event
|
||||||
|
_$body.trigger({'type':'search-closed'});
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
|
})(jQuery, Drupal, drupalSettings);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// langues
|
// langues
|
||||||
args.langues = $('input[name="langues"]', this).val();
|
args.langues = $('input[name="language"]', this).val();
|
||||||
|
|
||||||
// genres
|
// genres
|
||||||
args.genres = $('input[name="genres"]', this).val();
|
args.genres = $('input[name="genres"]', this).val();
|
||||||
@@ -59,6 +59,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
function loadResults(args){
|
function loadResults(args){
|
||||||
|
debugger;
|
||||||
//console.log('EdlpSearch loadResults() : args', args);
|
//console.log('EdlpSearch loadResults() : args', args);
|
||||||
_$form.addClass('ajax-loading');
|
_$form.addClass('ajax-loading');
|
||||||
_$body.addClass('ajax-loading');
|
_$body.addClass('ajax-loading');
|
||||||
|
|||||||
Reference in New Issue
Block a user