{% extends 'base.html.twig' %}
{% block title %}Hello DefaultController!{% endblock %}
{% block body %}
<style type="text/css">
.txt-inscription,
label {
color: #adb9ca;
}
.select2-container--default .select2-selection--single {
background-color: #fff;
border: none !important;
border-radius: 4px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
display: none;
}
button {
background-color: #adb9ca !important;
color: white !important;
}
button:hover {
background-color: #0073CD !important;
color: white !important;
}
.btn-logo {
width: 0.1px;
opacity: 0;
}
.style-choix-logo {
background-color: #adb9ca;
color: white;
padding: 0.5em;
border-radius: 5px;
}
#part form
{
display: block;
border: solid #B0DB82;
border-radius: 10px;
padding: 15px;
margin-bottom: 10px;
margin-top: 10px;
}
#part label{
color:#B0DB82;
}
#part button:hover {
background-color: #00B050 !important;
color: white !important;
}
#part button {
background-color: #B0DB82 !important;
color: white !important;
}
#pro form
{
display: block;
border: solid #ADB9CA ;
border-radius: 10px;
padding: 15px;
margin-bottom: 10px;
margin-top: 10px;
}
#pro label{
color:#ADB9CA;
}
</style>
<div class="container mx-auto" style="margin : 150px 0 ;" id="{{ app.request.get('type')}}" >
<a style="font-size:24px;">Je m'inscris en tant que {% if app.request.get('type') == 'pro' %} professionnel {% else %} particulier {% endif %} :</a>
{{form_start(form)}}
{% if app.request.get('erreur') %}
<div class="alert alert-danger"><b>Erreur :</b> un compte existe déjà cette adresse e-mail !</div>
{% endif %}
{% if app.request.get('type') == 'pro' %}
<div class="form-row">
<div class="form-group col-md-6">
<label for="raisonSociale">Raison sociale</label>
{{ form_row(form.raisonSociale,{'attr': {'class': 'form-control','placeholder': 'Entrer votre raison sociale'}}) }}
</div>
<div class="form-group col-md-6">
<label for="siret">SIRET</label>
{{ form_row(form.siret,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de siret'}}) }}
</div>
</div>
<div class="form-group">
<label for="tva">Nº TVA </label>
{{ form_row(form.tva,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de tva'}}) }}
</div>
<div class="form-group">
<p class="txt-inscription"> Logo de l'entreprise </p>
{{ form_row(form.logo,{'attr': {'class': 'form-control','placeholder': 'Entrer votre mot de passe'}}) }}
</div>
{% endif %}
<div class="form-group">
<label for="genre">Civilité</label>
<select class="form-control" name="genre" id="genre" required>
<option selected value="">Choisissez...</option>
<option value="M">Homme</option>
<option value="Mme">Femme</option>
</select>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="nom">Nom</label>
{{ form_row(form.nom,{'attr': {'class': 'form-control','placeholder': 'Entrer votre nom'}}) }}
</div>
<div class="form-group col-md-6">
<label for="prenom">Prénom</label>
{{ form_row(form.prenom,{'attr': {'class': 'form-control','placeholder': 'Entrer votre prénom'}}) }}
</div>
</div>
{% if app.request.get('type') == 'pro' %}
{% endif %}
<div class="form-group">
<label for="adresse">Adresse</label>
{{ form_row(form.adresse,{'attr': {'class': 'form-control','placeholder': 'Entrer votre adresse'}}) }}
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="codePostal">Code postal</label>
{{ form_row(form.codePostal,{'attr': {'class': 'form-control','placeholder': 'Entrer votre code postal'}}) }}
</div>
<div class="form-group col-md-6">
<label for="ville">Ville</label>
<select class="input-search js-data-example-ajax" name="ville" style="width:100%" >
</select>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="pays">Pays</label>
<select name="pays" class="form-control" name="pays">
{% for res in pays %}
<option value="{{res.id}}">{{res.libelle}}</option>
{% endfor %}
</select>
</div>
<div class="form-group col-md-6">
<label for="telephone">Numéro de téléphone</label>
{{ form_row(form.telephone,{'attr': {'class': 'form-control','placeholder': 'Entrer votre numéro de téléphone'}}) }}
</div>
</div>
<div class="form-group">
<label for="email">Adresse e-mail</label>
{{ form_row(form.email,{'attr': {'class': 'form-control','placeholder': 'Entrer votre adresse email'}}) }}
</div>
<div class="form-group">
<label for="confirmEmail">Confirmation de l'adresse e-mail</label>
<input type="email" class="form-control" id="confirmEmail" placeholder="Confirmez votre adresse email">
</div>
<div class="form-group">
<label for="password">Mot de passe</label>
{{ form_row(form.password,{'attr': {'class': 'form-control','placeholder': 'Entrer votre mot de passe'}}) }}
</div>
<div class="form-group">
<label for="confirmPassword">Confirmation de mot de passe</label>
<input type="password" class="form-control" id="confirmPassword" placeholder="Confirmez votre mot de passe">
</div>
<div class="row d-flex justify-content-center">
<button type="submit" class="btn">S'INSCRIRE</button>
</div>
</form>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.8/js/select2.min.js" defer></script>
<script>
$(document).ready(function() {
var data = []; // Variable pour stocker les données JSON
// Charger les données JSON depuis l'URL
$.getJSON("https://modixom.fr/villes.json", function(response) {
data = response.results;
// Ajouter un élément vide pour le placeholder
data.unshift({ id: "", text: "" });
// Fonction pour calculer la distance de Levenshtein entre deux chaînes de caractères
function levenshteinDistance(a, b) {
if (a.length === 0) return b.length;
if (b.length === 0) return a.length;
var matrix = [];
// Initialise la première ligne et la première colonne de la matrice
for (var i = 0; i <= b.length; i++) {
matrix[i] = [i];
}
for (var j = 0; j <= a.length; j++) {
matrix[0][j] = j;
}
// Calculer la distance de Levenshtein
for (var i = 1; i <= b.length; i++) {
for (var j = 1; j <= a.length; j++) {
if (b.charAt(i - 1) === a.charAt(j - 1)) {
matrix[i][j] = matrix[i - 1][j - 1];
} else {
matrix[i][j] = Math.min(
matrix[i - 1][j - 1] + 1, // Substitution
matrix[i][j - 1] + 1, // Insertion
matrix[i - 1][j] + 1 // Suppression
);
}
}
}
return matrix[b.length][a.length];
}
// Initialiser Select2 avec les données chargées
$('.js-data-example-ajax').select2({
placeholder: 'Choisir une ville',
language: {
// You can find all of the options in the language files provided in the
// build. They all must be functions that return the string that should be
// displayed.
inputTooShort: function () {
return "Saisir minimum 3 caractères";
}
},
selectOnClose: false,
tags: false,
tokenSeparators: [',', ' '],
data: data, // Utiliser les données chargées pour Select2
templateResult: function(result) {
return result.text;
},
dropdownAutoWidth: true, // Ajuster automatiquement la largeur du menu déroulant
minimumInputLength: 3, // Requiert au moins 1 caractère pour effectuer une recherche
sorter: function(data) {
// Obtenir la valeur de recherche
var term = $('.js-data-example-ajax').val().toLowerCase();
// Trier les données en fonction de la pertinence
return data.sort(function(a, b) {
var distanceA = levenshteinDistance(term, a.text.toLowerCase());
var distanceB = levenshteinDistance(term, b.text.toLowerCase());
return distanceA - distanceB;
});
}
});
var villed = $('#villeSelect').val()
});
});
</script>
{% endblock %}