templates/frontend/manufacturers/register.html.twig line 1

Open in your IDE?
  1. {% extends 'layout.html.twig' %}
  2. {% block title %}Hello DistributorsController!{% endblock %}
  3. {% block body %}
  4. <form method="post" id="register_form">
  5.     <div class="container mb-5">
  6.         <div class="row pt-3">
  7.             <div class="col-12 text-center mt-1 pt-3 pb-3" id="order_header">
  8.                 <h4 class="text-primary">Let's Create Your Account.</h4>
  9.                 <span class="text-primary">
  10.                     Signing up for your Fluid is fast and free - be up and running in under a minute.
  11.                 </span>
  12.             </div>
  13.         </div>
  14.         <div class="row pb-3 pt-3 bg-light border-left border-right border-top">
  15.             <div class="col-12 col-sm-6">
  16.                 <label>
  17.                     Business Name <span class="text-danger">*</span>
  18.                 </label>
  19.                 <input type="checkbox" name="contact_me_by_fax_only" value="1" tabindex="-1" class="hidden" autocomplete="off">
  20.                 <input type="text" name="manufacturer-name" id="manufacturer_name" class="form-control" placeholder="Company Name*">
  21.                 <div class="hidden_msg" id="error_manufacturer_name">
  22.                     Required Field
  23.                 </div>
  24.             </div>
  25.             <div class="col-12 col-sm-6">
  26.                 <label>Logo <span class="text-danger">*</span></label>
  27.                 <input type="file" name="logo" id="logo" class="form-control" placeholder="Business Logo*">
  28.                 <div class="hidden_msg" id="error_logo">
  29.                     Required Field
  30.                 </div>
  31.             </div>
  32.         </div>
  33.         <div class="row pb-3 bg-light border-left border-right">
  34.             <div class="col-12 col-sm-6">
  35.                 <label>First Name <span class="text-danger">*</span></label>
  36.                 <input type="text" name="first-name" id="first_name" class="form-control" placeholder="First Name*">
  37.                 <div class="hidden_msg" id="error_first_name">
  38.                     Required Field
  39.                 </div>
  40.             </div>
  41.             <div class="col-12 col-sm-6">
  42.                 <label>Last Name <span class="text-danger">*</span></label>
  43.                 <input type="text" name="last-name" id="last_name" class="form-control" placeholder="Last Name*">
  44.                 <div class="hidden_msg" id="error_last_name">
  45.                     Required Field
  46.                 </div>
  47.             </div>
  48.         </div>
  49.         <div class="row pb-3 bg-light border-left border-right">
  50.             <div class="col-12 col-sm-6">
  51.                 <label>Business Email <span class="text-danger">*</span></label>
  52.                 <input type="text" name="email" id="email" class="form-control" placeholder="Email*">
  53.                 <div class="hidden_msg" id="error_email">
  54.                     Required Field
  55.                 </div>
  56.             </div>
  57.             <div class="col-12 col-sm-6">
  58.                 <label>Business Telephone <span class="text-danger">*</span></label>
  59.                 <input type="text" name="telephone" id="telephone" class="form-control" placeholder="Telephone*">
  60.                 <input type="hidden" value="0" name="mobile-no" id="mobile_no">
  61.                 <input type="hidden" name="iso-code" id="manufacturer_iso_code" value="">
  62.                 <input type="hidden" name="intl-code" id="manufacturer_intl_code" value="">
  63.                 <div class="hidden_msg" id="error_telephone">
  64.                     Required Field
  65.                 </div>
  66.             </div>
  67.         </div>
  68.         <div class="row">
  69.             <div class="col-12 ps-0 pe-0">
  70.                 <button id="form_save" type="submit" class="btn btn-primary float-end w-100">CREATE ACCOUNT</button>
  71.             </div>
  72.         </div>
  73.     </div>
  74. </form>
  75. {% endblock %}
  76. {% block javascripts %}
  77.     {{ parent() }}
  78.     <script>
  79.         $(document).ready(function (){
  80.             // International Numbers
  81.             let input = document.querySelector('#telephone');
  82.             iti = window.intlTelInput(input, {
  83.                 initialCountry: "auto",
  84.                 geoIpLookup: function(success, failure) {
  85.                     $.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
  86.                         var countryCode = (resp && resp.country) ? resp.country : "ae";
  87.                         success(countryCode);
  88.                     });
  89.                 },
  90.                 preferredCountries: ['ae','qa', 'bh', 'om', 'sa'],
  91.                 autoPlaceholder: "polite",
  92.                 nationalMode: true,
  93.                 utilsScript: "{{ asset('js/utils.min.js') }}", // just for formatting/placeholders etc
  94.                 separateDialCode: true,
  95.                 utilsScript: "/js/utils.js",
  96.             });
  97.             let handleChange = function() {
  98.                 let mobile = $('#mobile_no');
  99.                 let mobile_number = (iti.isValidNumber()) ? iti.getNumber() : false;
  100.                 let textNode = document.createTextNode(mobile_number);
  101.                 if(mobile_number != false){
  102.                     let iso_code = iti.getSelectedCountryData().iso2;
  103.                     let intl_code = iti.getSelectedCountryData().dialCode;
  104.                     mobile.val(mobile_number.substring(1));
  105.                     $('#manufacturer_iso_code').val(iso_code);
  106.                     $('#manufacturer_intl_code').val(intl_code);
  107.                 }
  108.             };
  109.             // listen to "keyup", but also "change" to update when the user selects a country
  110.             input.addEventListener('change', handleChange);
  111.             input.addEventListener('keyup', handleChange);
  112.             $(document).on('change', '#email', function (){
  113.                 let email = $('#email').val();
  114.                 let errorEmail = $('#error_email');
  115.                 errorEmail.hide();
  116.                 $.ajax({
  117.                     url: "{{ path('manufacturer_check_email') }}",
  118.                     type: 'POST',
  119.                     dataType: 'json',
  120.                     data: {
  121.                         email: email
  122.                     },
  123.                     complete: function(e, xhr, settings)
  124.                     {
  125.                         if(e.status === 500){
  126.                             window.location.href = '{{ path('clinic_error_500') }}';
  127.                         }
  128.                     },
  129.                     success: function (response)
  130.                     {
  131.                         if(response.restricted)
  132.                         {
  133.                             errorEmail.empty().append('Domain name is not allowed').show();
  134.                         } else if(response.duplicate)
  135.                         {
  136.                             errorEmail.empty().append('Domain name is associated with another account').show();
  137.                         } else if(response.inValid)
  138.                         {
  139.                             errorEmail.empty().append('Email address is invalid').show();
  140.                         }
  141.                     }
  142.                 });
  143.             });
  144.             $(document).on('submit','#register_form', function (e){
  145.                 e.preventDefault();
  146.                 let is_valid = true;
  147.                 let manufacturerName = $('#manufacturer_name').val();
  148.                 let logo = $('#logo').val();
  149.                 let firstName = $('#first_name').val();
  150.                 let lastName = $('#last_name').val();
  151.                 let email = $('#email').val();
  152.                 let telephone = $('#mobile_no').val();
  153.                 let errorManufacturerName = $('#error_manufacturer_name');
  154.                 let errorLogo = $('#error_logo');
  155.                 let errorFirstName = $('#error_first_name');
  156.                 let errorLastName = $('#error_last_name');
  157.                 let errorEmail = $('#error_email');
  158.                 let errorTelephone = $('#error_telephone');
  159.                 errorManufacturerName.hide();
  160.                 errorLogo.hide();
  161.                 errorFirstName.hide();
  162.                 errorLastName.hide();
  163.                 errorEmail.hide();
  164.                 errorTelephone.hide();
  165.                 if(manufacturerName == '' || manufacturerName == 'undefined'){
  166.                     errorManufacturerName.show();
  167.                     is_valid = false;
  168.                 }
  169.                 if(logo == '' || logo == 'undefined'){
  170.                     errorLogo.show();
  171.                     is_valid = false;
  172.                 }
  173.                 if(firstName == '' || firstName == 'undefined'){
  174.                     errorFirstName.show();
  175.                     is_valid = false;
  176.                 }
  177.                 if(lastName == '' || lastName == 'undefined'){
  178.                     errorLastName.show();
  179.                     is_valid = false;
  180.                 }
  181.                 if(email == '' || email == 'undefined'){
  182.                     errorEmail.empty().append('Required Field').show();
  183.                     is_valid = false;
  184.                 }
  185.                 if(telephone == '' || telephone == 'undefined'){
  186.                     errorTelephone.show();
  187.                     is_valid = false;
  188.                 }
  189.                 if(is_valid == true){
  190.                     let data = new FormData(this);
  191.                     $.ajax({
  192.                         url: "{{ path('manufacturer_create') }}",
  193.                         type: 'POST',
  194.                         contentType: false,
  195.                         processData: false,
  196.                         cache: false,
  197.                         timeout: 600000,
  198.                         dataType: 'json',
  199.                         data: data,
  200.                         success: function (response) {
  201.                             $('#register_form').empty();
  202.                             $('#register_form').append(response);
  203.                         }
  204.                     });
  205.                 }
  206.             });
  207.         });
  208.     </script>
  209. {% endblock %}