Subversion Repositories eFlore/Applications.cel

Rev

Rev 3829 | Rev 3961 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3631 idir 1
function WidgetPhoto( proprietes ) {
2
	if  ( this.valOk( proprietes ) ) {
3
		this.id              = proprietes.id;
4
		this.galerieId       = proprietes.galerieId;
5
	}
6
}
7
 
8
WidgetPhoto.prototype = new WidgetPhotoCommun();
9
 
10
WidgetPhoto.prototype.initTpl = function() {
11
	$('.grid').masonry({
12
	  itemSelector: '.grid-item',
13
	  columnWidth: '.grid-sizer',
14
	  gutter: 10,
15
	  percentPosition: true
16
	});
3829 idir 17
 
3631 idir 18
};
19
 
20
WidgetPhoto.prototype.initEvts = function() {
21
	const lthis = this;
22
	const $thisGalerie = $( '#cel-photo-contenu' + this.id );
23
	var url   = '',
24
		focus = $( '#print_content' );
25
 
26
	$thisGalerie.on( 'click', 'a.cel-img, a.cel-img-contact', function( event ) {
27
		event.preventDefault();
28
		var lienImage = this.href;
29
 
30
		if ( !/contact/.test( this.className ) ) {
31
			url = '?mode=popup&url_image=' + lienImage + '&galerie_id=' + lthis.galerieId;
32
			url += '&popup_url=' + encodeURIComponent( url );
33
		} else {
34
			url = lienImage;
35
		}
36
		lthis.chargerContenuModale( url );
37
	});
38
	$( '.bouton-plus-filtres', $thisGalerie ).on( 'click', function( event ) {
39
		event.preventDefault();
40
		$( '.autres-filtres, .plus, .moins', $thisGalerie ).toggleClass( 'hidden' );
41
	});
42
	$( '.bouton-fermer-filtres', $thisGalerie ).on( 'click', function( event ) {
43
		event.preventDefault();
44
		$( '.autres-filtres, .bouton-plus-filtres .moins', $thisGalerie ).addClass( 'hidden' );
45
		$( '.bouton-plus-filtres .plus', $thisGalerie ).removeClass( 'hidden' );
46
	});
3960 julien 47
 
48
	lthis.rechercher();
3631 idir 49
};
3960 julien 50
 
51
WidgetPhoto.prototype.rechercher = function(){
52
	const lthis = this;
53
	$("#bouton-rechercher-1").click(function(event){
54
		event.preventDefault();
55
		var rechercheValue = $('#champ-recherche-1').val();
56
		lthis.lancerLaRecherche(rechercheValue, "recherche");
57
	})
58
 
59
	$("#champ-recherche-1").keyup(function(event) {
60
		if (event.key === "Enter") {
61
			event.preventDefault();
62
			var rechercheValue = $('#champ-recherche-1').val();
63
			lthis.lancerLaRecherche(rechercheValue, "recherche");
64
		}
65
	});
66
 
67
	$(".bloc-filtre input").keyup(function (event){
68
		if (event.key === "Enter") {
69
			event.preventDefault();
70
			var rechercheValue = $(this).val();
71
			var filterName = $(this).attr('name');
72
			lthis.lancerLaRecherche(rechercheValue, filterName);
73
		}
74
	})
75
 
76
	$(".bloc-filtre #referentiel").on("change", function (event){
77
		event.preventDefault();
78
		var rechercheValue = $(this).val();
79
		var filterName = $(this).attr('name');
80
		lthis.lancerLaRecherche(rechercheValue, filterName);
81
	})
82
 
83
	$(".bloc-filtre #date_deb").on("change", function (event){
84
		event.preventDefault();
85
		var rechercheValue = $(this).val();
86
		lthis.lancerLaRecherche(rechercheValue, "date_deb");
87
	})
88
 
89
	$(".bloc-filtre #date_fin").on("change", function (event){
90
		event.preventDefault();
91
		var rechercheValue = $(this).val();
92
		lthis.lancerLaRecherche(rechercheValue, "date_fin");
93
	})
94
 
95
	$(".bloc-filtre input[type='checkbox']").change(function() {
96
		var filterName = $(this).attr('name');
97
		var isChecked = $(this).is(':checked');
98
		if (isChecked) {
99
			lthis.updateURLWithCheckboxValue(isChecked, filterName);
100
		} else {
101
			lthis.removeURLParameter(filterName);
102
		}
103
	});
104
}
105
 
106
WidgetPhoto.prototype.lancerLaRecherche = function(rechercheValue, filterName){
107
	var url = window.location.href;
108
	var parameter = filterName + "=" + encodeURIComponent( rechercheValue );
109
 
110
	// Utiliser une expression régulière pour rechercher le paramètre "recherche=" dans l'URL
111
	var regex = new RegExp('(\\?|&)+' + filterName + '=([^&]*)');
112
 
113
	// Vérifier si le paramètre "recherche=" existe dans l'URL initial
114
	if (regex.test(url)) {
115
		// Remplacer le paramètre existant par le nouveau paramètre
116
		url = url.replace(regex, "$1" + parameter);
117
	} else {
118
		// Ajouter le nouveau paramètre à la fin de l'URL
119
		url.indexOf("?") !== -1 ? url += "&" + parameter : url += "?" + parameter;
120
	}
121
 
122
	// Recharger la page avec le nouvel URL
123
	window.location.replace(url);
124
}
125
 
126
WidgetPhoto.prototype.updateURLWithCheckboxValue = function(isChecked, filterName) {
127
	var url = window.location.href;
128
	var parameter = filterName + "=" + (isChecked ? "true" : "false");
129
	var regex = new RegExp('(\\?|&)+' + filterName + '=(true|false)');
130
 
131
	if (regex.test(url)) {
132
		url = url.replace(regex, "$1" + parameter);
133
	} else {
134
		url.indexOf("?") !== -1 ? url += "&" + parameter : url += "?" + parameter;
135
	}
136
 
137
	// Rediriger vers la nouvelle URL
138
	window.location.replace(url);
139
}
140
 
141
WidgetPhoto.prototype.removeURLParameter = function(filterName) {
142
	var url = window.location.href;
143
	var regex = new RegExp('(\\?|&)' + filterName + '=(true|false)(\\?|&|$)');
144
 
145
	url = url.replace(regex, function(match, p1, p2, p3) {
146
		switch (p1){
147
			case "?":
148
				return p3 === '&' ? '?' : '';
149
			case "&":
150
				return p3 === '&' ? '&' : '';
151
			default :
152
				return match;
153
		}
154
	});
155
 
156
	// Rediriger vers la nouvelle URL
157
	window.location.replace(url);
158
};