PageSourceSearch

https://www.dprd.ulaval.ca/wp-content/plugins/FUL-vitrine-recherche/js/vitrine-recherche.js?ver=7.1.2

js ulaval.ca collected 2026-09-24 08:26:16 UTC 4,221 bytes, 156 lines download raw bytes

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.