Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3184 → Rev 3185

/trunk/widget/modules/manager/squelettes/creation.tpl.html
46,7 → 46,6
<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" />
<link rel="stylesheet" type="text/css" href="https://resources.tela-botanica.org/bootstrap/3.1.0/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="<?php echo $url_base; ?>modules/manager/squelettes/css/manager.css" media="screen" />
<link rel="stylesheet" type="text/css" id="telabotanica-style-css" href="https://www.tela-botanica.org/wp-content/themes/telabotanica/dist/bundle.css?ver=4.9.7" media="all">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.1/css/all.css" integrity="sha384-O8whS3fhG2OnA5Kas0Y9l3cfpmYjapjI0E4theH4iuMD+pLhbf6JI0jIMfYcK3yZ" crossorigin="anonymous">
 
<!-- Google Analytics -->
106,12 → 105,13
<?php if ($mode === 'modification') : ?>
<input id="langue" name="langue" readonly value="<?php echo $widget['langue']; ?>">
<?php else : ?>
<input id="langue" name="langue" list="langues">
<datalist id="langues" >
<?php foreach ($langues as $code => $langue) : ?>
<option value="<?php echo $code; ?>"><?php echo $langue['nom']; ?></option>
<?php endforeach; ?>
</datalist>
<div class="select-wrapper">
<select id="langue" name="langue">
<?php foreach ($langues as $code => $langue) : ?>
<option value="<?php echo $code; ?>" <?php echo $code === 'fr' ? 'selected' : '';?>><?php echo $langue['nom']; ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
</div><!-- end #basic-details-section -->
 
243,7 → 243,7
 
<div class="widget-blocks col-md-8">
<!-- <iframe src="http://localhost/widget:cel:saisie2?projet=<?php echo isset($widget['projet'])?$widget['projet']:'base'; ?>" class="widget-renderer" height="100%" width="100%" ></iframe> -->
<div class="widget-renderer" style="background:rgba(248, 245, 239, 0.6);">
<div class="widget-renderer">
 
<div id="preview-header" class="row">
<div id="preview-logo" class="col-md-4">
302,47 → 302,35
 
<h2>Observateur</h2>
 
<div id="zone-courriel" class="row align-items-center">
<div id="zone-courriel" class="row">
 
<div class="col-md-6">
<label for="courriel" class="" title="Veuillez saisir votre adresse courriel.">
<strong class="obligatoire">*</strong>Courriel
<i class="fa fa-envelope"></i> Courriel *
</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="email" id="courriel" name="courriel" class="form-control" title="Veuillez saisir votre adresse courriel. ">
<input type="hidden" id="id_utilisateur" name="id_utilisateur">
</div>
<input type="email" id="courriel" name="courriel" title="Veuillez saisir votre adresse courriel. ">
<input type="hidden" id="id_utilisateur" name="id_utilisateur">
</div>
 
<div id="zone-courriel-confirmation" class="col-md-6 ">
<label for="courriel_confirmation" class="" title="Veuillez confirmer le courriel.">
<strong class="obligatoire">*</strong> Courriel (confirmation)
<i class="fa fa-envelope"></i> Courriel * (confirmation)
</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="email" id="courriel_confirmation" name="courriel_confirmation" class="form-control">
</div>
<input type="email" id="courriel_confirmation" name="courriel_confirmation">
</div>
 
</div>
 
<div id="zone-prenom-nom" class="row align-items-center">
<div id="zone-prenom-nom" class="row">
 
<div class="col-md-6 ">
<label for="prenom" class="">Prénom</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input type="text" id="prenom" name="prenom" class="form-control">
</div>
<div class="col-md-6">
<label for="prenom" class=""><i class="fa fa-user"></i> Prénom</label>
<input type="text" id="prenom" name="prenom">
</div>
 
<div class="col-md-6 ">
<label for="nom" class="">Nom</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input type="text" id="nom" name="nom" class="form-control">
</div>
<label for="nom" class=""><i class="fa fa-user"></i> Nom</label>
<input type="text" id="nom" name="nom">
</div>
 
</div>
353,58 → 341,48
 
<h2>Observation</h2>
 
<div id="zone-observation" class="row align-items-center">
<div id="zone-observation" class="row">
 
<div class="col-md-6 ">
<label for="courriel" class="" title="Veuillez saisir votre adresse courriel.">
<strong class="obligatoire">*</strong>Geolocalisation
<i class="fa fa-envelope"></i> Geolocalisation *
</label>
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="email" id="courriel" name="courriel" class="form-control" title="Veuillez saisir votre adresse courriel. ">
<input type="hidden" id="id_utilisateur" name="id_utilisateur">
</div>
<label for="milieu" class="">Milieu</label>
<div class=" input-group">
<span class="input-group-addon"><i class="fa fa-street-view"></i></span>
<input type="text" id="milieu" name="milieu" class="form-control" placeholder="bois, champ, falaise, ...">
</div>
<input type="email" id="courriel" name="courriel" title="Veuillez saisir votre adresse courriel. ">
<input type="hidden" id="id_utilisateur" name="id_utilisateur">
 
<label for="milieu" class=""><i class="fa fa-street-view"></i> Milieu</label>
<input type="text" id="milieu" name="milieu" placeholder="bois, champ, falaise, ...">
</div>
 
<div class="col-md-6">
<label for="date" class="" title="">
<strong class="obligatoire">*</strong>Date de relevé
<i class="fa fa-calendar"></i> Date de relevé *
</label>
<div class=" input-group date" id="datetimepicker">
<span id="date-icone" class="input-group-addon"><i class="fa fa-calendar"></i></span>
<div class="date" id="datetimepicker">
<input type="date" id="date" name="date" class="form-control hasDatepicker">
</div>
 
<label for="referentiel" class="" title="">
<strong class="obligatoire">*</strong>Référentiel
<i class="fa fa-book"></i> Référentiel *
</label>
<div class=" input-group">
<span class="input-group-addon"><i class="fa fa-book"></i></span>
<div class="select-wrapper add-field-select">
<select id="referentiel" name="referentiel" class="form-control">
<option value="" selected="" title="">-</option>
</select>
</div>
<div class="select-wrapper add-field-select">
<select id="referentiel" name="referentiel">
<option value="" selected="" title="">-</option>
</select>
</div>
<label for="taxon" class="" title="">Espèce</label>
<div class=" input-group date">
<span class="input-group-addon"><i class="fa fa-leaf"></i></span>
<input type="text" name="taxon" class="form-control" id="taxon" >
 
<label for="taxon" class="" title=""><i class="fa fa-leaf"></i> Espèce</label>
<div class="date">
<input type="text" name="taxon" id="taxon" >
</div>
 
<label for="certitude" class="" title="">
<strong class="obligatoire">*</strong>Certitude
<i class="fa fa-question"></i> Certitude *
</label>
<div class="input-group date" id="datetimepicker">
<span class="input-group-addon"><i class="fa fa-question"></i></span>
<div class="select-wrapper add-field-select">
<select id="certitude" name="certitude" class="form-control">
<option value="">-</option>
</select>
</div>
<div class="date select-wrapper add-field-select id="datetimepicker">
<select id="certitude" name="certitude">
<option value="">-</option>
</select>
</div>
</div>
 
412,6 → 390,7
 
</form>
 
<!-- formulaire d'affichage des bouveaux champs -->
<form id="form-supp" role="form" autocomplete="on">
<div id="zone-supp" class="row align-items-center">
<div class="col-md-6 preview-container"></div>
/trunk/widget/modules/manager/squelettes/css/manager.css
48,15 → 48,62
 
#zone-appli #register-page #group-settings-form .widget-blocks button,
#group-settings-form .button {
font-size: 1.6rem;
background-color: #a2b93b;
border-radius: .2rem;
border: 0 none;
padding: 1.25rem 2rem;
cursor: pointer;
color: #fff;
display: inline-block;
font-family: Ubuntu,sans-serif;
font-size: 13px;
font-size: 1.3rem;
font-weight: 500;
letter-spacing: 1px;
letter-spacing: .1rem;
line-height: 15px;
line-height: 1.5rem;
text-align: center;
text-decoration: none;
text-transform: capitalize;
-webkit-transition: background .2s ease;
-o-transition: background .2s ease;
transition: background .2s ease;
}
 
#zone-appli #register-page #group-settings-form .widget-blocks button:hover,
#zone-appli #register-page #group-settings-form .widget-blocks button:focus,
#group-settings-form .button:hover,
#group-settings-form .button:focus {
background-color: #b3c954;
}
 
#zone-appli #register-page #group-settings-form .widget-blocks input,
#zone-appli #register-page #group-settings-form .widget-blocks select,
#zone-appli #register-page #group-settings-form .widget-blocks textarea {
width: 100%;
border-radius: .3rem;
border: .1rem solid #ddd;
padding: 1rem;
line-height: 1.15;
margin: 0;
font-size: 1.3rem;
}
 
#zone-appli #register-page #group-settings-form .widget-blocks input[type="checkbox"],
#zone-appli #register-page #group-settings-form .widget-blocks input[type="radio"] {
width: auto;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
text-align: start;
}
 
#zone-appli #register-page #group-settings-form .widget-blocks input {
overflow: visible;
}
 
 
#zone-appli #register-page #group-settings-form .widget-blocks .message {
background-color: #f8f5ef;
color: #232323;
75,9 → 122,8
padding: 0 3rem 3rem 3rem;
min-height: 100%;
width: 100%;
/*pointer-events: none;*/
overflow: hidden;
/*background: rgba(248, 245, 239, 0.6);*/
background: rgba(248, 245, 239, 0.6);
}
 
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer h1 {
128,7 → 174,7
 
#zone-appli #register-page #group-settings-form .widget-blocks .list-label,
#zone-appli #register-page #group-settings-form .widget-blocks label {
color: #606060;
color: #000;
display: block;
font-size: 1.5rem;
margin-bottom: 0.4rem;
238,10 → 284,6
#zone-appli #register-page #group-settings-form .widget-blocks .fichier-type:focus {
background-color: rgba(234, 153, 115, 0.7);
}
/*
#zone-appli #register-page #group-settings-form .widget-blocks .remove-file i {
font-size: 1.6rem;
}*/
 
#zone-appli #register-page #group-settings-form .widget-blocks .fichier-type {
text-transform: capitalize;
253,8 → 295,8
color: #ffffff;
border-radius: 0.2rem;
}
/****************************/
 
 
/**** style du formulaire des nouveaux champs après validation ****/
#zone-appli #register-page #group-settings-form .widget-blocks .disabled,
#zone-appli #register-page #group-settings-form .widget-blocks .validated {
287,19 → 329,18
text-align: left;
color: #606060;
}
/******************************************************************/
 
/*************************************************/
 
/**** Style des select ****/
#group-settings-form select,
#group-settings-form .selectBox select {
background-color: rgba(0, 159, 184, 0.5);
border: 0.1rem solid #ddd;
/**** Style des select et checkbox-list ****/
#zone-appli #register-page #group-settings-form .widget-blocks select,
#zone-appli #register-page #group-settings-form .widget-blocks .selectBox select {
background-color: #fff;
border: none;
}
 
#group-settings-form select {
font-size: 3rem;
font-weight: 900;
font-weight: 300;
}
 
#group-settings-form select,
307,7 → 348,7
#group-settings-form .selectBox select,
#group-settings-form .selectBox select:required {
width: 100%;
color:#fff;
color:#333;
border-radius: 0.3rem;
padding: 0.8rem;
line-height: 1.15;
361,25 → 402,30
}
 
#group-settings-form .select-wrapper::after,
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer .selectBox::after {
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer .selectBox::after,
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer .select-wrapper::after {
/* Ajout et style d'une "flèche bas" */
content: '⌄';
pointer-events: none;
position: absolute;
top: 0;
right: 0.5rem;
font-size: 3rem;
font-weight: 900;
color: #fff;
font-size: 2rem;
font-weight: 300;
color: #333;
}
/*******************************************/
 
#group-settings-form #new-fields .select-wrapper::after,
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer .selectBox::after,
#zone-appli #register-page #group-settings-form .widget-blocks .widget-renderer .select-wrapper::after {
/* correction de la position de la flèche
dans le formulaire des champs ajoutés*/
top: -10px;
/**** Input Type Range ****/
#zone-appli #register-page #group-settings-form .widget-blocks .range input[type="range"],
#zone-appli #register-page #group-settings-form .widget-blocks .range input[type="number"] {
border:none;
}
 
#zone-appli #register-page #group-settings-form .widget-blocks .range input[type="number"] {
padding: 0 0 0 0.5rem;
height: 3rem;
text-align: center;
}
/**************************/
 
/**** Affichage des nouveaux champs ****/
/trunk/widget/modules/manager/squelettes/js/manager.js
53,14 → 53,22
function inputListCheckbox() {
// On écoute le click sur une list-checkbox ('.selectBox')
// à tout moment de son insertion dans le dom
$('#zone-appli').on( 'click' , '.selectBox' , function() {
$( '#zone-appli' ).on( 'click' , '.selectBox' , function() {
$( '.checkboxes[data-id="' + $(this).attr( 'data-id' ) + '"]' ).toggleClass( 'hidden' );
});
}
 
// Mettre la première lettre en majuscule, les autres en minuscule
function capitalize( string ) {
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
function inputRangeDisplayNumber() {
 
$( '#zone-supp' ).on( 'input' , '.range input[type="range"]' , function () {
console.log( $( this ).val() );
$( this ).next( 'input[type="number"]' ).val ( $( this ).val() );
});
$( '#zone-supp' ).on( 'input' , '.range input[type="number"]' , function () {
console.log( $( this ).val() );
$( this ).prev( 'input[type="range"]' ).val ( $( this ).val() );
});
 
}
 
/***********************************************************
543,21 → 551,21
// Certains indices peuvent correspondre à un champ supprimé
if( 0 < $( thisFieldset ).length ) {
// initialisation du tableau de résultats
datasToSubmit[ resultArrayIndex ] = { fieldValues:{} };
datasToSubmit[ resultArrayIndex ] = { fieldValues:{} };
// Ajout de la clé au tableau de resultats
datasToSubmit[ resultArrayIndex ].key = $( '.field-key' , thisFieldset ).val();
datasToSubmit[ resultArrayIndex ].key = $( '.field-key' , thisFieldset ).val();
// Ajout de le nom au tableau de resultats
datasToSubmit[ resultArrayIndex ].name = $( '.field-name' , thisFieldset ).val();
datasToSubmit[ resultArrayIndex ].name = $( '.field-name' , thisFieldset ).val();
// Recueil de l'élément choisi pour le tableau de resultats
datasToSubmit[ resultArrayIndex ].element = $( '.field-element' , thisFieldset ).val();
datasToSubmit[ resultArrayIndex ].element = $( '.field-element' , thisFieldset ).val();
// Ajout de la valeur 'requis' ou non au tableau de resultats
datasToSubmit[ resultArrayIndex ].mandatory = $( '.field-is_mandatory' , thisFieldset ).is( ':checked' );
datasToSubmit[ resultArrayIndex ].mandatory = $( '.field-is_mandatory' , thisFieldset ).is( ':checked' );
// Ajout de l'unité au tableau de resultats
datasToSubmit[ resultArrayIndex ].unit = $( '.field-unit' , thisFieldset ).val() || null;
datasToSubmit[ resultArrayIndex ].unit = $( '.field-unit' , thisFieldset ).val() || null;
// Ajout du tooltip au tableau de resultats
datasToSubmit[ resultArrayIndex ].description = $( '.field-description' , thisFieldset ).val() || null;
// Ajout du nom du document d'aide au tableau de resultats
datasToSubmit[ resultArrayIndex ].help = $( '.file-return.help-doc-' + index ).text() || null;
datasToSubmit[ resultArrayIndex ].help = $( '.file-return.help-doc-' + index ).text() || null;
// Collecte les des données dépendantes de l'élément choisi
// sous forme d'un tableau de resultats
onSelectCollectDataValuesToSubmit( datasToSubmit[ resultArrayIndex ] , thisFieldset );
715,20 → 723,20
function onClickPreviewField( thisFieldset , index ) {
// Récupération des données
// Tous les champs
var fieldLabel = $( '.field-name' , thisFieldset ).val(),//nom
fieldKey = $( '.field-key' , thisFieldset ).val(),//clé
fieldElement = $( '.field-element' , thisFieldset ).val(),//élément
var fieldLabel = $( '.field-name' , thisFieldset ).val() || '',//nom
fieldKey = $( '.field-key' , thisFieldset ).val() || '',//clé
fieldElement = $( '.field-element' , thisFieldset ).val() || '',//élément
fieldIsMandatory = $( '.field-is_mandatory' , thisFieldset ).is( ':checked' ),//champ requis
fieldUnit = $( '.field-unit' , thisFieldset ).val(),//unités
fieldTooltip = $( '.field-description' , thisFieldset ).val(),//info-bulle
fieldHelp = $( '.file-return.help-doc-' + index ).text(),//nom du fichier d'aide
fieldUnit = $( '.field-unit' , thisFieldset ).val() || '',//unités
fieldTooltip = $( '.field-description' , thisFieldset ).val() || '',//info-bulle
fieldHelp = $( '.file-return.help-doc-' + index ).text() || '',//nom du fichier d'aide
fieldPlaceholder = $( '.aide-saisie' , thisFieldset ).val() || '',//placeholder
// Champs à valeur numérique ou date
fieldStep = $( '.step' , thisFieldset ).val(),
fieldMin = $( '.min' , thisFieldset ).val(),
fieldMax = $( '.max' , thisFieldset ).val(),
fieldStep = $( '.step' , thisFieldset ).val() || '',
fieldMin = $( '.min' , thisFieldset ).val() || '',
fieldMax = $( '.max' , thisFieldset ).val() || '',
// Champs "listes"
fieldDefaultNum = $( '.default' , thisFieldset ).val(),//option pas default
fieldDefaultNum = $( '.default' , thisFieldset ).val() || '',// value range/number par default
fieldOtherValue = $( '.option-other-value' , thisFieldset ).is( ':checked' ),//option autre
fieldOptions = collectListOptions( thisFieldset );//Array: toutes les options
// Variables d'affichage
777,7 → 785,7
// Attribut required pour le listes
commonFieldsHtml.fieldInput.mandatoryAttr = ' required="required"';
// Nom du champ (éléments listes)
listFieldsHtml.containerContent += ' *';
listFieldsHtml.containerContent += ' *';
// Nom du champ (éléments simples)
commonFieldsHtml.fieldLabel.labelContent += ' *';
}
1166,7 → 1174,10
}
 
fieldHtml =
'<div class="number">' +
'<div' +
' class="range"' +
' id="' + fieldKey + '"' +
'>' +
'<label' +
// For
commonFieldsHtml.fieldLabel.forAttr +
1182,7 → 1193,6
'</label>' +
// Bouton 'help'
commonFieldsHtml.helpButton +
 
'<input' +
// Type
commonFieldsHtml.fieldInput.typeAttr +
1194,26 → 1204,39
commonFieldsHtml.fieldInput.classAttr +
// Info-bulle
commonFieldsHtml.titleAttr +
// Info-bulle
commonFieldsHtml.fieldInput.placeholderAttr +
// Required
commonFieldsHtml.fieldInput.mandatoryAttr +
// Default
' value="' + fieldDefaultNum + '"' +
// Autres attributs
commonFieldsHtml.fieldInput.otherAttr +
'>' +
'<input' +
' type="number"' +
' name="' + fieldKey + 'Output"' +
// Info-bulle
commonFieldsHtml.titleAttr +
// Placeholder
commonFieldsHtml.fieldInput.placeholderAttr +
' value="' + fieldDefaultNum + '"' +
// Autres attributs
commonFieldsHtml.fieldInput.otherAttr +
// DataId
commonFieldsHtml.dataIdAttr +
'>' +
'</div>';
break;
 
case 'number':
// Step
if( '' !== fieldStep ) {
commonFieldsHtml.fieldInput.otherAttr += ' step="' + fieldStep + '"';
}
case 'date':
case 'number':
// Ouvrir l'attribut class (suppression de '"')
commonFieldsHtml.fieldInput.classAttr = commonFieldsHtml.fieldInput.classAttr.slice(0, -1);
// Classe 'and-help'
commonFieldsHtml.fieldInput.classAttr += commonFieldsHtml.helpClass + '"';
// Step
if( '' !== fieldStep ) {
commonFieldsHtml.fieldInput.otherAttr += ' step="' + fieldStep + '"';
}
// Min
if( '' !== fieldMin ) {
commonFieldsHtml.fieldInput.otherAttr += ' min="' + fieldMin + '"';
1248,10 → 1271,12
commonFieldsHtml.fieldInput.classAttr +
// Info-bulle
commonFieldsHtml.titleAttr +
// Info-bulle
// Placeholder
commonFieldsHtml.fieldInput.placeholderAttr +
// Required
commonFieldsHtml.fieldInput.mandatoryAttr +
// Default
' value="' + fieldDefaultNum + '"' +
// Autres attributs
commonFieldsHtml.fieldInput.otherAttr +
'>' +
1317,7 → 1342,7
// Valeur transmise (value)
optionValue : $( this ).find('.list-value').val().toLowerCase(),
// Valeur Visible
optionText : capitalize( $( this ).find('.list-value').val() ),
optionText : $( this ).find('.list-value').val(),
// Booléen "default"
isDefault : $( this ).find( '.is-defaut-value').is( ':checked' ),
// Indice de l'option
1487,6 → 1512,8
inputFile();
// Affichage des List-checkbox
inputListCheckbox();
// Affichage des Range
inputRangeDisplayNumber()
// Modale "aide"
previewFieldHelpModal();
});