diff --git a/sites/all/modules/figli/edlp_search/assets/dist/scripts/edlp_search.min.js b/sites/all/modules/figli/edlp_search/assets/dist/scripts/edlp_search.min.js index d620521e8..d3b931337 100644 --- a/sites/all/modules/figli/edlp_search/assets/dist/scripts/edlp_search.min.js +++ b/sites/all/modules/figli/edlp_search/assets/dist/scripts/edlp_search.min.js @@ -1,4 +1,109 @@ +(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);} -_$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'});} -init();})(jQuery,Drupal,drupalSettings); \ No newline at end of file + var settings = drupalSettings.edlp_search; + var _$body = $('body'); + 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="langues"]', this).val(); + + // genres + args.genres = $('input[name="genres"]', this).val(); + + //console.log('EdlpSearch onSubmitForm() : args',args); + + loadResults(args); + + return false; + }; + + function loadResults(args){ + //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); diff --git a/sites/all/modules/figli/edlp_search/src/Controller/EdlpSearchController.php b/sites/all/modules/figli/edlp_search/src/Controller/EdlpSearchController.php index 2a593b6ad..c62b96bed 100644 --- a/sites/all/modules/figli/edlp_search/src/Controller/EdlpSearchController.php +++ b/sites/all/modules/figli/edlp_search/src/Controller/EdlpSearchController.php @@ -10,6 +10,9 @@ use Drupal\Core\Url; use Drupal\Core\Language\LanguageInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\JsonResponse; +// use Drupal\Core\Cache\CacheableJsonResponse; +// use Drupal\Core\Cache\CacheableMetadata; +use Drupal\core\render\RenderContext; /** * Class EdlpSearchController. diff --git a/sites/all/modules/figli/edlp_studio/assets/dist/scripts/edlp_studio.min.js b/sites/all/modules/figli/edlp_studio/assets/dist/scripts/edlp_studio.min.js index 02a7660bb..a01cc879c 100644 --- a/sites/all/modules/figli/edlp_studio/assets/dist/scripts/edlp_studio.min.js +++ b/sites/all/modules/figli/edlp_studio/assets/dist/scripts/edlp_studio.min.js @@ -1,10 +1,408 @@ +(function ($, Drupal, drupalSettings) { -(function($,Drupal,drupalSettings){var _settings=drupalSettings.edlp_studio;var $composer;function init(){initEvents();initStudio();};function initEvents(){$('body').on('new-audio-cartel-loaded',initAjaxChutierLinks).on('new-content-ajax-loaded',initStudio).on('all-modal-closed',initStudio);};function initStudio(){if($('#studio-ui').length){$composer=$('.composition_ui .composer','#studio-ui');initAjaxChutierLinks();initAjaxCompoLinks();initDragAndDropUI();$('body').trigger({'type':'studio-initialized'});}else{$('body').trigger({'type':'studio-not-active'});}} -function initAjaxChutierLinks(){$('.chutier-ajax-link:not(.ajax-enabled)').addClass('ajax-enabled').on('click',onClickChutierAjaxLink);};function onClickChutierAjaxLink(e){e.preventDefault();addRemoveToChutier($(this));return false;};function addRemoveToChutier($link){var ajax_path=$link.attr('data-drupal-link-system-path');var path=window.location.origin+drupalSettings.path.baseUrl+ajax_path;$link.addClass('ajax-loading');$.getJSON(path,{}).done(function(data){onActionToChutierDone($link,data);}).fail(function(jqxhr,textStatus,error){onErrorActionToChutier(jqxhr,textStatus,error,$link);});};function onActionToChutierDone($link,data){$('body').trigger({'type':'chutier-action-done','action_done':data.action_done,'new_action':data.action_done=='add'?'remove':'add','target_id':$link.attr('target_id'),});$link.replaceWith(data.new_link);initAjaxChutierLinks();updateStudioChutier();};function onErrorActionToChutier(jqxhr,textStatus,error,$link){void 0;};function initAjaxCompoLinks(){$('.new-composition-link:not(.ajax-enabled)').on('click',onClickNewCompoLink).addClass('ajax-enabled');$('.composition-link:not(.ajax-enabled)').on('click',onClickCompoLink).addClass('ajax-enabled');$('.delete-composition-link:not(.ajax-enabled)').on('click',onClickDeleteCompoLink).addClass('ajax-enabled');};function onClickCompoLink(e){e.preventDefault();openCompo($(this));return false;};function openCompo($link){var cid=$link.attr('cid');var ajax_path=_settings.open_compo_ajax_url+'/'+cid;var path=window.location.origin+Drupal.url(ajax_path);$link.addClass('ajax-loading');$composer.addClass('ajax-loading');$.getJSON(path,{}).done(function(data){onOpenCompoDone(data,$link);}).fail(function(jqxhr,textStatus,error){onErrorOpenCompo(jqxhr,textStatus,error,$link);});};function onOpenCompoDone(data,$link){$('.composition-link').removeClass('is-active');$link.removeClass('ajax-loading').addClass('is-active');if($('.composition',$composer).length){$('.composition',$composer).replaceWith(data.compo);}else{$('header',$composer).after(data.compo);} -$composer.removeClass('ajax-loading');initDragAndDropUI();$('body').trigger({'type':'on-studio-compo-opened'});};function onErrorOpenCompo(jqxhr,textStatus,error,$link){$link.removeClass('ajax-loading');void 0;};function onClickNewCompoLink(e){e.preventDefault();setInputForNewCompoName($(this));return false;};function setInputForNewCompoName($link){var $form=$('