1$(document).on('click', '#twitter_login , #google_login , #facebook_login', function(e){ 2 3 e.preventDefault(); 4 5 var url='/plugins/twitter/manager.php'; 6 if($(this).attr('id')=='google_login') url='/plugins/google/manager.php'; 7 if($(this).attr('id')=='facebook_login') url='/plugins/facebook/manager.php'; 8 9 $parent=$(this).closest('[name="simple_form"]'); 10 11 var from=$parent.data('from'); 12 var return_params=$parent.data('return_params'); 13 14 location.href=url+'?from='+from+return_params; 15 16}); 17 18$(document).on('focus , blur', '#email', function(e){ 19 20 $parent=$(this).closest('[name="simple_form"]'); 21 22 var value=$(this).val(); 23 24 //if(e['type']=='focusin') $parent.find('input[type="submit"].continue').show(); else 25 if(e['type']=='focusout' && value==''){ 26 //$parent.find('input[type="submit"].continue').hide(); 27 $parent.find('#form_error').hide(); 28 } 29}); 30 31$(document).on('change', '#email', function(){//cambiamos dinámicamente el parámetro email en el link de Recuperar contraseña 32 $parent=$(this).closest('[name="simple_form"]'); 33 34 var email=$(this).val(); 35 36 var url=$parent.find('[name="reset_link"]').attr('template')?.replace('{email}', email); 37 $parent.find('[name="reset_link"]').attr('href', url); 38}); 39 40var current_email = null; 41 42$(document).on('submit', 'form#plugin_sign', function(e){ 43 44 e.preventDefault(); 45 46 document.querySelector("svg.login-loader")?.classList.remove("hidden"); 47 48 $parent=$(this).closest('[name="simple_form"]'); 49 50 if($parent.find('[type="submit"]').is(':disabled')) return; 51 52 current_email = null; 53 54 $parent.find('[type="submit"]').attr('disabled'); 55 $parent.find('#form_error').hide(); 56 $parent.find('#loading').show(); 57 58 var from=$parent.data('from'); 59 60 var password=null; 61 var email = $parent.find('#email').val(); 62 var password = $parent.find('#password').val(); 63 // if(password != '') password=$.md5(password); 64 65 var remember_me = $parent.find('#remember-me-chk')[0]?.checked ?? false; 66 var terms_agreement = $parent.find('#terms-agreement-chk')[0]?.checked ?? false; 67 var newsletter_subscription = $parent.find('#newsletter-chk')[0]?.checked ?? false; 68 var login_type = $parent.find('#login-type').val() ?? (!!password) ? "full" : "partial"; 69 var signup_type = $parent.find('#signup-type').val() ?? "old"; 70 71 var args = {}; 72 if(!!password) { 73 var args={from:from, login_type:login_type, email:email, password:password, remember_me:remember_me}; 74 } 75 else { 76 var args={from:from, signup_type:signup_type, email:email, terms_agreement:terms_agreement, newsletter_subscription:newsletter_subscription}; 77 } 78 79 if($parent.data('referred_id') !== undefined) args['referred_id']=$parent.data('referred_id'); 80 if($parent.data('purchase_domain') !== undefined) args['purchase_domain']=$parent.data('purchase_domain'); 81 if($parent.data('store_url') !== undefined) args['store_url']=$parent.data('store_url');//reseñas 82 83 //console.log( args ); 84 $.post( 85 '/plugins/sign/validate.php', 86 args, 87 function(data){ //console.log(data);//return; 88 89 if ('otp_wall' in data) { 90 let vbox_container = document.querySelector(".vbox-container .loaded_content") || document.querySelector("#sign_all_code"); 91 vbox_container.innerHTML = ` 92 <style> 93 .otp-box { 94 text-align: center; 95 display: grid; 96 justify-content: center; 97 gap: 0.5ch; 98 } 99 .info-title { 100 text-align: center; 101 } 102 .sub-info { 103 font-size: 1em; 104 font-family: system-ui; 105 margin-top: -1em; 106 margin-bottom: 1em; 107 text-align: center; 108 } 109 input#otp-input { 110 display: block; 111 width: calc(11ch + 4.2ch); 112 font-size: 2em; 113 letter-spacing: 1ch; 114 text-align: center; 115 padding: 0.4ch 2ch; 116 font-family: monospace; 117 } 118 .otp-error { 119 color: orangered; 120 font-family: monospace; 121 font-size: 0.9em; 122 margin-bottom: 0.5em; 123 font-weight: 600; 124 } 125 @media screen and (max-width: 480px) { 126 div#sign_all_code { 127 margin-top: 2em; 128 } 129 } 130 </style> 131 <div class="info-title">Verificación en 2 pasos</div> 132 <div class="sub-info">Introduce el código que te hemos enviado al correo</div> 133 <div class="otp-box">
134 <input type="tel" placeholder="..." id="otp-input" size="6" maxlength="6"> 135 <div class="otp-error"></div> 136 </div> 137 `; 138 139 return; 140 } 141 142 if(data['error']!==undefined) { 143 144 if(data['already']!==undefined){ 145 $parent.find('#password').show(); 146 $parent.find('#password').focus(); 147 } 148 149 if(data['forgot']!==undefined) $parent.find('.forgot').show(); 150 151 $parent.find('#form_error').html(data['error']); 152 $parent.find('#form_error').show(); 153 154 if(data['already'] !== undefined) { 155 156 if(window.location.pathname.startsWith("/register")) { 157 setTimeout(() => { 158 window.location.href = `/login/?email=${email}`; 159 }, 1000); 160 }else { 161 162 current_email = email; 163 $parent.find( '[name="swap_sign"]' ).click(); 164 165 } 166 167 }else { 168 document.querySelector("svg.login-loader")?.classList.add("hidden"); 169 } 170 171 $parent.find('[type="submit"]').removeAttr('disabled'); 172 $parent.find('#loading').hide(); 173 174 }else if(data['url']!==undefined){ 175 176 location.href=data['url']; 177 178 }else location.reload(); 179 180 }, 'json' 181 ); 182 183});// 184 185$( document ).on( 'click', '[name="swap_sign"]', function(){ 186 187 $this = $(this); 188 let data = $this.attr( 'refData' ); 189 190 $.post( 191 '/plugins/sign/simple_form.php', 192 { data:data }, 193 function( html ){ 194 195 $this.parents( '#sign_all_code' ).html( html ); 196 if( current_email != null ) $( '[type="email"]' ).val( current_email ); 197 198 } 199 ); 200}); 201 202$(document).on('input', '#otp-input', function(e) { 203 if (e.target.value.length !== 6) 204 return; 205 206 let otp_err_elem = document.querySelector(".otp-error"); 207 208 let frm_data = new FormData(); 209 frm_data.append("otp", e.target.value); 210 fetch("/plugins/sign/validate_otp.php", { 211 method: "POST", 212 body: frm_data 213 }) 214 .then(r => r.json()) 215 .then(result => { 216 if ("location" in result) 217 setTimeout(() => { 218 location.href = result["location"]; 219 }, 3000); 220 if ("error" in result) { 221 otp_err_elem.innerHTML = result["error"]; 222 return; 223 } 224 location.reload(); 225 }) 226 .catch(err => { 227 console.log(err); 228 otp_err_elem.textContent = "Error desconocido"; 229 }); 230}); 231 232// ----- FACEBOOK: 233/* 234var facebookStatus=null; 235var facebookAppId; 236 237function statusChangeCallback(response) { 238 console.log('statusCallback'); 239 console.log(response); 240 241 if(facebookStatus===null && response.authResponse!==undefined && response.status === 'connected'){ 242 243 $('#facebook_iframe').hide(); 244 245 var uid = response.authResponse.userID; 246 247 $.post( 248 '/plugins/sign/get_user_social.php', 249 {type:'facebook', id:uid}, 250 function(data){ 251 console.log(data); 252 if(data['error']!==undefined) return; 253 254 if(data['name']!==undefined){ 255 data['name']=data['name'].charAt(0).toUpperCase() + data['name'].slice(1); 256 var s='Continuar como '+data['name']; 257 $('.continue.facebook span.center').text(s); 258 } 259 260 if(data['avatar']!==undefined){ 261 $('.continue.facebook span.avatar').html('<img src="/images_avatars/'+data['avatar']+'" />'); 262 } 263 264 $('#facebook_login').show(); 265 266 }, 'json' 267 ); 268 269 } 270 271 console.log('sigue'); 272 273 if(response.authResponse!==null && response.status!='connected'){ 274 console.log('error auth'); 275 //console.log(response); 276 }else{ 277 console.log('normal: '+facebookStatus); 278 if(response.status=='connected'){ 279 $('#facebook_iframe').hide(); 280 $('#facebook_login').show(); 281 if(facebookStatus !== null) location.href=$('#facebook_login').attr('href'); 282 } 283 } 284 285 facebookStatus=response.status; 286 287}//statusChange 288 289window.fbAsyncInit = function() { 290 console.log('async'); 291 292 facebookStatus=null; 293 facebookAppId=$(window).data('FACEBOOK_APP_ID'); 294 295 if(facebookAppId === undefined){ 296 console.log('error id FB'); 297 return; 298 } 299 300 if(isMobile){ 301 $('.fb-login-button').attr('data-width', '300'); 302 $('.fb-login-button').attr('data-size', 'medium'); 303 } 304 305 FB.init({ 306 appId: facebookAppId, 307 xfbml: true, 308 cookies: true, 309 version: 'v2.10', 310 status: true 311 }); 312 313 FB.Event.subscribe('auth.authResponseChange', function(response) { 314 console.log('do something with response'); 315 statusChangeCallback(response); 316 }); 317 318 FB.Event.subscribe('auth.statusChange', function(response) { 319 var value=''; 320 if(response.status=='connected' && response.authResponse.userID !== undefined) value=response.authResponse.userID; 321 console.log('guardamos FB id'); 322 $.post( 323 '/actions/set_session.php', 324 {field:'facebookId', value:value} 325 ); 326 }); 327 328};//fbAsyncInit function 329*/ 330// ----- :FACEBOOK
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.