Subversion Repositories Sites.outils-naturalistes.fr

Rev

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

Rev Author Line No. Line
3 david 1
/*
2
 * Application for Facebox (for jQuery)
3
 * Adaptation pour le Squelette SPIP
4
 * Ce fichier peut également contenir toutes les scripts custom
5
 * (06/01/2008)
6
 * @requires jQuery v1.2 or later
7
*/
8
jQuery(document).ready(function($) {
9
  $('a[rel*=facebox]').facebox({
10
    loading_image : 'squelettes/images/loading.gif',
11
    close_image   : 'squelettes/images/closelabel.gif'
38 aurelien 12
  });
13
});
8 aurelien 14
 
15
 
16
function changerAccordeonOuOnglets(ongletId) {
17
 
18
  i = 0 ;
19
  max = $(".lien_onglet").length ;
38 aurelien 20
 
8 aurelien 21
  if(consultation) {
38 aurelien 22
 
23
	  if(ongletId == ongletIdEnCours && ferme == false) {
24
		  cacherTousLesOnglets();
25
		  ferme = true;
26
		  return;
27
	  }
8 aurelien 28
 
29
      $("#lien_onglet_0").parent().nextAll().each(function () {
30
	  $(this).hide();
31
      });
32
 
33
      $("#lien_onglet_"+ongletId).parent().nextAll().each(function () {
34
	  $(this).show();
35
      });
36
 
37
      $("#lien_onglet_"+(ongletId+1)).parent().nextAll().each(function () {
38
	  $(this).hide();
39
      });
40
 
34 aurelien 41
    for(i = 0 ; i <= max - 1 ; i++) {
8 aurelien 42
      	$("#lien_onglet_"+i).parent().show();
38 aurelien 43
      	$("#lien_onglet_"+i).removeClass("item_actif");
8 aurelien 44
    }
38 aurelien 45
 
46
    ferme = false;
47
    ongletIdEnCours = ongletId;
8 aurelien 48
 
49
    $("#lien_onglet_"+ongletId).addClass("item_actif");
50
    $("#fin_onglet").parent().nextAll().each(function () {
51
	  $(this).show();
38 aurelien 52
    });
8 aurelien 53
  }
54
  else {
55
 
56
      $("#lien_onglet_0").parent().parent().nextAll().each(function () {
57
	  $(this).hide();
58
      });
59
 
60
      $("#lien_onglet_"+ongletId).parent().parent().nextAll().each(function () {
61
	  $(this).show();
62
      });
63
 
64
      $("#lien_onglet_"+(ongletId+1)).parent().parent().nextAll().each(function () {
65
	  $(this).hide();
66
      });
67
 
34 aurelien 68
    for(i = 0 ; i <= max - 1 ; i++) {
8 aurelien 69
    	$("#onglet_"+i).removeClass("onglet_actif");
70
    }
71
 
38 aurelien 72
    $("#onglet_"+ongletId).addClass("onglet_actif");
8 aurelien 73
 
74
    $("#fin_onglet").parent().parent().nextAll().each(function () {
75
	  $(this).show();
76
    });
77
  }
78
}
79
 
38 aurelien 80
function cacherTousLesOnglets() {
81
	i = 0;
82
	max = $(".lien_onglet").length;
83
	$("#lien_onglet_0").parent().nextAll().each(function () {
84
		$(this).hide();
85
	});
86
 
87
    for(i = 0 ; i <= max - 1 ; i++) {
88
      	$("#lien_onglet_"+i).parent().show();
89
      	$("#lien_onglet_"+i).removeClass("item_actif")
90
    }
91
 
92
    $("#fin_onglet").parent().nextAll().each(function () {
93
  	  $(this).show();
94
    });
95
}
96
 
34 aurelien 97
function changerOngletsConsultation(idOngletConsulte) {
98
 
99
	$("#consultation_fiche").hide();
100
	$("#lien_forum_general").hide();
101
	$("#zone_commentaires").hide();
102
	$("#lien_demo_general").hide();
103
	$("#lien_telechargement_general").hide();
104
	$("#lien_forge_general").hide();
105
 
38 aurelien 106
	$("#onglet_lien_ici").removeClass("onglet_actif");
107
	$("#onglet_lien_forum").removeClass("onglet_actif");
108
	$("#onglet_lien_demo").removeClass("onglet_actif");
109
	$("#onglet_lien_forge").removeClass("onglet_actif");
110
 
111
    $("#"+idOngletConsulte).addClass("onglet_actif");
112
 
113
	if(idOngletConsulte == "onglet_lien_ici") {
34 aurelien 114
		$("#consultation_fiche").show();
115
	}
116
 
117
	if(idOngletConsulte == "onglet_lien_forum") {
118
		$("#lien_forum_general").show(); $("#zone_commentaires").show();
119
	}
120
 
121
	if(idOngletConsulte == "onglet_lien_demo") {
122
		$("#lien_demo_general").show();
123
	}
124
 
125
	if(idOngletConsulte == "onglet_lien_forge") {
126
		$("#lien_telechargement_general").show();
127
		$("#lien_forge_general").show();
128
	}
129
 
130
}
131
 
132
function initialiserLiens() {
133
 
38 aurelien 134
	lien_forge = $("#bf_lien_forge");
135
	lien_demo = $("#bf_lien_demo");
136
	lien_telechargement = $("#bf_lien_telechargement");
34 aurelien 137
 
138
	if(lien_forge.attr("value").indexOf("http://") == -1) {
38 aurelien 139
		lien_forge.attr("value","http://"+lien_forge.attr("value"));
34 aurelien 140
	}
141
 
142
	if(lien_demo.attr("value").indexOf("http://") == -1) {
38 aurelien 143
		lien_demo.attr("value","http://"+lien_demo.attr("value"));
34 aurelien 144
	}
145
 
146
	if(lien_telechargement.attr("value").indexOf("http://") == -1) {
38 aurelien 147
		lien_telechargement.attr("value","http://"+lien_telechargement.attr("value"));
34 aurelien 148
	}
149
}
150
 
8 aurelien 151
function ajouterAccordeonOuOnglets() {
152
 
38 aurelien 153
  onglets = $(".lien_onglet");
154
 
155
  ongletIdEnCours = 0;
8 aurelien 156
  consultation = false;
38 aurelien 157
  ferme = true;
8 aurelien 158
 
159
  fiche_consultation = $(".BAZ_fiche_titre_application");
160
  bouton_valider = $("input[name=\"valider\"]");
161
  if(fiche_consultation.length != 0 || bouton_valider.html() == null) {
38 aurelien 162
     consultation = true;
8 aurelien 163
  }
164
  else {
165
      htmlOnglets = '<div id="selecteur_onglets" class="onglets">   <ul id="liste_onglets">';
38 aurelien 166
      initialiserLiens();
34 aurelien 167
 
8 aurelien 168
  }
169
 
170
  for(i = 0 ; i < onglets.length; i++)
171
  {
172
    lienEnCours = onglets[i];
38 aurelien 173
    lienEnCours.setAttribute("id","lien_onglet_"+(i));
174
    if(i != onglets.length - 1) {
175
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon");
176
    }
8 aurelien 177
 
38 aurelien 178
    if(i == 0) {
179
    	//$("#lien_onglet_"+i).parent().before("<div class=\"BAZ_description BAZ_description_application fond_accordeon_limite fond_accordeon_haut\"></div>");
180
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon fond_accordeon_haut");
181
    }
182
 
183
    if(i == onglets.length - 2) {
184
    	//$("#fin_onglet").parent().after("<div class=\"BAZ_description BAZ_description_application fond_accordeon_limite fond_accordeon_bas\"></div>");
185
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon fond_accordeon_bas");
186
    }
187
 
8 aurelien 188
    if(!consultation) {
189
      htmlOnglets += '<li><a id="onglet_'+i+'" href="javascript:changerAccordeonOuOnglets('+i+','+consultation+');">'+$('#lien_onglet_'+(i)).html()+'</a></li>';
190
    }
191
  }
192
 
193
  if(!consultation) {
38 aurelien 194
    htmlOnglets += '</ul></div><hr style="clear: both; visibility: hidden">';
8 aurelien 195
    $("#formulaire").before(htmlOnglets);
196
    $(".lien_onglet").parent().hide();
197
 
198
	$("input[type=\"submit\"][name=\"valider\"]").bind("click",function(event)
199
	{
200
		event.preventDefault();
201
		validerFormulaire(true);
202
	});
203
 
13 aurelien 204
	bouton_valider = $("input[type=\"submit\"][name=\"valider\"]");
8 aurelien 205
 
13 aurelien 206
	if(bouton_valider.length != 0) {
207
		bouton_valider[0].setAttribute("title","Enregistrer la fiche et la soumettre au copil pour publication");
208
	}
209
 
210
	bouton_valider.before("<input type=\"button\" title=\"Sauvegarder la fiche sans la v&eacute;rifier (celle ci ne sera pas publi&eacute;e)\" id=\"sauvegarde_form\" onclick=\"validerFormulaire(false)\" value=\"sauvegarder\" />");
211
 
212
 
8 aurelien 213
  }
214
  else
215
  {
34 aurelien 216
	  // fabrication du contenu de l'onglet Application
38 aurelien 217
 	  lien_ici = '<li><a id="onglet_lien_ici" href="#">Application</a></li>';
8 aurelien 218
	  htmlOnglets = '<div id="selecteur_onglets" class="onglets">   <ul id="liste_onglets">';
38 aurelien 219
	  htmlOnglets += lien_ici;
34 aurelien 220
 
221
	  // fabrication du contenu de l'onglet Communauté
38 aurelien 222
	  htmlOnglets += '<li><a id="onglet_lien_forum" href="#">Communauté</a></li>';
34 aurelien 223
 
224
	  // On crée le lien qui sera placé au dessus de la liste des commentaires
38 aurelien 225
	  laius_forum = 'Prochainement, un forum sera mis à votre disposition afin de vous permettre de partager vos commentaires avec la communauté d\'une manière plus complète ';
226
	  lien_forum_general = "<div id=\"lien_forum_general\"><h2> Forum</h2><p>"+laius_forum+"</p></div><hr style=\"clear: both; visibility: hidden\">";
227
	  $("#zone_commentaires").after(lien_forum_general);
34 aurelien 228
 
229
	  // fabrication du contenu de l'onglet espace de démo
38 aurelien 230
	  htmlOnglets += '<li><a id="onglet_lien_demo" href="#">Espace d&eacute;mo</a></li>';
34 aurelien 231
 
232
	  // on récupère le lien vers l'espace démo et on le cache
233
	  lien_demo =  $("#bf_lien_demo_description");
234
	  if(lien_demo.html() == null || lien_demo.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
38 aurelien 235
		  lien_demo_html = " ";
13 aurelien 236
	  }
237
	  else {
38 aurelien 238
		  lien_demo_html = "<a href="+lien_demo.html()+" >"+lien_demo.html()+"</a>";
13 aurelien 239
	  }
34 aurelien 240
	  lien_demo.hide();
241
 
242
	  // on récupère le commentaire associé et on le cache aussi
243
	  comm_demo =  $("#bf_com_demo_description");
244
	  if(comm_demo.html() == null) {
38 aurelien 245
		  comm_demo_html = " Aucune description renseignée ";
13 aurelien 246
	  }
247
	  else {
34 aurelien 248
		  comm_demo_html = comm_demo.html();
13 aurelien 249
	  }
34 aurelien 250
	  comm_demo.hide();
251
 
38 aurelien 252
	  lien_demo_general = "<div id=\"lien_demo_general\"><h2> Espace de démonstration</h2><p id=laius_demo>"+comm_demo_html+"</p>"+lien_demo_html+"</div><hr style=\"clear: both; visibility: hidden\">";
253
	  $("#zone_commentaires").after(lien_demo_general);
34 aurelien 254
 
255
	  // fabrication du contenu de l'onglet téléchargement et forge
38 aurelien 256
	  htmlOnglets += '<li><a id="onglet_lien_forge" href="#">T&eacute;l&eacute;chargement et forge</a></li>';
34 aurelien 257
 
258
	  // on récupère les liens vers l'espace téléchargement et forge et on les cache
259
	  lien_forge =  $("#bf_lien_forge_description");
260
	  if(lien_forge.html() == null || lien_forge.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
38 aurelien 261
		  lien_forge_html = " ";
13 aurelien 262
	  }
263
	  else {
38 aurelien 264
		  lien_forge_html = "<a href="+lien_forge.html()+" >"+lien_forge.html()+"</a>";
13 aurelien 265
	  }
34 aurelien 266
	  lien_forge.hide();
267
 
268
	  lien_telechargement = $("#bf_lien_telechargement_description");
269
	  if(lien_telechargement.html() == null || lien_telechargement.html().replace(/^\s+/g,'').replace(/\s+$/g,'') == "http://") {
38 aurelien 270
		  lien_telechargement_html = " ";
34 aurelien 271
	  }
272
	  else {
38 aurelien 273
		  lien_telechargement_html = "<a href="+lien_telechargement.html()+" >"+lien_telechargement.html()+"</a>";
34 aurelien 274
	  }
275
	  lien_telechargement.hide();
276
 
277
	  // on récupère les commentaires associés à l'espace téléchargement et forge et on les cache
278
	  comm_forge = $("#bf_com_forge_description");
279
	  if(comm_forge.html() == null) {
38 aurelien 280
		  comm_forge_html = " Aucune description renseignée ";
34 aurelien 281
	  }
282
	  else {
283
		  comm_forge_html = comm_forge.html();
284
	  }
38 aurelien 285
	  comm_forge.hide();
34 aurelien 286
 
287
	  comm_telechargement = $("#bf_com_telechargement_description");
288
	  if(comm_telechargement.html() == null) {
289
		  comm_telechargement_html = " Aucune description renseignée " ;
290
	  }
291
	  else {
292
		  comm_telechargement_html = comm_telechargement.html();
293
	  }
294
	  comm_telechargement.hide();
295
 
38 aurelien 296
	  lien_telechargement_general = "<div id=\"lien_telechargement_general\"><h2> Téléchargement </h2><p id=laius_telechargement>"+comm_telechargement_html+"</p>"+lien_telechargement_html+"</div><hr style=\"clear: both; visibility: hidden\"><br />";
297
	  lien_forge_general = "<div id=\"lien_forge_general\"><h2> Forge </h2> <p id=laius_forge>"+comm_forge_html+"</p>"+lien_forge_html+"</div><hr style=\"clear: both; visibility: hidden\">";
34 aurelien 298
 
299
	  $("#lien_demo_general").after(lien_telechargement_general+lien_forge_general);
300
 
301
	  // on ferme la liste des onglets
38 aurelien 302
	  htmlOnglets += '</ul></div><hr style="clear: both; visibility: hidden">';
8 aurelien 303
 
34 aurelien 304
	  // et on la positionne à l'endroit indiqué par un id spécifique
305
	  $("#ancre_onglets").after(htmlOnglets);
8 aurelien 306
 
34 aurelien 307
	  // on cache la rubrique lien
308
	  $("#lien_onglet_"+(onglets.length - 1)).hide();
309
 
310
 
311
	  // et tous les intitulés concernant les information de la fiche qui ont été
312
	  // déplacées dans les onglet
8 aurelien 313
	  $("#bf_lien_forge_rubrique").hide();
314
	  $("#bf_lien_demo_rubrique").hide();
315
	  $("#bf_lien_forum_rubrique").hide();
34 aurelien 316
	  $("#bf_com_demo_rubrique").hide();
317
	  $("#bf_com_forge_rubrique").hide();
318
	  $("#bf_com_telechargement_rubrique").hide();
8 aurelien 319
 
34 aurelien 320
	  // on ajoute ensuite la gestion du clic pour le changement d'onglet
321
	  $("#onglet_lien_ici").bind("click", function() { changerOngletsConsultation("onglet_lien_ici"); });
322
	  $("#onglet_lien_forum").bind("click", function() { changerOngletsConsultation("onglet_lien_forum"); });
323
	  $("#onglet_lien_demo").bind("click", function() { changerOngletsConsultation("onglet_lien_demo"); });
324
	  $("#onglet_lien_forge").bind("click", function() { changerOngletsConsultation("onglet_lien_forge"); });
325
 
326
	  // et enfin on laisse visible quel le contenu du premier onglet
327
	  changerOngletsConsultation("onglet_lien_ici");
8 aurelien 328
  }
329
 
330
  $(".BAZ_bulle_corps_application").before('<hr style="clear: both; visibility: hidden">');
331
 
332
  for(j = 0 ; j < onglets.length; j++)
333
  {
38 aurelien 334
    ajouterListenersAccordeonOuOnglets(j,consultation);
8 aurelien 335
  }
34 aurelien 336
 
337
  cacherAfficherLiensListe(false);
38 aurelien 338
  if(consultation) {
339
	  cacherTousLesOnglets();
340
  } else {
341
	  changerAccordeonOuOnglets(0,consultation);
342
  }
8 aurelien 343
}
344
 
34 aurelien 345
function cacherAfficherLiensListe(afficher) {
346
 
38 aurelien 347
	max = $(".lien_onglet").length;
34 aurelien 348
 
349
	if(afficher == true) {
350
 
351
	}
352
	else {
353
		$("#lien_onglet_"+(max)).parent().nextAll().each(function () {
354
			  $(this).hide();
355
		});
356
	}
357
}
358
 
8 aurelien 359
function ajouterListenersAccordeonOuOnglets(id,consultation) {
360
  if(consultation) {
361
    $("#lien_onglet_"+id).bind("click", function() {changerAccordeonOuOnglets(id,consultation);});
362
  }
363
}
364
 
365
function validerFormulaire(verifier) {
366
	if(verifier == true) {
367
		try { if(validate_formulaire(document.getElementById("formulaire"))) { $("#formulaire").submit();}  } catch(e) { window.alert(e.message); return true; };
368
	}
369
	else {
34 aurelien 370
 
38 aurelien 371
		var url_origine = $("#formulaire").attr("action");
34 aurelien 372
 
38 aurelien 373
		modif = false;
34 aurelien 374
 
38 aurelien 375
		url_ajax = $("#formulaire").attr("action");
376
		url_ajax += "&valider_fiche=0";
34 aurelien 377
 
378
		var callback = function(reponse_json) {
379
 
380
			var reponse = eval('('+reponse_json+')');
381
 
382
			if(reponse.success == true) {
383
				window.alert('Votre fiche a été sauvegardée');
384
 
385
				// cas de la nouvelle fiche on passe en mode modification
386
				if(url_origine.indexOf("bazar_action=11") != -1) {
38 aurelien 387
					url_origine = url_origine.replace("bazar_action=11","bazar_action=13");
388
					url_origine += "&id_fiche="+reponse.id_fiche;
34 aurelien 389
				}
390
 
391
				$("#formulaire").attr("action",url_origine);
392
 
393
			}
394
			else {
395
				window.alert('Problème de sauvegarde de la fiche');
396
				$("#formulaire").attr("action",url_origine);
397
			}
398
	    };
399
 
400
		$("#formulaire").attr("action",url_ajax);
401
		$("#formulaire").ajaxSubmit(callback);
402
 
403
		$("#formulaire").attr("action",url_origine);
404
 
405
		return false ;
8 aurelien 406
	}
407
}
408
 
409
$(document).ready(ajouterAccordeonOuOnglets);