Subversion Repositories Sites.outils-naturalistes.fr

Rev

Rev 38 | 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
function changerAccordeonOuOnglets(ongletId) {
16
 
17
  i = 0 ;
18
  max = $(".lien_onglet").length ;
38 aurelien 19
 
8 aurelien 20
  if(consultation) {
38 aurelien 21
 
22
	  if(ongletId == ongletIdEnCours && ferme == false) {
23
		  cacherTousLesOnglets();
24
		  ferme = true;
25
		  return;
26
	  }
8 aurelien 27
 
28
      $("#lien_onglet_0").parent().nextAll().each(function () {
29
	  $(this).hide();
30
      });
31
 
32
      $("#lien_onglet_"+ongletId).parent().nextAll().each(function () {
33
	  $(this).show();
34
      });
35
 
36
      $("#lien_onglet_"+(ongletId+1)).parent().nextAll().each(function () {
37
	  $(this).hide();
38
      });
39
 
34 aurelien 40
    for(i = 0 ; i <= max - 1 ; i++) {
8 aurelien 41
      	$("#lien_onglet_"+i).parent().show();
38 aurelien 42
      	$("#lien_onglet_"+i).removeClass("item_actif");
8 aurelien 43
    }
38 aurelien 44
 
45
    ferme = false;
46
    ongletIdEnCours = ongletId;
8 aurelien 47
 
48
    $("#lien_onglet_"+ongletId).addClass("item_actif");
49
    $("#fin_onglet").parent().nextAll().each(function () {
50
	  $(this).show();
38 aurelien 51
    });
8 aurelien 52
  }
53
  else {
54
 
55
      $("#lien_onglet_0").parent().parent().nextAll().each(function () {
56
	  $(this).hide();
57
      });
58
 
59
      $("#lien_onglet_"+ongletId).parent().parent().nextAll().each(function () {
60
	  $(this).show();
61
      });
62
 
63
      $("#lien_onglet_"+(ongletId+1)).parent().parent().nextAll().each(function () {
64
	  $(this).hide();
65
      });
66
 
34 aurelien 67
    for(i = 0 ; i <= max - 1 ; i++) {
8 aurelien 68
    	$("#onglet_"+i).removeClass("onglet_actif");
69
    }
70
 
38 aurelien 71
    $("#onglet_"+ongletId).addClass("onglet_actif");
8 aurelien 72
 
73
    $("#fin_onglet").parent().parent().nextAll().each(function () {
74
	  $(this).show();
75
    });
76
  }
77
}
78
 
38 aurelien 79
function cacherTousLesOnglets() {
80
	i = 0;
81
	max = $(".lien_onglet").length;
82
	$("#lien_onglet_0").parent().nextAll().each(function () {
83
		$(this).hide();
84
	});
85
 
86
    for(i = 0 ; i <= max - 1 ; i++) {
87
      	$("#lien_onglet_"+i).parent().show();
88
      	$("#lien_onglet_"+i).removeClass("item_actif")
89
    }
90
 
91
    $("#fin_onglet").parent().nextAll().each(function () {
92
  	  $(this).show();
93
    });
94
}
95
 
34 aurelien 96
function changerOngletsConsultation(idOngletConsulte) {
97
 
98
	$("#consultation_fiche").hide();
99
	$("#lien_forum_general").hide();
100
	$("#zone_commentaires").hide();
101
	$("#lien_demo_general").hide();
102
	$("#lien_telechargement_general").hide();
103
	$("#lien_forge_general").hide();
104
 
38 aurelien 105
	$("#onglet_lien_ici").removeClass("onglet_actif");
106
	$("#onglet_lien_forum").removeClass("onglet_actif");
107
	$("#onglet_lien_demo").removeClass("onglet_actif");
108
	$("#onglet_lien_forge").removeClass("onglet_actif");
109
 
110
    $("#"+idOngletConsulte).addClass("onglet_actif");
111
 
112
	if(idOngletConsulte == "onglet_lien_ici") {
34 aurelien 113
		$("#consultation_fiche").show();
114
	}
115
 
116
	if(idOngletConsulte == "onglet_lien_forum") {
117
		$("#lien_forum_general").show(); $("#zone_commentaires").show();
118
	}
119
 
120
	if(idOngletConsulte == "onglet_lien_demo") {
121
		$("#lien_demo_general").show();
122
	}
123
 
124
	if(idOngletConsulte == "onglet_lien_forge") {
125
		$("#lien_telechargement_general").show();
126
		$("#lien_forge_general").show();
127
	}
128
 
129
}
130
 
131
function initialiserLiens() {
132
 
38 aurelien 133
	lien_forge = $("#bf_lien_forge");
134
	lien_demo = $("#bf_lien_demo");
135
	lien_telechargement = $("#bf_lien_telechargement");
34 aurelien 136
 
137
	if(lien_forge.attr("value").indexOf("http://") == -1) {
38 aurelien 138
		lien_forge.attr("value","http://"+lien_forge.attr("value"));
34 aurelien 139
	}
140
 
141
	if(lien_demo.attr("value").indexOf("http://") == -1) {
38 aurelien 142
		lien_demo.attr("value","http://"+lien_demo.attr("value"));
34 aurelien 143
	}
144
 
145
	if(lien_telechargement.attr("value").indexOf("http://") == -1) {
38 aurelien 146
		lien_telechargement.attr("value","http://"+lien_telechargement.attr("value"));
34 aurelien 147
	}
148
}
149
 
8 aurelien 150
function ajouterAccordeonOuOnglets() {
151
 
38 aurelien 152
  onglets = $(".lien_onglet");
153
 
154
  ongletIdEnCours = 0;
8 aurelien 155
  consultation = false;
38 aurelien 156
  ferme = true;
8 aurelien 157
 
158
  fiche_consultation = $(".BAZ_fiche_titre_application");
159
  bouton_valider = $("input[name=\"valider\"]");
160
  if(fiche_consultation.length != 0 || bouton_valider.html() == null) {
38 aurelien 161
     consultation = true;
8 aurelien 162
  }
163
  else {
164
      htmlOnglets = '<div id="selecteur_onglets" class="onglets">   <ul id="liste_onglets">';
38 aurelien 165
      initialiserLiens();
34 aurelien 166
 
8 aurelien 167
  }
168
 
169
  for(i = 0 ; i < onglets.length; i++)
170
  {
171
    lienEnCours = onglets[i];
38 aurelien 172
    lienEnCours.setAttribute("id","lien_onglet_"+(i));
173
    if(i != onglets.length - 1) {
174
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon");
175
    }
8 aurelien 176
 
38 aurelien 177
    if(i == 0) {
178
    	//$("#lien_onglet_"+i).parent().before("<div class=\"BAZ_description BAZ_description_application fond_accordeon_limite fond_accordeon_haut\"></div>");
179
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon fond_accordeon_haut");
180
    }
181
 
182
    if(i == onglets.length - 2) {
183
    	//$("#fin_onglet").parent().after("<div class=\"BAZ_description BAZ_description_application fond_accordeon_limite fond_accordeon_bas\"></div>");
184
    	$("#lien_onglet_"+i).parent().addClass("fond_accordeon fond_accordeon_bas");
185
    }
186
 
8 aurelien 187
    if(!consultation) {
188
      htmlOnglets += '<li><a id="onglet_'+i+'" href="javascript:changerAccordeonOuOnglets('+i+','+consultation+');">'+$('#lien_onglet_'+(i)).html()+'</a></li>';
189
    }
190
  }
191
 
192
  if(!consultation) {
38 aurelien 193
    htmlOnglets += '</ul></div><hr style="clear: both; visibility: hidden">';
8 aurelien 194
    $("#formulaire").before(htmlOnglets);
195
    $(".lien_onglet").parent().hide();
196
 
197
	$("input[type=\"submit\"][name=\"valider\"]").bind("click",function(event)
198
	{
199
		event.preventDefault();
200
		validerFormulaire(true);
201
	});
202
 
13 aurelien 203
	bouton_valider = $("input[type=\"submit\"][name=\"valider\"]");
8 aurelien 204
 
13 aurelien 205
	if(bouton_valider.length != 0) {
206
		bouton_valider[0].setAttribute("title","Enregistrer la fiche et la soumettre au copil pour publication");
207
	}
208
 
209
	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\" />");
210
 
42 aurelien 211
	recherche = false;
13 aurelien 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) {
42 aurelien 379
 
380
			reponse_brute = reponse_json.match('{"success":(?:false|true,"id_fiche":[0-9]+)}') ;
381
			reponse_json = reponse_brute[0] ;
34 aurelien 382
 
383
			var reponse = eval('('+reponse_json+')');
384
 
385
			if(reponse.success == true) {
386
				window.alert('Votre fiche a été sauvegardée');
387
 
388
				// cas de la nouvelle fiche on passe en mode modification
389
				if(url_origine.indexOf("bazar_action=11") != -1) {
38 aurelien 390
					url_origine = url_origine.replace("bazar_action=11","bazar_action=13");
391
					url_origine += "&id_fiche="+reponse.id_fiche;
34 aurelien 392
				}
393
 
394
				$("#formulaire").attr("action",url_origine);
395
 
396
			}
397
			else {
398
				window.alert('Problème de sauvegarde de la fiche');
399
				$("#formulaire").attr("action",url_origine);
400
			}
401
	    };
402
 
403
		$("#formulaire").attr("action",url_ajax);
404
		$("#formulaire").ajaxSubmit(callback);
405
 
406
		$("#formulaire").attr("action",url_origine);
407
 
408
		return false ;
8 aurelien 409
	}
410
}
411
 
42 aurelien 412
$(document).ready(ajouterAccordeonOuOnglets);
413
 
414
 
415
 
416
var champsSontCaches ;
417
 
418
function ajouterLienRechercheAvancee() {
419
 
420
  champsCaches = $(".form_depliable > table > tbody > tr");
421
  var i = 1 ;
422
 
423
  champsSontCaches = true;
424
 
425
  longueur = champsCaches.length ;
426
 
427
  champsCaches.each(function() {
428
 
429
	  if(i == 2) {
430
    	  this.setAttribute("id","emplacement_recherche_avancee_base");
431
      }
432
 
433
      if(i >= 2 && i < longueur) {
434
    	  this.setAttribute("class","emplacement_recherche_avancee");
435
      }
436
      i++;
437
    });
438
 
439
  $("#emplacement_recherche_avancee_base").before("<tr id=\"cell_lien_rech_avancee\"><td><a href=# id=\"lien_rech_avancee\">+ recherche avancee</a></td></tr>");
440
  $(".emplacement_recherche_avancee").hide();
441
 
442
  $("#lien_rech_avancee").click(function (champsSontCaches) {
443
	  cacherAfficherLiensRechercheAvancee();
444
  });
445
 
446
}
447
 
448
function cacherAfficherLiensRechercheAvancee() {
449
 
450
	$(".emplacement_recherche_avancee").toggle();
451
 
452
	if(champsSontCaches) {
453
		$("#lien_rech_avancee").text("-  recherche simple");
454
		champsSontCaches = false;
455
	} else {
456
		$("#lien_rech_avancee").text("+ recherche avancee");
457
		champsSontCaches = true;
458
	}
459
}
460
 
461
$(".form_depliable").ready(ajouterLienRechercheAvancee);