1/** 2 * Js Ñайл авÑоÑизаÑии на ÑÐ°Ð¹Ñ 3 */ 4let currentUser; 5 6document.addEventListener('DOMContentLoaded', () => { 7 8 let maskPhoneLogin; 9 let phone, inp_dom; 10 const radio = document.getElementsByName('choose_radio'); 11 const inputLogin = document.getElementById('login_do'); 12 13 for (let i = 0, len = radio.length; i < len; i++) { 14 radio[i].addEventListener('change', function() { // ÐºÐ°ÐºÐ°Ñ radiobutton нажаÑа 15 /* ÐÑ Ð¾Ð´ по номеÑÑ ÑелеÑона */ 16 if (this.id === 'radio_phone') 17 { 18 inputLogin.name = 'phone'; 19 inputLogin.placeholder = 'ТелеÑон'; 20 document.getElementById('login_password').style.display = 'none'; 21 //document.getElementById('login_button_code').style.display = 'block'; 22 document.getElementById('login_button').style.display = 'none'; 23 24 let maskOptionsPhoneLogin = { 25 mask: [{ 26 mask: '0(000)000-00-00', 27 startsWith: '8' 28 }, 29 { 30 mask: '+7(000)000-00-00', 31 startsWith: '79' 32 }, 33 { 34 mask: '+7(000)000-00-00', 35 startsWith: '9' 36 }], 37 dispatch: (appended, dynamicMasked) => { 38 const number = (dynamicMasked.value + appended).replace(/\D/g,''); 39 40 return dynamicMasked.compiledMasks.find(m => number.indexOf(m.startsWith) === 0); 41 } 42 }; 43 maskPhoneLogin = IMask(inputLogin, maskOptionsPhoneLogin); // Ñоздание маÑки Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ ÑелеÑон 44 45 /* ÐнаÑение менÑеÑÑÑ Ð¿Ñи изменении в поле ТелеÑон */ 46 maskPhoneLogin.on('accept', () => { 47 inputLogin.classList.remove('border-success', 'border-warning'); 48 $("#login_help span").text(''); 49 document.getElementById('login_button_code').disabled = true; 50 }); 51 let scheck=0; 52 let testcl=0; 53 const checkRes=(code)=>{ 54 //scheck=0; 55 fetch('/udata/data/check_phone_call/'+code+'//2.json?d='+Date.now()).then(r=>r.json()).then(r=>{ 56 if(r.check_status==401 ){ 57////phone confirmed 58 console.log('phone confirmed'); 59 $("#login_button_code").text('ТелеÑон подÑвеÑжден'); 60 61 sendCode(true); 62 //setPref(3); 63 64 }else{ 65 scheck+=1; 66 67 if(scheck<120){ //60 68 console.log(scheck); 69 setTimeout(checkRes(code),25000) 70 }else{ 71 $("#login_button_code").text('ТелеÑон не подÑвеÑжден или иÑÑекло вÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ'); 72 73 // setPref(9); 74 75 } 76 } 77 78 }).catch(e=>console.log(e)) 79 80 } 81 /* ÐÑполнÑеÑÑÑ Ð¿Ñи Ñеликом введенном номеÑе ÑелеÑона */ 82 maskPhoneLogin.on("complete", function () { 83 phone = maskPhoneLogin.value.replace(/ |\(|\)|\-/g, "").replace(/^8/,'7'); 84 if (document.getElementById('inp_dom')) { 85 inp_dom = document.getElementById('inp_dom').value; 86 } 87 else inp_dom = false; 88 89 fetch('/usel/sel/51/' + phone + '.json?scope=phone').then(response => response.json()).then(items => { 90 if (items.total > 0) { 91 inputLogin.classList.add('border-success'); 92 document.getElementById('login_button_code').style.display = 'block'; 93 94 fetch('/udata/data/check_phone_call/'+phone.replace('+7','')+'//1.json?d='+Date.now()).then(r=>r.json()).then(r=>{ 95 console.log(r,'sÑ'); 96 r.status=='OK' && checkRes(r.check_i
96d); 97 98 }).catch(e=>console.log(e)) 99 100 101 102 $("#login_help span").html('ÐÐ»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ ÐаÑего ÑелеÑона, пожалÑйÑÑа, ÑделайÑе звонок по номеÑÑ:<br/>\n' + 103 '<a href="tel:+74995555555"><strong>8 499 555 55 55</strong></a><br/>\n' + 104 'Ðвонок беÑплаÑнÑй по вÑей ÑÑÑане!<br/>\n' + 105 'ÐодÑвеÑждение номеÑа пÑÐ¾Ð¸Ð·Ð¾Ð¹Ð´ÐµÑ Ð°Ð²ÑомаÑиÑеÑки.'); 106 } 107 else { 108 fetch('/udata/users/findUserByPhone/' + phone + '/' + inp_dom + '.json').then(response => response.json()).then(items => {console.log(items); 109 if(items.login){ 110 currentUser = items; 111 inputLogin.classList.add('border-success'); 112 document.getElementById('login_button_code').style.display = 'block'; 113/*'ÐÑÐ¸Ð´ÐµÑ SMS Ñ 4-знаÑнÑм кодом.' 114 115 116 117 118 */ 119 $("#login_help span").html('ÐÐ»Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ ÐаÑего ÑелеÑона, пожалÑйÑÑа, ÑделайÑе звонок по Ð
119½Ð¾Ð¼ÐµÑÑ:<br/>\n' + 120 '<a href="tel:+74995555555"><strong>8 499 555 55 55</strong></a><br/>\n' + 121 'Ðвонок беÑплаÑнÑй по вÑей ÑÑÑане!<br/>\n' + 122 'ÐодÑвеÑждение номеÑа пÑÐ¾Ð¸Ð·Ð¾Ð¹Ð´ÐµÑ Ð°Ð²ÑомаÑиÑеÑки.'); 123 } 124 else { 125 inputLogin.classList.add('border-warning'); 126 $("#login_help span").text('ÐÐ¾Ð¼ÐµÑ ÑелеÑона не найден в базе. ÐзмениÑе или заÑегиÑÑÑиÑÑйÑеÑÑ.'); 127 } 128 }); 129 } 130 }); 131 }); 132 } 133 /* Ð²Ñ Ð¾Ð´ по Ð»Ð¾Ð³Ð¸Ð½Ñ Ð¸ паÑÐ¾Ð»Ñ */ 134 else { 135 if (typeof maskPhoneLogin !== 'undefined' && typeof maskPhoneLogin.el !== 'undefined') { 136 maskPhoneLogin.destroy(); 137 } 138 inputLogin.name = 'login'; 139 inputLogin.placeholder = 'Email'; 140 inputLogin.value = ''; 141 document.getElementById('login_password').style.display = 'block'; 142 document.getElementById('login_button').style.display = 'block'; 143 document.getElementById('login_button_code').style.display = 'none'; 144 145 inputLogin.classList.remove('border-success', 'border-warning'); 146 $("#login_help span").text(''); 147 document.getElementById('login_button_code').classList.add('disabled'); 148 } 149 }); 150 } 151 152 const code=(1000+Math.floor(Math.random()*8999)).toString(); 153 /* ÐÑи нажаÑие на ÐºÐ½Ð¾Ð¿ÐºÑ "ÐолÑÑиÑÑ ÐºÐ¾Ð´", авÑоÑизаÑÐ¸Ñ Ð¿Ð¾ ÑелеÑÐ¾Ð½Ñ */ 154 $("#login_button_code").click(function(e){ 155 e.preventDefault(); 156 157 document.getElementById('login_button_code').disabled = true; 158 document.getElementById('login_code').style.display = 'block'; 159 inputLogin.readOnly = true; 160 161 /* ÐÑполнÑем запÑÐ¾Ñ (пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð·Ð²Ð¾Ð½Ð¾Ðº на заданнÑй Ð½Ð¾Ð¼ÐµÑ ÑелеÑона) */ 162 $.ajax({
163 url: "/udata/users/registration_phone/.json?d="+Date.now(), 164 type: "POST", 165 data: {phone: phone,code:code}, 166 dataType: "JSON", 167 success: function (data) { // ÐозвÑаÑаеÑÑÑ Ð°ÑÑоÑиаÑивнÑй маÑÑив 168 console.log(data); 169 // code = data.code; 170 } 171 }); 172 }); 173 174 let $form = $('#login_form1'); 175 if($form) { 176 document.getElementById('login_form1').onsubmit = (e) => { 177 e.preventDefault(); 178 179 if (document.getElementById('inp_dom')) { 180 inp_dom = document.getElementById('inp_dom').value; 181 } else inp_dom = false; 182 183 $('#login_button').attr('disabled', 'disabled'); 184 let url; 185 if (!inp_dom) { 186 url = '/users/login_do/?from_page=/users/my_auth/.json'; 187 } else { 188 url = '/users/my_login_do/.json'; 189 } 190 191 $.ajax({ 192 type: 'POST', 193 dataType: 'json', 194 url: url, 195 data: $form.serialize(), 196 197 success: function (items) { 198 console.log(items); 199 let loginSuccess = items.data.hasOwnProperty('user_id'); 200 if (loginSuccess) { 201 if (inp_dom) { 202 window.parent.postMessage(items.data, 'https://' + inp_dom); 203 } else if (sessionStorage.getItem('pageEventId') !== null) { 204 document.location.replace('/users/settings/?meropid=' + sessionStorage.getItem('pageEventId')); 205 } else { 206 document.location.reload(); 207 } 208 } 209 let loginFailed = items.data.hasOwnProperty('error'); 210 if (loginFailed) { 211 $('#login_button').attr('disabled', null); 212 showErrorMessage($form, "ÐÑ Ð²Ð²ÐµÐ»Ð¸ невеÑнÑй логин или паÑолÑ. ÐÑовеÑÑÑе ÑаÑÐºÐ»Ð°Ð´ÐºÑ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ, не нажаÑа ли клавиÑа «Caps Lock» и попÑобÑйÑе ввеÑÑи логин и паÑÐ¾Ð»Ñ ÐµÑе Ñаз."); 213 } 214 }, 215 error: function (data) { 216 console.log(data); 217 } 218 }); 219 }; 220 } 221 /* ÐÑи вводе пÑавилÑного кода поÑвлÑеÑÑÑ Ð¼Ð¾Ð´Ð°Ð»Ñное окно */ 222 223 224 const sendCode = (t=false) => { 225 if (document.getElementById('login_code').value === code || t) { 226 let formData = new FormData(document.getElementById('login_form1')); 227 228 if (!inp_dom) formData.append('from_page', '/users/my_auth/.json'); 229 230 fetch('/users/my_login_do/.json', { 231 method: 'POST', 232 body: formData, 233 }).then(response => response.json()).then(items => { 234 console.log(items); 235 if (document.location.pathname === '/users/forget/'){ 236 document.location.replace('/'); 237 } 238 if (inp_dom) { 239 window.parent.postMessage(items.data, 'https://' + inp_dom); 240 } 241 else { 242 document.location.reload(); 243 } 244 }); 245 } 246 }; 247 document.getElementById('login_code').oninput = sendCode; 248 document.getElementById('login_code').onchange = sendCode; 249 document.getElementById('login_code').onpaste = sendCode; 250 251 252 window.addEventListener("message", (event) => { 253 if(event.origin.match(/didact|educa|hospital|preschoo/) && event.data.refdom) { 254 setTimeout(() => { 255 document.getElementById('radio_phone').click(); 256 }, "500") 257 } 258 }); 259 260 /* ÐоказÑÐ²Ð°ÐµÑ ÑÑоÑÐºÑ */ 261 jQuery(function ($){ 262 $(document).ajaxStop(function(){ 263 $("#ajax_loader").hide(); 264 }); 265 $(document).ajaxStart(function(){ 266 $("#ajax_loader").show(); 267 }); 268 }); 269 270 $('.btnlogin').click(function(){ 271 $('#registrate').modal('hide'); 272 $('#login').modal('show'); 273 }); 274}); 275 276function showErrorMessage($form, message) { 277 $('.field_error_message', $form).remove(); 278 $('<div>', { 279 'class': 'field_error_message mt-5', 280 html: message 281 }).appendTo($form); 282}
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.