|  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html lang="en"> | 
					
						
							|  |  |  | <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8"> | 
					
						
							|  |  |  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | 
					
						
							|  |  |  |     <title>Document</title> | 
					
						
							|  |  |  | </head> | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |     .addSubclient{ | 
					
						
							|  |  |  |      body { | 
					
						
							|  |  |  |             font-family: Arial, sans-serif; | 
					
						
							|  |  |  |             overflow: hidden; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .container { | 
					
						
							|  |  |  |             width: 65rem; | 
					
						
							|  |  |  |             margin: auto; | 
					
						
							|  |  |  |             padding: 20px; | 
					
						
							|  |  |  |             border-radius: 10px; | 
					
						
							|  |  |  |             overflow: hidden; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .two-col { | 
					
						
							|  |  |  |             display: flex; | 
					
						
							|  |  |  |             white-space: nowrap; | 
					
						
							|  |  |  |             margin-left: 100px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .three-col .col1, | 
					
						
							|  |  |  |         .three-col .col2 { | 
					
						
							|  |  |  |             flex: 0 0 22%; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .two-col .form-group { | 
					
						
							|  |  |  |             margin-bottom: 15px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .two-col input, | 
					
						
							|  |  |  |         .two-col select { | 
					
						
							|  |  |  |             width: calc(100% - 50px); | 
					
						
							|  |  |  |             padding: 10px; | 
					
						
							|  |  |  |             border-radius: 10px; | 
					
						
							|  |  |  |             border: 1px solid black; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         label.required::after { | 
					
						
							|  |  |  |             content: "*"; | 
					
						
							|  |  |  |             color: red; | 
					
						
							|  |  |  |             margin-left: 5px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .form-group { | 
					
						
							|  |  |  |             display: flex; | 
					
						
							|  |  |  |             flex-direction: row-reverse; | 
					
						
							|  |  |  |             align-items: center; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .form-group label { | 
					
						
							|  |  |  |             margin-left: 10px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         #Address { | 
					
						
							|  |  |  |             margin-left: 40px; | 
					
						
							|  |  |  |             border-radius: 10px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         ul { | 
					
						
							|  |  |  |             list-style-type: none; | 
					
						
							|  |  |  |             padding: 0; | 
					
						
							|  |  |  |             margin-bottom: 20px; | 
					
						
							|  |  |  |             margin-left: 300px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         li { | 
					
						
							|  |  |  |             float:left; | 
					
						
							|  |  |  |             margin-bottom: 20px; | 
					
						
							|  |  |  |             margin-left: -10px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         li a { | 
					
						
							|  |  |  |             display: block; | 
					
						
							|  |  |  |             color: black; | 
					
						
							|  |  |  |             text-align: center; | 
					
						
							|  |  |  |             padding: 1px; | 
					
						
							|  |  |  |             text-decoration: underline; | 
					
						
							|  |  |  |             margin-top: 20px; | 
					
						
							|  |  |  |             margin-left: 60px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         a:hover { | 
					
						
							|  |  |  |             color:red; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .container1 { | 
					
						
							|  |  |  |             margin-left: 500px; | 
					
						
							|  |  |  |             width: 900px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .add p { | 
					
						
							|  |  |  |             margin-left: 370px; | 
					
						
							|  |  |  |             margin-top: 3px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .add a { | 
					
						
							|  |  |  |             text-decoration: none; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .container1 input[type="text"] { | 
					
						
							|  |  |  |             width: calc(100% - 20px); | 
					
						
							|  |  |  |             margin-right: 10px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          .add span { | 
					
						
							|  |  |  |             display: inline-block; | 
					
						
							|  |  |  |             width: 25px; | 
					
						
							|  |  |  |             height: 25px; | 
					
						
							|  |  |  |             border: 2px solid black; | 
					
						
							|  |  |  |             border-radius: 50%; | 
					
						
							|  |  |  |             text-align: center; | 
					
						
							|  |  |  |             line-height: 30px; | 
					
						
							|  |  |  |             margin-left: 430px; | 
					
						
							|  |  |  |             color: black; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          #jobPostingForm1{ | 
					
						
							|  |  |  |             margin-left: -130px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         #jobPostingForm{ | 
					
						
							|  |  |  |             margin-left: -130px; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         .container1 .col2 { | 
					
						
							|  |  |  |             margin-top: -1px; | 
					
						
							|  |  |  |             #ParentCompany{ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         }} | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <body> | 
					
						
							|  |  |  |     <div class="addSubclient"> | 
					
						
							|  |  |  |         <div class="container" style="width:200%; margin-left:210px;"> | 
					
						
							|  |  |  |            <form id="addSubClientForm" action="{% url 'save-details-subcompany' %}?admin_id={{ admin_id }}" method="post"> | 
					
						
							|  |  |  |                  {% csrf_token %} | 
					
						
							|  |  |  |                 <div class="two-col" style="width:70%; margin-left:100px;"> | 
					
						
							|  |  |  |                     <div class="col1" style="width:18%;"> | 
					
						
							|  |  |  |                         <div class="form-group" style="margin-left:40px" > | 
					
						
							|  |  |  |                             <select id="ParentCompany" name="ParentCompany" required tabindex="1" style="margin-left:-65px"> | 
					
						
							|  |  |  |                                 <option value="" tabindex="1" style="margin-left:-55px;, width: 100px">Select Client</option> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                                  {% for client in clients %} | 
					
						
							|  |  |  |             <option value="{{ client.parent_company }}">{{ client.parent_company }}</option> | 
					
						
							|  |  |  |         {% endfor %} | 
					
						
							|  |  |  |                             </select> | 
					
						
							|  |  |  |                             <label for="ParentCompany" class="required" style="width: 200px; margin-left:-650px;"><b>Parent Company:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                       <div class="form-group" style="position: relative; width: 380px;"> | 
					
						
							|  |  |  |                     <input type="text" id="GSTNo" name="GSTNo" style="width: 100%; padding-right: 60px;" placeholder="Parent_GST default" tabindex="3" oninput="this.value = this.value.toUpperCase()" disabled> | 
					
						
							|  |  |  |                      <label for="GSTNo" style="width: 200px; margin-left:-48px;"><b>Parent_GST No.</b></label> | 
					
						
							|  |  |  |                      <button type="button" id="changeButton" onclick="changeGST()" style="position: absolute; right: 10px; top: 50%; transform: translateY(-50%);">Change</button> | 
					
						
							|  |  |  |                     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                      <div class="form-group" style="margin-left:"> | 
					
						
							|  |  |  |                             <input type="text" id="Address_1" name="Address_1" required placeholder="Address_1" tabindex="5" style= margin-left:-36px;"> | 
					
						
							|  |  |  |                             <label for="Address_1" class="required" style="width: 200px; margin-left:-50px;"><b>Address_1:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  |                         <div class="form-group" > | 
					
						
							|  |  |  |                             <input type="text" id="City" name="City" required placeholder="City" tabindex="7"  style= margin-left:-36px;"> | 
					
						
							|  |  |  |                             <label for="City" class="required" style="width: 200px; margin-left:-50px;"><b>City:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  |                          <div class="form-group"> | 
					
						
							|  |  |  |                             <input type="number" id="Pincode" name="Pincode" required placeholder="500090" tabindex="9" style="margin-left:-36px" oninput="if(this.value.length > 6) this.value = this.value.slice(0, 6);" pattern="\d{6}"> | 
					
						
							|  |  |  |                             <label for="Pincode" class="required" style="width: 200px; margin-left:-50px;"><b>Pincode:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  |                     </div> | 
					
						
							|  |  |  |                     <div class="col2"  style="width:20%"> | 
					
						
							|  |  |  |                        <div class="form-group" > | 
					
						
							|  |  |  |                             <input type="text" id="SubCompany" name="SubCompany"  style=" margin-left:1px;  overflow-wrap: break-word;"  required placeholder="Eg. oracle India" tabindex="2"> | 
					
						
							|  |  |  |                             <label for="SubCompany" class="required" style="margin-left: 15px;"><b>Sub Company</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                           <div class="form-group" style="margin-left:-60px"> | 
					
						
							|  |  |  |                             <input type="text" id="Location_Id" name="Location_Id" required placeholder="Eg. bangalore" tabindex="4" style= margin-left:12px;" > | 
					
						
							|  |  |  |                             <label for="Location_Id" class="required" style="margin-left: 75px;"><b>Location_Id:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  |                           <div class="form-group" style="margin-left:-15px"> | 
					
						
							|  |  |  |                             <input type="text" id="Address_2" name="Address_2" placeholder="optional" tabindex="6" style="margin-left: 33px;"> | 
					
						
							|  |  |  |                             <label for="Address_2"  style="margin-left: 28px;"><b>Address_2:</b></label> | 
					
						
							|  |  |  |                         </div> | 
					
						
							|  |  |  |                         <div class="form-group" style="margin-left:-15px"> | 
					
						
							|  |  |  |                     <select id="State" name="State" style="margin-left: 65px;" required tabindex="8"> | 
					
						
							|  |  |  |                     <option value="" selected disabled>Select State</option> | 
					
						
							|  |  |  |                     <option value="Andhra Pradesh">Andhra Pradesh</option> | 
					
						
							|  |  |  |                     <option value="Arunachal Pradesh">Arunachal Pradesh</option> | 
					
						
							|  |  |  |                       <option value="Assam">Assam</option> | 
					
						
							|  |  |  |                       <option value="Bihar">Bihar</option> | 
					
						
							|  |  |  |                       <option value="Chhattisgarh">Chhattisgarh</option> | 
					
						
							|  |  |  |                       <option value="Goa">Goa</option> | 
					
						
							|  |  |  |                       <option value="Gujarat">Gujarat</option> | 
					
						
							|  |  |  |                       <option value="Haryana">Haryana</option> | 
					
						
							|  |  |  |                       <option value="Himachal Pradesh">Himachal Pradesh</option> | 
					
						
							|  |  |  |                       <option value="Jharkhand">Jharkhand</option> | 
					
						
							|  |  |  |                       <option value="Karnataka">Karnataka</option> | 
					
						
							|  |  |  |                       <option value="Kerala">Kerala</option> | 
					
						
							|  |  |  |                       <option value="Madhya Pradesh">Madhya Pradesh</option> | 
					
						
							|  |  |  |                       <option value="Maharashtra">Maharashtra</option> | 
					
						
							|  |  |  |                       <option value="Manipur">Manipur</option> | 
					
						
							|  |  |  |                       <option value="Meghalaya">Meghalaya</option> | 
					
						
							|  |  |  |                       <option value="Mizoram">Mizoram</option> | 
					
						
							|  |  |  |                       <option value="Nagaland">Nagaland</option> | 
					
						
							|  |  |  |                       <option value="Odisha">Odisha</option> | 
					
						
							|  |  |  |                       <option value="Punjab">Punjab</option> | 
					
						
							|  |  |  |                       <option value="Rajasthan">Rajasthan</option> | 
					
						
							|  |  |  |                       <option value="Sikkim">Sikkim</option> | 
					
						
							|  |  |  |                       <option value="Tamil Nadu">Tamil Nadu</option> | 
					
						
							|  |  |  |                       <option value="Telangana">Telangana</option> | 
					
						
							|  |  |  |                       <option value="Tripura">Tripura</option> | 
					
						
							|  |  |  |                       <option value="Uttar Pradesh">Uttar Pradesh</option> | 
					
						
							|  |  |  |                       <option value="Uttarakhand">Uttarakhand</option> | 
					
						
							|  |  |  |                       <option value="West Bengal">West Bengal</option> | 
					
						
							|  |  |  |                     </select> | 
					
						
							|  |  |  |                        <label for="State" class="required" style="margin-left: 28px;"><b>State:</b></label> | 
					
						
							|  |  |  |                      </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                        <div class="form-group" style="margin-left:-10px"> | 
					
						
							|  |  |  |                           <input type="text" id="country" name="country" style="margin-left: 40px;" required placeholder="country" value="India" tabindex="10"> | 
					
						
							|  |  |  |                            <label for="country" class="required" style="margin-left: 25px;"><b>Country:</b></label> | 
					
						
							|  |  |  |                             </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     </div> | 
					
						
							|  |  |  |                 </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <button type="button" onclick="saveSubClient()" tabindex="11" style="border-radius: 5px; background-color:lightgreen; width: 100px; margin-left:400px; margin-top: 10px; padding: 5px; "> Save</button>            </form> | 
					
						
							|  |  |  |        </div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |    <script> | 
					
						
							|  |  |  |        document.addEventListener('DOMContentLoaded', function() { | 
					
						
							|  |  |  |     var form = document.getElementById('secondForm'); | 
					
						
							|  |  |  |     form.addEventListener('submit', function(e) { | 
					
						
							|  |  |  |         e.preventDefault(); // Prevent the default form submission | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         var formData = new FormData(form); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // AJAX request to the server | 
					
						
							|  |  |  |         fetch("{% url 'save-details-subcompany' %}", { | 
					
						
							|  |  |  |             method: 'POST', | 
					
						
							|  |  |  |             body: formData, | 
					
						
							|  |  |  |             headers: { | 
					
						
							|  |  |  |                 'X-CSRFToken': formData.get('csrfmiddlewaretoken') // Include CSRF token | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |         .then(response => response.json()) | 
					
						
							|  |  |  |         .then(data => { | 
					
						
							|  |  |  |             console.log(data.message); // Log the success message | 
					
						
							|  |  |  |             document.getElementById('successMessage').style.display = 'block'; // Show success message | 
					
						
							|  |  |  |             form.reset(); // Reset the form fields | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |         .catch(error => console.error('Error:', error)); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function saveSubClient() { | 
					
						
							|  |  |  |     const form = document.getElementById('addSubClientForm'); | 
					
						
							|  |  |  |      const requiredFields = form.querySelectorAll('input[required], select[required]'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let isValid = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Clear any previous custom validation messages and reset border colors | 
					
						
							|  |  |  |     requiredFields.forEach(field => { | 
					
						
							|  |  |  |         field.setCustomValidity(''); // Clear previous validation message | 
					
						
							|  |  |  |         field.style.borderColor = ''; // Reset border color | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Iterate over each required field to check if it has value | 
					
						
							|  |  |  |     for (let field of requiredFields) { | 
					
						
							|  |  |  |         if (!field.value.trim()) { | 
					
						
							|  |  |  |             isValid = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Highlight the empty field with a red border | 
					
						
							|  |  |  |             field.style.borderColor = ''; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Set a custom validation message | 
					
						
							|  |  |  |             field.setCustomValidity('Please fill out this field.'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Show the validation message for this field | 
					
						
							|  |  |  |             field.reportValidity(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Focus the first invalid field | 
					
						
							|  |  |  |             field.focus(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Exit the loop after finding the first invalid field | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (!isValid) { | 
					
						
							|  |  |  |         // Prevent form submission if validation fails | 
					
						
							|  |  |  |         console.log("Validation failed. Please fill out the required fields."); | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Proceed with saving data if all fields are valid | 
					
						
							|  |  |  |     const formData = new FormData(form); | 
					
						
							|  |  |  |     const url = form.getAttribute('action'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     console.log("Submitting form to:", url); | 
					
						
							|  |  |  |     console.log("Form data:", [...formData.entries()]); // Log the form data | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     fetch(url, { | 
					
						
							|  |  |  |         method: 'POST', | 
					
						
							|  |  |  |         body: formData, | 
					
						
							|  |  |  |         headers: { | 
					
						
							|  |  |  |             'X-CSRFToken': '{{ csrf_token }}', // Assuming you have CSRF token available | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     .then(response => { | 
					
						
							|  |  |  |         if (!response.ok) { | 
					
						
							|  |  |  |             throw new Error('Network response was not ok'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return response.json(); | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     .then(data => { | 
					
						
							|  |  |  |         console.log('Success:', data); | 
					
						
							|  |  |  |         alert('Client saved successfully.'); | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |     .catch(error => { | 
					
						
							|  |  |  |         console.error('Error:', error); | 
					
						
							|  |  |  |         alert('An error occurred while saving the job posting.'); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  |    </script> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | </html> |