1(function($) { 2 const filterForm = $('#filter-projets'); 3 const filterSelector = $('#filter-projets input'); 4 const responseContainer = $('#response-projets'); 5 const btn_allProjects = $('#checkbox_tous_projets'); 6 const label_allProjects = $('label[for="checkbox_tous_projets"]'); 7 8 9 10 //Début fonction pour récupérer valeur dans URL de type ?valeur=maVariable&valeur2=maVariable2.. 11 function getUrlParams(splitter) { 12 let currentUrl = window.location.href; 13 let decodeURL = decodeURIComponent( currentUrl ); 14 15 let cleanUrl = decodeURL.substring( decodeURL.indexOf('?') + 1 ); //permet de convertir les caractère comme %30%9 en lettre 16 let splitUrl = cleanUrl.split( splitter ); 17 18 return splitUrl; 19 } 20 21 function changeParamsToObject() { 22 let splitUrl = getUrlParams("&"); 23 let params = {}; 24 25 for (var i = 0; i < splitUrl.length; i++) { 26 let thisElement = splitUrl[i]; 27 let keyValue = thisElement.substring(0,thisElement.indexOf('=')); 28 let paramValue = thisElement.substring(thisElement.indexOf('=') + 1); 29 paramValueClean = paramValue.split("+").join(" "); 30 params[ keyValue ] = paramValueClean; 31 } 32 33 return params; 34 } 35 36 function findValueOfParams(queryValue) { 37 let objectAllParams = changeParamsToObject(); 38 39 let paramValue = objectAllParams[queryValue]; 40 41 return paramValue; 42 } 43 44 function writeValue(query,field) { 45 let val = findValueOfParams(query); 46 if ( val ) { 47 field.val( val ); 48 } 49 } 50 // fin 51 52 function select_faculty() { 53 let fac = findValueOfParams('fac'); 54 let checkboxValue = '#checkbox_' + fac; 55 let checkboxSelector = $(checkboxValue); 56 57 if (fac !== undefined) { 58 checkboxSelector.trigger("click"); 59 btn_allProjects.removeAttr('checked'); 60 label_allProjects.removeClass('disabled'); 61 } 62 63 } 64 65 function ajax_load_data() { 66 67 $.ajax({ 68 url:filterForm.attr('action'), 69 data:filterForm.serialize(), // form data 70 type:filterForm.attr('method'), // POST 71 beforeSend:function(xhr){ 72 responseContainer.html('<i class="fas fa-circle-notch fast-spin"></i>'); // changing the button label 73 }, 74 success:function(data){ 75 76 data = (data.charAt(data.length-1) === "0") ? data.slice(0, -1) : data; 77 78 //filterForm.find('button').text('Apply filter'); // changing the button label back 79 // console.log(data); 80 81 responseContainer.html(data); // insert data 82 page_selector(); 83 } 84 }); 85 86 return false; 87 } 88 89 function page_selector() { 90 let pageSelector = $('.project-page-number'); 91 pageSelector.on('click', function(){ 92 let pageSelected = $('.page-selected'); 93 94 pageSelected.removeClass('page-selected'); 95 96 let pageNumber = $(this).attr('id'); 97 98 $(this).addClass('page-selected'); 99 100 if (pageNumber.includes('project-page-value-top-')) { 101 pageNumber = pageNumber.replace('project-page-value-top-',''); 102 $('#project-page-value-bottom-'+pageNumber).addClass('page-selected'); 103 } else { 104 pageNumber = pageNumber.replace('project-page-value-bottom-',''); 105 $('#project-page-value-top-'+pageNumber).addClass('page-selected'); 106 } 107 show_page(pageNumber); 108 }); 109 } 110 111 function show_page(pageNumber) { 112 let start = maxPerPage*(pageNumber-1); 113 let end = maxPerPage*pageNumber-1; 114 115 hideAllPages(); 116 showSelectedPages(start,end); 117 } 118 119 function hideAllPages() { 120 let eachProject = $('#liste-projet-vitrine li'); 121 122 eachProject.addClass('hidden-list-item'); 123 } 124 125 function showSelectedPages(start,end) { 126 let eachProject = $('#liste-projet-vitrine li'); 127 128 for (var i = start; i <= end && i <= eachProject.length ; i++) { 129 eachProject.eq(i).removeClass('hidden-list-item'); 130 } 131 132 $([document.documentElement, document.body]).animate({ 133 scrollTop: $("#projets").offset().top 134 }, 1000); 135 } 136 137 function handlers() { 138 btn_allProjects.on('click', function(){ 139 filterSelector.not('#checkbox_tous_projets').removeAttr('checked'); 140 label_allProjects.addClass('disabled'); 141 }); 142 filterSelector.not('#checkbox_tous_projets').on('click', function(){ 143 btn_allProjects.removeAttr('checked'); 144 label_allProjects.removeClass('disabled'); 145 }); 146 } 147 148 $(document).ready(function() { 149 filterForm.submit(ajax_load_data); 150 filterSelector.change(ajax_load_data); 151 select_faculty(); 152 page_selector(); 153 handlers(); 154 }); 155 156})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.