1//LOGIN 2function LoginForm() { 3 'use strict'; 4 5 document.getElementById('LoginFormButton').disabled = true; 6 document.getElementById('LoginFormButton').innerHTML = magicai_localize.please_wait; 7 Alpine.store('appLoadingIndicator').show(); 8 9 var email = $('#email').val(); 10 if (email == '') { 11 toastr.error(magicai_localize.missing_email); 12 document.getElementById('LoginFormButton').disabled = false; 13 document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in; 14 Alpine.store('appLoadingIndicator').hide(); 15 return false; 16 } 17 var password = $('#password').val(); 18 if (password == '') { 19 toastr.error(magicai_localize.missing_password); 20 document.getElementById('LoginFormButton').disabled = false; 21 document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in; 22 Alpine.store('appLoadingIndicator').hide(); 23 return false; 24 } 25 26 var formData = new FormData(); 27 formData.append('email', $('#email').val()); 28 formData.append('password', $('#password').val()); 29 formData.append('remember', $('#remember').is(':checked')); 30 31 let plan = $('#plan').val(); 32 let redirect = $('#redirect').val(); 33 34 formData.append('plan', plan); 35 formData.append('redirect', redirect); 36 37 let recaptcha = $('#recaptcha').val(); 38 if (recaptcha == 1 && typeof grecaptcha !== 'undefined') { 39 let recaptchaResponse = grecaptcha.getResponse(); 40 formData.append('g-recaptcha-response', recaptchaResponse); 41 } 42 // Ajax Post 43 $.ajax({ 44 type: 'post', 45 url: '/login', 46 data: formData, 47 contentType: false, 48 processData: false, 49 cache: false, 50 dataType: 'json', 51 success: function (data) { 52 toastr.success(magicai_localize.login_redirect); 53 54 var href = (data && typeof data.link === 'string') ? data.link : '/dashboard/user'; 55 window.location.href = href; 56 // Alpine.store('appLoadingIndicator').hide(); 57 }, 58 error: function (data) { 59 if (data.responseJSON.errors) { 60 var err = data.responseJSON.errors; 61 $.each(err, function (index, value) { 62 toastr.error(value); 63 }); 64 } else if (data.responseJSON.message) { 65 toastr.error(data.responseJSON.message); 66 } 67 document.getElementById('LoginFormButton').disabled = false; 68 document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in; 69 Alpine.store('appLoadingIndicator').hide(); 70 } 71 }); 72 return false; 73} 74 75//REGISTER 76function RegisterForm() { 77 'use strict'; 78 79 const btn = document.getElementById('RegisterFormButton'); 80 btn.disabled = true; 81 btn.innerHTML = magicai_localize.please_wait; 82 Alpine.store('appLoadingIndicator').show(); 83 84 let formData = new FormData(); 85 86 // Collect plan and affiliate 87 let plan = $('#plan').val(); 88 89 formData.append('plan', plan); 90 91 let affiliate = $('#affiliate_code').val(); 92 formData.append('affiliate_code', affiliate !== 'undefined' ? affiliate : null); 93 94 // Dynamically collect optional fields (only if present in DOM) 95 ['name', 'surname', 'phone', 'country'].forEach(field => { 96 let el = document.getElementById(field + '_register'); 97 if (el) { 98 formData.append(field, el.value); 99 } 100 }); 101 102 // Required fields 103 formData.append('email', $('#email_register').val()); 104 formData.append('password', $('#password_register').val()); 105 formData.append('password_confirmation', $('#password_confirmation_register').val()); 106 107 let recaptcha = $('#recaptcha').val(); 108 109 if (recaptcha == 1 && typeof grecaptcha !== 'undefined') { 110 let recaptchaResponse = grecaptcha.getResponse(); 111 formData.append('g-recaptcha-response', recaptchaResponse); 112 } 113 114 $.ajax({ 115 type: 'post', 116 url: '/register', 117 data: formData, 118 contentType: false, 119 processData: false, 120 success: function (data) { 121 toastr.success(magicai_localize.register_redirect); 122 setTimeout(function () { 123 if (plan) { 124 window.location.href = '/dashboard/user/payment?plan=' + plan; 125 } else { 126 window.location.href = '/dashboard'; 127 } 128 // location.reload(); 129 Alpine.store('appLoadingIndicator').hide(); 130 }, 1500); 131 }, 132 error: function (data) { 133 let err = data.responseJSON.errors; 134 let type = data.responseJSON.type; 135 136 $.each(err, function (index, value) { 137 toastr.error(value); 138 }); 139 140 if (type === 'confirmation') { 141 setTimeout(function () { 142 location.href = '/login'; 143 Alpine.store('appLoadingIndicator').hide(); 144 }, 2500); 145 } else { 146 btn.disabled = false;
147 btn.innerHTML = magicai_localize.signup; 148 Alpine.store('appLoadingIndicator').hide(); 149 } 150 } 151 }); 152 return false; 153} 154 155 156//PASSWORD RESET 157function PasswordResetMailForm() { 158 'use strict'; 159 160 document.getElementById('PasswordResetFormButton').disabled = true; 161 document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.please_wait; 162 Alpine.store('appLoadingIndicator').show(); 163 var email = $('#password_reset_email').val(); 164 if (email == '') { 165 toastr.error(magicai_localize.missing_email); 166 document.getElementById('PasswordResetFormButton').disabled = false; 167 document.getElementById('PasswordResetFormButton').innerHTML = 'Send Instructions'; 168 Alpine.store('appLoadingIndicator').hide(); 169 return false; 170 } 171 172 var formData = new FormData(); 173 formData.append('email', email); 174 175 $.ajax({ 176 type: 'post', 177 url: '/forgot-password', 178 data: formData, 179 contentType: false, 180 processData: false, 181 success: function (data) { 182 toastr.success(magicai_localize.password_reset_link); 183 Alpine.store('appLoadingIndicator').hide(); 184 }, 185 error: function (data) { 186 var err = data.responseJSON.errors; 187 $.each(err, function (index, value) { 188 toastr.error(value); 189 }); 190 document.getElementById('PasswordResetFormButton').disabled = false; 191 document.getElementById('PasswordResetFormButton').innerHTML = 'Send Instructions'; 192 Alpine.store('appLoadingIndicator').hide(); 193 } 194 }); 195 return false; 196} 197 198function PasswordReset(password_reset_code) { 199 'use strict'; 200 201 document.getElementById('PasswordResetFormButton').disabled = true; 202 document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.please_wait; 203 Alpine.store('appLoadingIndicator').show(); 204 205 var formData = new FormData(); 206 formData.append('password', $('#password_register').val()); 207 formData.append('password_confirmation', $('#password_confirmation_register').val()); 208 formData.append('password_reset_code', password_reset_code); 209 210 $.ajax({ 211 type: 'post', 212 url: '/forgot-password/save', 213 data: formData, 214 contentType: false, 215 processData: false, 216 success: function (data) { 217 toastr.success(magicai_localize.password_reset_done); 218 setTimeout(function () { 219 location.href = '/dashboard'; 220 Alpine.store('appLoadingIndicator').hide(); 221 }, 1250); 222 }, 223 error: function (data) { 224 var err = data.responseJSON.errors; 225 $.each(err, function (index, value) { 226 toastr.error(value); 227 }); 228 document.getElementById('PasswordResetFormButton').disabled = false; 229 document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.password_reset; 230 Alpine.store('appLoadingIndicator').hide(); 231 } 232 }); 233 return false; 234} 235
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.