1 $('document').ready(function(){ 2 $('#mobile_number').inputmask('(999)-999-9999'); 3 4 5 $('#login-form').validate({ 6 rules: { 7 email: { 8 required: true, 9 email: true, 10 remote: { 11 url: "auth/check_email_exists", 12 type: "post", 13 data: { 14 email: function() { 15 return $('#logiemail').val(); // â correct ID 16 } 17 } 18 } 19 }, 20 loginpassword: { 21 required: true, 22 // validpassword: true, 23 24 maxlength: 5 25 } 26 }, 27 messages: { 28 email: { 29 remote: "Email is not registered with us." 30 } 31 }, 32 submitHandler: function(form) { 33 // alert('login-entered') 34 // e.preventDefault() 35 // Prevent form from submitting the default way 36 // The form won't be submitted because of the AJAX request 37 const userTimeZone = {'timezone' : Intl.DateTimeFormat().resolvedOptions().timeZone}; 38 var formData = $(form).serialize(); 39 var email = $('#logiemail').val(); 40 var password = $('#logpassword').val(); 41 //console.log(formData); 42 formData += '&' + $.param(userTimeZone); 43 $.ajax({ 44 url: 'auth/logon', 45 method: 'POST', 46 data: {'email':email,'loginpassword':password}, 47 // data: formData, 48 dataType: 'json', 49 beforeSend: function() { 50 $('#loginsubmitbtn').attr('disabled', 'disabled'); 51 }, 52 complete: function() { 53 $('#loginsubmitbtn').removeAttr('disabled', 'disabled'); 54 }, 55 success: function(data) { 56 57 // Handle response 58 if (data.success === 'error' && data.error) { 59 $('#logsuccess_message').html("<span class='error'>" + data.message + "</span>"); 60 61 if (data.email_error) { 62 $('#email_error').html("<span class='error'>" + data.email_error + "</span>"); 63 } else { 64 $('#email_error').html(''); 65 } 66 67 if (data.password_error) { 68 $('#password_error').html("<span class='error'>" + data.password_error + "</span>"); 69 } else { 70 $('#password_error').html(''); 71 } 72 } else if (data.success === 'success' && !data.error) { 73 $('#logsuccess_message').html(data.message); 74 $('#email_error').html(''); 75 $('#mobile_number_error').html(''); 76 $('#password_error').html(''); 77 78 $('#loginform').html(); // Clear the login form if necessary 79 $('#otp-btn-show').addClass('d-none'); 80 $('#login-btn-show').removeClass('d-none'); 81 $('#otp').removeClass('d-none'); 82 $('#logemail').attr('readonly', true); 83 $('#logpassword').attr('readonly', true); 84 85 if(data.role_id == 2 || data.role_id == 6){ 86 // Redirect to my account page 87 window.location.href = "request-meal"; 88 }else if(data.role_id == 3){ 89 // Redirect to my account page 90 window.location.href = "deliver-meal"; 91 } 92 }else if(data.success === 'redirect'){ 93 // window.locaton.href = 'sattvicadmin'; 94 // locaton.href = '../sattvicadmin/index/login_from_outside/'+data.email+'/'+data.logpassword; 95 window.open('sattvicadmin/index/login_from_outside/'+data.email+'/'+data.logpassword); 96 } 97 98 $('#loginsubmitbtn').removeAttr('disabled'); // Re-enable the button 99 }, 100 error: function() { 101 $('#logsuccess_message').html("<span class='error'>An unexpected error occurred. Please try again.</span>"); 102 $('#loginsubmitbtn').removeAttr('disabled'); // Re-enable the button 103 } 104 }); 105 } 106 }); 107$('#forgot_password').validate({ 108 109 rules: { 110 111 forgotpasswordemail: { 112 required: true, 113 email: true, 114 remote: { 115 url: "auth/check_email_exists", 116 type: "post", 117 data: { 118 email: function() { 119 return $('#forgotpasswordemail').val(); // â correct ID 120 } 121 } 122 } 123 }, 124 125 }, 126 messages: { 127 forgotpasswordemail: { 128 remote: "Email is not registered with us." 129 } 130 }, 131 submitHandler: function(form, e) { 132 // e.preventDefault(); 133 // form.submit(); 134 135 $.ajax({ 136 url : 'auth/verify_email', 137 method : 'POST', 138 data : $(form).serialize(), 139 dataType : 'json', 140 beforeSend : function(){ 141 $('#forgotpasswordotpbtn').attr('disabled','disabled'); 142 }, 143 complete: function(){ 144 $('#forgotpasswordotpbtn').removeAttr('disabled','disabled'); 145 146 }, 147 success : function(data){ 148 if(data.success == 'error' && data.error == true){ 149 $('#otpsuccess_message').html("<span class='error'>"+data.message+"</span>"); 150 if(data.email_error != ''){ 151 $('#forgotpasswordemail_error').html("<span class='error'>"+data.email_error+"</span>"); 152 }else{ 153 $('#forgotpasswordemail_error').html(''); 154 } 155 156 157 158 }else if(data.success == 'success' && data.error == false){ 159 $('#otpsuccess_message').html(data.message); 160 $('#forgot_password').addClass('d-none'); 161 $('#verify_otp_form').removeClass('d-none'); 162 163 $('#otp').removeAttr('disabled') 164 $('#checkotpemail').val(data.email); 165 $('#forgotpasswordemail_error').html(''); 166 167 // $('#otp-btn-show').addClass('d-none'); 168 // $('#login-btn-show').removeClass('d-none'); 169 // $('#otp').removeClass('d-none'); 170 // $('#logemail').attr('readonly'); 171 // $('#logpassword').attr('readonly'); 172 173 // location.href = "myaccount"; 174 } 175 $('#loginsubmitbtn').attr('disabled',false); 176 177 } 178 179 }) 180 } 181 }); 182 183 184 $('#verify_otp_form').validate({ 185 rules: { 186 187 verify_otp: { 188 required: true, 189 190 }, 191 192 }, 193 submitHandler: function(form) { 194 // form.preventDefault(); 195 // form.submit(); 196 197 $.ajax({ 198 url : 'auth/password_checkotp', 199 method : 'POST', 200 data : $(form).serialize(), 201 dataType : 'json', 202 beforeSend : function(){ 203 $('#resetotpbtn').attr('disabled','disabled'); 204 }, 205 complete: function(){ 206 $('#resetotpbtn').removeAttr('disabled','disabled'); 207 }, 208 success : function(data){ 209 210 console.log(data) 211 if(data.success == 'error' && data.error == true){ 212 $('#otpsuccess_message').html("<span class='error'>"+data.message+"</span>"); 213 if(data.email_error != ''){ 214 $('#email_error').html("<span class='error'>"+data.email_error+"</span>"); 215 }else{ 216 $('#email_error').html(''); 217 } 218 219 220 221 }else if(data.success == 'success' && data.error == false){ 222 $('#otpsuccess_message').html(data.message); 223 $('#verify_otp_form').addClass('d-none'); 224 $('#reset_password_form').removeClass('d-none'); 225 $('#new_passwordemail').val($('#checkotpemail').val()); 226 $('#email_error').html(''); 227 // location.href = "myaccount"; 228 } 229 $('#loginsubmitbtn').attr('disabled',false); 230 231 } 232 233 }) 234 } 235 }) 236 237 $('#reset_password_form').validate({ 238 rules: { 239 240 new_password: { 241 required: true, 242 243 }, 244 new_confirm_password : { 245 required : true, 246 equalTo : '#forgot_new_confirm_password' 247 } 248 249 }, 250 submitHandler: function(form) { 251 // form.preventDefault(); 252 // form.submit(); 253 254 $.ajax({
255 url : 'auth/new_password_save', 256 method : 'POST', 257 data : $(form).serialize(), 258 dataType : 'json', 259 beforeSend : function(){ 260 $('#resetotpbtn').attr('disabled','disabled'); 261 }, 262 complete: function(){ 263 264 }, 265 success : function(data){ 266 267 console.log(data) 268 if(data.success == 'error' && data.error == true){ 269 $('#otpsuccess_message').html("<span class='error'>"+data.message+"</span>"); 270 if(data.email_error != ''){ 271 $('#email_error').html("<span class='error'>"+data.email_error+"</span>"); 272 }else{ 273 $('#email_error').html(''); 274 } 275 276 277 278 }else if(data.success == 'success' && data.error == false){ 279 alert(data.message) 280 $('#otpsuccess_message').html(data.message); 281 $('#verify_otp_form').addClass('d-none'); 282 $('#reset_password_form').removeClass('d-none'); 283 284 $('#email_error').html(''); 285 location.href = "/"; 286 } 287 $('#loginsubmitbtn').attr('disabled',false); 288 289 } 290 291 }) 292 } 293 }) 294 295 296 297}) 298 function togglePassword(button, inputId) { 299 const input = document.getElementById(inputId); 300 input.type = input.type === 'password' ? 'text' : 'password'; 301 const icon = button.querySelector('i'); 302 if (input.type === 'text') { 303 icon.classList.remove('ri-eye-line'); 304 icon.classList.add('ri-eye-off-line'); 305 } else { 306 icon.classList.remove('ri-eye-off-line'); 307 icon.classList.add('ri-eye-line'); 308 } 309 } 310 311 312 313
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.