Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev Author Line No. Line
143 delphine 1
<h1>Fiche</h1>
201 gduche 2
<style>
3
	#zone_contenu_fiche {
203 gduche 4
		border:solid 1px #DDD;
5
		border-width:0px 1px 1px 1px;
201 gduche 6
		width:100%;
7
		min-height:400px;
203 gduche 8
		clear:left;
9
 
201 gduche 10
	}
11
 
214 aurelien 12
	.module {margin: 0 1em 0.5em 0; width: 99%;}
201 gduche 13
	.module .titre{ margin: 0.3em; padding-bottom: 4px; padding-left: 0.2em; cursor:pointer;}
14
	.module .titre .ui-icon { float: right; }
15
	.module .contenu { padding: 0.4em; }
16
 
214 aurelien 17
	.colonne {float:left; padding-bottom:100px; width:32%; margin: 0 4px;}
201 gduche 18
 
19
	.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
20
	.ui-sortable-placeholder * { visibility: hidden; }
21
 
22
	#zone_onglets ul li {list-style:none}
23
	.lienToggle {cursor:pointer}
24
 
25
 
26
	#dialog label, #dialog input { display:block; }
27
	#dialog label { margin-top: 0.5em; }
28
	#dialog input, #dialog textarea { width: 95%; }
211 aurelien 29
	#zone_onglets { margin-top: 1em; padding-right: 5px; border-width: 1px 1px 0 1px; border-radius:0; width:99%; font-size:12px}
203 gduche 30
	#zone_onglets li {float:left}
201 gduche 31
	#zone_onglets li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
214 aurelien 32
	#zone_onglets li a.lien-onglet {overflow: hidden; text-decoration: none; border-bottom: none;}
213 aurelien 33
	#zone_onglets #ongletEtPlus { cursor: pointer; float:right; z-index:2001;}
34
	#zone_onglets #ongletEtPlus a { border-bottom: none;}
211 aurelien 35
 
36
	.elementMenuModules {
37
		display:block;
213 aurelien 38
		border: 1px solid white;
211 aurelien 39
		width: 150px;
40
		padding: 10px 10px 10px 25px;
41
		margin:0px;
42
		cursor: pointer;
43
	}
44
 
45
	.elementMenuModules:hover {
213 aurelien 46
		background-color: #FEBF01;
211 aurelien 47
	}
212 aurelien 48
 
49
	.elementMenuModulesSelectionne {
50
		background-color: #F6AF39;
51
	}
52
 
213 aurelien 53
	.menuModules {
54
		left: 495px;
55
		width: 187px;
56
		position: absolute;
57
		border: 1px solid #DCD1CC;
58
		margin: 0px;
59
		padding: 0px;
60
		top: 37px;
61
		z-index:2000;
62
		background-color: white;
63
	}
201 gduche 64
</style>
65
 
203 gduche 66
<div id="zone_onglets" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
67
	<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
214 aurelien 68
		<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="lien-onglet lien-statique" href="#fiche">Accueil</a></li>
69
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Illustrations</a></li>
70
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Description</a></li>
71
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Classification</a></li>
72
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Bibliographie</a></li>
73
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Répartition</a></li>
74
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Ethnobotanique</a></li>
75
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Statut de protection</a></li>
76
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Nomenclature</a></li>
77
		<li class="ui-state-default ui-corner-top"><a class="lien-onglet" href="#fiche">Phytosociologie</a></li>
78
		<li id="ongletEtPlus" class="ui-state-default ui-corner-top"><a class="lien-statique" href="#fiche">+</a></li>
203 gduche 79
	</ul>
211 aurelien 80
	<span id="conteneurMenuOnglets"></span>
203 gduche 81
</div>
82
 
201 gduche 83
<div id="zone_contenu_fiche">
203 gduche 84
	<div class="colonne">
85
		<div id="illustrations" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
86
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-0">Illustrations</h3>
214 aurelien 87
			<span id="contenu-0" class="contenu">
88
			Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
89
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
90
			</span>
91
		</div>
92
		<div id="description" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
93
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-1">Description</h3>
94
			<span id="contenu-0" class="contenu">
95
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
96
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
97
			</span>
98
		</div>
99
		<div id="classification" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
100
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-2">Classification</h3>
101
			<span id="contenu-0" class="contenu">
102
									Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
103
						Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
104
						Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
105
						Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
106
			</span>
107
		</div>
108
	</div>
109
	<div class="colonne">
110
		<div id="bibliographie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
111
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-3">Bibliographie</h3>
112
			<span id="contenu-0" class="contenu">
113
			Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
114
			Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
115
			Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
116
			Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
117
			</span>
118
		</div>
203 gduche 119
		<div id="repartition" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
214 aurelien 120
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-4">Répartition</h3>
121
			<span id="contenu-0" class="contenu">
122
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
123
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
124
			</span>
125
		</div>
126
		<div id="ethnobotanique" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
127
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-5">Ethnobotanique<span class="lienToggle"></span></h3>
128
			<span id="contenu-0" class="contenu">
129
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
130
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
131
			</span>
203 gduche 132
		</div>
214 aurelien 133
	</div>
134
	<div class="colonne">
135
		<div id="statutDeProtection" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
136
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-7">Statut de protection<span class="lienToggle"></span></h3>
137
			<span id="contenu-0" class="contenu">
138
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
139
						Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
140
						Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
141
						Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
142
			</span>
143
		</div>
144
		<div id="nomenclature" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
145
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-8">Nomenclature<span class="lienToggle"></span></h3>
146
			<span id="contenu-0" class="contenu">
147
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
148
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
149
			</span>
150
		</div>
151
		<div id="phytosociologie" class="module ui-widget ui-widget-content ui-helper-clearfix ui-corner-all">
152
			<h3 class="titre ui-widget-header ui-corner-all" id="titre-9">Phytosociologie<span class="lienToggle"></span></h3>
153
			<span id="contenu-0" class="contenu">
154
						Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
155
			Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
156
			</span>
203 gduche 157
		</div>
158
	</div>
201 gduche 159
 
160
	<br style="clear:left" />
161
</div>
162
 
163
<script type="text/Javascript">
164
	var modules = Array();
211 aurelien 165
	var ongletsOuverts = Array();
201 gduche 166
 
167
	/** Classe Module
168
	* Définit un module de type portlet
169
	**/
203 gduche 170
	function Module(id, module, onglet, statique) {
201 gduche 171
 
172
		// Variables de classe : identifiant, titre, et le HTML du résumé à afficher dans le contenu
173
		this.id = id;
203 gduche 174
		this.titre;
175
		this.htmlResume;
201 gduche 176
		this.statique = statique;
177
 
178
		// Les objets Portlet et Onglet que l'ont garde en mémoire pour pouvoir y accéder facilement
203 gduche 179
		this.portlet = module;
201 gduche 180
		this.onglet;
181
 
182
		// creerPortlet
183
		// Créer l'objet Portlet HTML à afficher et le stocker dans les variables de classe
184
		this.creerPortlet = function() {
185
			var objet = this;
186
 
203 gduche 187
			var titre = $(module).children('.titre');
201 gduche 188
			titre.className = 'titre ui-widget-header ui-corner-all';
189
			titre.id = 'titre-' + this.id;
190
 
203 gduche 191
			var contenu = $(module).children('.contenu');
201 gduche 192
			contenu.id = 'contenu-' + this.id;
193
			contenu.className ='contenu';
194
 
195
			var lienToggle = document.createElement('span');
196
			lienToggle.className = 'lienToggle ui-icon ui-icon-minusthick';
203 gduche 197
			$(titre).append(lienToggle);
201 gduche 198
			$(lienToggle).click(function() {
212 aurelien 199
				objet.afficherCacherModule();
201 gduche 200
			});
201
 
202
			this.portlet = module;
203
			return module;
204
		}
205
 
206
		// creerOnglet
207
		// Créer l'objet Onglet HTML
208
		this.creerOnglet = function() {
209
			var objet = this;
210
 
203 gduche 211
			var a = $(onglet).find("a");
201 gduche 212
 
213
			// Gestion du clic sur le lien
214
			// Comme les liens sont mis en place par jqueryui tabs, il faut ajouter une surcouche pour
215
			// déplacer vers la page du module
216
			$(a).click(function() {
211 aurelien 217
				// TODO : Changer l'url par celle du module et enregistrer la configuration actuelle des onglets.
201 gduche 218
				//$(location).attr('href',"http://www.google.fr");
219
			});
220
 
221
			if (!statique) {
222
				var span = document.createElement('span');
223
				span.className = "ui-icon ui-icon-close";
224
 
225
				// Gestion de la fermeture de l'onglet
226
				$(span).live( "click", function() {
212 aurelien 227
					objet.afficherCacherModule();
214 aurelien 228
					redimensionnerOnglets();
201 gduche 229
				});
230
 
203 gduche 231
				$(onglet).append(span);
201 gduche 232
			}
233
 
203 gduche 234
			this.onglet = onglet;
201 gduche 235
		}
236
 
237
		// Initialisation de l'objet
238
		this.creerPortlet();
239
		this.creerOnglet();
240
 
241
		// Accesseurs de la classe
242
		this.getOnglet = function() {
243
			return this.onglet;
244
		}
245
 
246
		this.getPortlet = function() {
247
 
248
			return this.portlet;
249
		}
211 aurelien 250
 
251
		// fonctions d'affichage et cachage (je sais pas si on dit ça comme ça) des onglets
252
		this.afficherCacherModule = function() {
253
			$(this.portlet).find(".lienToggle").toggleClass("ui-icon-plusthick");
254
			$(this.portlet).find(".lienToggle").toggleClass("ui-icon-minusthick");
255
			$(this.portlet).find(".contenu").toggle();
212 aurelien 256
			$(this.onglet).toggle();
214 aurelien 257
 
258
			redimensionnerOnglets();
211 aurelien 259
		}
260
 
201 gduche 261
	}
262
 
212 aurelien 263
	function afficherCacherMenuOnglets() {
211 aurelien 264
		if($("#conteneurMenuOnglets").html() != '') {
265
			$("#conteneurMenuOnglets").html('');
266
		} else {
267
			console.log(ongletsOuverts);
268
			var htmlMenu = '<ul class="menuModules">';
269
			for (idOnglet in ongletsOuverts) {
212 aurelien 270
				var classe = "elementMenuModules";
271
				if($(idOnglet).is(':visible')) {
272
					classe += " elementMenuModulesSelectionne";
273
				}
274
				htmlMenu += '<li class="'+classe+'" rel="'+idOnglet+'" id="menu_module_'+idOnglet+'">'+ongletsOuverts[idOnglet].titre+'</li>';
211 aurelien 275
			}
276
			htmlMenu += '</ul>';
277
			$("#conteneurMenuOnglets").html(htmlMenu);
278
			$("#conteneurMenuOnglets").toggle();
279
		}
280
	}
281
 
214 aurelien 282
	function redimensionnerOnglets() {
283
		// 570 px au max
284
		// 18 largeur croix
285
		// 18 largeur texte
286
		// 36 largeur totale
287
		var liensVisibles = $('#zone_onglets > ul > li:visible > a');
288
		var longueurLiens = 0;
289
		liensVisibles.each(function() {
290
			longueurLiens += $(this).width();
291
		});
292
		var nbOnglets = $('#zone_onglets > ul > li:visible').length;
293
		var longueurMax =  555 - (nbOnglets * 36);
294
		if(longueurLiens >= longueurMax || nbOnglets > 5) {
295
			$('#zone_onglets > ul > li > a').not('.lien-statique').width(longueurMax/nbOnglets);
296
		} else {
297
			$('#zone_onglets > ul > li > a').not('.lien-statique').css("width","auto");
298
		}
299
	}
300
 
203 gduche 301
	//Initialisation
201 gduche 302
	$(document).ready(function() {
203 gduche 303
		i = 1;
201 gduche 304
 
203 gduche 305
		//Parcourir la totalité des modules générés et les lier grâce à la classe Module
306
		$(".module").each(function () {
201 gduche 307
			i++;
203 gduche 308
			identifiantOnglet = "#zone_onglets>ul>li:nth-child(" + i +")";
309
			var module = new Module(i, this, $(identifiantOnglet));
211 aurelien 310
			module.titre = $(this).children('h3').text();
311
			ongletsOuverts[identifiantOnglet] = module;
203 gduche 312
		});
201 gduche 313
 
314
		$( ".colonne" ).sortable({
315
			connectWith: ".colonne"
316
		});
317
 
318
		$( ".colonne" ).disableSelection();
214 aurelien 319
		$('#zone_onglets').tabs({
320
			add: function(event, ui) {
321
				redimensionnerOnglets();
322
			},
323
			remove: function(event, ui) {
324
				redimensionnerOnglets();
325
			}
326
		});
327
 
211 aurelien 328
		$("#ongletEtPlus").click(function() {
212 aurelien 329
			afficherCacherMenuOnglets();
211 aurelien 330
		});
331
 
332
		$('.elementMenuModules').live('click', function() {
333
			var idOnglet = $(this).attr('rel');
334
			var objet = ongletsOuverts[idOnglet];
212 aurelien 335
			objet.afficherCacherModule();
336
			$(this).toggleClass("elementMenuModulesSelectionne");
214 aurelien 337
		});
338
 
339
		redimensionnerOnglets();
201 gduche 340
	});
341
</script>