{% extends 'layout.html.twig' %}
{% block title %}Hello DistributorsController!{% endblock %}
{% block body %}
<form method="post" id="register_form">
<div class="container mb-5">
<div class="row pt-3">
<div class="col-12 text-center mt-1 pt-3 pb-3" id="order_header">
<h4 class="text-primary">Let's Create Your Account.</h4>
<span class="text-primary">
Signing up for your Fluid is fast and free - be up and running in under a minute.
</span>
</div>
</div>
<div class="row pb-3 pt-3 bg-light border-left border-right border-top">
<div class="col-12 col-sm-6">
<label>
Business Name <span class="text-danger">*</span>
</label>
<input type="checkbox" name="contact_me_by_fax_only" value="1" tabindex="-1" class="hidden" autocomplete="off">
<input type="text" name="manufacturer-name" id="manufacturer_name" class="form-control" placeholder="Company Name*">
<div class="hidden_msg" id="error_manufacturer_name">
Required Field
</div>
</div>
<div class="col-12 col-sm-6">
<label>Logo <span class="text-danger">*</span></label>
<input type="file" name="logo" id="logo" class="form-control" placeholder="Business Logo*">
<div class="hidden_msg" id="error_logo">
Required Field
</div>
</div>
</div>
<div class="row pb-3 bg-light border-left border-right">
<div class="col-12 col-sm-6">
<label>First Name <span class="text-danger">*</span></label>
<input type="text" name="first-name" id="first_name" class="form-control" placeholder="First Name*">
<div class="hidden_msg" id="error_first_name">
Required Field
</div>
</div>
<div class="col-12 col-sm-6">
<label>Last Name <span class="text-danger">*</span></label>
<input type="text" name="last-name" id="last_name" class="form-control" placeholder="Last Name*">
<div class="hidden_msg" id="error_last_name">
Required Field
</div>
</div>
</div>
<div class="row pb-3 bg-light border-left border-right">
<div class="col-12 col-sm-6">
<label>Business Email <span class="text-danger">*</span></label>
<input type="text" name="email" id="email" class="form-control" placeholder="Email*">
<div class="hidden_msg" id="error_email">
Required Field
</div>
</div>
<div class="col-12 col-sm-6">
<label>Business Telephone <span class="text-danger">*</span></label>
<input type="text" name="telephone" id="telephone" class="form-control" placeholder="Telephone*">
<input type="hidden" value="0" name="mobile-no" id="mobile_no">
<input type="hidden" name="iso-code" id="manufacturer_iso_code" value="">
<input type="hidden" name="intl-code" id="manufacturer_intl_code" value="">
<div class="hidden_msg" id="error_telephone">
Required Field
</div>
</div>
</div>
<div class="row">
<div class="col-12 ps-0 pe-0">
<button id="form_save" type="submit" class="btn btn-primary float-end w-100">CREATE ACCOUNT</button>
</div>
</div>
</div>
</form>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script>
$(document).ready(function (){
// International Numbers
let input = document.querySelector('#telephone');
iti = window.intlTelInput(input, {
initialCountry: "auto",
geoIpLookup: function(success, failure) {
$.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
var countryCode = (resp && resp.country) ? resp.country : "ae";
success(countryCode);
});
},
preferredCountries: ['ae','qa', 'bh', 'om', 'sa'],
autoPlaceholder: "polite",
nationalMode: true,
utilsScript: "{{ asset('js/utils.min.js') }}", // just for formatting/placeholders etc
separateDialCode: true,
utilsScript: "/js/utils.js",
});
let handleChange = function() {
let mobile = $('#mobile_no');
let mobile_number = (iti.isValidNumber()) ? iti.getNumber() : false;
let textNode = document.createTextNode(mobile_number);
if(mobile_number != false){
let iso_code = iti.getSelectedCountryData().iso2;
let intl_code = iti.getSelectedCountryData().dialCode;
mobile.val(mobile_number.substring(1));
$('#manufacturer_iso_code').val(iso_code);
$('#manufacturer_intl_code').val(intl_code);
}
};
// listen to "keyup", but also "change" to update when the user selects a country
input.addEventListener('change', handleChange);
input.addEventListener('keyup', handleChange);
$(document).on('change', '#email', function (){
let email = $('#email').val();
let errorEmail = $('#error_email');
errorEmail.hide();
$.ajax({
url: "{{ path('manufacturer_check_email') }}",
type: 'POST',
dataType: 'json',
data: {
email: email
},
complete: function(e, xhr, settings)
{
if(e.status === 500){
window.location.href = '{{ path('clinic_error_500') }}';
}
},
success: function (response)
{
if(response.restricted)
{
errorEmail.empty().append('Domain name is not allowed').show();
} else if(response.duplicate)
{
errorEmail.empty().append('Domain name is associated with another account').show();
} else if(response.inValid)
{
errorEmail.empty().append('Email address is invalid').show();
}
}
});
});
$(document).on('submit','#register_form', function (e){
e.preventDefault();
let is_valid = true;
let manufacturerName = $('#manufacturer_name').val();
let logo = $('#logo').val();
let firstName = $('#first_name').val();
let lastName = $('#last_name').val();
let email = $('#email').val();
let telephone = $('#mobile_no').val();
let errorManufacturerName = $('#error_manufacturer_name');
let errorLogo = $('#error_logo');
let errorFirstName = $('#error_first_name');
let errorLastName = $('#error_last_name');
let errorEmail = $('#error_email');
let errorTelephone = $('#error_telephone');
errorManufacturerName.hide();
errorLogo.hide();
errorFirstName.hide();
errorLastName.hide();
errorEmail.hide();
errorTelephone.hide();
if(manufacturerName == '' || manufacturerName == 'undefined'){
errorManufacturerName.show();
is_valid = false;
}
if(logo == '' || logo == 'undefined'){
errorLogo.show();
is_valid = false;
}
if(firstName == '' || firstName == 'undefined'){
errorFirstName.show();
is_valid = false;
}
if(lastName == '' || lastName == 'undefined'){
errorLastName.show();
is_valid = false;
}
if(email == '' || email == 'undefined'){
errorEmail.empty().append('Required Field').show();
is_valid = false;
}
if(telephone == '' || telephone == 'undefined'){
errorTelephone.show();
is_valid = false;
}
if(is_valid == true){
let data = new FormData(this);
$.ajax({
url: "{{ path('manufacturer_create') }}",
type: 'POST',
contentType: false,
processData: false,
cache: false,
timeout: 600000,
dataType: 'json',
data: data,
success: function (response) {
$('#register_form').empty();
$('#register_form').append(response);
}
});
}
});
});
</script>
{% endblock %}