Browse Source

prevent search form submiting with not enougth arguments

Bachir Soussi Chiadmi 6 years ago
parent
commit
88c72878f4

+ 2 - 1
sites/all/modules/figli/edlp_search/assets/dist/scripts/edlp_search.min.js

@@ -1,4 +1,5 @@
 
-(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="language"]',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);}
+(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;void 0;_$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="language"]',this).val();args.genres=$('input[name="genres"]',this).val();void 0;if(args.keys.length>2||args.entries.length>0||args.langues.length>2||args.genres>2){loadResults(args);}
+return false;};function loadResults(args){void 0;_$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){void 0;_$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);}
 _$body.trigger({'type':'search-results-loaded','results':data.results_nids});if(typeof _paq!=='undefined'){var search_name=data.keys+';'+data.langues+';'+data.genres+';'+data.entry_names.join(',');_paq.push(['trackSiteSearch',search_name,'search',data.results_nids.length]);}};function onResultsLoadFail(jqxhr,textStatus,error){void 0;};function onSearchClosed(e){$('div[theme="edlp_search_results"]').remove();_$body.trigger({'type':'search-closed'});}
 init();})(jQuery,Drupal,drupalSettings);

+ 10 - 5
sites/all/modules/figli/edlp_search/assets/scripts/edlp_search.js

@@ -21,7 +21,7 @@
     _$form = $('#edlp-search-form:not(.ajax-enabled)');
     if(!_$form.length) return false;
 
-    //console.log('EdlpSearch initAjaxForm()');
+    console.log('EdlpSearch initAjaxForm()');
     _$form = $('#edlp-search-form:not(.ajax-enabled)')
       .on('submit', onSubmitForm)
       .addClass('ajax-enabled');
@@ -51,15 +51,20 @@
     // genres
     args.genres = $('input[name="genres"]', this).val();
 
-    //console.log('EdlpSearch onSubmitForm() : args',args);
+    console.log('EdlpSearch onSubmitForm() : args',args);
 
-    loadResults(args);
+    if(args.keys.length > 2
+      || args.entries.length > 0
+      || args.langues.length > 2
+      || args.genres > 2){
+        loadResults(args);
+    }
 
     return false;
   };
 
   function loadResults(args){
-    //console.log('EdlpSearch loadResults() : args', args);
+    console.log('EdlpSearch loadResults() : args', args);
     _$form.addClass('ajax-loading');
     _$body.addClass('ajax-loading');
     $('[theme="edlp_search_results"]', _$container).addClass('ajax-loading');
@@ -74,7 +79,7 @@
   };
 
   function onResultsLoaded(data){
-    // console.log('EdlpSearch onResultsLoaded()', data);
+    console.log('EdlpSearch onResultsLoaded()', data);
     _$form.removeClass('ajax-loading');
     _$body.removeClass('ajax-loading');
 

+ 3 - 0
sites/all/modules/figli/edlp_search/src/Form/EdlpSearchForm.php

@@ -109,6 +109,9 @@ class EdlpSearchForm extends FormBase {
    */
   public function validateForm(array &$form, FormStateInterface $form_state) {
     parent::validateForm($form, $form_state);
+    // if (strlen($form_state->getValue('keys')) < 3) {
+    //   $form_state->setErrorByName('keys', $this->t('Search string is to short. Please enter more than 3 characters.'));
+    // }
   }
 
   /**