1 2 3 4<!DOCTYPE html> 5<html lang="ru"> 6<head> 7 <meta charset="utf-8"> 8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 9 <title>ÐÑ Ð¾Ð´ на ÑÐ°Ð¹Ñ www.norma.uz</title> 10 11 12 13 14 15 16 <link rel="stylesheet" href="/files/bootstrap/css/bootstrap.min.css"> 17<link rel="stylesheet" href="/files/bootstrap/css/bootstrap-extra.css"> 18<link rel="stylesheet" href="/files/js/sweetalert2/sweetalert2.min.css"> 19<link rel="stylesheet" href="/files/sso/style.css?v=1"> 20<link rel="stylesheet" href="/files/css/animate.min.css"> 21<link rel="stylesheet" href="/files/social/social.css"> 22 23
23<script src="/files/jquery/jquery.js"></script>
vendor: 1 bytes, line 23
23
24<script src="/files/bootstrap/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 24
24
25<script src="/files/bootstrap/js/bootstrap-extra.js"></script>
vendor: 1 bytes, line 25
25
26<script src="/files/js/sweetalert2/sweetalert2.min.js"></script>
vendor: 1 bytes, line 26
26
27<script src="/files/js/es7-object-polyfill.browser.js"></script>
vendor: 1 bytes, line 27
27
28<script src="/files/js/vue/2.6.14/vue.min.js"></script>
vendor: 1 bytes, line 28
28
29<script src="/files/js/jquery.cookie.js"></script>
29 30 31</head> 32 33<body> 34 35 36<div id="wrapper" style="display: none;"> 37 <header> 38 <h1> 39 <span class="login_title_text1">ÐÑ Ð¾Ð´ на ÑайÑ</span> 40 <span class="login_title_domain">www.norma.uz</span> 41 <span class="login_title_text2"></span> 42 </h1> 43 <button class="close-btn" onclick="window.close();"> 44 × 45 </button> 46 </header> 47 <main> 48 49 50 51<div id="app"> 52<div class="loading" v-if="loading"> 53 <div class="lds-spinner"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div> 54</div> 55<transition 56name="animate_slide" 57enter-active-class="animate__animated animate__fadeIn" 58leave-active-class="animate__animated animate__backOutLeft" 59@after-enter="afterTransition" 60> 61<div v-if="mode === 0" class="login-form-container"> 62<p>ÐойдиÑе или заÑегиÑÑÑиÑÑйÑеÑÑ, иÑполÑзÑÑ Ð²Ð°Ñ Ð°Ð´ÑÐµÑ ÑлекÑÑонной поÑÑÑ</p> 63<div class="login-form form-horizontal"> 64 <div class="form-group"> 65 <label for="txtLoginEmail">E-mail:</label> 66 <input ref="email" class="form-control" type="email" id="txtLoginEmail" name="email" 67 @keyup.enter="checkEmail" v-model="email"> 68 </div> 69</div> 70<div class="login-btn-container"> 71 <button class="btn btn-primary" @click="checkEmail">Ðалее 72 <i class="glyphicon glyphicon-triangle-right"></i> 73 </button> 74</div> 75</div> 76</transition> 77 78<transition 79name="animate_slide" 80enter-active-class="animate__animated animate__bounceInRight" 81leave-active-class="animate__animated animate__backOutRight" 82@after-enter="afterTransition" 83> 84<div v-if="mode === 1" class="enter-password-form-container"> 85 <p>ÐведиÑе паÑÐ¾Ð»Ñ Ð¾Ñ Ð²Ð°Ñей ÑÑеÑной запиÑи на ÑайÑе norma.uz</p> 86 87 <div class="enter-password-form"> 88 <div class="user-icon"> 89 <img src="/files/sso/user.png" width="40" height="40"> 90 {{ email }} 91 </div> 92 <small class="forgot-password"> 93 <a href="#" @click="forgotPassword">ÐабÑли паÑолÑ?</a> 94 </small> 95 <div class="form-group"> 96 <label ref="passwd" for="txtPassword" class="label-nowrap">ÐаÑолÑ:</label> 97 <small> 98 <div class="has-clear"> 99 <input class="form-control" :type="showpwd ? 'text' : 'password'" id="txtPassword" name="password" 100 @keyup.enter="login"> 101 <span class="form-control-clear glyphicon" :class="'glyphicon-eye-' + (showpwd ? 'close': 'open')" @click="showpwd = !showpwd" 102 :title="showpwd ? 'СкÑÑÑÑ Ð¿Ð°ÑолÑ': 'ÐоказаÑÑ Ð¿Ð°ÑолÑ'"></span> 103 </div> 104 <div class="checkbox"> 105 <label> 106 <input type="checkbox" value="1" id="chkRemember" name="remember" checked> 107 ÐапомниÑÑ Ð¼ÐµÐ½Ñ 108 </label> 109 </div> 110 111 </small> 112 </div> 113 114 <div class="login-btn-container"> 115 <button class="btn btn-primary" @click="login">Ðалее</button> 116 </div> 117 118 </div> 119 <div class="reset-email"> 120 <a href="#" @click="resetEmail"> 121 <i class="glyphicon glyphicon-triangle-left"></i> 122 ÐÑполÑзоваÑÑ Ð´ÑÑгÑÑ ÑÑеÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ 123 </a> 124 </div> 125</div> 126</transition> 127<transition 128name="animate_slide" 129enter-active-class="animate__animated animate__bounceInRight" 130leave-active-class="animate__animated animate__backOutRight" 131 132> 133<div v-if="mode === 2" class="not-registered-container"> 134 <p>ÐÑ ÐµÑе не заÑегиÑÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð½Ð° ÑайÑе norma.uz</p> 135 <div class="guest-icon"> 136 <img src="/files/sso/guest.png" width="40" height="40"> 137 {{ email }} 138 </div> 139 <div class="gotoreg-btn-container"> 140 <form action="/ru/auth/reg" method="POST"> 141 <input type="hidden" name="ref" v-model="ref"> 142 <input type="hidden" name="email" v-model="email"> 143 <button class="btn btn-primary" onclick="app.loading=true;">
143ÐеÑейÑи к ÑегиÑÑÑаÑии</button> 144 </form> 145 146 </div> 147 <div class="reset-email"> 148 149 <a href="#" @click="resetEmail"> 150 <i class="glyphicon glyphicon-triangle-left"></i> 151 ÐÑполÑзоваÑÑ Ð´ÑÑгой e-mail 152 </a> 153 </div> 154</div> 155</transition> 156 157</div> 158 159<div class="login-other"> 160 <h2>или войдиÑе ÑеÑез:</h2> 161 162 163 164 <form action="/ru/scripts/sso?w=ext" method="post" id="formAuthWidget"> 165 <input type="hidden" name="ref" value="https://www.norma.uz/"> 166 <input type="hidden" name="service" value=""> 167 168 <a href="#" class="social-32 g" title="Google" 169 onclick="app.loading=true;$('#formAuthWidget input[name=service]').val('g');$('#formAuthWidget').submit();return false;"> 170 171 Google 172 173 </a> 174 175 <a href="#" class="social-32 fb" title="Facebook" 176 onclick="app.loading=true;$('#formAuthWidget input[name=service]').val('fb');$('#formAuthWidget').submit();return false;"> 177 178 Facebook 179 180 </a> 181 182 <a href="#" class="social-32 ya" title="ЯндекÑ" 183 onclick="app.loading=true;$('#formAuthWidget input[name=service]').val('ya');$('#formAuthWidget').submit();return false;"> 184 185 Ð¯Ð½Ð´ÐµÐºÑ 186 187 </a> 188 189 <a href="#" class="social-32 mr" title="Mail.ru" 190 onclick="app.loading=true;$('#formAuthWidget input[name=service]').val('mr');$('#formAuthWidget').submit();return false;"> 191 192 Mail.ru 193 194 </a> 195 196 <a href="#" class="social-32 tg" title="Telegram" 197 onclick="app.loading=true;$('#formAuthWidget input[name=service]').val('tg');$('#formAuthWidget').submit();return false;"> 198 199 200
200<script async src="https://telegram.org/js/telegram-widget.js?5" data-telegram-login="norma_uz_bot" data-size="medium" data-onauth="onTelegramAuth(user)" data-request-access="write"></script>
200 201
201<script type="text/javascript"> 202 function onTelegramAuth(user) { 203 $.ajax({ 204 url: "/ru/scripts/sso?w=ext&service=tg&ref=https%3A%2F%2Fwww.norma.uz%2F&ajax=1", 205 data: user, 206 cache: false, 207 type: "POST", 208 complete: function(xhr, status) { 209 210 }, 211 success: function(data, status, xhr) { 212 if (data.error) { 213 app.showError(data.error); 214 } else if (data.authUrl) { 215 app.authorize(data.authUrl); 216 } else if (data.returnUrl) { 217 location.href = data.returnUrl; 218 } 219 }, 220 error: function(xhr, status, err) { 221 222 } 223 }); 224 } 225 </script>
225 226 227 </a> 228 229 </form> 230 <style> 231 /*.social-32.tg:hover { 232 background: transparent !important; 233 overflow: visible; 234 text-indent: 0; 235 }*/ 236 237 .social-32.tg { 238 background: #54A9EB; 239 text-indent: -4px; 240 padding-top: 2px; 241 border-radius: 16px; 242 /*transition: all 0.2s;*/ 243 } 244 </style> 245 246 247 248</div> 249 250<div class="autologin-chk checkbox"> 251 <label> 252 <input type="checkbox" value="1" id="chkAutologin" name="autologin" checked 253 onclick="$.cookie('normauz_sso_autologin_chk', $(this).prop('checked') ? '1' : '0', {path: '/', expires: 1});"> 254 УзнаваÑÑ Ð¼ÐµÐ½Ñ Ð½Ð° вÑÐµÑ ÑайÑÐ°Ñ Norma 255 </label> 256</div> 257 258 </main> 259<footer> 260 ÐÑполнÑÑ ÑегиÑÑÑаÑÐ¸Ñ Ð¸Ð»Ð¸ Ð²Ñ Ð¾Ð´ на ÑÐ°Ð¹Ñ Ð²Ñ ÑоглаÑаеÑеÑÑ Ñ <a href="https://www.norma.uz/legal/privacy_policy" target="_blank" onclick="var w=820;var h=600;var left = (screen.width / 2) - (w / 2); var top = (screen.height / 2) - (h / 2);window.open($(this).attr('href'), 'ifrs_academy_pp', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);return false;">ÐолиÑикой конÑиденÑиалÑноÑÑи</a> 261</footer> 262 263</div> 264
265<script> 266 $('#wrapper').fadeIn(1000); 267</script>
267 268<noscript> 269 <div style="background: #e7c3c3; border: 1px solid red; color: red; padding:20px; margin:20px;max-width:700px;"> 270 <p style="margin-bottom: 20px">ÐÐ°Ñ Ð±ÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ JavaScript или JavaScript оÑклÑÑен.<br> 271 ЧÑÐ¾Ð±Ñ Ð¿ÑодолжиÑÑ, вклÑÑиÑе в Ñвоем бÑаÑзеÑе JavaScript!</p> 272 273 <p style="margin-bottom: 20px">Сизнинг бÑаÑзеÑингиз javascriptни ÒÑллаб ÒÑвваÑламаÑпÑи Ñки Ð±Ñ Ð¸Ð¼ÐºÐ¾Ð½Ð¸ÑÑ ÑÑиÑилган.<br> 274 Ðавом ÑÑÐ¸Ñ ÑÑÑн бÑаÑзеÑингизда JavaScript ÑÑxÑÐ°Ñ ÑÑилган бÑлиÑи кеÑак!</p> 275 276 <p>Sizning brauzeringiz javascriptni qo'llab quvvatlamayapti yoki bu imkoniyat o'chirilgan.<br> 277 Davom etish uchun brauzeringizda JavaScript ruxsat etilgan bo'lishi kerak!</p> 278 </div> 279</noscript> 280
280<script> 281function sso_finishLogin(authUrl, remember, returnUrl) { 282 Swal.fire({ 283 icon: 'success', 284 title: 'ÐÑ Ð¾Ð´ вÑполнен', 285 text: 'ÐожалÑйÑÑа, подождиÑе, ÑÑÑаниÑа пеÑезагÑÑзиÑÑÑ Ð² ÑеÑение неÑколÑÐºÐ¸Ñ ÑекÑнд...', 286 showConfirmButton: false 287 }); 288 var url = authUrl + '&remember='+remember+'&returnUrl='+encodeURIComponent(returnUrl); 289 if (window.opener !== null) { 290 try { 291 window.opener.location.href = url; 292 window.setTimeout(function() { 293 window.close(); 294 }, 2500); 295 } 296 catch (e) { 297 window.opener.postMessage({ 298 m: "sso_reload", 299 url: url 300 }, returnUrl); 301 window.setTimeout(function() { 302 window.close(); 303 }, 2500); 304 /*$.ajax({ 305 url: authUrl + '&remember='+remember+'&ssoAjax=1', 306 success: function(data, status, xhr) { 307 if (data.success == 'ok') { 308 309 } else { 310 Swal.fire({ 311 icon: 'error', 312 title: 'Ðе ÑдалоÑÑ Ð²ÑполниÑÑ Ð²Ñ Ð¾Ð´', 313 }).then(function() { 314 window.close(); 315 }); 316 } 317 }, 318 error: function() { 319 320 }, 321 });*/ 322 } 323 324 } else { 325 location.href = url; 326 } 327} 328</script>
328 329 330
330<script> 331 var app = new Vue({ 332 el: '#app', 333 data: { 334 domain: 'www.norma.uz', 335 ref: 'https://www.norma.uz/', 336 email: '', 337 loading: false, 338 showpwd: false, 339 forgotPasswordSended: false, 340 mode: 0 341 /* */ 342 }, 343 methods: { 344 afterTransition: function(el) { 345 if (this.mode == 0) { 346 this.$refs.email.focus(); 347 } else if (this.mode == 1) { 348 this.$refs.passwd.focus(); 349 } 350 }, 351 request: function(w, d, cb) { 352 var v = this; 353 v.loading = true; 354 d.w = w; 355 d.email = this.email; 356 d.ref = this.ref; 357 $.ajax({ 358 url: '/scripts/sso', 359 method: 'POST', 360 data: d, 361 complete: function(xhr, status) { 362 v.loading = false; 363 }, 364 success: function(data, status, xhr) { 365 if (data.error) { 366 v.showError(data.error); 367 } else if (data.result) { 368 cb(data); 369 } 370 } 371 }); 372 }, 373 374 showError: function(err) { 375 var errors = { 376 'invalid_password': { 377 title: 'ÐепÑавилÑнÑй паÑолÑ', 378 footer: '<a href="#" onclick="app.forgotPassword(); return false;">ÐабÑли паÑолÑ?</a>' 379 } 380 }; 381 if (errors[err]) { 382 var data = errors[err]; 383 384 385 } else { 386 var data = { 387 'title': 'ÐÑибка', 388 'text': err 389 }; 390 } 391 if (!data.icon) { 392 data.icon = 'error'; 393 } 394 Swal.fire(data); 395 }, 396 validateEmail: function() { 397 if (this.email == '') { 398 Swal.fire({ 399 title: 'УкажиÑе Ð²Ð°Ñ e-mail', 400 icon: 'warning', 401 confirmButtonText: 'OK', 402 }); 403 return false; 404 } 405 return true; 406 }, 407 validatePassword: function() { 408 var $p = $('#txtPassword'); 409 if ($p.val() == '') { 410 Swal.fire({ 411 title: 'ÐведиÑе паÑолÑ', 412 icon: 'warning', 413 confirmButtonText: 'OK', 414 }); 415 return false; 416 } 417 return true; 418 }, 419 forgotPassword: function() { 420 var v = this; 421 if (this.forgotPasswordSended != this.email) { 422 var t = 'Ðа ÑказаннÑй адÑÐµÑ ÑлекÑÑонной поÑÑÑ %s бÑÐ´ÐµÑ Ð¾ÑпÑавлено пиÑÑмо Ñо ÑÑÑлкой Ð´Ð»Ñ ÑÐ¼ÐµÐ½Ñ Ð¿Ð°ÑолÑ'; 423 t = t.replace('%s', this.email); 424 Swal.fire({ 425 title: 'ÐабÑли паÑолÑ?', 426 text: t, 427 icon: 'question', 428 confirmButtonText: 'ÐÑпÑавиÑÑ Ð¿Ð¸ÑÑмо', 429 footer: '<a href="#" onclick="Swal.close();return false;">ÐÑмена</a>' 430 }).then( 431 function(res) { 432 if (res.isConfirmed) { 433 v.forgotPasswordSendEmail(); 434 } 435 } 436 ); 437 } else { 438 this.forgotPasswordSendedShowMsg(); 439 } 440 }, 441 forgotPasswordSendedShowMsg: function() { 442 var t = 'ÐиÑÑмо Ð´Ð»Ñ ÑÐ¼ÐµÐ½Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¾ÑпÑавлено на адÑÐµÑ ÑлекÑÑонной поÑÑÑ %s. ÐÑли пиÑÑма Ð½ÐµÑ Ð²Ð¾ Ð²Ñ Ð¾Ð´ÑÑÐ¸Ñ , пÑовеÑÑÑе Ð¿Ð°Ð¿ÐºÑ Ð¡Ð¿Ð°Ð¼'; 443 t = t.replace('%s', this.email); 444 Swal.fire({ 445 title: 'ÐиÑÑмо оÑпÑавлено', 446 text: t, 447 icon: 'success' 448 }); 449 }, 450 forgotPasswordSendEmail: function() { 451 var v = this; 452 $.ajax({ 453 url: '/scripts/forgetpass', 454 type: 'POST', 455 data: { 456 action: 'recover-password', 457 email: this.email 458 }, 459 dataType: 'json', 460 success: function(data) { 461 if (data.status == true) { 462 v.forgotPasswordSended = v.email; 463 v.forgotPasswordSendedShowMsg(); 464 } else { 465 v.showError(data.message); 466 } 467 } 468 }); 469 }, 470 checkEmail: function() { 471 var v = this; 472 if (this.validateEmail()) { 473 this.request('email', {}, function(data) { 474 if (data.result == 'exists') { 475 v.email = data.email; 476 v.mode = 1; 477 v.showpwd = false; 478 } else if (data.result == 'notfound') { 479 v.email = data.email; 480 v.mode = 2; 481 } 482 }); 483 } 484 }, 485 resetEmail: function() { 486 //this.email = ''; 487 this.mode = 0; 488 }, 489 login: function() { 490 var v = this; 491 if (this.validateEmail() && this.validatePassword()) { 492 this.request('pwd', { 493 pwd: $('#txtPassword').val(), 494 remember: $('#chkRemember').prop('checked') ? '1' : '0' , 495 autologin: $('#chkAutologin').prop('checked') ? '1' : '0' 496 }, 497 function(data) { 498 if (data.result == 'ok') { 499 500 if (data.authUrl) { 501 v.authorize(data.authUrl); 502 503 } 504 } 505 }); 506 } 507 }, 508 authorize: function(authUrl) { 509 sso_finishLogin(authUrl, $('#chkRemember').prop('checked') ? 1 : 0, this.ref); 510 } 511 } 512 }); 513 </script>
513 514 515</body> 516</html> 517 518 519 520<!-- DB TOTAL QUERIES: 0 --><!-- DB TOTAL TIME: 0 --><!-- PAGE GENERATION TIME: 0.02303 -->
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.