Subversion Repositories eFlore/Applications.cel

Rev

Rev 3378 | Rev 3452 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3378 Rev 3424
Line 139... Line 139...
139
  $( '#new-fields' ).append(
139
  $( '#new-fields' ).append(
140
    '<fieldset data-id="' + fieldIndex + '" class="new-field">'+
140
    '<fieldset data-id="' + fieldIndex + '" class="new-field">'+
141
      '<h3>Nouveau champ :<br><strong class="field-title" data-id="' + fieldIndex + '"></strong></h3>'+
141
      '<h3>Nouveau champ :<br><strong class="field-title" data-id="' + fieldIndex + '"></strong></h3>'+
142
      // Nom du champ
142
      // Nom du champ
143
      '<div class="row">'+
143
      '<div class="row">'+
144
        '<div class="col-sm-12  mt-3">'+
144
        '<div class="col-sm-12 mt-3 mb-3">'+
145
          '<label for="field-name" title="Donnez un titre à votre champ">Nom du champ *</label>'+
145
          '<label for="field-name" title="Donnez un titre à votre champ">Nom du champ *</label>'+
146
          '<input type="text" name="field-name" data-id="' + fieldIndex + '" class="field-name form-control" placeholder="Titre de votre champ" title="Le titre du champ" required>'+
146
          '<input type="text" name="field-name" data-id="' + fieldIndex + '" class="field-name form-control" placeholder="Titre de votre champ" title="Le titre du champ" required>'+
147
        '</div>'+
147
        '</div>'+
148
        // Clé du champ
148
        // Clé du champ
149
        '<div class="col-sm-12  mt-3">'+
149
        '<div class="col-sm-12 mt-3 mb-3">'+
150
          '<label for="field-key" title="Nom du champ dans la base de données">'+
150
          '<label for="field-key" title="Nom du champ dans la base de données">'+
151
            'Clé du champ *'+
151
            'Clé du champ *'+
152
          '</label>'+
152
          '</label>'+
153
          '<input type="text" name="field-key" data-id="' + fieldIndex + '" class="field-key form-control" placeholder="Clé du champ" pattern="^(?:[a-z]+(?:(?:[A-Z]+[a-z]+)+)?|[a-z]+(?:(?:-[a-z]+)+)?)$" title="Clé Unique en Camelcase ou minuscule séparés par tirets, pas d\'accents pas de caractères spéciaux." required>'+
153
          '<input type="text" name="field-key" data-id="' + fieldIndex + '" class="field-key form-control" placeholder="Clé du champ" pattern="^(?:[a-z]+(?:(?:[A-Z]+[a-z]+)+)?|[a-z]+(?:(?:-[a-z]+)+)?)$" title="Clé Unique en Camelcase ou minuscule séparés par tirets, pas d\'accents pas de caractères spéciaux." required>'+
154
        '</div>'+
154
        '</div>'+
155
        '<p class="message ml-2 mr-2">' +
155
        '<p class="message m-2">' +
156
          '<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i> '+
156
          '<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i> '+
157
          'Une clé doit être unique<br>' +
157
          'Une clé doit être unique<br>' +
158
          'En "camelCase" (ecriture chameau)<br>'+
158
          'En "camelCase" (ecriture chameau)<br>'+
159
          'Ou en minuscule avec tirets ("-") si nécessaire<br>'+
159
          'Ou en minuscule avec tirets ("-") si nécessaire<br>'+
160
          'Pas d\'espaces, aucuns caractères spéciaux (accents, cédilles, etc.).' +
160
          'Pas d\'espaces, aucuns caractères spéciaux (accents, cédilles, etc.).' +
161
        '</p>' +
161
        '</p>' +
162
        // Type de champ
162
        // Type de champ
163
        '<div class="col-sm-12 mt-3 add-field-select" data-id="' + fieldIndex + '">'+
163
        '<div class="col-sm-12 mt-3 mb-3 add-field-select" data-id="' + fieldIndex + '">'+
164
          '<label for="field-element" title="Quel type de champ">Type de champ *</label>'+
164
          '<label for="field-element" title="Quel type de champ">Type de champ *</label>'+
165
          '<select name="field-element" data-id="' + fieldIndex + '" class="field-element form-control custom-select">'+
165
          '<select name="field-element" data-id="' + fieldIndex + '" class="field-element form-control custom-select">'+
166
            '<option value="text">Champ texte</option>'+
166
            '<option value="text">Champ texte</option>'+
167
            '<option value="email">Champ email</option>'+
167
            '<option value="email">Champ email</option>'+
168
            '<option value="textarea">Champ rédaction</option>'+
168
            '<option value="textarea">Champ rédaction</option>'+
Line 174... Line 174...
174
            '<option value="range">Curseur (entre 2 bornes)</option>'+
174
            '<option value="range">Curseur (entre 2 bornes)</option>'+
175
            '<option value="number">Nombre</option>'+
175
            '<option value="number">Nombre</option>'+
176
          '</select>'+
176
          '</select>'+
177
        '</div>'+
177
        '</div>'+
178
        // Checkbox "champ requis"
178
        // Checkbox "champ requis"
179
        '<div class="col-sm-12 radio mt-3">'+
179
        '<div class="col-sm-12 radio mt-3 mb-3">'+
180
          '<label class="radio-label" for="field-is_mandatory" title="Ce champ est obligatoire">'+
180
          '<label class="radio-label" for="field-is_mandatory" title="Ce champ est obligatoire">'+
181
            '<input type="checkbox" name="field-is_mandatory" data-id="' + fieldIndex + '" class="field-is_mandatory form-control">'+
181
            '<input type="checkbox" name="field-is_mandatory" data-id="' + fieldIndex + '" class="field-is_mandatory form-control">'+
182
            'Champ requis ?'+
182
            'Champ requis ?'+
183
          '</label>'+
183
          '</label>'+
184
        '</div>'+
184
        '</div>'+
185
        // Unité des valeurs
185
        // Unité des valeurs
186
        '<div class="col-sm-12  mt-3">'+
186
        '<div class="col-sm-12 mt-3 mb-3">'+
187
          '<label for="field-unit" title="Unité de mesure de vos valeurs">Unités ( cm, kg, ha, etc.)</label>'+
187
          '<label for="field-unit" title="Unité de mesure de vos valeurs">Unités ( cm, kg, ha, etc.)</label>'+
188
          '<input type="text" name="field-unit" data-id="' + fieldIndex + '" class="field-unit form-control" placeholder="symbole de vos unités">'+
188
          '<input type="text" name="field-unit" data-id="' + fieldIndex + '" class="field-unit form-control" placeholder="symbole de vos unités">'+
189
        '</div>'+
189
        '</div>'+
190
        // Tooltip
190
        // Tooltip
191
        '<div class="col-sm-12  mt-3">'+
191
        '<div class="col-sm-12 mt-3 mb-3">'+
192
          '<label for="field-description" title="Ajoutez une info-bulle">Info-bulle</label>'+
192
          '<label for="field-description" title="Ajoutez une info-bulle">Info-bulle</label>'+
193
          '<input type="text" name="field-description" data-id="' + fieldIndex + '" class="field-description form-control" placeholder="Quelques mots">'+
193
          '<input type="text" name="field-description" data-id="' + fieldIndex + '" class="field-description form-control" placeholder="Quelques mots">'+
194
        '</div>'+
194
        '</div>'+
195
        // Import d'une image d'aide à afficher en popup
195
        // Import d'une image d'aide à afficher en popup
196
        '<div class="input-file-row row">'+
196
        '<div class="input-file-row row">'+
Line 200... Line 200...
200
          '</div>'+
200
          '</div>'+
201
          '<div class="btn btn-danger btn-sm remove-file" name="remove-file" data-id="' + fieldIndex + '" title="Supprimer le fichier"><i class="fas fa-times" aria-hidden="true"></i></div>'+
201
          '<div class="btn btn-danger btn-sm remove-file" name="remove-file" data-id="' + fieldIndex + '" title="Supprimer le fichier"><i class="fas fa-times" aria-hidden="true"></i></div>'+
202
          '<div class="file-return help-doc-' + fieldIndex + ' hidden"></div>'+
202
          '<div class="file-return help-doc-' + fieldIndex + ' hidden"></div>'+
203
        '</div>'+
203
        '</div>'+
204
        // Boutons supprimer
204
        // Boutons supprimer
205
        '<div class="col-sm-12  mt-3">'+
205
        '<div class="col-sm-12 mt-3 mb-3">'+
206
          '<label for="remove-field">Supprimer</label>'+
206
          '<label for="remove-field">Supprimer</label>'+
207
          '<div class="remove-field button" name="remove-field" data-id="' + fieldIndex + '" title="Supprimer un champ"><i class="fa fa-skull" aria-hidden="true"></i></div>'+
207
          '<div class="remove-field button" name="remove-field" data-id="' + fieldIndex + '" title="Supprimer un champ"><i class="fa fa-skull" aria-hidden="true"></i></div>'+
208
        '</div>'+
208
        '</div>'+
209
      '</div>'+
209
      '</div>'+
210
    '</fieldset>'
210
    '</fieldset>'
211
  );
211
  );
212
  // Animation de l'affichage
212
  // Animation de l'affichage
213
  $( 'fieldset.new-field[data-id="' + fieldIndex + '"]').hide().show( 200 );
213
  $( 'fieldset.new-field[data-id="' + fieldIndex + '"]').hide().show( 200 );
-
 
214
  $( 'html, body' ).stop().animate({
-
 
215
    scrollTop: $( 'fieldset.new-field[data-id="' + fieldIndex + '"]' ).offset().top
-
 
216
  }, 300 );
214
}
217
}
Line 215... Line 218...
215
 
218
 
216
// Affichage du nom du champ dès qu'il est renseigné
219
// Affichage du nom du champ dès qu'il est renseigné
217
function onChangeDisplayFieldLabel( fieldIndex ) {
220
function onChangeDisplayFieldLabel( fieldIndex ) {
Line 237... Line 240...
237
  // On insère les champs par défaut de recueil d'informations
240
  // On insère les champs par défaut de recueil d'informations
238
  displayFieldDetailsCollect(
241
  displayFieldDetailsCollect(
239
    fieldIndex,
242
    fieldIndex,
240
    // Placeholder (champ type text par défaut)
243
    // Placeholder (champ type text par défaut)
241
    '<div class="col-sm-12  mt-3">'+
244
    '<div class="col-sm-12  mt-3">'+
242
      '<label for="aide-saisie" title="Aidez les utilisateurs en deux ou 3 mots ou chiffres à comprendre ce que doit contenir le champ">Texte d\'aide à la saisie</label>'+
245
      '<label for="aide-saisie" title="Aidez les utilisateurs en deux ou 3 mots ou chiffres à comprendre ce que doit contenir ce champ">Texte d\'aide à la saisie</label>'+
243
      '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir le champ">'+
246
      '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir ce champ">'+
244
    '</div>'
247
    '</div>'
245
  );
248
  );
246
  // Sinon :
249
  // Sinon :
247
  $( '.field-element[data-id="' + fieldIndex + '"]' ).change( function() {
250
  $( '.field-element[data-id="' + fieldIndex + '"]' ).change( function() {
248
    // On intialise l'index pour les listes la variable qui contiendra un id pour chaque option
251
    // On intialise l'index pour les listes la variable qui contiendra un id pour chaque option
Line 265... Line 268...
265
            'Vérifier le bon fonctionnement et changer, si nécessaire, les valeurs de défaut, incrémentation (step), min et max.<br>'+
268
            'Vérifier le bon fonctionnement et changer, si nécessaire, les valeurs de défaut, incrémentation (step), min et max.<br>'+
266
            'Si le navigateur considère que certaines valeurs sont incohérentes il pourrait les modifier automatiquement'+
269
            'Si le navigateur considère que certaines valeurs sont incohérentes il pourrait les modifier automatiquement'+
267
          '</p>' +
270
          '</p>' +
268
          // Placeholder
271
          // Placeholder
269
          '<div class="col-sm-12  mt-3">'+
272
          '<div class="col-sm-12  mt-3">'+
270
            '<label for="aide-saisie" title="Deux ou 3 mots ou chiffres pour comprendre ce que doit contenir le champ (ex: min 20, 10 par 10, etc.)">Texte d\'aide à la saisie</label>'+
273
            '<label for="aide-saisie" title="Deux ou 3 mots ou chiffres pour comprendre ce que doit contenir ce champ (ex: min 20, 10 par 10, etc.)">Texte d\'aide à la saisie</label>'+
271
            '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir le champ">'+
274
            '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir ce champ">'+
272
          '</div>'+
275
          '</div>'+
273
          // Valeur par défaut
276
          // Valeur par défaut
274
          '<div class="col-sm-12  mt-3">'+
277
          '<div class="col-sm-12  mt-3">'+
275
            '<label for="default" title="Valeur par défaut">Valeur par défaut</label>'+
278
            '<label for="default" title="Valeur par défaut">Valeur par défaut</label>'+
276
            '<input type="number" name="default" data-id="' + fieldIndex + '" class="default form-control" step="0.01" lang="en">'+
279
            '<input type="number" name="default" data-id="' + fieldIndex + '" class="default form-control" step="0.01" lang="en">'+
Line 361... Line 364...
361
      default:
364
      default:
362
        displayFieldDetailsCollect(
365
        displayFieldDetailsCollect(
363
          fieldIndex,
366
          fieldIndex,
364
        // Placeholder
367
        // Placeholder
365
        '<div class="col-sm-12 mt-3">'+
368
        '<div class="col-sm-12 mt-3">'+
366
          '<label for="aide-saisie" title="Aidez les utilisateurs en deux ou 3 mots ou chiffres à comprendre ce que doit contenir le champ">Texte d\'aide à la saisie</label>'+
369
          '<label for="aide-saisie" title="Aidez les utilisateurs en deux ou 3 mots ou chiffres à comprendre ce que doit contenir ce champ">Texte d\'aide à la saisie</label>'+
367
          '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir le champ">'+
370
          '<input type="text" name="aide-saisie" data-id="' + fieldIndex + '" class="aide-saisie form-control" placeholder="Ce que doit contenir ce champ">'+
368
        '</div>'
371
        '</div>'
369
      );
372
      );
370
        break;
373
        break;
371
    }
374
    }
372
    // Ajout des valeurs possibles
375
    // Ajout des valeurs possibles
Line 688... Line 691...
688
    }
691
    }
689
  }
692
  }
Line 690... Line 693...
690
 
693
 
Line 691... Line 694...
691
  var resultsArrayJson = JSON.stringify( datasToSubmit , replacer );
694
  var resultsArrayJson = JSON.stringify( datasToSubmit , replacer );
692
 
695
 
693
  // JSON.strigify : Gestion des apostrophes dans les valeurs :
696
  // JSON.stringify : Gestion des apostrophes dans les valeurs :
694
  function replacer( key , value ) {
697
  function replacer( key , value ) {
695
    if ( 'fieldValues' === key && 'object' === typeof value ) {
698
    if ( 'fieldValues' === key && 'object' === typeof value ) {
696
      for ( var i in value ) {
699
      for ( var i in value ) {
Line 1631... Line 1634...
1631
 
1634
 
1632
function potDeMiel() {
1635
function potDeMiel() {
1633
  if( !valeurOk( $( '#basic-widget-form #email' ).val() ) ) {
1636
  if( !valeurOk( $( '#basic-widget-form #email' ).val() ) ) {
1634
    $( '#signup_submit' ).prop( 'disabled', false );
1637
    $( '#signup_submit' ).prop( 'disabled', false );
1635
  }
1638
  }
1636
  $( '#signup_submit' ).on( 'click dblclick mousedown submit focus keydown keypress keyup touchstart touchend', function() {
1639
  $( '#signup_submit' ).off().on( 'click dblclick mousedown submit focus keydown keypress keyup touchstart touchend', function() {
1637
    if( valeurOk( $( '#basic-widget-form #email' ).val() ) ) {
1640
    if( valeurOk( $( '#basic-widget-form #email' ).val() ) ) {
1638
      return false;
1641
      return false;
1639
    }
1642
    }
1640
  });
1643
  });
Line 1647... Line 1650...
1647
      $( '#signup_submit' ).prop( 'disabled', true );
1650
      $( '#signup_submit' ).prop( 'disabled', true );
1648
    }
1651
    }
1649
  });
1652
  });
1650
}
1653
}
Line -... Line 1654...
-
 
1654
 
-
 
1655
function onGeoloc() {
-
 
1656
  // Empêcher que le module carto ne bind ses events partout
-
 
1657
  $( '#tb-geolocation' ).on( 'submit blur click focus mousedown mouseleave mouseup change', '*', function( event ) {
-
 
1658
    event.preventDefault();
-
 
1659
    return false;
-
 
1660
  });
-
 
1661
  // evenement location
-
 
1662
  $( '#tb-geolocation' ).on( 'location' , function( location ) {
-
 
1663
    var locDatas = location.originalEvent.detail;
-
 
1664
 
-
 
1665
    if ( valeurOk( locDatas ) ) {
-
 
1666
      console.dir( locDatas );
-
 
1667
 
-
 
1668
      var latitude  = '';
-
 
1669
      var longitude = '';
-
 
1670
      if ( valeurOk( locDatas.geometry.coordinates ) ) {
-
 
1671
        if ( 'Point' === locDatas.geometry.type ) {
-
 
1672
          if ( valeurOk( locDatas.geometry.coordinates[0] ) ) {
-
 
1673
            longitude = locDatas.geometry.coordinates[0].toFixed( 5 );
-
 
1674
          }
-
 
1675
          if ( valeurOk( locDatas.geometry.coordinates[1] ) ) {
-
 
1676
            latitude = locDatas.geometry.coordinates[1].toFixed( 5 );
-
 
1677
          }
-
 
1678
        } else if ( 'LineString' === locDatas.geometry.type ) {// on ne prend qu'un point de la ligne
-
 
1679
          if ( valeurOk( locDatas.geometry.coordinates[0][0] ) && valeurOk( locDatas.geometry.coordinates[1][0] ) ) {
-
 
1680
            longitude = ( locDatas.geometry.coordinates[0][0] + locDatas.geometry.coordinates[1][0] ) / 2;
-
 
1681
            longitude = longitude.toFixed( 5 );
-
 
1682
          }
-
 
1683
          if ( valeurOk( locDatas.geometry.coordinates[0][1] && valeurOk( locDatas.geometry.coordinates[1][1] ) ) ){
-
 
1684
            latitude = ( locDatas.geometry.coordinates[0][1] + locDatas.geometry.coordinates[1][1] ) / 2;
-
 
1685
            latitude = latitude.toFixed( 5 );
-
 
1686
          }
-
 
1687
        }
-
 
1688
      }
-
 
1689
      if ( valeurOk( latitude ) && valeurOk( longitude ) ) {
-
 
1690
        $( '#latitude' ).val( latitude );
-
 
1691
        $( '#longitude' ).val( longitude );
-
 
1692
      }
-
 
1693
    }
-
 
1694
  });
-
 
1695
}
-
 
1696
 
-
 
1697
function onGeolocManuelle() {
-
 
1698
  const coords = ['latitude','longitude','zoom'];
-
 
1699
  $( '#latitude,#longitude,#zoom' ).on( 'change', function( event ) {
-
 
1700
    var thisCoord    = this.id,
-
 
1701
        thisVal      = $( this ).val(),
-
 
1702
        valeur       = '';
-
 
1703
 
-
 
1704
    if ( $.isNumeric( thisVal ) ) {
-
 
1705
      switch( thisCoord ) {
-
 
1706
        case 'zoom':
-
 
1707
          if( 0 < parseInt( thisVal, 10 ) && 18 >= parseInt( thisVal, 10 ) ) {
-
 
1708
            valeur = thisVal;
-
 
1709
          }
-
 
1710
          break;
-
 
1711
        case 'latitude':
-
 
1712
          if ( 90 > Math.abs( parseInt( thisVal, 10 ) ) ) {
-
 
1713
            valeur = parseFloat( thisVal, 10 ).toFixed( 5 );
-
 
1714
            $( '#latitude' ).val( valeur );
-
 
1715
          }
-
 
1716
          break;
-
 
1717
        case 'longitude':
-
 
1718
          if ( 180 >= Math.abs( parseInt( thisVal, 10 ) ) ) {
-
 
1719
            valeur = parseFloat( thisVal, 10 ).toFixed( 5 );
-
 
1720
            $( '#longitude' ).val( valeur );
-
 
1721
          }
-
 
1722
          break;
-
 
1723
        default:
-
 
1724
          break;
-
 
1725
      }
-
 
1726
    }
-
 
1727
    //un champ vide n'est pas une erreur
-
 
1728
    if ( $.isNumeric( valeur ) ) {
-
 
1729
        $( this ).siblings( 'span.error' ).remove();
-
 
1730
    } else if ( 0 <= $.inArray( thisCoord, coords ) ) {
-
 
1731
      // on ne signale pas d'erreur si il n'y a rien dans le champ
-
 
1732
      if ( !valeurOk( $( this ).siblings( 'span.error' ) ) && valeurOk( $( this ).val() ) ) {
-
 
1733
        $( this ).after( '<span class="error">mauvais format pour ce champ<span>' );
-
 
1734
      } else {
-
 
1735
        $( this ).siblings( 'span.error' ).remove();
-
 
1736
      }
-
 
1737
    }
-
 
1738
  });
-
 
1739
}
-
 
1740
 
-
 
1741
function geolocValidationEtStockage() {
-
 
1742
  $( '#signup_submit' ).off().on( 'click', function( event ) {
-
 
1743
    var localisation = '',
-
 
1744
        latitude     = $( '#latitude' ).val(),
-
 
1745
        longitude    = $( '#longitude' ).val(),
-
 
1746
        zoom         = $( '#zoom' ).val();
-
 
1747
 
-
 
1748
    if ( ( valeurOk( longitude ) && !valeurOk( latitude ) ) || ( !valeurOk( longitude ) && valeurOk( latitude ) ) ) {
-
 
1749
      if( !valeurOk( $( '.warning-carto' ) ) ) {
-
 
1750
        $( '#new-fields-buttons' ).after(
-
 
1751
          '<p class="message warning-carto">'+
-
 
1752
            '<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>&nbsp;Vous avez entré des coordonnées incomplètes<br>'+
-
 
1753
            'Complétez latitude ou longitude, ou placez un marqueur sur la carto, ou effacez ces deux champs'+
-
 
1754
          '</p>'
-
 
1755
        );
-
 
1756
      }
-
 
1757
      return false;
-
 
1758
    } else if( valeurOk( $( '.warning-carto' ) ) ) {
-
 
1759
      $( '.warning-carto' ).remove();
-
 
1760
    }
-
 
1761
    if ( valeurOk( latitude ) && valeurOk( longitude ) ) {
-
 
1762
      localisation += 'latitude:' + latitude + ';';
-
 
1763
      localisation += 'longitude:' + longitude;
-
 
1764
    }
-
 
1765
    if ( valeurOk( zoom ) ) {
-
 
1766
      if( valeurOk( localisation ) ) {
-
 
1767
        localisation += ';';
-
 
1768
      }
-
 
1769
      localisation += 'zoom:' + zoom;
-
 
1770
    }
-
 
1771
    if ( valeurOk( localisation ) ) {
-
 
1772
      $( '#localisation' ).val( localisation );
-
 
1773
    }
-
 
1774
  });
-
 
1775
}
1651
 
1776
 
1652
/**
1777
/**
1653
* Permet à la fois de vérifier qu'une valeur ou objet existe et n'est pas vide
1778
* Permet à la fois de vérifier qu'une valeur ou objet existe et n'est pas vide
1654
* et de comparer à une autre valeur :
1779
* et de comparer à une autre valeur :
1655
* Vérifie qu'une variable ou objet n'est pas : vide, null, undefined, NaN
1780
* Vérifie qu'une variable ou objet n'est pas : vide, null, undefined, NaN
Line 1706... Line 1831...
1706
  $( 'form' ).each( function() {
1831
  $( 'form' ).each( function() {
1707
    $( this )[0].reset();
1832
    $( this )[0].reset();
1708
  });
1833
  });
1709
  // Gestion du champ pot de miel
1834
  // Gestion du champ pot de miel
1710
  potDeMiel();
1835
  potDeMiel();
-
 
1836
  // Geoloc
-
 
1837
  onGeoloc();
-
 
1838
  onGeolocManuelle();
-
 
1839
  geolocValidationEtStockage();
1711
  // Identifiant de champ
1840
  // Identifiant de champ
1712
  var fieldIndex = 0;
1841
  var fieldIndex = 0;
1713
  // Ajout de nouveaux champs
1842
  // Ajout de nouveaux champs
1714
  onClickAddNewFields( fieldIndex );
1843
  onClickAddNewFields( fieldIndex );
1715
  // Activation/Desactivation des boutons valider et prévisualiser
1844
  // Activation/Desactivation des boutons valider et prévisualiser