Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
3120 delphine 1
<!DOCTYPE html>
3208 idir 2
<html xmlns="https://www.w3.org/1999/xhtml">
3228 delphine 3
	<head>
4
		<title><?= $widget['titre']; ?></title>
3208 idir 5
 
3228 delphine 6
		<meta charset="utf-8" />
7
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
		<meta http-equiv="Content-style-type" content="text/css" />
9
		<meta http-equiv="Content-script-type" content="text/javascript" />
10
		<meta http-equiv="Content-language" content="fr" />
3208 idir 11
 
3228 delphine 12
		<meta name="revisit-after" content="15 days" />
13
		<meta name="robots" content="index,follow" />
14
		<meta name="author" content="Tela Botanica" />
15
		<meta name="keywords" content="Tela Botanica, CEL" />
16
		<meta name="description" content="Gestion des widgets de saisie du carnet en ligne" />
17
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no" />
3120 delphine 18
 
3228 delphine 19
		<!-- OpenGraph pour Facebook, Pinterest, Google+ -->
20
		<meta property="og:type" content="website" />
21
		<meta property="og:title" content="Widgets de saisie du CeL" />
22
		<meta property="og:site_name" content="Tela Botanica" />
23
		<meta property="og:description" content="Widgets de saisie du Carnet en Ligne" />
24
		<meta property="og:image" content="https://resources.tela-botanica.org/tb/img/256x256/carre_englobant.png" />
25
		<meta property="og:image:type" content="image/png" />
26
		<meta property="og:image:width" content="256" />
27
		<meta property="og:image:height" content="256" />
28
		<meta property="og:locale" content="fr_FR" />
3120 delphine 29
 
3239 idir 30
		<!-- Favicone -->
3228 delphine 31
		<link rel="shortcut icon" type="image/x-icon" href="https://resources.tela-botanica.org/tb/img/16x16/favicon.ico" />
3239 idir 32
		<!-- Jquery-ui custom css-->
3228 delphine 33
		<link href="https://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.18/css/smoothness/jquery-ui-1.8.18.custom.css" rel="stylesheet" type="text/css" media="screen" />
34
		<!-- Bootstrap CSS -->
35
		<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous" />
3239 idir 36
		<!-- Fontawesome -->
3228 delphine 37
		<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.1/css/all.css" integrity="sha384-O8whS3fhG2OnA5Kas0Y9l3cfpmYjapjI0E4theH4iuMD+pLhbf6JI0jIMfYcK3yZ" crossorigin="anonymous" />
3239 idir 38
		<!-- Carto -->
39
		<link href="<?= $url_base; ?>modules/saisie2/squelettes/js/tb-geoloc/styles.css" rel="stylesheet" type="text/css" media="screen" />
40
		<!-- STYLE SAISIE -->
3228 delphine 41
		<link href="<?= $url_base; ?>modules/saisie2/squelettes/css/saisie.css" rel="stylesheet" type="text/css" media="screen" />
3120 delphine 42
 
3228 delphine 43
		<!--  Google Analytics -->
44
		<?php if( $prod ): ?>
45
			<?php include "analytics.html"; ?>
46
		<?php endif; ?>
47
		<link rel="icon" type="image/x-icon" href="favicon.ico" />
48
		<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
49
	</head>
3120 delphine 50
 
3228 delphine 51
	<body>
3239 idir 52
		<?php
53
			echo ( $widget['image_fond'] ) ? '<div id="image-fond" style="' . htmlspecialchars( 'background:url("' . $widget['chemin_fichiers'] . 'image_fond.' . preg_replace( '/(?:imag)?e\/?/','',$widget['image_fond']) . '") no-repeat center center') . '"></div>': '';
54
		?>
3228 delphine 55
		<!-- <?php //var_dump($widget['especes']['url_ws_autocompletion_ns']); ?> -->
3239 idir 56
		<div id="zone-appli" class="container" data-projet="<?= $widget['projet']; ?>" data-url-fichiers="<?= $widget['chemin_fichiers']; ?>">
3228 delphine 57
			<div class="layout-wrapper page">
58
				<div class="media">
3239 idir 59
					<img class="d-flex mr-3" src="<?php echo htmlspecialchars( $widget['chemin_fichiers'] . 'logo.' . preg_replace( '/(?:imag)?e\/?/','', $widget['logo'] ) ); ?>" alt="logo <?= $widget['projet']; ?>" />
60
					<div class="media-body">
61
						<h1 id="titre-projet" class="mt-0"><?php echo ( $widget['info'] ) ? $widget['titre'] . ' <div id="info-button" class="btn btn-outline-info btn-sm border-0" data-mime-info="' . $widget['info'] . '"><i class="fas fa-info-circle"></i></div>' : $widget['titre']; ?></h1>
3228 delphine 62
					</div>
63
				</div>
3208 idir 64
 
3239 idir 65
				<div class="row">
66
					<div class="col-md-6">
67
						<div id="description"><?= $widget['description']; ?></div>
68
					</div>
69
					<div class="col-md-6">
70
						<div id="aide" class="well well-lg hidden-sm-down">
71
							<h3><?= $aide['titre']; ?></h3>
72
							<div id="aide-txt" class="hiden-sm-down">
73
								<p><?= $aide['description']; ?></p>
3228 delphine 74
							</div>
75
						</div>
76
					</div>
77
				</div>
3239 idir 78
 
79
				<div id="formulaire" class="row mb-3 bloc-top">
80
					<form id="form-observateur" role="form" autocomplete="on">
81
						<h2><?= $observateur['titre']; ?></h2>
82
						<!--la partie tb-navigation vient du widget stats http://svn.tela-botanica.net/websvn/filedetails.php?repname=eFlore%2FApplications.cel&path=%2Ftrunk%2Fwidget%2Fmodules%2Fstats%2Fsquelettes%2Fstats_utilisateur.tpl.html
83
						la partie contenu-souce vient de http://svn.tela-botanica.net/websvn/filedetails.php?repname=Applications.reseau&path=%2Ftrunk%2Fwidget%2Fmodules%2Fnavigation%2Fsquelettes%2Fbootstrap3.tpl.php
84
						le javascript auth.js vient de http://svn.tela-botanica.net/websvn/filedetails.php?repname=Applications.reseau&path=%2Ftrunk%2Fresources%2Fjs%2Fnavigation.js
85
						de l'aide dans la partie Intégration dans l'interface (applications AJAX) de https://www.tela-botanica.org/wikini/DevInformatiques/wakka.php?wiki=MemoIntegrationSSO-->
86
						<!-- prod : -->
87
						<!-- <div id="tb-navigation" data-courant="widget-cel-saisie2" data-squelette="navigation" data-mode="prod"> -->
88
						<!-- beta (test) :-->
89
						<div id="tb-navigation" data-courant="widget-cel-saisie2" data-squelette="navigation" data-mode="test">
90
						<!-- dev (localhost) : -->
91
						<!-- <div id="tb-navigation" data-courant="widget-cel-saisie2" data-squelette="navigation" data-mode="local"> -->
92
							<div class="navbar-default mb-3" id="tb-navbar">
93
								<div class="nav navbar-nav navbar-right row">
94
									<div id="bouton-connexion" class="volet col-md-6 col-sm-8">
95
										<label for="bouton-connexion"><?= $observateur['compte']; ?></label>
96
										<a id="connexion" href="<?= $authTpl; ?>" class="btn btn-success  mr-1 mb-1" taget="_blank"><?= $observateur['connexion']; ?></a>
97
										<a id="bouton-inscription" href="https://beta.tela-botanica.org/test/inscription" class="btn btn-primary mr-1 mb-1" taget="_blank"><?= $observateur['inscription']; ?></a>
98
									</div>
99
									<div id="creation-compte" class="volet col-md-6 col-sm-8">
100
										<label for="creation-compte"><?= $observateur['noninscription']; ?></label>
101
										<a id="bouton-anonyme" href="#" class="btn btn-info mr-1 mb-1"><?= $observateur['nonconnexion']; ?></a>
102
									</div>
103
									<div id="utilisateur-connecte" class="volet hidden">
104
										<label for="utilisateur-connecte"><?= $observateur['bienvenue']; ?></label>
105
										<a href="#" class="list-tool btn btn-large btn-primary volet-toggle" data-toggle="volet">
106
											<span id="nom-complet"></span> <!-- <i class="fas fa-caret-down"></i> -->
107
										</a>
108
										<div class="volet-menu hidden">
109
											<div id="profil-utilisateur">
110
												<a href="https://beta.tela-botanica.org/test/inscription" taget="_blank"><?= $observateur['profil']; ?></a>
111
											</div>
112
											<div id="deconnexion"><a href="#"><?= $observateur['deconnexion']; ?></a></div>
113
										</div>
114
									</div>
115
								</div>
3228 delphine 116
							</div>
117
						</div>
3239 idir 118
 
119
						<div id="anonyme" class="mb-3 hidden">
120
							<div id="zone-courriel" class="row">
121
								<div class="control-group col-md-6">
122
									<label for="courriel" class="col-sm-8 obligatoire" title="<?= $observateur['courriel-title']; ?>">
123
										<i class="fa fa-envelope" aria-hidden="true"></i>
124
										<?= $observateur['courriel']; ?>
125
									</label>
126
									<div class="col-sm-8 mb-3">
127
										<input id="courriel" name="courriel" class="form-control" type="email" title="<?= $observateur['courriel-title']; ?> ">
128
										<input id="id_utilisateur" name="id_utilisateur" type="hidden">
129
									</div>
130
								</div>
131
 
132
								<div id="zone-courriel-confirmation" class="control-group col-md-6 hidden">
133
									<label for="courriel_confirmation" class="col-sm-8 obligatoire" title="Veuillez confirmer le courriel.">
134
										<i class="fa fa-envelope" aria-hidden="true"></i>
135
										<?= $observateur['courriel-confirmation']; ?>
136
									</label>
137
									<div class="col-sm-8">
138
										<input id="courriel_confirmation" name="courriel_confirmation" class="form-control" type="email">
139
									</div>
140
								</div>
3228 delphine 141
							</div>
3239 idir 142
 
143
							<div id="zone-prenom-nom" class="row hidden">
144
								<div class="control-group col-md-6">
145
									<label for="prenom" class="col-sm-8">
146
										<i class="fa fa-user" aria-hidden="true"></i>
147
										<?= $observateur['prenom']; ?>
148
									</label>
149
									<div class="input-group col-sm-8">
150
										<input id="prenom" name="prenom" class="form-control" type="text">
151
									</div>
152
								</div>
153
								<div class="control-group col-md-6">
154
									<label for="nom" class="col-sm-8">
155
										<i class="fa fa-user" aria-hidden="true"></i>
156
										<?= $observateur['nom']; ?>
157
									</label>
158
									<div class="input-group col-sm-8">
159
										<input id="nom" name="nom" class="form-control" type="text">
160
									</div>
161
								</div>
3228 delphine 162
							</div>
163
						</div>
3239 idir 164
					</form>
165
 
166
					<!-- Messages d'erreur du formulaire-->
167
					<div class="row">
168
						<div class="zone-alerte">
169
							<div id="dialogue-bloquer-copier-coller" class="alert alert-info alert-block hidden"">
170
								<a class="close">×</a>
171
								<h4 class="alert-heading"><?= $observateur['alertcc-title']; ?></h4>
172
								<p><?= $observateur['alertcc']; ?></p>
3228 delphine 173
							</div>
3239 idir 174
							<div id="dialogue-utilisateur-non-identifie" class="alert alert-warning alert-block hidden">
175
								<a class="close">×</a>
176
								<h4 class="alert-heading"><?= $observateur['alertni-title']; ?></h4>
177
								<p><?= $observateur['alertni']; ?></p>
178
							</div>
3228 delphine 179
						</div>
180
					</div>
3208 idir 181
 
3239 idir 182
					<form id="form-observation" role="form" autocomplete="on" class="bloc-top">
183
						<h2><?= $observation['titre']; ?></h2>
184
						<div id="zone-observation" class="row">
185
							<div class="col-md-6">
3208 idir 186
 
3239 idir 187
								<div class="control-group">
188
									<label for="geolocalisation" class="col-sm-8 obligatoire" title="<?= $observateur['courriel-title']; ?>">
189
										<i class="fa fa-street-view" aria-hidden="true"></i>
190
										<?= $observation['geolocalisation']; ?>
191
									</label>
192
									<div class="col-sm-8 mb-3">
193
										<input id="geolocalisation" name="geolocalisation" type="hidden">
194
										<tb-geolocation-element id="tb-geolocation"></tb-geolocation-element>
195
									</div>
196
								</div>
197
 
198
								<div class="control-group">
199
									<label for="milieu" class="col-sm-8">
200
										<i class="fa fa-street-view" aria-hidden="true"></i>
201
										<?= $observation['milieu']; ?>
202
									</label>
203
									<div class="col-sm-8 mb-3">
204
										<?php if ( 0 < count( (array) $widget['milieux'] ) ) :?>
205
											<select id="milieu" class="form-control" >
206
												<?php foreach ( $widget['milieux'] as $milieu ) :?>
207
													<option value="<?= $milieu; ?>"><?= $milieu; ?></option>
208
												<?php endforeach; ?>
209
											</select>
210
										<?php else : ?>
211
											<input id="milieu" name="milieu" class="form-control" type="text" placeholder="<?= $observation['milieu-ph']; ?>">
212
										<?php endif; ?>
213
									</div>
214
								</div>
215
 
3228 delphine 216
							</div>
3239 idir 217
 
218
							<div class="col-md-6">
219
 
220
								<div class="control-group">
221
									<label for="date_releve" class="col-sm-8 obligatoire" title="">
222
										<i class="fa fa-calendar" aria-hidden="true"></i>
223
										<?= $observation['date']; ?>
224
									</label>
225
									<div class="col-sm-8 mb-3" id="datetimepicker">
226
										<input type="text" id="date_releve" name="date_releve" class="form-control date" placeholder="jj/mm/aaaa"  pattern="(^(((0[1-9]|1[0-9]|2[0-8])[\/](0[1-9]|1[012]))|((29|30|31)[\/](0[13578]|1[02]))|((29|30)[\/](0[4,6,9]|11)))[\/](19|[2-9][0-9])\d\d$)|(^29[\/]02[\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)" title="jj/mm/aaaa">
227
									</div>
228
								</div>
229
 
230
								<?php if( ( $widget['type_especes'] === 'referentiel' || $widget['type_especes'] === '' ) && $widget['referentiel'] === '' ) : ?>
231
									<div class="control-group">
232
										<label for="referentiel" class="col-sm-8 obligatoire" title="">
233
											<i class="fa fa-book" aria-hidden="true"></i>
234
											<?= $observation['referentiel']; ?>
235
										</label>
236
										<div class="col-sm-8 mb-3">
237
											<select id="referentiel" class="form-control" >
238
												<option value="bdtfxr" selected="selected" title="Trachéophytes de France métropolitaine">Métropole (index réduit)</option>
239
												<option value="bdtfx" title="Trachéophytes de France métropolitaine">Métropole (BDTFX)</option>
240
												<option value="bdtxa" title="Trachéophytes des Antilles">Antilles françaises (BDTXA)</option>
241
												<option value="bdtre" title="Trachéophytes de La Réunion">Réunion (BDTRE)</option>
242
												<option value="aublet" title="Guyane">Guyane (AUBLET2)</option>
243
												<option value="florical" title="Nouvelle-Calédonie">Nouvelle-Calédonie (FLORICAL)</option>
244
												<option value="isfan" title="Afrique du Nord">Afrique du Nord (ISFAN)</option>
245
												<option value="apd" title="Afrique de l'Ouest et du Centre">Afrique de l'Ouest et du Centre (APD)</option>
246
												<option value="lbf" title="Liban">Liban (LBF)</option>
247
												<option value="autre" title="Autre/Inconnu">Autre/Inconnu</option>
248
											</select>
249
										</div>
250
									</div>
3228 delphine 251
								<?php else : ?>
3239 idir 252
									<input id="referentiel" name="referentiel" value="<?= $widget['referentiel']; ?>" type="hidden">
3228 delphine 253
								<?php endif; ?>
3208 idir 254
 
3239 idir 255
								<div class="control-group">
256
									<label for="taxon" class="col-sm-8 obligatoire" title="">
257
										<i class="fa fa-leaf" aria-hidden="true"></i>
258
										<?= $observation['espece']; ?><?php if ( $widget['referentiel'] !== '' && $widget['referentiel'] !== NULL ) echo " (" . $widget['referentiel'] . ")"; ?>
259
									</label>
260
									<div class="col-sm-8 mb-3">
261
										<input id="taxon" name="taxon" class="form-control" type="text">
262
									</div>
3228 delphine 263
								</div>
3208 idir 264
 
3239 idir 265
								<div class="control-group">
266
									<label for="certitude" class="col-sm-8 obligatoire" title="">
267
										<i class="fa fa-question" aria-hidden="true"></i>
268
										<?= $observation['certitude']; ?>
269
									</label>
270
									<div class="col-sm-8 mb-3">
271
										<select id="certitude" name="certitude" class="form-control">
272
											<option value="aDeterminer" ><?= $observation['certADet']; ?></option>
273
											<option value="douteuse" ><?= $observation['certDout']; ?></option>
274
											<option value="certaine" selected="selected" ><?= $observation['certCert']; ?></option>
275
										</select>
276
									</div>
277
								</div>
278
								<div class="control-group">
279
                                    <label for="notes" class="col-sm-8" title="">
280
                                        <i class="fa fa-pen" aria-hidden="true"></i>
281
                                        <?= $observation['notes']; ?>
282
                                    </label>
283
                                    <div class="col-sm-8 mb-3">
284
                                        <textarea id="notes" form="form-obs" class="form-control col-md-12" rows="7" name="notes" placeholder="<?= $observation['notes_ph']; ?>"></textarea>
285
                                    </div>
286
                                </div>
3208 idir 287
 
3230 delphine 288
							</div>
289
						</div>
3239 idir 290
					</form>
3208 idir 291
 
3239 idir 292
					<!-- Champs supplémentaires -->
293
					<?php if ( isset($widget['chpSupp'] ) && 0 < count( (array) $widget['chpSupp'] ) ) : ?>
294
						<form id="form-supp"  class="bloc-top" role="form" autocomplete="on">
295
							<h2><?= $chpsupp['titre']; ?></h2>
296
							<div id="zone-supp" class="row">
297
								<div class="col-md-6">
3208 idir 298
 
3239 idir 299
									<?php foreach( $widget['chpSupp'][ $widget['projet'] ]['champs-supp'] as $champ ) : ?>
300
										<?php
301
											$min         = ( $champ['fieldValues']['min'] )? ' min="' . $champ['fieldValues']['min'] . '"':'';
302
											$max         = ( $champ['fieldValues']['max'] )? ' max="' . $champ['fieldValues']['max'] . '"':'';
303
											$step        = ( $champ['fieldValues']['step'] )? ' step="' . $champ['fieldValues']['step'] . '"':'';
304
											$default     = ( $champ['fieldValues']['default'] )? ' value="' . $champ['fieldValues']['default'] . '"':'';
305
											$description = ( $champ['description'] )? ' title="' . $champ['description'] . '"':'';
306
											$placeholder = ( $champ['fieldValues']['placeholder'] )? ' placeholder="' . $champ['fieldValues']['placeholder'] . '"':'';
307
											$required    = '';
308
											$mandatory   = '';
309
											$datepicker  = '';
310
											$pattern     = '';
311
											$obs_radio   = '';
312
											$help        = '';
313
											$help_button = '';
3208 idir 314
 
3239 idir 315
											if( $champ['help'] ) {
316
												$help = ' and-help';
317
												$help_button = ' <div class="help-button help-' . $champ['key'] . ' btn btn-outline-info btn-sm border-0" data-key="' . $champ['key'] . '" data-name="' . $champ['name'] . '" data-mime-type="' . $champ['help'] . '"><i class="fas fa-info-circle"></i></div>';
318
											}
3208 idir 319
 
3239 idir 320
											if( $champ['mandatory'] ) {
321
												// Attr required
322
												$required  = ' required';
323
												// class="obligatoire"
324
												$mandatory = ' obligatoire';
325
											}
3208 idir 326
 
3239 idir 327
											if( 'date' === $champ['element'] ) {
328
												$datepicker = ' date';
329
												$pattern    = ' pattern="(^(((0[1-9]|1[0-9]|2[0-8])[\/](0[1-9]|1[012]))|((29|30|31)[\/](0[13578]|1[02]))|((29|30)[\/](0[4,6,9]|11)))[\/](19|[2-9][0-9])\d\d$)|(^29[\/]02[\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)"';
330
											}
3208 idir 331
 
3239 idir 332
											switch( $champ['element'] ) {
333
												case 'radio':
334
												case 'checkbox': ?>
335
													<div class="control-group <?= $champ['element']; ?> mb-3"<?php echo $description . $required; ?>>
336
														<div class="col-sm-8 list-label<?php echo $help . $mandatory; ?>">
337
															<?= $champ['name'] . $help_button; ?>
338
														</div>
339
														<div class="col-sm-8">
3217 idir 340
 
3239 idir 341
															<?php foreach ( $champ['fieldValues']['listValue'] as $i => $list_value ) : ?>
3208 idir 342
 
3239 idir 343
																	<?php
344
																		$checked = '';
345
																		if ( '#' === substr( $list_value, -1 ) ) :
346
																			$checked = ' checked';
347
																			$list_value = substr( $list_value, 0, -1 );
348
																		endif;
349
																	?>
3208 idir 350
 
3239 idir 351
																	<?php if( 'other' !== $list_value ) : ?>
352
																		<label for="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>" class="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>">
353
																			<input type="<?= $champ['element']; ?>" id="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>" name="<?= $champ['key']; ?>" value="<?= $list_value; ?>"<?= $checked; ?> class="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>" data-label="<?= $champ['name']; ?>">
354
																			<?= $list_value; ?>
355
																		</label>
356
																	<?php else : ?>
357
																		<label for="other-<?= $champ['key']; ?>">
358
																			<input type="<?= $champ['element']; ?>" id="other-<?= $champ['key']; ?>" name="<?= $champ['key']; ?>" value="other" class="other" data-label="<?= $champ['name']; ?>" data-element="<?= $champ['element']; ?>">
359
																			Autre
360
																		</label>
361
																	<?php endif; ?>
3208 idir 362
 
3239 idir 363
															<?php endforeach; ?>
3208 idir 364
 
3239 idir 365
														</div>
366
													</div>
367
												<?php break;
3208 idir 368
 
3239 idir 369
												case 'list-checkbox': ?>
370
													<div class="multiselect <?php echo $champ['element'] . $help; ?>">
371
														<label class="col-sm-8<?= $mandatory; ?>"><?= $champ['name'] . $help_button; ?></label>
372
														<div class="control-group col-sm-8 mb-3">
373
															<div class="selectBox">
374
																<select class="form-control" id="list-checkbox-<?= $champ['key']; ?>"<?php echo $description . $required; ?> class="form-control">
375
																	<option>Plusieurs choix possibles</option>
376
																</select>
377
																<div class="overSelect"></div>
378
															</div>
379
															<div class="checkboxes hidden">
380
																<?php foreach ( $champ['fieldValues']['listValue'] as $i => $list_value ) : ?>
3208 idir 381
 
3239 idir 382
																	<?php
383
																		$checked = '';
384
																		if ( '#' === substr( $list_value, -1 ) ) :
385
																			$checked = ' checked';
386
																			$list_value = substr( $list_value, 0, -1 );
387
																		endif;
388
																	?>
3208 idir 389
 
3239 idir 390
																	<?php if( 'other' !== $list_value ) : ?>
391
																		<label for="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>">
392
																			<input type="checkbox" id="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>" name="<?= $champ['key']; ?>" value="<?= $list_value; ?>"<?= $checked; ?> class="<?php echo $champ['fieldValues']['cleanListValue'][$i]; ?>" data-label="<?= $champ['name']; ?>">
393
																			<?= $list_value; ?>
394
																		</label>
395
																	<?php else : ?>
396
																		<label for="other-<?= $champ['key']; ?>">
397
																			<input type="checkbox" id="other-<?= $champ['key']; ?>" name="<?= $champ['key']; ?>" value="other" class="other" data-label="<?= $champ['name']; ?>" data-element="<?= $champ['element']; ?>">
398
																			Autre
399
																		</label>
400
																	<?php endif; ?>
3208 idir 401
 
3239 idir 402
																<?php endforeach; ?>
3208 idir 403
 
3239 idir 404
															</div>
405
														</div>
406
													</div>
407
												<?php break;
3208 idir 408
 
3239 idir 409
												case 'select': ?>
410
													<label for="<?= $champ['key']; ?>" class="col-sm-8<?= $mandatory; ?>"<?= $description; ?>><?= $champ['name'] . $help_button; ?></label>
411
													<div class="champ col-sm-8 mb-3">
412
														<div class="select-wrapper add-field-select <?php echo $champ['element'] . $help; ?>">
413
															<select name="<?= $champ['key']; ?>" id="<?= $champ['key']; ?>" class="<?= $champ['key']; ?> form-control"<?= $required; ?> data-label="<?= $champ['name']; ?>">
3208 idir 414
 
3239 idir 415
																<?php foreach ( $champ['fieldValues']['listValue'] as $list_value ) : ?>
3208 idir 416
 
3239 idir 417
																	<?php
418
																		$selected = '';
419
																		if ( '#' === substr( $list_value, -1 ) ) :
420
																			$selected = ' selected="selected"';
421
																			$list_value = substr( $list_value, 0, -1 );
422
																		endif;
423
																	?>
3208 idir 424
 
3239 idir 425
																	<?php if( 'other' !== $list_value ) : ?>
426
																		<option value="<?= $list_value; ?>"<?= $selected; ?>>
427
																			<?php echo ucfirst( $list_value ); ?>
428
																		</option>
429
																	<?php else : ?>
430
																		<option class="other form-control is-select" value="other" data-element="<?= $champ['element']; ?>">Autre</option>
431
																	<?php endif; ?>
3208 idir 432
 
3239 idir 433
																<?php endforeach; ?>
3208 idir 434
 
3239 idir 435
															</select>
436
														</div>
437
													</div>
438
												<?php break;
3208 idir 439
 
3239 idir 440
												case 'textarea': ?>
441
													<div class="control-group">
442
														<label for="<?= $champ['key']; ?>" class="col-sm-8<?php echo $help . $mandatory; ?>" <?= $description; ?>><?= $champ['name'] . $help_button; ?></label>
443
														<div class="col-sm-8 mb-3">
444
															<textarea type="<?= $champ['element']; ?>" id="<?= $champ['key']; ?>" name="<?= $champ['key']; ?>" class="<?= $champ['key'] . $help; ?> form-control" <?php echo $description . $placeholder . $required; ?> data-label="<?= $champ['name']; ?>"></textarea>
445
														</div>
446
													</div>
447
												<?php break;
3208 idir 448
 
3239 idir 449
												case 'range': ?>
450
													<div class="control-group">
451
														<label for="<?= $champ['key']; ?>" class="col-sm-8<?= $help . $mandatory; ?>" <?= $description; ?>><?= $champ['name'] . $help_button; ?></label>
452
														<div class="col-sm-8 mb-3 <?php echo ($champ['fieldValues']['min'] || $champ['fieldValues']['max']) ? 'row' : '';?>">
453
															<?php
454
																if ( $champ['fieldValues']['min'] || $champ['fieldValues']['max'] ) {
3208 idir 455
 
3239 idir 456
																	$div_range_min_max = '';
3208 idir 457
 
3239 idir 458
																	if ( $champ['fieldValues']['min'] )  {
459
																		$div_range_min_max =
460
																			"<p class=\"col-sm-2 range-values text-center font-weight-bold\">".
461
																				"Min " . $champ['fieldValues']['min'] .
462
																			"</p>";
463
																	}
464
																	$div_range_min_max .= '<div class="range-live-value range-values text-center font-weight-bold col-sm-';
3208 idir 465
 
3239 idir 466
																	if ( $champ['fieldValues']['min'] && $champ['fieldValues']['max'] ) {
467
																		$div_range_min_max .= '8">';
468
																	} else {
469
																		$div_range_min_max .= '10">';
470
																	}
3208 idir 471
 
3239 idir 472
																	$div_range_min_max .= '</div>';
3208 idir 473
 
3239 idir 474
																	if( $champ['fieldValues']['max'] ) {
475
																		$div_range_min_max .=
476
																			"<p class=\"col-sm-2 range-values text-center font-weight-bold\">".
477
																				"Max " . $champ['fieldValues']['max'] .
478
																			"</p>";
479
																	}
3208 idir 480
 
3239 idir 481
																	echo $div_range_min_max;
482
																}
483
															?>
484
															<input type="<?= $champ['element']; ?>" name="<?= $champ['key']; ?>" class="custom-range <?= $champ['key'] . $help; ?> form-control" <?= $description . $placeholder . $step . $default . $min . $max . $required; ?> data-label="<?= $champ['name']; ?>">
485
														</div>
486
													</div>
487
													<?php break;
3208 idir 488
 
3239 idir 489
												case 'number':
490
												case 'date': ?>
491
													<div class="control-group">
492
														<label for="<?= $champ['key']; ?>" class="col-sm-8<?php echo $datepicker . $mandatory; ?>" <?= $description; ?>><?= $champ['name'] . $help_button; ?></label>
493
														<div class="col-sm-8 mb-3">
494
															<input type="<?= $champ['element']; ?>" name="<?= $champ['key']; ?>" class="<?= $champ['key'] . $help . $datepicker; ?> form-control"<?php echo  $pattern . $description . $placeholder . $step . $default . $min . $max . $required; ?> data-label="<?= $champ['name']; ?>">
495
														</div>
496
													</div>
497
													<?php break;
3208 idir 498
 
3239 idir 499
												case 'text' :
500
												case 'email':
501
												default: ?>
502
													<div class="control-group">
503
														<label for="<?= $champ['key']; ?>" class="col-sm-8<?= $mandatory; ?>" <?= $description; ?>><?= $champ['name'] . $help_button; ?></label>
504
														<div class="col-sm-8 mb-3">
505
															<input type="<?= $champ['element']; ?>" name="<?= $champ['key']; ?>" class="<?= $champ['key'] . $help; ?> form-control" <?php echo $description . $placeholder . $required; ?> data-label="<?= $champ['name']; ?>">
506
														</div>
507
													</div>
508
												<?php break;
509
											}
510
										?>
3208 idir 511
 
3239 idir 512
									<?php endforeach; ?>
513
								</div>
514
							</div>
515
						</form>
516
					<?php endif; ?><!-- Fin champs supplémentaires -->
3208 idir 517
 
3239 idir 518
					<form id="form-upload" class="form-horizontal bloc-top" action="<?= $url_ws_upload ?>" method="post" enctype="multipart/form-data">
519
						<h2><?= $image['titre']; ?></h2>
520
						<p class="miniature-info" class="discretion help-inline">
521
							<?= $image['aide']; ?>
522
						</p>
523
						<div id ="photos-conteneur" class="control-group">
524
							<div>
525
								<label for="fichier" class="label-file btn btn-large btn-info mb-3">
526
									<span class="label-text"><i class="fas fa-download"></i> <?= $image['ajouter']; ?></span>
527
									<input type="file" id="fichier" name="fichier" class="input-file" accept="image/jpeg" multiple>
528
									<input type="hidden" name="MAX_FILE_SIZE" value="5242880">
529
								</label>
530
							</div>
3208 idir 531
 
3239 idir 532
							<div id="miniatures"></div>
533
							<p class="miniature-msg" class="span12">&nbsp;</p>
534
						</div>
535
					</form>
3208 idir 536
 
3239 idir 537
					<div id="image" class="row"></div>
538
				</div>
3208 idir 539
 
3239 idir 540
				<!-- Bouton cr&ation d'une obs -->
541
				<div class="row mb-3 bloc-bottom">
542
					<div class="centre" title="<?= $resume['creer-title']; ?>">
543
						<a id="ajouter-obs" class="btn btn-primary"><i class="fas fa-check-square"></i> <?= $resume['creer']; ?></a>
544
					</div>
545
				</div>
3208 idir 546
 
3239 idir 547
				<!-- Messages d'erreur du formulaire-->
548
				<div class="row">
549
					<div class="zone-alerte">
550
						<div id="dialogue-bloquer-creer-obs" class="alert alert-warning alert-block hidden">
551
							<a class="close">×</a>
552
							<h4 class="alert-heading"><?= $resume['alert10max']; ?></h4>
553
							<p><?= $resume['alert10max-desc']; ?></p>
554
						</div>
555
					</div>
556
					<div class="zone-alerte">
557
						<div id="dialogue-form-invalide" class="alert alert-warning alert-block hidden">
558
							<a class="close">×</a>
559
							<h4 class="alert-heading"><?= $resume['alertchp']; ?></h4>
560
							<p><?= $resume['alertchp-desc']; ?></p>
561
						</div>
562
					</div>
563
				</div>
3208 idir 564
 
3239 idir 565
				<!-- Affiche le tableau récapitualif des observations ajoutées -->
566
				<div id="zone-liste-obs" class="hidden">
567
					<div class="alert alert-info">
568
						<h2 class="transmission-title"><strong><?= $resume['titre']; ?> <span class="obs-nbre badge badge-info">0</span></strong></h2>
569
						<button id="transmettre-obs" class="btn btn-primary droite" disabled="disabled"
570
							title="<?= $resume['trans-title']; ?>" type="button">
571
							<?= $resume['trans']; ?>
572
						</button>
573
					</div>
574
					<div id="liste-obs" ></div>
575
					<div class="row">
576
						<div class="zone-alerte">
577
							<div id="dialogue-zero-obs" class="alert alert-block hidden">
578
								<a class="close">×</a>
579
								<h4 class="alert-heading"><?= $resume['alert0obs']; ?></h4>
580
								<p><?= $resume['alert0obs-desc']; ?></p>
581
							</div>
582
							<div id="dialogue-obs-transaction-ok" class="alert alert-success alert-block hidden">
583
								<a class="close">×</a>
584
								<h4 class="alert-heading"><?= $resume['info-trans']; ?></h4>
585
								<div class="alert-txt"></div>
586
							</div>
587
							<div id="dialogue-obs-transaction-ko" class="alert alert-error alert-block hidden">
588
								<a class="close">×</a>
589
								<h4 class="alert-heading"><?= $resume['alerttrans']; ?></h4>
590
								<div class="alert-txt"></div>
591
							</div>
592
						</div>
593
					</div>
594
				</div>
3208 idir 595
 
3239 idir 596
				<!-- Fenêtres modales -->
597
				<div id="chargement" class="modal-fenetre hidden">
598
					<div id="chargement-centrage" class="modal-contenu">
599
						<div class="progress progress-striped active">
600
							<div id="barre-progression-upload" class="bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="10" style="">
601
									<span class="sr-only">0/10 <?= $resume['nbobs']; ?></span>
602
								</div>
603
						</div>
604
						<p id="chargement-txt" style="color:white;font-size:1.5em;">
605
							<?= $resume['transencours']; ?>
606
						</p>
607
					</div>
608
				</div>
3208 idir 609
 
3239 idir 610
				<!-- Templates HTML -->
611
				<div id="tpl-transmission-ok" class="hidden">
612
					<p class="msg"><?= $resume['transok']; ?></p>
613
				</div>
614
				<div id="tpl-transmission-ko" class="hidden">
615
					<p class="msg"><?= $resume['transko']; ?></p>
616
				</div>
617
			</div>
618
		</div>
619
		<div id="help-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="help-modal-label" style="display: none;" aria-hidden="true">
620
			<div class="modal-dialog modal-dialog-centered" role="document">
621
				<div class="modal-content">
622
					<div class="modal-header">
623
						<h5 class="modal-title" id="help-modal-label"></h5>
624
						<button type="button" class="close" data-dismiss="modal" aria-label="Close">
625
							<span aria-hidden="true">&times;</span>
626
						</button>
627
					</div>
628
					<div class="modal-body" id="print_content"></div>
629
					<div class="modal-footer">
630
						<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
631
					</div>
632
				</div>
633
			</div>
634
		</div>
635
		<!-- carto -->
636
		<script type="text/javascript" src="<?= $url_base; ?>modules/saisie2/squelettes/js/tb-geoloc/tb-geoloc-custom-element.js"></script>
637
		<script>
638
			var tbGeolocation = document.getElementById('tb-geolocation');
639
			tbGeolocation.addEventListener("location", function(location) {
640
				console.log(location.detail);
641
			});
642
		</script>
3208 idir 643
 
3239 idir 644
		<!-- Jquery -->
645
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/1.11.1/jquery-1.11.1.min.js"></script>
3208 idir 646
 
3239 idir 647
		<!-- Jquery UI : nécessaire pour le minicalendrier et l'auto-complétion -->
648
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/js/jquery-ui.min.js"></script>
649
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/jquery-ui/1.11.0/js/datepicker-fr.js"></script>
650
		<!-- Jquery Plugins -->
651
		<!-- Jquery Validate : nécessaire pour la validation des formulaires -->
652
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/validate/1.11.1/jquery.validate.min.js"></script>
653
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/validate/1.11.1/additional-methods.min.js"></script>
654
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/validate/1.11.1/messages_fr.js"></script>
655
		<!-- Jquery Form :nécessaire pour l'upload des images -->
656
		<script type="text/javascript" src="https://resources.tela-botanica.org/jquery/form/3.51/jquery.form.min.js"></script>
657
		<!-- Bootstrap -->
658
		<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
659
		<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
660
		<!-- Authentification -->
661
		<script type="text/javascript" src="<?= $url_base; ?>modules/saisie2/squelettes/js/auth.js"></script>
662
		<!-- Connexion, bloc de prévisualisation, date -->
663
		<script type="text/javascript" src="<?= $url_base; ?>modules/saisie2/squelettes/js/WidgetSaisie.js"></script>
664
		<script type="text/javascript" src="<?= $url_base; ?>modules/saisie2/squelettes/js/champs-supp.js"></script>
665
		<script type="text/javascript">
666
			//<![CDATA[
667
				$( document ).ready( function() {
3208 idir 668
 
3239 idir 669
					// OMG un modèle objet !!
670
					var widget = new WidgetSaisie();
3208 idir 671
 
3239 idir 672
					//
673
					//
674
					//
675
					// La présence du parametre 'debug' dans l'URL enclenche le débogage
676
					widget.debug = <?= isset( $_GET['debug'] ) ? 'true' : 'false'; ?>;
677
					// La présence du parametre 'html5' dans l'URL enclenche les fonctions avancées HTML5
678
					widget.html5 = <?= isset($_GET['html5']) ? 'true' : 'false'; ?>;
679
					// Mot-clé du widget/projet
680
					widget.tagProjet = "WidgetSaisie";
681
					// Mots-clés à ajouter aux images
682
					widget.tagImg = "<?= isset($_GET['tag-img']) ? $_GET['tag-img'] : ''; ?>";
683
					widget.separationTagImg = "<?= isset($_GET['motcle']) && isset($_GET['tag-img']) ? ',' : ''; ?>";
684
					widget.tagImg = <?= isset($_GET['motcle']) ? "'".$_GET['motcle']."' + widget.separationTagImg + widget.tagImg" : 'widget.tagImg'; ?>;
685
					// Mots-clés à ajouter aux observations
686
					widget.tagObs = "<?= isset($_GET['tag-obs']) ? $_GET['tag-obs'] : ''; ?>";
687
					widget.separationTagObs = "<?= isset($_GET['projet']) && isset($_GET['tag-obs']) ? ',' : ''; ?>";
688
					widget.tagObs = <?= isset($_GET['projet']) ? "'".$_GET['projet']."' + widget.separationTagObs + widget.tagObs" : 'widget.tagObs'; ?>;
689
					// Précharger le formulaire avec les infos d'une observation
690
					widget.obsId = "<?= isset($_GET['id-obs']) ? $_GET['id-obs'] : ''; ?>";
691
					// URL du web service réalisant l'insertion des données dans la base du CEL.
692
					widget.serviceSaisieUrl = "<?= $url_ws_saisie; ?>";
693
					// URL du web service permettant de récupérer les infos d'une observation du CEL.
694
					widget.serviceObsUrl = "<?= $url_ws_obs; ?>";
695
					//
696
					//
697
					//
3208 idir 698
 
3239 idir 699
					// langue
700
					widget.langue = "<?= $widget['langue']; ?>";
701
					// Squelette d'URL du web service de l'annuaire.
702
					widget.serviceAnnuaireIdUrl = "<?= $url_ws_annuaire; ?>";
703
					// URL de l'icône du chargement en cours
704
					widget.chargementIconeUrl = "<?= $url_base; ?>modules/saisie/squelettes/defaut/img/icones/chargement.gif";
705
					// URL de l'icône du chargement en cours d'une image
706
					widget.chargementImageIconeUrl = "<?= $url_base; ?>modules/saisie/squelettes/defaut/img/icones/chargement-image.gif";
707
					// URL de l'icône du calendrier
708
					widget.calendrierIconeUrl = "<?= $url_base; ?>modules/saisie/squelettes/defaut/img/icones/calendrier.png";
709
					// URL de l'icône pour une photo manquante
710
					widget.pasDePhotoIconeUrl = "<?= $url_base; ?>modules/saisie/squelettes/defaut/img/icones/pasdephoto.png";
711
 
712
					// Code du référentiel utilisé pour les nom scientifiques.
713
					widget.nomSciReferentiel = "<?= strtolower( $widget['referentiel'] ); ?>";
714
					// Indication de la présence d'une espèce imposée
715
					widget.especeImposee = "<?= $espece_imposee; ?>";
716
					// Tableau d'informations sur l'espèce imposée
717
					widget.infosEspeceImposee = "<?= $infos_espece; ?>";
718
					// Nombre d'élément dans les listes d'auto-complétion
719
					widget.autocompletionElementsNbre = 20;
720
					// Indication de la présence d'un référentiel imposé
721
					widget.referentielImpose = "<?= $referentiel_impose; ?>";
722
 
723
					// URL du web service permettant l'auto-complétion des noms scientifiques
724
					widget.serviceAutocompletionNomSciUrl = "<?= $widget['especes']['url_ws_autocompletion_ns']; ?>?"+
725
						"masque={masque}&"+
726
						"recherche=etendue&"+
727
						"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
728
						"ns.structure=au&"+
729
						"navigation.limite=" + widget.autocompletionElementsNbre;
730
					// Squelette d'URL du web service permettant l'auto-complétion des noms scientifiques
731
					widget.serviceAutocompletionNomSciUrlTpl = "<?= $widget['especes']['url_ws_autocompletion_ns_tpl']; ?>?"+
732
						"masque={masque}&"+
733
						"recherche=etendue&"+
734
						"retour.champs=famille,nom_retenu,nom_retenu_complet,num_taxonomique,nom_retenu.id&"+
735
						"retour.tri=alpharet&"+ // tri "à la CeL"
736
						"ns.structure=au&"+
737
						"navigation.limite=" + widget.autocompletionElementsNbre;
738
					// Nombre d'observations max autorisé avant transmission
739
					widget.obsMaxNbre = 10;
740
					// Durée d'affichage en milliseconde des messages d'informations
741
					widget.dureeMessage = 30000;
742
					//
743
					//
744
					//
745
					// Squelette d'URL du web service d'eFlore fournissant les noms de communes.
746
					widget.serviceNomCommuneUrl = "https://api.tela-botanica.org/service:eflore:0.1/osm/nom-commune?lon={lon}&lat={lat}";
747
					// Squelette d'URL du web service d'eFlore fournissant les noms de communes hors de France (localisation approximative).
748
					widget.serviceNomCommuneUrlAlt = "https://api.tela-botanica.org/service:eflore:0.1/wikipedia/nom-commune?lon={lon}&lat={lat}&nbre=1";
749
					// URL du marqueur à utiliser dans la carte Google Map
750
					widget.googleMapMarqueurUrl = "<?=$url_base?>modules/saisie/squelettes/defaut/img/marqueurs/epingle.png";
751
					//
752
					//
753
					//
754
 
755
					// Initialisation du bousin
756
					widget.init();
757
				});
758
			//]]>
3230 delphine 759
		</script>
3208 idir 760
 
3230 delphine 761
		<!-- Barre de navigation -->
762
		<?php if ( $bar ): ?>
763
			<script src="<?= $url_script_navigation; ?>"></script>
764
		<?php endif; ?>
765
	</body>
3208 idir 766
</html>